Abstract
摘要
使用BP算法多層神經網絡訓練構成種個成功的基于梯度學習技術的最佳案例。提供一個合适的網絡架構,基于梯度學習算法就能将其用于合成複雜的決策面以便将高維模式(例如手寫字元)區分歸類,并進行最小預處理。本文綜述了各種方法對手寫字元特征識别,并将其與标準手寫數字識别任務進行了比較。用于處理二維圖形的可變性,卷積神經網絡顯著優勝于其他技術。
現實生活中的文檔識别系統是由多個模型組成的,包括字段抽取、分割、識别和語義模組化。一個新的學習模式,稱為圖變壓網絡(GTN),允許像多模型系統這樣的訓練全局化使用基于梯度的方法,以盡量減少總體形式的性能名額。
介紹了兩種線上手寫字元識别系統。實驗證明全局訓練的優越性,以及圖變壓網絡(GTN)的靈活性。
還介紹了一種用于閱讀銀行支票的圖變壓網絡。利用卷積神經網絡的特征識别并結合全局訓練技術,提高商業和個人支付記錄的準确率。它是商業部署,每天讀取百萬級支票。
關鍵詞—— 神經網絡、光學識别符(OCR)、文檔識别、機器學習、基于梯度學習、卷積神經網絡、圖變壓網絡、有窮狀态轉換器
I.Introduction
介紹
在過去的幾年裡,機器學習技術中特别是神經網絡應用,在模式識别系統中扮演着越來越重要的角色。事實上,可以說,學習技術的可用性在近幾年模式識别應用如連續語音識别和手寫字元識别中一直是一個至關重要的方面。
本文主要的觀點是,通過跟多的依賴自動的數學學習來建立更好的模式識别系統,并更少的依賴手動設計和啟發式。這是由于機器學習和計算機技術近幾年的進展而成為可能的。使用字元識别作為案例研究。我們展示了手工制作的特征提取可以被精心設計的直接操作像素圖像的學習機器有效地替代。使用文檔了解作為一個案例研究,我們表明通過手動內建單獨設計的子產品建構識别系統的傳統方法,可以用統一的、原則性好的設計範式代替,稱其為圖轉換器網絡,允許訓練所有的模型以優化全能型标準。
從識别模型的早期開始,人們就知道自然資料的多變性和豐富性,無論是演講、字元或是其它類型的模式,幾乎不能純手工建立一個準确性高的識别系統。是以,大多模式識别系統都是結合使用自動學習技術和手工制作算法建構的。識别單個模式通常的方法由将系統劃分為圖像1中兩個主要的子產品。 第一個子產品稱為特征抽取器,轉化輸入模式,以便它們可以由低維向量或符号的短字元串表示(a)能很容易的比對或比較,表示(b)不改變其性質的輸入模式的轉換和扭曲是相對不變的。特征抽取器包含了大部分先驗知識,而且是特定任務的。它也是大多數設計工作的重點,因為他也是完全通過手工制作的。另一方面,分類器通常是多用途且可訓練的本文的主要問題之一是識别的準确率極大的取決于設計者提出一套合适特征的能力。這是一項艱巨的任務,不幸的是,必須為每個新問題重新做一項工作。大量的模式識别文獻用于描述和比較不同特征集對于不同任務的相對優點。

