LeNet论文全文翻译《Gradient-based learning applied to document recognition》(上)
ps:因為論文完全可以機翻而不需要手工翻譯,所以有部分翻譯不是嚴格按照英譯中的意思而是有我自己的一定理解,請參考原論文。另外有好多地方我也沒看懂,所以翻譯的也不一定準確,歡迎批評指正。
目錄
- 摘要
- 術語
- 1. 引言
- A. 從數據中學習
- B. 基于梯度的學習
- C. 梯度反向傳播
- D. 在實際手寫識別系統中學習
- E. 全局訓練系統
- 2. 用于孤立字符識別的卷積神經網絡
- A. 卷積網絡
- B. LeNet-5
- C. 損失函數
- 3. 結果與其它方法的比較
- A. 數據庫:修正NIST數據集
- B. 結果
- C. 與其他分類器的比較
- D. 討論
- E. 不變性和抗噪性
摘要
摘要:用反向傳播算法訓練的多層神經網絡建立了一個成功的基于梯度的學習技術的最佳例子。給定適當的網絡體系架構,可以使用基于梯度的學習算法來合成復雜的決策面,該決策面可以以最少的預處理對高維模式(例如手寫字符)進行分類。本文回顧了應用于手寫字符識別的各種方法,并將它們與標準的手寫數字識別任務進行了比較。專門設計用于處理二維(2-D)形狀的可變性的卷積神經網絡被證明性能優于所有其他技術。
??現實生活中的文檔識別系統由多個模塊組成,包括字段提取,分割,識別和語言建模。一種稱為圖變換網絡(GTN)的新的學習范式,允許使用基于梯度的方法對此類多模塊系統進行全局訓練,從而最大程度地降低總體性能指標。
??文中描述了兩種用于在線手寫識別的系統,實驗證明了進行全局訓練的優勢以及圖變換網絡的靈活性。
??文中還描述了用于讀取銀行支票的圖變換網絡,其使用卷積神經網絡字符識別器與全局訓練技術相結合,以提供商務和個人支票記錄的準確性。現已進行商業部署,每天讀取數百萬張支票。
??關鍵詞:神經網絡,OCR,文檔識別,機器學習,基于梯度的學習,卷積神經網絡,圖變換網絡,有限狀態轉換機
術語
GT Graph transformer. 圖變換
GTN Graph transformer network. 圖變換網絡
HMM Hidden Markov model. 隱藏馬爾科夫模型
HOS Heuristic oversegmentation. 啟發式過度分段
K-NN K-nearest neighbor. K-近鄰
NN Neural network. 神經網絡
OCR Optical character recognition. 光學字符識別
PCA Principal component analysis. 主成分分析
RBF Radial basis function. 徑向基函數
RS-SVM Reduced-set support vector method. 約簡集支持向量方法
SDNN Space displacement neural network. 空間位移神經網絡
SVM Support vector method. 支持向量方法
TDNN Time delay neural network. 時延神經網絡
V-SVM Virtual support vector method. 虛擬支持向量方法
1. 引言
??在過去的幾年中,機器學習技術,特別是應用于神經網絡中的機器學習技術在模式識別系統中起到了越來越重要的作用,事實上可以說,在最近的諸如連續語音識別和手寫文字識別等模式識別的成功應用中,學習技巧的可用性一直是一個關鍵因素。
??本文的主要內容是更好的模式識別系統可以更多地靠自動學習的方法而更少地靠人工啟發設計的方法來建立。最近的機器學習和計算機技術的進展使這成為可能。以字符識別為例,我們證明了手工制作的特征提取可以被精心設計的學習機器所取代,這些機器可以直接對像素圖像進行操作。以文檔理解為例,我們證明了通過加入手工設計的模塊來構建識別系統的傳統方法可以被一種統一且原則良好的設計模式(稱為圖變換網絡)所取代,這種設計模式允許訓練所有模塊以優化全局性能標準。
??從模式識別的早期開始,人們就知道,自然數據的可變性和豐富性,無論是語音、字形還是其他類型的模式,使得完全靠手工建立一個精確的識別系統幾乎是不可能的。因此,大多數模式識別系統都是結合自動學習技術和手工算法構建的。識別單個模式的常用方法是將系統分為圖1中所示的兩個主要模塊。第一個模塊,稱為特征提取器,對輸入模式進行轉換,以使它們可以由低維向量或符號的短字符串表示,它們(a)可以輕松匹配或比較,(b)在轉換過程中相對不變,并且輸入模式的失真不會改變其性質。特征提取器包含大多數先驗知識,并且是用于特定任務的。它也是大多數設計方法的重點,因為它通常是完全手工制作的。另一方面,分類器通常是通用的且可訓練的。這種方法的主要問題之一是識別精度在很大程度上取決于設計人員提出適當的特征集的能力。事實證明這是一項艱巨的任務,而且對于每個新問題都必須重做一次。大量的模式識別文獻致力于描述和比較針對特定任務的不同特征集的優缺點。
??歷史上,需要適當的特征提取器的原因是:分類器使用的學習技術僅限于具有易于分離的類的低維空間。在過去十年中,三個因素共同改變了這一情況。首先,低成本高性能的計算機器的可用性允許更多地依靠暴力“數字”方法而不是依靠算法優化;其次,針對市場和人們廣泛關注的問題如手寫體識別中的大量數據,設計人員能夠更多地依賴真實數據而不是手工特征提取來構建識別系統,第三個也是非常重要的因素是強大的機器學習技術的可用性,通過使用大型訓練數據集可以處理高維輸入并生成復雜的決策函數。可以說語音和手寫識別系統在準確性方面的最新進展在很大程度上歸因于對學習技術和大型訓練數據集的日益依賴。實際上,現代商業OCR系統中有很大一部分使用經過反向傳播訓練的某種形式的多層神經網絡。
??在這項研究中,我們考慮了手寫字符識別的任務(第一和第二部分),并在用于手寫數字識別的基準數據集上比較了幾種學習技術的性能(第三部分)。盡管更多的自動學習是有益的,但沒有關于任務的最少先驗知識,任何學習技術都無法成功。在多層神經網絡的情況下,吸收知識的一種好方法是根據任務調整其體系結構。第二部分介紹的卷積神經網絡是專用神經網絡體系結構的一個示例,該體系結構通過使用局部連接模式并通過對權重施加約束來吸收尺寸不變的2D形狀的知識。第三部分介紹了幾種對手寫數字識別進行分類的方法的比較。為了從識別單個字符到識別文檔中的單詞和句子,在第四部分中介紹了組合多個經過訓練以減少總體錯誤的模塊的想法。如果模塊操作有向圖,則最好使用多模塊系統來識別諸如手寫單詞之類的可變長度對象。這導致了在第四部分中也引入了可訓練圖變換網絡(GTN)的概念。第五部分介紹了用于識別單詞或其他字符串的啟發式過分分割的經典方法。第六部分介紹了基于辨別性和非辨別性梯度的技術,可在單詞級別上訓練識別器,而無需人工分段和標記。第七部分介紹了有前景的空間位移神經網絡方法,該方法通過在輸入的所有可能位置上掃描識別器,從而避免了對分割啟發式算法的需求。在第八部分中,表明了可訓練圖變換網絡可以基于通用的圖形組合算法表述為多個通用的轉換。本文還研究了語音識別中常用的GTN和隱馬爾可夫模型之間的聯系。第九部分介紹了經過全局訓練的GTN系統用于識別在筆輸入計算機中輸入的筆跡。這個問題被稱為“在線”手寫識別,因為機器必須在用戶書寫時立即反饋結果。系統的核心是卷積神經網絡。結果清楚地證明了在單詞級別訓練識別器的優勢,而不是對它進行預先分割的,手工標記的,孤立的字符進行訓練。第十部分描述了一個完整的基于GTN的系統,用于讀取手寫和機器打印的銀行支票,該系統的核心是第二部分中描述的稱為LeNet-5的卷積神經網絡。該系統已在NCR公司的銀行業支票識別系統中投入商業使用,每月在全美國多家銀行中讀取數百萬張支票。
A. 從數據中學習
??有幾種自動機器學習的方法,但是近年來,由神經網絡社區普及的最成功的方法之一可以稱為“數字”或基于梯度的學習。學習機器計算一個函數Yp=F(Zp,W)Y^p=F(Z^p,W)Yp=F(Zp,W),其中ZpZ^pZp是第p個輸入的模式,W是這個系統中可調參數的集合。在一個模式識別任務中,輸出YpY^pYp可以被解釋為ZpZ^pZp的識別分類標簽,或分數,或每一類的概率。損失函數Ep=D(Dp,F(W,Zp))E^p=D(D^p,F(W,Z^p))Ep=D(Dp,F(W,Zp))中,測量了模式ZpZ^pZp的正確的或期望的輸出DpD^pDp,與系統產生的輸出之間的差值。平均損失函數Etrain(W)E_{train}(W)Etrain?(W)是一組稱作訓練集的標注數據{(Z1,D1),...,(Zp,Dp)(Z^1,D^1),...,(Z^p,D^p)(Z1,D1),...,(Zp,Dp)}上的誤差EpE^pEp的平均值。在最簡單的問題中,學習問題在于找到使Etrain(W)E_{train}(W)Etrain?(W)最小的W值。實際上,系統在訓練集上的性能不能說明什么,在實際中的錯誤率更為有用。p應通過測量與訓練集分離的一組樣本的準確性來評估性能,這一樣本成為測試集。很多理論和經驗的工作證明測試集上期望的錯誤率和訓練集上的錯誤率之間的差距大致符合Etest?Etrain=k(hp)αE_{test}-E_{train}=k(\frac{h}{p})^{\alpha}Etest??Etrain?=k(ph?)α其中p是訓練樣本數,h是有效容量或系統復雜度的測量值,α\alphaα是一個介于0.5和1之間的數,k是一個常數。這一差距通常隨著訓練數據的增大而減小。此外,隨著容量h的增加,EtrainE_{train}Etrain?會減小。因此當增加了容量h后,在EtrainE_{train}Etrain?的下降和兩者差距的增加之間存在一個權衡,其中容量h的最優值可以實現最低的泛化誤差EtestE_{test}Etest?。大多數學習算法都試圖最小化EtrainE_{train}Etrain?以及差距的估計值。這種形式的正式版本稱為結構風險最小化,它基于定義容量增強的學習機序列,該序列對應于參數空間的子集序列,從而每個子集都是先前子集的超集。實際上,通過最小化Etrain+βH(W)E_{train}+\beta H(W)Etrain?+βH(W)來實現結構化風險最小化,其中函數H(W)稱為正則化函數,β\betaβ是一個常數。選擇H(W)以使它在屬于參數空間大容量子集的參數W上取大值。p最小化H(W)限制了參數空間可訪問子集的容量,從而控制了最小化訓練誤差與使訓練誤差和測試誤差之間的差距最小化之間的折衷。
B. 基于梯度的學習
??尋找一組參數使函數最小化的一般問題是計算機科學中許多問題的基礎。基于梯度的學習基于這樣一個事實,即與離散(組合)函數相比,最小化連續可導的函數通常要容易得多。通過估計參數值的小變化對損失函數的影響可以使損耗函數最小化,這是通過損失函數相對于參數的梯度來測量的。當可以通過解析方式計算梯度向量時(相對于通過擾動進行數值計算),可以設計出有效的學習算法。這是眾多具有連續值參數的基于梯度的學習算法的基礎。在本文描述的過程中,參數W的集合是一個實值向量,對于該向量,E(W)連續且處處可導。在這種情況下,最簡單的最小化步驟是梯度下降算法,其中W的迭代調整如下:Wk=Wk?1???E(W)?WW_k=W_{k-1}-\epsilon \frac{\partial E(W)}{\partial W}Wk?=Wk?1????W?E(W)?在這個最簡單的例子中,?\epsilon?是標量常數,更復雜的方法是使用可變的參數,或使用一個對角矩陣代替它,或在牛頓或高斯牛頓法中用逆黑塞矩陣的估計,也可以使用共軛梯度法。但是附錄B說明了盡管文獻中有許多相反的說法,但是這些二階方法對大型學習算法的作用非常有限。
??一個流行的方法是隨機梯度下降算法,也被稱作在線更新,它包括將平均梯度下降改為隨機的或近似的。在最典型的例子中,W基于一個簡單的公式進行更新:Wk=Wk?1???Epk(W)?WW_k=W_{k-1}-\epsilon \frac{\partial E^{p_k}(W)}{\partial W}Wk?=Wk?1????W?Epk?(W)?這一方法使參數向量在一個軌跡附近波動,但通常在一個存在冗余數據的龐大的數據集上,它的收斂速度都會比標準梯度下降或二階方法快得多,例如語音或字符識別中遇到的問題。這一原因將會在附錄B中解釋。這一算法在學習上的性質早在1960年代就進行了理論研究,但是有價值的成功應用直到1980年代中期才出現。
C. 梯度反向傳播
??基于梯度的學習方法自從1950年代末期就開始使用,但它們大部分都限制在線性系統內。直到接下來這三件事的發生,這一簡單的梯度下降算法在復雜機器學習任務中的驚人作用才被人們廣泛認識。第一個事件是人們意識到,盡管有相反的警告,但損失函數中局部極小值的存在在實踐中似乎不是一個主要問題。當注意到局部最小值似乎不是早期例如玻爾茲曼機等基于非線性梯度的學習技術的成功的主要障礙時,這一點就變得顯而易見。第二個事件是一個簡單而有效的算法–反向傳播算法通過Rumelhart,Hinton和 Williams等人而廣為人知,這一算法用于計算由多個處理層所組成的非線性系統的梯度。第三個事件是應用sigmoid激活單元的反向傳播算法應用于多層神經網絡可以解決復雜的學習任務的典型事例。反向傳播的基本原理是梯度可以高效地通過從輸出到輸入的傳播進行計算。這一想法在60年代早期的控制理論領域中進行了描述,但它在機器學習中的應用并沒有被廣泛認識。有趣的是,在神經網絡學習的研究中,早期關于反向傳播的推導并沒有使用梯度,而是中間層單元的虛擬期望值或最小干擾參數。在控制理論文獻中使用的拉格朗日公式可能提供了導出反向傳播的最佳嚴格方法,以及導出反向傳播到遞歸網絡和異構模塊網絡的推廣。第I-E部分給出了一般多層系統的簡單推導。
??在多層神經網絡中,局部極小值似乎并不是問題的事實成了一個理論上的謎。可以推測,如果為任務分配的網絡過大(在實踐中通常如此),則參數空間中“額外尺寸”的存在會降低無法到達區域的風險。反向傳播是迄今為止使用最廣泛的神經網絡學習算法,并且可能是使用最廣泛的任何形式的學習算法。
D. 在實際手寫識別系統中學習
??孤立的手寫字符識別已在學術領域中進行了廣泛的研究,并且是神經網絡早期成功的應用之一。第三部分研究了識別單個手寫數字的比較實驗。它們表明,使用基于梯度的學習方法訓練的神經網絡比在本文的同一數據上測試的所有其他方法都有更好的表現。最好的神經網絡稱為卷積網絡,旨在學習直接從像素圖像中提取相關特征(請參閱第二部分)。
??但是,手寫識別中最困難的問題之一是不僅要??識別單個字符,而且還要在單詞或句子中將字符與相鄰字符分開,這一過程稱為分割。這項已成為“標準”的技術稱為“啟發式過度細分”。它包括使用啟發式圖像處理技術在字符之間生成大量可能的剪切,然后基于識別器為每個候選字符給出的分數,選擇剪切的最佳組合。在這樣的模型中,系統的準確性取決于試探法產生的剪切的質量,并且取決于識別器將正確分割的字符與字符片段,多個字符或其他不正確分割的字符區分開的能力。訓練識別器以執行此任務帶來了重大挑戰,因為難以創建帶有錯誤分段字符的標記數據庫。最簡單的解決方案包括通過分段器運行字符串圖像,然后手動標記所有字符假設。不幸的是,這不僅是一項極其繁瑣且昂貴的任務,而且很難一致地進行標記。例如,應將分割4的右半部分標記為1還是非字符?分割8的右半部是否應標記為3?
??第五部分中介紹的第一個解決方案是在整個字符串級別而不是在字符級別上訓練系統。基于梯度學習的概念可以用于此目的。該系統經過培訓,可最大程度地減少測量錯誤答案概率的整體損失函數。第五部分探討了確保損失函數可微的各種方法,因此適合使用基于梯度的學習方法。第五部分介紹了有向無環圖的使用,其有弧攜帶數字信息作為表示替代假設的一種方式,并介紹了GTN的概念。
??第七部分中描述的第二個解決方案是完全消除分割。這個想法是將識別器掃過輸入圖像上每個可能的位置,并依靠識別器的“字符識別”屬性,即正確識別其輸入字段中居中定位的字符的能力,即使它的邊上有其它字符存在,并排除這些不包含居中字符的圖像。然后,通過將識別器掃過輸入而獲得的識別器輸出序列將被饋送到考慮語言限制的圖變換網絡,最后提取出最可能的解釋。此GTN有點類似于隱馬爾可夫模型(HMM),這使該方法讓人聯想到經典語音識別。盡管該技術在一般情況下會非常昂貴,但是卷積神經網絡的使用使它特別有吸引力,因為它可以顯著節省計算成本。
E. 全局訓練系統
??如前所述,大多數實用的模式識別系統是由多個模塊組成的。例如,文檔識別系統由提取感興趣區域的字段定位器、將輸入圖像切割成候選字符圖像的字段分割器、對每個候選字符進行分類和評分的識別器以及通常基于隨機語法的上下文后處理器組成,后者選擇從識別器生成的假設中得到語法正確的最佳答案。在大多數情況下,從一個模塊傳遞到另一個模塊的信息最好用帶有數字信息的圖形來表示。例如,識別器模塊的輸出可以表示為非循環圖,其中每個弧包含候選字符的標簽和分數,并且其中每個路徑表示輸入字符串的替代解釋。通常,每個模塊都在其上下文之外進行手動優化,或者有時進行訓練。例如,字符識別器將在預分割字符的標記圖像上進行訓練。然后對整個系統進行組裝,并手動調整模塊的一個子集參數,以最大限度地提高整體性能。這最后一步極其繁瑣、耗時,而且幾乎可以肯定是次優的。
??一個更好的選擇是以某種方式訓練整個系統,以便最小化全局錯誤量,例如文檔級別的字符錯誤分類概率。理想情況下,我們希望找到這個全局損失函數相對于系統中所有參數的一個很好的最小值。如果測量性能的損失函數E相對于系統的可調參數W是可微的,我們可以使用基于梯度的學習找到E的局部最小值。然而,乍一看,該系統的龐大規模和復雜性似乎會使這一問題難以解決。
??為了確保全局損失函數Ep(Zp,W)E^p(Z^p,W)Ep(Zp,W)可微,整個系統被構建為一個由可微模塊組成的前饋網絡。每個模塊實現的函數必須是連續的,幾乎在任何與模塊的內部參數有關的地方都是可微的(例如對于字符識別模塊,神經網絡字符識別器的權重),并且與模塊的輸入相關聯。如果是這種情況,一個眾所周知的反向傳播過程的簡單推廣可以用來有效地計算損失函數相對于系統中所有參數的梯度。例如,讓我們考慮一個由多個模塊級聯組成的系統,每個模塊執行函數Xn=Fn(Wn,Xn?1)X_n=F_n(W_n,X_{n-1})Xn?=Fn?(Wn?,Xn?1?),其中XnX_nXn?是模塊的輸出向量,WnW_nWn?是模塊的可調參數向量(W的一個子集),Xn?1X_{n-1}Xn?1?是模塊的輸入向量(也就是前一個模塊的輸出向量)。第一個模塊的輸入X0X_0X0?就是輸入模式ZpZ_pZp?。如果EpE^pEp關于xnx_nxn?的偏導數已知,那么EpE^pEp關于WnW_nWn?和Xn?1X_{n-1}Xn?1?的偏導數可由下面的向后遞歸公式計算:?Ep?Wn=?F?W(Wn,Xn?1)?Ep?Xn\frac{\partial E^p}{\partial W_n}=\frac{\partial F}{\partial W}(W_n,X_{n-1})\frac{\partial E^p}{\partial X_n}?Wn??Ep?=?W?F?(Wn?,Xn?1?)?Xn??Ep? ?Ep?Xn?1=?F?X(Wn,Xn?1)?Ep?Xn\frac{\partial E^p}{\partial X_{n-1}}=\frac{\partial F}{\partial X}(W_n,X_{n-1})\frac{\partial E^p}{\partial X_n}?Xn?1??Ep?=?X?F?(Wn?,Xn?1?)?Xn??Ep?其中?F?W(Wn,Xn?1)\frac{\partial F}{\partial W}(W_n,X_{n-1})?W?F?(Wn?,Xn?1?)是F關于W在點(Wn,Xn?1)(W_n,X_{n-1})(Wn?,Xn?1?)的雅可比矩陣,?F?X(Wn,Xn?1)\frac{\partial F}{\partial X}(W_n,X_{n-1})?X?F?(Wn?,Xn?1?)是F關于X的雅可比矩陣。向量函數的雅可比矩陣是包含所有輸出對所有輸入的偏導數的矩陣。第一個方程計算Ep(W)E^p(W)Ep(W)的梯度的一些項,而第二個方程產生向后遞歸,就像眾所周知的神經網絡反向傳播過程一樣。我們可以通過平均所有訓練模式的梯度來獲得完整的梯度。有趣的是,在許多情況下,不需要顯式計算雅可比矩陣。上面的公式使用了雅可比矩陣與偏導數向量的乘積,通常不需要事先計算雅可比矩陣,直接計算這個乘積更容易。與普通的多層神經網絡類似,除了最后一個模塊外,所有模塊都被稱為隱藏層,因為它們的輸出從外部看不到。與上面描述的簡單模塊級聯相比,偏導數表示法的情況更加復雜,變得有些模糊和不方便。在更一般的情況下,可以使用拉格朗日函數進行完全嚴格的推導。
??傳統的多層神經網絡是上述情況的特例,其中狀態信息Xn用固定大小的向量表示,模塊是矩陣乘法(權值)和分量sigmoid函數(神經元)的交替層。然而,如前所述,復雜識別系統中的狀態信息最好用帶有數字信息的圖形來表示。在這種情況下,每個模塊稱為圖形轉換器,將一個或多個圖形作為輸入,并生成一個圖形作為輸出。這種模塊的網絡稱為圖變換網絡(GTN)。第四部分、第六部分和第八部分提出了GTNs的概念,并說明基于梯度的學習可以用來訓練所有模塊中的所有參數,從而最小化全局損失函數。當狀態信息由基本上離散的對象(如圖形)表示時,可以計算梯度,這似乎是自相矛盾的,但這一困難可以避免,下文將會說明。
2. 用于孤立字符識別的卷積神經網絡
??使用梯度下降法的多層網絡可以從大量的數據中學習復雜的,高緯,非線性的映射,這使得他們成為圖像識別任務的首選。在傳統的模式識別的模型中,手工設計的特征提取器從圖像中提取相關特征清除不相關的信息。分類器可以將這些特征進行分類。全連接的多層網絡可以作為分類器。一個更有意思的模式就是盡量依賴特征提取器本身進行學習。對于字符識別,可以將圖像作為行向量作為輸入輸入到網絡中。雖然這些任務(比如字符識別)可以使用傳統的前向全連接網絡完成。但是還存在一些問題。
??首先,圖像是非常大的,由很多像素組成。具有100個隱藏單元的全連接網絡包含成千上萬的權重,這么多參數提高了系統的消耗和內存占用,因此需要更大的訓練集。但是沒有結構的網絡的主要缺點是,對于圖像或者音頻這些應用來說,不具備平移,局部畸變的不變性。在輸入到固定大小輸入的網絡前,字符圖像的大小必須歸一化,并且放在輸入的中間,不幸的是,沒有哪種預處理能夠達到如此完美:由于手寫體以字符為歸一化單位,會導致每個字符的大小,傾斜,位置存在變化,再加上書寫風格的差異,將會導致特征位置的變化,原則上,足夠大小的全連接網絡可以對這些變化魯棒,但是,要達到這種目的需要更多的在輸入圖像不同位置的神經元,這樣可以檢測到不同的特征,不論他們出現在圖像的什么位置。學習這些權值參數需要大量的訓練樣本去覆蓋可能的樣本空間,在下面描述的卷積神經網絡中,位移不變性可以通過權值共享實現。
??第二,全連接的網絡的另一個缺點就是完全忽略了輸入的拓撲結構。在不影響訓練的結果的情況下,輸入圖像可以是任意(或固定)的順序。然而,圖像(或語音的時頻表示)具有很強的二維局部結構:空間相鄰的變量(或像素點)具有高度相關性。眾所周知,局部相關性對于在在識別空間或時間對象之前提取局部特征來說具有巨大優勢,因為相鄰像素的權值可以分成幾類。CNN通過將隱藏結點的感受野限制在局部來提取特征。
A. 卷積網絡
??卷積網絡通過局部感受野、權值共享和下采樣來實現位移、縮放和形變的不變性。一個典型的用于字符識別的網絡結構如圖2所示,該網絡結構稱為LeNet-5。輸入層輸入大小歸一化并且字符位于中間的字符圖像。每一層的每個神經元接受上一層中一組局部鄰域的神經元的輸入(就是局部感受野)。將多個神經元連接為局部感受野的思想可以追溯到60年代的感知機,與Hubel和Wiesel在貓的視覺系統中發現的局部感受和方向選擇的神經元幾乎是同步的。局部感受野在視覺學習神經模型中使用很多次了,使用局部感受野,神經元能夠提取邊緣,角點等視覺特征(或音頻等其它類似特征),這些特征在下一層中進行結合形成更高層的特征。之前提到,形變和位移會導致顯著特征位置的變化,此外圖像局部的特征檢測器也可以用于整個圖像。基于這個特性,我們可以將局部感受野位于圖像不同位置的一組神經元設置為相同的權值。每一層中所有的神經元形成一個平面,這個平面中所有神經元共享權值,這樣一個平面中所有神經元的輸出稱為特征圖。特征圖中所有單元在圖像的不同位置執行相同的操作。一個完整的卷積層由多個(權重不一樣的)特征圖組成,這樣一個位置就可以提取多種特征。一個具體的示例就是圖2 LeNet-5中的第一層,第一層隱藏層中的所有單元形成6個平面,每個是一個特征圖。一個特征圖中的一個單元對應有25個輸入,這25個輸入連接到輸入層的5x5區域,這個區域就是局部感受野。每個單元有25個輸入,因此有25個可訓練的參數加上一個偏置。由于特征圖中相鄰單元以前一層中連續的單元為中心,所以相鄰單元的局部感受野是重疊的。比如,LeNet-5中,水平方向連續的單元的感受野存在5行4列的重疊,之前提到過,一個特征圖中所有單元共享25個權值和一個偏置,所以他們在輸入圖像的不同位置檢測相同的特征,每一層的其他特征圖使用不同的一組權值和偏置,提取不同類型的局部特征。LeNet-5的例子中,每個輸入位置會通過6個特征圖中相同位置的6個單元提取6個不同的特征。特征圖的一種實現方式就是使用一個帶有感受野的單元掃描整個圖像,并且將每個對應的位置的狀態保存在特征圖中,這種操作等價于卷積,后面加一個偏置和一個激活函數,因此取名為卷積網絡,卷積核就是連接的權重。卷積層的核就是特征圖中所有單元使用的一組連接權重。卷積層的一個重要特性是如果輸入圖像發生了位移,特征圖會發生相應的位移,否則特征圖保持不變。這個特性是CNN對輸入的位移和形變保持魯棒的基礎。
??一旦計算出特征圖,那么精確的位置就變得不重要了,相對于其他特征的大概位置是才是重要的。比如,我們知道左上方區域有一個水平線段的一個端點,右上方有一個角,下方接近垂直的線段有一個端點,我們就知道這個數字是7。這些特征的精確位置不僅對識別沒有幫助,反而不利于識別,因為對于不同的手寫體字符,位置會經常變動。在特征圖中降低特征位置的精度的方式是降低特征圖的空間分辨率,這個可以通過所謂下采樣層達到,下采樣層通過求局部平均降低特征圖的分辨率,并且降低了輸出對平移和形變的敏感度。LeNet-5中的第二個隱藏層就是下采樣層。這個層包含了6個特征圖,與前一層的6個特征圖對應。每個神經元的感受野是2x2,每個神經元計算四個輸入的平均,然后乘以一個可訓練的系數,最后加上一個可訓練的偏置,最后將值傳遞給一個sigmoid函數。相鄰的神經元的感受野沒有重疊。因此,下采樣層的特征圖的行和列是前一層特征圖的一半。可訓練系數和偏置控制著sigmoid函數的非線性程度。如果系數比較小,那么運算近似于線性運算,下采樣相當于模糊圖像。如果系數比較大,根據偏置的大小下采樣可以被看成是有噪聲的"或"運算或"與"運算。相連的卷積層和下采樣層是交替出現的,這種形式形成一個雙金字塔結構:每一層,特征圖的分辨率逐漸減低,而特征圖的數量逐漸增加。圖2中第三個隱藏層的每個神經元的輸入可以來自前一層的多個特征圖。卷積和下采樣結合的靈感來源于Hubel和Wiesel的”簡單”和”復雜”細胞的概念,并在Fukushima的神經認知機中實現,盡管那時沒有像反向傳播的全局監督學習過程。通過逐漸增加的特征來補償逐漸減小的空間分辨率,可以實現輸入的幾何變換的高度不變性。
??由于所有的權值都是通過反向傳播學習的,卷積網絡可以看成是一個特征提取器。權值共享技術對降低參數的數量有重要的影響,同時權值共享技術減小了系統的"容量",從而減小了測試錯誤率和訓練錯誤率之間的差距。圖2中的網絡包含了340,908個連接,但是由于權值共享只包含了60,000個可訓練的自由參數。
??固定尺寸的卷積網絡已經被應用在多個領域,包括手寫體識別,打印字符識別,在線手寫體識別,以及人臉識別。在單個時間維度上權值共享的固定尺寸的卷積網絡被稱為延時神經網絡(TDNNs)。TDNNs已經被用在音色識別(沒有下采樣)、語音單詞識別(有下采樣),在線的孤立手寫字符識別以及簽名驗證。
B. LeNet-5
??這部分介紹使用了卷積神經網絡的LeNet-5結構的更多細節。除了輸入層外,LeNet-5由7個層組成,每一層包括可訓練的參數(權重),輸入是32x32的圖片,這比數據集中最大的字符都大(大部分都在28x28像素的中間20x20像素),這樣做的原因是希望潛在的明顯特征如筆畫端點或角點能夠出現在最高層特征監測器感受野的中心。在LeNet-5中,最后一層卷積層的感受野的中心在32x32的輸入圖像的中心形成了一個20x20的區域,輸入像素值被歸一化了,這樣背景(白色)對應-0.1,前景(黑色)對應1.175.這使得輸入的均值約等于0,方差約等于1,這樣能夠加速學習。
??下文中,卷積層標識為Cx,下采樣層標識為Sx,全連接層標識為Fx,其中x為層的索引。
??C1層是一個卷積層,由6個特征圖構成。特征圖中每個神經元與輸入中5x5的鄰域相連。特征圖的大小為28x28,這樣能防止輸入的連接掉到邊界之外。C1有156個可訓練參數,共122,304個連接。
??S2層是一個下采樣層,有6個14x14的特征圖。特征圖中的每個單元與C1中相對應特征圖的2x2鄰域相連接。S2層每個單元的4個輸入相加,乘以一個可訓練參數,再加上一個可訓練偏置。結果通過sigmoid函數計算。每個單元的2x2感受野并不重疊,因此S2中每個特征圖的行列分別是C1中特征圖的一半。S2層有12個可訓練參數和5880個連接。
??C3是一個有16個特征圖的卷積層。C3層的卷積核大小為5x5,每個特征圖中的每個單元與S2中的多個特征圖相連,表1顯示了C3中每個特征圖與S2中哪些特征圖相連。那為什么不把S2中的每個特征圖連接到每個C3的特征圖呢?原因有兩方面。首先,不完全的連接機制將連接的數量保持在合理的范圍內;更重要的是,它破壞了網絡的對稱性。不完全連接能夠保證C3中不同特征圖提取不同的特征(希望是互補的),因為他們的輸入不同。表1中展示了一個合理的連接方式:C3的前6個特征圖以S2中3個相鄰的特征圖為輸入。接下來6個特征圖以S2中4個相鄰特征圖為輸入,下面的3個特征圖以不相鄰的4個特征圖為輸入。最后一個特征圖以S2中所有特征圖為輸入。C3層有1516個可訓練參數和151600個連接。
??S4層是一個下采樣層,由16個5x5大小的特征圖構成。特征圖中的每個單元與C3中相應特征圖的2x2鄰域相連接,跟C1和S2之間的連接一樣。S4層有32個可訓練參數和2000個連接。
??C5層是一個卷積層,有120個特征圖。每個單元與S4層的全部16個特征圖的5x5鄰域相連。由于S4層特征圖的大小也為5x5,故C5特征圖的大小為1x1:這構成了S4和C5之間的全連接。之所以仍將C5標示為卷積層而非全連接層,是因為如果LeNet-5的輸入變大,而其他的保持不變,那么此時特征圖的維數就會比1x1大。C5層有48120個可訓練連接。
??F6層有84個單元(之所以選這個數字的原因來自于輸出層的設計,下面會有說明),與C5層全相連。有10164個可訓練參數。
??如同經典神經網絡,F6層計算輸入向量和權重向量之間的點積,再加上一個偏置。神經元i的加權和表示為aia_iai?,然后將其傳遞給sigmoid函數產生單元i的一個狀態,表示為xix_ixi?:xi=f(ai)x_i=f(a_i)xi?=f(ai?)壓縮函數是一個雙曲正切函數:f(a)=Atanh(Sa)f(a)=A\ tanh(Sa)f(a)=A?tanh(Sa)其中A表示函數的振幅,S決定了函數在原點處的斜率,這個函數是一個奇函數,水平漸近線為+A,-A。常量A通常取1.7159。選擇該函數的理論原因見附錄A。
??最后,輸出層由歐氏徑向基函數(RBF)單元組成,每類一個單元,每個單元有84個輸入,每個RBF單元yiy_iyi?的輸出按照如下方式計算:yi=∑j(xj?wij)2y_i=\sum_j{(x_j-w_{ij})^2}yi?=j∑?(xj??wij?)2換句話說,每個輸出RBF單元計算輸入向量和參數向量之間的歐式距離,輸入離參數向量越遠,RBF輸出的越大。一個RBF輸出可以被理解為衡量輸入模式和與RBF相關聯類的一個模型的匹配程度的懲罰項。用概率術語來說,RBF輸出可以被理解為F6層配置空間的高斯分布的負的log似然。給定一個輸入模式,損失函數應能使得F6的配置與RBF參數向量足夠接近。這些單元的參數是人工選取并保持固定的(至少初始時候如此)。這些參數向量的成分被設為-1或1。雖然這些參數可以以-1和1等概率的方式任選,或者構成一個糾錯碼,但是被設計成一個相應字符類的7*12大小(即84)的格式化圖片。這種表示對識別單獨的數字不是很有用,但是對識別可打印ASCII集中的字符串很有用。基本原理就是字符是相似的,容易混淆,比如大寫的O,小寫的o和數字0或者小寫的lll與數字1,方括號和大寫的III,會有相似的輸出編碼。如果一個系統與一個能夠糾正此混淆的語言處理器相結合,這個就非常有用了。由于容易混淆的類別的編碼是相似的,有歧義的字符的RBF輸出是相似的,這個語言處理器就能夠選擇出合適的解釋。圖3給出了所有ASCII字符集的輸出編碼。
??使用這種分布編碼而非更常用的“1 of N”編碼(又叫位置編碼或者祖母細胞編碼)用于產生輸出的另一個原因是,當類別比較大的時候,非分布編碼的效果比較差。原因是大多數時間非分布編碼的輸出必須是關閉狀態。這使得用sigmoid單元很難實現。另一個原因是分類器不僅用于識別字母,也用于拒絕非字母。使用分布編碼的RBF更適合該目的,因為與sigmoid不同,他們在輸入空間的較好得限制區域內興奮,而非典型模式更容易落到外邊。
??RBF參數向量起著F6層目標向量的角色。需要指出這些向量的成分是+1或-1,這正好在F6 sigmoid的范圍內,因此可以防止sigmoid函數飽和。實際上,+1和-1是sigmoid函數的最大曲率的點。這使得F6單元運行在最大非線性范圍內。必須避免sigmoid函數的飽和,因為據我們所知這將會導致損失函數較慢的收斂和病態問題。
C. 損失函數
??可用于以上網絡的最簡單的輸出損失函數是最大似然估計準則(MLE),在我們的例子中與最小均方誤差等價(MSE)。這一用于訓練集的準則很簡單:E(W)=1p∑p=1PyDp(Zp,W)E(W)=\frac{1}{p}\sum_{p=1}^{P}{y_{D_p}(Z^p,W)}E(W)=p1?p=1∑P?yDp??(Zp,W)其中yDpy_{D_p}yDp??是第DpD_pDp?個RBF神經元的輸出,與輸入模式ZpZ^pZp的正確的分類對應。盡管這一損失函數可用于大部分情況,但它缺少三個重要性質。首先,如果我們允許RBF的參數進行調整,那么E(W)E(W)E(W)有一個不重要但完全不可接受的解決方案。在這個解中,所有的RBF參數向量都是相等的,并且F6的狀態是恒定的,并且與該參數向量相等。在這種情況下,網絡愉快地忽略了輸入,并且所有的RBF輸出都等于零。如果不允許RBF權值自適應,則不會出現這種崩潰現象。第二個問題是類之間沒有競爭。這種競爭可以通過使用一種更具辨別力的訓練準則,稱為MAP(最大后驗)準則,類似于有時用于訓練HMMs的最大互信息準則。它對應于最大化正確的類DpD_pDp?的后驗概率(或最小化正確類概率的對數),假設輸入圖像可以來自其中一個類或來自“背景垃圾”類標簽。就懲罰而言,這意味著除了像MSE標準那樣降低正確類的懲罰外,這個標準還拉高了錯誤類的懲罰:E(W)=1p∑p=1P(yDp(Zp,W)+log(e?j+∑ie?yi(Zp,W)))E(W)=\frac{1}{p}\sum_{p=1}^{P}{(y_{D_p}(Z^p,W)+log(e^{-j}+\sum_i{e^{-y_i(Z^p,W)}}))}E(W)=p1?p=1∑P?(yDp??(Zp,W)+log(e?j+i∑?e?yi?(Zp,W)))第二個詞的否定詞起著“競爭”的作用。它必然小于(或等于)第一項,因此損失函數為正。常數jjj是正的,可以防止已經非常大的類的懲罰被進一步推高。這個垃圾類別標簽的后驗概率是e?je^{-j}e?j和e?j+∑ie?yi(Zp,W)e^{-j}+\sum_i{e^{-y_i(Z^p,W)}}e?j+∑i?e?yi?(Zp,W)的比值。這種判別準則避免了RBF參數學習時的“崩潰效應”,因為它使RBF中心保持分離。當學習RBF參數時,該判別標準避免了前面提到的“崩潰效應”,因為它使RBF中心彼此分開。在第六部分中,我們為學習對輸入中的多個對象(例如單詞或文檔中的字符)進行分類的系統提供了此標準的概括。
??相對于卷積網絡所有層中所有權重的損失函數的梯度的計算是通過反向傳播完成的。必須對標準算法進行一些修改,以考慮權重分配。一種簡單的實現方法是,首先針對每個連接計算損耗函數的偏導數,就好像該網絡是沒有權重共享的常規多層網絡一樣。然后,將共享同一參數的所有連接的偏導數相加,以形成該參數的導數。
??這樣的大型體系結構可以非常有效地進行訓練,但是這樣做需要使用附錄中描述的一些技術。附錄的A節描述了詳細信息,例如所使用的特定S型曲線和權重初始化。B和C節描述了使用的最小化過程,它是Levenberg-Marquardt過程對角線近似的隨機形式。
3. 結果與其它方法的比較
??盡管識別單個數字只是設計實用識別系統所涉及的眾多問題之一,但它是比較形狀識別方法的出色基準。盡管許多現有方法將手工制作的特征提取器和可訓練的分類器結合在一起,但本研究集中在直接對尺寸規格化圖像進行操作的自適應方法上。
A. 數據庫:修正NIST數據集
??本文描述的用于訓練和測試系統的數據庫是由NIST的特別數據庫3和特別數據庫1構建的,該數據庫包含手寫數字的二進制圖像。NIST最初將SD-3指定為訓練集,將SD-1指定為測試集。但是,SD-3比SD1更干凈,更容易識別。原因可以從以下事實中找到:SD-3是在人口普查局員工中收集的,而SD-1是在高中學生中收集的。從學習實驗中可明顯地得出,要求結果獨立于完整樣本集中訓練集和測試的選擇。因此,有必要通過混合NIST的數據集來構建新數據庫。
??SD-1包含由500位不同作者編寫的58,527位數字圖像。與SD-3不同,在SD-3中,每個寫入器的數據塊順序出現,而SD-1中的數據則被加密。SD-1的寫入者身份可用,我們使用此信息來對寫入者進行解讀。然后,我們將SD-1分為兩部分:由最初的250位作者編寫的字符進入了我們的新培訓集。剩下的250名作者被放置在我們的測試集中。因此,我們有兩組,每組有近30,000個示例。新的訓練集已完成,其中包含來自SD-3的足夠示例(從模式0開始),從而形成了60,000套完整的訓練模式。
同樣,新的測試集以SD-3示例(模式編號為35,000)完成,從而構成了具有60,000個測試模式的全套設備。在此處描述的實驗中,我們僅使用了10,000張測試圖像的子集(SD-1提供了5,000張,SD-3提供了5,000張),但我們使用了60,000張完整的訓練樣本。生成的數據庫稱為ModifiedNIST或MNIST數據集。
??SD-1包含由500位不同作者編寫的58,527位數字圖像。與SD-3不同,在SD-3中,每個寫入器的數據塊順序出現,而SD-1中的數據則被加密。SD-1的寫入者身份可用,我們使用此信息來對寫入者進行解讀。然后,我們將SD-1分為兩部分:由最初的250位作者編寫的字符進入了我們的新培訓集。剩下的250名作者被放置在我們的測試集中。因此,我們有兩組,每組有近30,000個示例。新的訓練集已完成,其中包含來自SD-3的足夠示例(從模式0開始),從而形成了60,000套完整的訓練模式。
同樣,新的測試集以SD-3示例(模式編號為35,000)完成,從而構成了具有60,000個測試模式的全套設備。在此處描述的實驗中,我們僅使用了10,000張測試圖像的子集(SD-1提供了5,000張,SD-3提供了5,000張),但我們使用了60,000張完整的訓練樣本。生成的數據庫稱為Modified NIST或MNIST數據集。
??在保留20x20像素長寬比的同時,將原始黑白(雙水平)圖像的尺寸歸一化為t。作為歸一化算法使用的抗鋸齒(圖像插值)技術的結果,所得圖像包含灰度級。使用了三個版本的數據庫。在第一個版本中,通過計算像素的質心并平移圖像以將該點定位在28x28域的中心,從而使圖像位于28x28圖像的中心。在某些情況下,此28x28視場被擴展為具有背景像素的32x32。此版本的數據庫將被稱為常規數據庫。在數據庫的第二版本中,字符圖像被脫色并裁剪為20x20像素的圖像。去偏斜計算像素的第二慣性矩(將前景像素計數為1,將背景像素計數為0),并通過水平移動線條以使主軸垂直而剪切圖像。此版本的數據庫將稱為Delanted數據庫。在一些早期實驗中使用的數據庫的第三版中,圖像縮小為16x16像素。可從http://www.research.att.com/~yann/ocr/mnist獲得常規數據庫(60,000個訓練示例,10,000個測試示例,大小標準化為20x20,并以質心為中心在28x28領域內)。圖4顯示了從測試集中隨機選擇的示例。
B. 結果
(暫時略)
C. 與其他分類器的比較
(暫時略)
D. 討論
(暫時略)
E. 不變性和抗噪性
??卷積網絡特別適合于識別大小、位置和方向變化很大的形狀,例如現實世界中的字符串識別系統中啟發式分割器通常生成的形狀。
??在上述實驗中,抗噪性和失真不變性的重要性并不明顯。在大多數實際應用中,情況大不相同。在識別之前,通常必須將字符從上下文中切出。分割算法很少是完美的,并且經常在字符圖像中留下多余的標記(噪聲,下劃線,相鄰字符),或者有時將字符切得太多而產生不完整的字符。這些圖像無法可靠地進行尺寸標準化和居中。規范不完整的字符可能非常危險。例如,一個擴大的流浪標記可能看起來像是真正的1。因此,許多系統都采取了在字段或單詞級別對圖像進行歸一化的方法。在我們的情況下,將檢測整個視場的上下輪廓(支票中的金額),并將其用于將圖像規格化為固定高度。雖然這可以確保不會將雜散標記吹散到看起來像字符的圖像中,但是這也會在分割后造成字符大小和垂直位置的很大差異。因此,優選使用對這種變化具有魯棒性的識別器。圖13顯示了LeNet-5正確識別的一些扭曲字符示例。據估計,對于比例變化最大可達2倍的字符,可以進行準確的識別,垂直變化的正負變化大約為字符高度的一半,旋轉角度最大可達正負30度。盡管對復雜形狀的完全不變的識別仍然是一個遙不可及的目標,但是卷積網絡似乎為幾何變形的不變性或魯棒性問題提供了部分答案。
??圖13包括LeNet-5在極端嘈雜條件下的魯棒性示例。處理這些圖像會給許多方法帶來無法克服的分割和特征提取問題,但是LeNet-5似乎能夠從這些混亂的圖像中可靠地提取出顯著特征。此處顯示的網絡使用的訓練集是添加了椒鹽噪聲的MNIST訓練集。每個像素以0.1的概率隨機倒置。有關LeNet-5的更多示例請訪問:http://www.research.att.com/~yann/ocr。
LeNet論文全文翻譯《Gradient-based learning applied to document recognition》(中)
總結
以上是生活随笔為你收集整理的LeNet论文全文翻译《Gradient-based learning applied to document recognition》(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++】VS2010将写好的程序打包成
- 下一篇: opencv的sift算法