從曆史上看,由于需要合适的特征提取器這一事實,使用僅限于低維空間的學習技術,易于分離的類。在過去的十年裡,三因素的結合改變了這憧憬。首先,快速算數單元的低成本機器的可用性使得依賴跟多的蠻力法而不是算法細化。其次,用于大型超市和廣泛興趣問題(例如手寫字元識别),大量資料集的可用性使設計者能夠依賴更多的實際資料和更少的手工制作的特征抽取來建立識别系統。第三個非常重要的因素是強大的機器學習技術的可用性可以處理高維輸入,且當輸入這些複雜大資料集時,能夠創造複雜決策函數。在語音和手寫字元識别系統的準确率近年來的進展很大程度上可以歸結為更多的依賴學習技術和大型訓練資料集。作為這一事實的依據,大部分現代化商業OCR系統使用一些多層神經網絡訓練和反向傳播。
本文中,我們考慮到手寫字元識别(第一節和第二節),以及比較幾種學習技術在基準資料集上的性能與手寫字元比較(第三節)。雖然使用自動學習越多越好,但是沒有學習技術離開少量先驗知識能完美完成任務。在一個多層神經網絡情下中,融合知識的一個好方法是可以根據任務調整它的架構。第二段中介紹的卷積神經網絡是一種專門的神經網絡結構的案例,它通過使用局部連接配接模式和對權重施加限制,将2D 形狀的不變性知識結合起來。第三節比較了幾種孤立手寫數字識别方法。從對單個字元的識别到對文檔中的此句的識别,第四節中介紹而多個模型訓練減少整體誤差的設想。當子產品操作着有向圖時,可變長度對象(如手寫字元)使用多模型系統是最好的做法。這引出了可訓練圖變壓器網 (GTN) 的概念。第五節描述如今經典的過分割的方法,用于識别字詞或其他字元串。第六節提出摒棄手工分割和标注的情況下,在字詞水準上用于訓練一個識别器的判别性和非判别性的基于梯度技術。第七部分提出來空間位移神經網絡方法,為消除分割啟發式的需要,在輸入的所有可能位置掃描識别器。第八節展示可訓練的圖變壓網絡(GTN)根據一般的圖合成算法用于轉換多個廣義傳感器。語音識别中常用的圖變壓網絡(GTNs) 和隐馬爾可夫模型之間的連接配接也被處理。第六節描述了一個訓練有素的的圖變壓網絡(GTN)系統,用于鋼筆計算機中輸入的手寫。此問題稱為 “聯機 ” 手寫識别, 因為計算機必須在使用者寫入時立即回報。該系統的核心是一個卷積神經網絡。結果清晰的展示了訓練一個字詞水準的識别器的有點,而不是預先分割的、手工标記的、孤立字元上進行訓練。第十節描述了一個完整的圖轉換網絡系統,用于閱讀手寫和機器列印的銀行支票。系統的核心是卷積神經網絡,也稱為LeNet-5,在第二節描述。該系統在 NCR 公司對銀行業的支票識别系統進行了商業應用。它正在美國的幾家銀行每月閱讀數以百萬計的支票。
A.Learning from Data
有幾種自動機器學習的方法,但是近年來由神經網絡社群推廣的最成功的方法之一可以稱為基于數值或梯度的學習。機器學習計算函數在這裡:
其中Zp是第p個輸入模式,W代表系統中可調參數的集合。在模式識别設定中,輸出Yp可以解釋為模式Zp的識别類别标簽或與每個類别關聯的分數或機率。損失函數在這裡:
衡量Dp(正确的或是模式Zp的期望輸出)和系統産生的輸出之間的誤差。平均損失函數Etrain(W)是一組稱為訓練集{(Z1,D1),……(Zp,Dp)}的标記示例上的誤差Ep的平均值。在最簡單的情況下,學習問題在于找到最小化Etrain(W)的W值。實際上,對系統在訓練集上的性能興趣不大。 更為相關的度量是系統在現場的錯誤率将在實踐中使用。 通過測量與訓練集分離的一組樣本(稱為測試集)的準确性來評估此性能。許多理論和實驗工作1,2,3表明,測試集Etest的預期錯誤率與訓練集Etrain的錯誤率之間的差距随着訓練樣本的數量近似為在這裡
,其中P是訓練樣本的數量,h是有效容量或機器6,7的複雜性的度量,a是0.5到1.0之間的數字,k是常數。當訓練樣本數量增加時,這個差距總是會減小。此外,随着h容量增加,Etrain減少。是以,當h容量增加的時候,在Etrain減少和差距增加中要衡量,以最佳的容量h值實作最低的泛化誤差Etest。大多數學習算法都試圖最小化Etrain以及對差距的一些估計。這種形式的正式版本稱為結構風險最小化6,7,它基于定義能力增強的機器學習序列,該序列對應于參數空間的子集序列,進而每個子集都是先前子集的超集。實際上,結構風險最小化是通過最小化如下公式:
來實作的,其中函數H(W)被稱為正則化函數,beta是一個常數。選擇H(W)使得它對屬于參數空間的高容量子集的參數W取大值。最小化H(W)實際上限制了參數空間可通路子集的容量,進而控制了在最小化訓練誤差和最小化訓練誤差與測試誤差之間的期望之間的權衡。
B.Gradient-Based Learning
基于梯度學習
關于一組參數最小化函數的一般問題是計算機科學中許多問題的根源。基于梯度的學習基于這樣一個事實,即與離散函數相比,最小化合理的平滑連續函數通常要容易得多。通過估計參數值的微小變化對損耗函數的影響,可以使損耗函數最小化。這是通過損耗函數相對于參數的梯度來衡量的。當可以通過解析而不是通過擾動以數值方式計算梯度矢量時,可以設計出一種高效的學習算法。這是衆多基于梯度的具有連續值參數的學習算法的基礎。在本文描述的過程中,參數W的集合是一個實值向量,對于該向量,E(W) 是連續的,并且幾乎在任何地方都可微分。在這種情況下,最簡單的最小化步驟是梯度下降算法,其中W的疊代調整,如下:
在這個最簡單的案例中,在這裡
是一個标量常數,更為複雜的過程是在這裡,或将其替換為對角矩陣,或将其替換為逆Hessian矩陣的估計,如牛頓法或拟牛頓法。也可以使用共轭梯度方法[8]。但是,附錄B顯示,盡管文獻中有許多相反的說法,但是這些二階方法對大型學習機的實用性非常有限。
流行的最小化過程是随機梯度算法,也稱為線上更新。 它包括使用噪聲或平均梯度的近似版本來更新參數向量。在最常見的情況下,W根據單個樣本進行更新:
通過此過程,參數向量在平均軌迹附近波動,但在具有備援樣本(例如語音或字元識别中遇到的樣本)的大型訓練集上,其收斂速度通常比正常梯度下降法和二階方法快得多。其原因在附錄B中進行了解釋。自20世紀60年代以來,就對這種用于學習的算法的性質進行了理論研究,但直到80年代中期,非平凡任務的實際成功才出現。
C.梯度反向傳播
II.Convolutional Neural Networks For Isolated Character Recognition
經過梯度下降訓練的多層網絡能夠從大量例子中學習複雜的、高維的非線性映射,這使得它們很容易成為圖像識别任務的候選對象。在傳統的模式識别模型中,人工設計的特征提取器從輸入資訊中收集相關資訊,并消除不相關的變量。然後,一個可訓練的分類器将得到的特征向量分類,在該方案中,可以使用标準的、全連通的多層網絡作為分類器。一個可能更有趣的方案是盡可能多地依賴于特征提取器本身的學習。在字元識别的情況下,網絡可以提供幾乎原始的輸入(例如尺寸歸一化的圖像)。雖然這可以通過一個普通的連接配接前饋網絡來完成,并成功地完成一些任務,如字元識别等任務中能夠取得不錯的效果,但是仍然有不少問題存在。
首先,輸入的圖像一般都很大,經常有幾百個變量(即像素)。如果采用全連接配接網絡的話,即使第一個隐含層僅有100個神經元,那前兩層之間的權重參數也會有幾萬個。數量如此大的參數會增加系統的容量,但也是以需要更大的訓練集。而且,在某些硬體裝置上實作時由于需要存儲的參數如此多,可能會帶來記憶體不足的問題。但是,用于圖像或語音的非結構化網絡的主要缺陷是,對于轉換或輸入的局部失真沒有内在的不變性。在被提供給神經網絡固定大小的輸入層之前,字元圖像或其他2D或1D信号必須近似地标準化并居于輸入域的中心。不幸的是,沒有這樣完美的預處理:手寫體通常在單詞級别标準化,這可能導緻單個字元的大小、傾斜和位置變化。這一點,再加上書寫風格的多樣性,會導緻輸入對象中不同特征的位置發生變化。原則上,一個足夠大的全連接配接網絡可以學習産生與這種變化不同的産出。然而,學習這樣一項任務可能會導緻在輸入中不同位置具有相似權重模式的多個單元,進而在輸入中不同特征出現的任何地方檢測到這些特征。學習這些權重參數需要數目巨大的訓練樣本來覆寫可能的變化空間。
其次,全連接配接結構忽略了輸入的整體結構。輸入變量可以以任何不影響訓練輸出的順序給定。與變量不同的是,圖像有很強的2D局部結構:像素在空間上是高度相關的。
卷積神經網絡結合了三種結構的思想以確定一定程度的平移、縮放和畸變不變性:局部感受野(local receptive fields)、權值共享(shared weights )或權值複制(weights replication)和時間或空間子采樣(sub-sampling。圖中展示的LeNet-5是一種用于識别字元的典型卷積神經網絡。網絡中輸入平面接收尺寸統一且中心對齊後的字元圖像。
A.Convolutional Networks
B.LeNet-5
本節将詳細介紹實驗中使用的卷積神經網絡LeNet-5的架構。LeNet-5包括7個層,不包括輸入,所有的層都包含可訓練的參數(權重)。輸入是一個32x32像素的圖像。這比資料庫中最大的字元大得多(在28x28字段中居中最多20x20像素)。其原因是,在最進階特征檢測器的接收域的中心可以出現潛在的顯著特征,如筆畫端點或角。在LeNet-5中,最後一個卷積層(C3,見下文)的接受域中心集在32x32輸入的中心形成了一個20x20的區域。輸入像素的值被歸一化,以便背景級别(白色)對應于0.1的值,前景(黑色)對應于1.175。這使得輸入均值大約為0,而方差大約為1,進而加速了的學習[46]。
下面,卷積層标記為Cx,子采樣層标記為Sx,全連通層标記為Fx,其中x為層索引。
層C1是一個包含6張feature map的卷積層。每個feature map中的每個單元都連接配接到輸入中的一個5x5鄰域。特征圖的大小為28x28,這可以防止輸入的連接配接脫離邊界。C1包含156個可訓練參數和122,304個連接配接。
層S2是子采樣層,有6張大小為14x14的feature map。每個feature map中的每個單元都連接配接到對應的feature map中的一個2x2鄰域1。對S2中的一個單元的四個輸入相加,然後乘以一個可訓練系數,再加上一個可訓練偏差。結果通過s形函數傳遞。2x2接受域是不重疊的,是以S2中的feature map的行數和列數是C1中的feature map的一半。層S2有12個可訓練參數和5,880個。
連接配接層C3是一個包含16個feature map的卷積層。每個feature map中的每個單元都連接配接到S2的eature maps子集中幾個相同位置的5x鄰域。表I結合C3的feature map顯示了一組S2特征映射。結合每個C3 feature map。為什麼不把每個S2特征圖和每個C3特征圖連接配接起來呢?原因有兩方面。首先,不完全連接配接方案将連接配接數量控制在合理範圍内。更重要的是,它打破了網絡的對稱性。不同的特征圖被迫提取不同的(希望是互補的)特征,因為它們得到不同的輸入集。表I中的連接配接方案背後的基本原理如下。前六個C3 feature map從S2中的三個feature map的每個相鄰子集中擷取輸入。接下來的6個從每個連續的4的子集中擷取輸入。接下來的三個從一些不連續的4的子集中擷取輸入。最後一個從所有S2特征映射中擷取輸入。層C3有1,516個可訓練參數和151,600個連接配接。
Laver S4是一個子采樣層,有16個大小為5x5的feature map。每個feature map中的每個單元都連接配接到C3中對應的feature map中的一個2x2鄰域,類似于C1和S2。層S4有32個可訓練的參數和2000個連接配接。
C3中前6個特征圖分别從S2中連續的3個特征圖擷取輸入;C3中接下來6個特征圖分别從S2中連續的4個特征圖擷取輸入;接下來3個特征圖分别從S2中4個不連續的特征圖擷取輸入;最後一個特征圖從S2中的所有特征圖擷取輸入。
C3層有1,516(60*25+16)個訓練參數和151,600個連接配接。同樣沒有 padding。在權重配置設定上值得注意的是:C3層中某個特征圖從S2中部分的特征圖擷取輸入時,它們共享偏置,但是每個卷積核的權重不同。比如,C3中第一個feature map從S2中前三個feature map擷取輸入,在計算時一共有三個卷積核(5*5*3=75個可訓練參數)和一個共享的偏置(1個可訓練參數),是以一共76個trainable parameters.
層C5是一個包含120個feature map的卷積層。在S4的所有16個feature map上,每個單元都連接配接到一個5x5的鄰域。在這裡,因為S4的大小是 5x5,是以C5的feature maps的大小是1x1:這相當于S4和C5之間的完整連接配接。C5被标記為卷積層,而不是全連接配接層,因為如果在其他條件不變的情況下,LeNet-5的輸入變大,feature map的維數将大于1x1。動态增加卷積網絡大小的過程在第七節中進行了描述。C5層有48,120個可訓練的連接配接。
層F6,包含84個單元(這個數字的原因來自于輸出層的設計,解釋如下),并完全連接配接到C5。它有10164個可訓練參數。
在經典的神經網絡中,直到F6層中的神經元計算它們的輸入向量和權重向量之間的點積,并在權重向量上加上一個bias偏置。這個權重和,記為ai;對于機關i,則通過一個sigmoid壓縮函數得到機關i的狀态,用xi表示。
sigmoid壓縮函數是一個縮放的雙曲正切:
其中A是函數的振幅,S決定了它在原點處的斜率。函數f是奇函數,在+A和A處有水準漸近線。常數A被選為1.7159。選擇壓縮函數的基本原理在附錄a中給出。最後,輸出層由歐氏徑向基函數單元(RBF)組成,每類一個,每個輸入84個。計算每個RBF單元yi的輸出
換句話說,每個輸出RBF單元計算其輸入向量與參數向量之間的歐式距離。輸入距離參數向量越遠,RBF輸出越大。特定RBF的輸出可以解釋為一個懲罰項,測量輸入模式和與RBF相關的類模型之間的契合度。在機率方面,RBF輸出可以解釋為在F6層構型空間的高斯分布的非歸一化負對數似然。給定一個輸入模式,設計損失函數使F6的構型盡可能接近該模式期望類對應的RBF的參數向量。這些單元的參數向量是手工選擇的,并保持固定(至少最初是這樣)。這些參數向量的分量設為1或+1。雖然他們可能是随機機率為1和+ 1,甚至選擇形成一個錯誤校正碼[47]提出的,他們不是設計相應的字元類代表一個程式化的形象畫在7 x12位圖(是以84号)。這樣的表現并不是特别有用的識别孤立的數字,但它是非常有用的字元識别的字元串從完整的列印ASCII。基本原理是文字都是相似的,是以可能被混淆的,比如大寫字母O,小寫字母O,零,或小寫l,數字1,方括号,大寫的I,會有類似的輸出代碼。具有類似的輸出代碼。如果該系統與語言後處理器結合使用,可以糾正這種混淆,這就特别有用。因為易混淆類的代碼是相似的,是以對于不明确的字元對應的RBFs的輸出也将是相似的,并且後處理器将能夠選擇适當的間隔。圖3給出了完整ASCII集的輸出代碼.
使用這種分布式代碼而不是更常見的“1 of N”代碼(也稱為位置代碼或祖母單元代碼)作為輸出的另一個原因是,當類的數量超過幾十個時,非分布式代碼的行為往往很糟糕。原因是一個非分布式代碼的輸出單元在大部分時間都必須是。這是相當困難的實作與sigmoid機關。另一個原因是,分類器通常不僅用于識别字元,而且還用于拒絕非字元。具有分布式編碼的RBFs更适合于這一目的,因為與乙狀結腸不同,它們是在其内部的一個非常限定的區域内被激活的放置非典型圖案更有可能掉落的空間。RBFs的參數向量作為laver F6的目标向量。值得指出的是,這些向量的分量為+1 or-1,完全在F6的sigmoid範圍内,是以可以防止這些sigmoid被飽和。事實上+1和1是sigmoid函數上曲率最大的點。這迫使F6單元在他們的最大非線性範圍内操作。飽和的sigomid必須避免,因為它是已知的導緻緩慢收斂和不良條件的損失函數。
c .Loss Function
可用于上述網絡的最簡單的輸出損失函數是最大似然估計準則(MLE),在我們的例子中,它等價于最小均方誤差(MSE)。對于一組訓練樣本的準則為:
式中yDp就是第Dp-th RBF單元的輸出,即對應于輸入模式ZP的正确類的RBF單元。雖然這種成本函數适用于大多數情況,但它缺少三個重要的特性。首先,如果我們允許RBF的參數适應,E(W)有一個微不足道的,但完全不可接受的解決方案。在該解中,所有RBF參數向量均相等,且F6的狀态為常數,等于該參數向量。在這種情況下,網絡很高興地忽略了輸入,所有的RBF輸出都等于零。如果不允許RBF權值适應,這種塌縮現象就不會發生。第二個問題是班級之間沒有競争。這樣的競争可以通過使用一個更有差別的訓練準則來獲得,稱為MAP (maximum a posteriori)準則,類似于有時用于訓練HMMs[48],[49],[50]的最大互資訊準則。假設輸入圖像可以來自其中一個類,也可以來自背景中的“垃圾”類标簽,那麼它就相當于最大化正确類Dp的後驗機率(或者最小化正确類機率的對數)。就懲罰函數而言,這意味着除了像MSE标準那樣将正确類的懲罰向下推外,該标準還會拉出不正确類的懲罰:
負的第二項起“競争”作用,它必然小于(或等于)第一項,是以這個損失函數為正。常數j為正,可以防止已經非常大的類的懲罰被進一步推高。垃圾類标簽的後驗機率為
的比值(ZP,W),該判别準則使RBF中心遠離,避免了學習RBF參數時出現前面提到的“塌縮效應”。在第六節中,我們對學習對輸入中的多個對象(例如,單詞或文檔中的字元)進行分類的系統給出了這一标準的概括。對于卷積網絡中所有層的所有權重,損失函數的梯度計算是通過反向傳播完成的。标準算法必須稍加修改,以考慮到權值的共享。一個簡單的實作方法是首先計算損失函數對每個連接配接的偏導數,就好像網絡是一個傳統的沒有權值共享的多層網絡。然後将具有相同參數的所有連接配接的偏導數相加,形成對的偏導數準網。
損失函數相對于卷積網絡所有層中所有權值的梯度是通過反向傳播來計算的。标準算法必須稍加修改,以考慮到權值的共享。一個簡單的實作方法是首先計算損失函數對每個連接配接的偏導數,就好像網絡是一個傳統的沒有權值共享的多層網絡。所有這些聯系的偏導數都是一樣的-添加參數,形成對該參數的導數。
這樣一個大型體系結構被訓練的有效,但是這樣做需要使用附錄中描述的一些技術。附錄的A部分描述了一些細節,比如使用的特定的sigmoid和權重初始化。B節和C節描述了所使用的最小化過程,它是Levenberg-Marquardt過程對角逼近的随機版本。
Results and comparison with other methods
雖然識别個體數字隻是設計一個實際的識别系統所涉及的衆多問題之一,但它是比較形狀識别方法的一個很好的基準。雖然現有的許多方法結合了手工特征提取器和可訓練分類器,但本研究集中于直接對尺寸歸一化圖像進行操作的自适應方法。
A.database:
未設定修改後的NIS用于訓練和測試本文系統的資料庫是由NIST的專用資料庫3和包含手寫數字二值圖像的專用資料庫1組成的。NIST最初指定D-3作為訓練集,SD-1作為測試集,但是SD-3比SD-1更清晰,更容易識别.其原因可以從SD-3在人口普查局從業人員中收集,而SD-1在高中生中收集這一事實中找到。從學習實驗中得出合理的結論,要求結果獨立于訓練集的選擇和整個樣本集的測試。是以,有必要通過混合NIST的資料集來建立一個新的資料庫。
SD-1包含58,527位數字圖像,由500個不同的寫入器寫入。與SD-3中每個寫入器的資料塊依次出現不同,SD-1中的資料被打亂。SD-1的寫入器辨別是可用的,我們使用這些資訊來解讀寫入器。然後我們将SD-1分成兩部分:前250個寫手寫的字元進入我們新的訓練集,其餘250個寫手放入我們的測試集,這樣我們就有了兩個集,每個集有近3萬個例子。新的訓練集由足夠的SD-3樣本完成,從模式#0開始,得到60,000個訓練模式的完整集合。同樣,新的測試集由SD-3樣本完成,從模式#35,000開始,得到60,000個測試模式的完整集合。在這裡描述的實驗中,我們隻使用了10,000張測試圖像的子集(5,000張來自SD-1, 5,000張來自SD-3),但是我們使用了全部60,000個訓練樣本。生成的資料庫稱為ModifiedIST 或 MNIST 資料集。
原始的黑白(雙層)圖像尺寸被歸一化,以适應一個20x20像素的盒子,同時保持它們的高寬比。由于歸一化算法使用了抗混疊(圖像插值)技術,所得到的圖像含有灰階。使用了資料庫的三個版本。在第一個版本中,通過計算像素的質心,使圖像以28x28的圖像為中心,并平移圖像,将該點定位于28x28場的中心。在某些情況下,這個28x28的字段被擴充為32x32的背景像素。這個版本的資料庫将被稱為正常資料庫。在資料庫的第二個版本中,字元圖像被分離并裁剪為20x20像素的圖像。deslanting計算像素的慣性矩(将前景像素計算為1,将背景像素計算為0),并通過水準移動線條來剪切圖像,使主軸垂直。此版本的資料庫将稱為deslanted資料庫。在資料庫的第三個版本中。在早期的一些實驗中,圖像被縮小到16x16像素。正常資料庫(60000個訓練示例、10,000個測試示例大小-标準化為20x20。在http://www.research.att.com/yann/ocr/mnist上可以找到,圖4顯示了從測試集中随機抽取的示例。
b.Results
在正常MNIST資料庫上訓練了LeNet-5的幾個版本。通過整個訓練資料對每個會話執行20次疊代。全局學習率n(見附錄C中的公式21的定義)的值按照以下的時間表遞減:前兩輪為0.0005,後三輪為0.0002,接下來的3個是0.0001,接下來的4個是0.00005以後都是0.00001。在每次疊代之前,對500個樣本重新評估diagona Hessian近似值,如附錄C所述,并在整個疊代過程中保持不變。參數u被設定為0.02。在第一次測試中得到的有效學習率在參數集上的變化約為7 x 10-5和0.016。測試錯誤率在通過訓練集10次左右後穩定在0.95%。通過19次後,訓練集的錯誤率達到0.35%。許多作者報告說,在訓練神經網絡或其他自适應算法完成各種任務時,觀察到過度訓練的普遍現象。當過度訓練發生時,訓練誤差會随着時間的推移而不斷減小,但是測試誤差會經曆一個最小值,并在一定的疊代次數後開始增加。雖然這種現象很常見,但在圖5所示的學習曲線中并沒有觀察到這種現象。一個可能的原因是學習率保持相對較高。這樣做的結果是,權值永遠不會落在局部最小值上,而是一直随機地振蕩。由于這些波動,在更廣的最小值下,平均代價會更低。是以,随機梯度與正則化項具有相似的效果,它有利于更廣的最小值。廣義最小值對應于參數分布熵大的解,有利于提高泛化誤差。
訓練集大小的影響程度通過使用15000、30000和60000個樣本對網絡進行訓練來衡量。由此産生的訓練錯誤和測試錯誤如圖6所示。很明顯,即使使用像LeNet-5這樣的專門架構,更多的訓練資料也會提高精确度。
為了驗證這一假設,我們通過随機扭曲原始訓練圖像來人為地生成更多的訓練示例。增加的訓練集由60000個原始模式加上540000個執行個體組成畸變模式與随機選擇的畸變參數。扭曲是以下平面仿射變換的組合:水準和垂直平移、縮放、壓縮(同時的水準壓縮和垂直伸長,或反向)和水準剪切。圖7顯示了用于訓練的扭曲模式的示例。當使用失真資料進行訓練時,測試錯誤率從沒有變形時的0.95%下降到0.8%。使用的訓練參數與沒有變形時相同。訓練的總時間不變(20次,每次60,000個模式)。值得注意的是,在這20次傳遞過程中,網絡隻有效地看到單個樣本兩次。
圖8顯示了所有82個分類錯誤的測試示例。其中一些例子确實模棱兩可,但也有一些是這樣完全可以被人類識别出來,盡管它們是用一種不被代表的風格寫的。這表明,更多的訓練資料有望進一步改善。
C.Comparison with other classifiers
為了便于比較,在同一個資料庫上對其他多種可訓練分類器進行了訓練和測試。這些結果的早期子集在[51]中提出。各種方法的測試集上的錯誤率如圖9所示。