經典文獻閱讀 (一) LeNet-5

2020-08-08 21:46:34


在这里插入图片描述

Abstract

Multilayer Neural Networks trained with the backpropagation algorithm constitute the best example of a successful Gradient-Based Learning technique. Given an appropriate network architecture, Gradient-Based Learning algorithms can be used to synthesize a complex decision surface that can classify high-dimensional patterns such as handwritten characters, with minimal preprocessing. This paper reviews various methods applied to handwritten character recognition and compares them on a standard handwritten digit recognition task. Convolutional Neural Networks, that are specifically designed to deal with the variability of 2D shapes, are shown to outperform all other techniques.

使用反向傳播演算法訓練的多層神經網路是一種成功的基於梯度的學習技術的最好例子。在適當的網路架構下,基於梯度的學習演算法可以用最少的預處理來合成複雜的決策面,從而對高維模式(如手寫字元)進行分類。本文綜述了用於手寫體字元識別的各種方法,並對它們在標準手寫體數位識別任務中的應用進行了比較。折積神經網路,是專門設計來處理變化的二維形狀,顯示優於所有其他技術。

Real-life document recognition systems are composed of multiple modules including field extraction, segmentation, recognition, and language modeling. A new learning paradigm, called Graph Transformer Networks (GTN), allows such multi-module systems to be trained globally using Gradient-Based methods so as to minimize an overall performance measure.
Two systems for on-line handwriting recognition are described. Experiments demonstrate the advantage of global training, and the fexibility of Graph Transformer Networks.

現實生活中的文件識別系統由欄位提取、分割、識別和語言建模等多個模組組成。
一種新的學習範式,稱爲圖變網路(GTN),允許使用基於梯度的方法對這樣的多模組系統進行全域性訓練,從而使整體效能度量最小化。
描述了兩種線上手寫識別系統。實驗證明了全域性訓練的優點和圖變網路的可靠性。

A Graph Transformer Network for reading bank check is also described. It uses Convolutional Neural Network character recognizers combined with global training techniques to provides record accuracy on business and personal checks It is deployed commercially and reads several million checks per day.

介紹了一種用於讀取銀行支票的圖變網路。它使用折積神經網路字元識別器,結合全域性訓練技術,提供商業和個人檢查記錄的準確性。它被用於商業用途,每天讀取數百萬張支票。

I. Introduction

Over the last several years, machine learning techniques, particularly when applied to neural networks, have played an increasingly important role in the design of pattern recognition systems.
In fact, it could be argued that the availability of learning techniques has been a crucial factor in the recent success of pattern recognition applications such as continuous speech recognition and handwriting recognition.

在過去的幾年中,機器學習技術,特別是當應用到神經網路時,在模式識別系統的設計中發揮了越來越重要的作用。
事實上,學習技術的可用性是最近成功的模式識別應用的一個關鍵因素,如連續語音識別和筆跡識別。

The main message of this paper is that better pattern recognition systems can be built by relying more on automatic learning, and less on hand-designed heuristics.
This is made possible by recent progress in machine learning and computer technology.
Using character recognition as a case study, we show that hand-crafted feature extraction can be advantageously replaced by carefully designed learning machines that operate directly on pixel images.
Using document understanding as a case study, we show that the traditional way of building recognition systems by manually integrating individually designed modules can be replaced by a unified and well-principled design paradigm, called Graph Transformer Networks, that allows training all the modules to optimize a global performance criterion

這篇論文傳遞的是,更好的模式識別系統可以通過更多地依賴於自動學習而不是手工設計的啓發式來建立。
這是由於最近機器學習和計算機技術的進步。
以字元識別爲例,我們表明,精心設計的直接對畫素影象操作的學習機可以很好地替代手工特徵提取。
使用文件理解作爲一個案例研究中,我們表明,傳統的識別系統設計是通過手動積分單獨設計模組,可以取而代之的是一個統一、有準則的設計範式,稱爲圖變換網路,使訓練的所有模組能夠優化全域性效能標準。

Since the early days of pattern recognition it has been known that the variability and richness of natural data, be it speech, glyphs, or other types of patterns, make it almost impossible to build an accurate recognition system entirely by hand.
Consequently, most pattern recognition systems are built using a combination of automatic learning techniques and hand-crafted algorithms.
The usual method of recognizing individual patterns consists in dividing the system into two main modules shown in figure 1.The first module, called the feature extractor, transforms the input patterns so that they can be represented by lowdimensional vectors or short strings of symbols that (a) can be easily matched or compared, and (b) are relatively invariant with respect to transformations and distortions of the input patterns that do not change their nature.
The feature extractor contains most of the prior knowledge and is rather specific to the task. It is also the focus of most of the design effort, because it is often entirely hand-crafted.
The classifier, on the other hand, is often general-purpose and trainable. One of the main problems with this approach is that the recognition accuracy is largely determined by the ability of the designer to come up with an ppropriate set of features.
This turns out to be a daunting task which, unfortunately, must be redone for each new problem. A large amount of the pattern recognition literature is devoted to describing and comparing the relative, merits of different featrue sets for particular tasks.

自早期的模式識別以來,人們已經知道,自然數據的可變性和豐富性,無論是語音、象形文字,還是其他型別的模式,幾乎不可能完全靠手工建立一個準確的識別系統。
因此,大多數模式識別系統都是使用自動學習技術和手工製作演算法的結合來建立的。
識別單個模式的通常方法是將系統劃分爲兩個主要模組,如圖1所示。
第一個模組,稱爲特徵提取器,轉換輸入的方式,這樣他們可以用低維向量或短字串的符號(a)可以很容易地匹配或相比,和(b)是相對不變的對輸入模式的轉換和扭曲,不改變自己的本質。
特徵提取器包含了大部分的先驗知識,並且是特定於任務的,它也是大部分設計工作的重點,因爲它通常是完全人工製作的。
另一方面,分類器通常是通用的和可訓練的。這種方法的一個主要問題是識別的準確性很大程度上取決於設計者提出適當的特徵集的能力。
這是一項艱鉅的任務,不幸的是,每個新問題都必須重新執行。大量的模式識別文獻致力於描述和比較不同特徵集對特定任務的相對優點。
图1

Historically, the need for appropriate feature extractors was due to the fact that the learning techniques used by the classifiers were limited to low-dimensional spaces with easily separable classes[1].
A combination of three factors have changed this vision over the last decade.
First, the availability of low-cost machines with fast arithmetic units allows to rely more on brute-force 「numerical」 methods than on algorithmic refinements. Second, the availability of large databases for problems with a large market and wide interest, such as handwriting recognition, has enabled designers to rely more on real data and less on hand-crafted feature extraction to build recognition systems. The third and very important factor is the availability ofpowerful machine learning techniques that can handle high-dimensional inputs and can generate intricate decision functions when fed with these large data sets. It can be argued that the recent progress in the accuracy of speech and handwriting recognition systems can be attributed in large part to an increased reliance on learning techniques and largetraining data sets. As evidence to this fact, a large proportion of modern commercial OCR systems use some form of multi-layer Neural Network trained with back-propagation.

之前,需要合適的特徵提取是由於:分類器使用的學習技術僅限於具有易於分離類的低維空間[1]。
在過去的十年裏,三個因素的結合改變了這一願景。
首先,具有快速運算單元的低成本機器的可用性,使人們更多地依賴於蠻力的「數值」方法,而不是演算法的改進。
其次,大型數據庫的可用性和巨大的市場和廣泛的興趣,如手寫識別,使設計師可以更多地依賴真實的數據,而不是手工特徵提取來建立識別系統。
第三個也是非常重要的因素是強大的機器學習技術的可用性,它可以處理高維的輸入,當輸入這些大數據集時,可以生成複雜的決策函數。
可以說,最近語音和筆跡識別系統在準確性方面的進步很大程度上歸功於對學習技術和大量訓練數據集的日益依賴,依據是大部分現代商業OCR系統都使用某種形式的使用反向傳播訓練的多層神經網路。

In this study, we consider the tasks of handwritten character recognition (Sections I and II) and compare the performance of several learning techniques on a benchmark data set for handwritten digit recognition (Section II1).While more automatic learning is beneficial, no learning technique can succeed without a minimal amount of prior knowledge about the task.
In the case of multi-layer neural networks, a good way to incorporate knowledge is to tailor its architecture to the task. Convolutional Neural Networks [2] introduced in Section II are an example of specialized neural network architectures which incorporate knowledge about the invariances of 2D shapes by using local connection patterns, and by imposing constraints on the weights. A comparison of several methods for isolated handwritten digit recognition is presented in section III. To go from the recognition of individual characters to the recognition of words and sentences in documents, the idea of combining multiple modules trained to reduce the overall error is introduced in Section IV. Recognizing variable-length objects such as handwritten words using multi-module systems is best done if manipulate directed graphs.

在本研究中,我們考慮了手寫體字元識別的任務**(第一節和第二節),並比較了幾種學習技術在手寫體數位識別基準數據集上的效能(第一節)。雖然更多的自動學習是有益的,但是如果沒有關於任務的最小的先驗知識,任何學習技術都不能成功。
對於多層神經網路,整合知識的一個好方法是根據任務定製其架構。
第二節**中介紹的折積神經網路[2]是一個專門的神經網路架構的例子,它通過使用區域性連線模式,並通過對權重施加約束,將二維形狀不變數的知識納入其中。
第三節對幾種獨立手寫數位識別方法進行了比較。
從單個字元的識別到文件中的單詞和句子的識別,第四節介紹了將訓練過的多個模組結合起來以減少整體錯誤的想法。如果要處理有向圖,最好使用多模組系統來識別可變長度的物件(比如手寫的單詞)。

This leads to the concept of trainable Graph Transformer Network (GTN) also introduced in Section IV. Section V describes the now classical method of heuristic over-segmentation for recognizing words or other character strings. Discriminative and non-discriminative gradient-based techniques for training a recognizer at the word level without requiring manual segmentation and labeling are presented in Section VI. Section VII presents the promising Space-Displacement Neural Network approach that eliminates the need for segmentation heuristics by scanning a recognizer at all possible locations on the input. In section VIII, it is shown that trainable Graph Transformer Networks can be formulated as multiple generalized transductions, based on a general graph composition algorithm. The connections between GTNs and Hidden Markov Models, commonly used in speech recognition is also treated. Section IX describes a globally trained GTN system for recognizing handwriting entered in a pen computer. This problem is known as 「on-line」 handwriting recognition, since the machine must produce immediate feedback as the user writes. The core of the system is a Convolutional Neural Network.The results clearly demonstrate the advantages of training a recognizer at the word level, ratherthantrainingit on pre-segmented, hand-labeled, isolated characters. Section X describes a complete GTN-based system for reading handwritten and machine-printed bank checks. The core of the system is the Convolutional Neural Network called LeNet-5 described in Section II. This system is in commercial use in the NCR Corporation line of checkrecognition systems for the banking industry. It is reading millions of checks per month in several banks across the United States.

這就引出了可訓練圖變網路(GTN)的概念,GTN也在第四節中被引入。第五節描述了目前用於識別單詞或其他字串的經典啓發式過分割方法。
歧視和基於歧視性梯度技術培訓一個識別器在單詞層面而不需要手動分割和標籤是在第六節。第七部分給出了承諾Space-Displacement神經網路的方法,不需要細分啓發式掃描識別器在所有可能的輸入位置。
在第VIII節中,我們展示了可訓練的圖變網路可以根據一般的圖構成演算法,被表述爲多重廣義變換。
文中還討論了語音識別中常用的GTNs與隱馬爾科夫模型之間的聯繫。
第IX節描述了一個全球訓練的GTN系統識別手寫輸入鋼筆計算機。
這個問題被稱爲「線上」手寫識別,因爲機器必須在使用者寫字時立即產生反饋。
系統的核心是折積神經網路。
結果清楚地表明,在單詞層面上訓練識別器比在預分割的、手標記的、孤立的字元上訓練識別器更有優勢。
第X節描述了一個完整的基於gtn的系統,用於讀取手寫和機器列印的銀行支票。
系統的核心是第二節中描述的折積神經網路LeNet-5。
該系統在商業上應用於NCR公司的銀行業支票識別系統。
它每月在美國的幾家銀行讀取數百萬張支票。

A Learn from Data

這部分首先說明了一些函數以及變數:
分類函數
在这里插入图片描述

Zp, W

where ZP is the p-th input pattern, and W represents the ollection of adjustable parameters in the system.

Yp

In a pattern recognition setting, the output YP may be interpreted as the recognized class label of patternZP, or as scores or probabilities associated with each class.

誤差函數
在这里插入图片描述
Dp

DP, the 「correct」 or desired output for patn ZP, and the output produced by the system

在这里插入图片描述
是整個數據集的誤差函數的均值

然後說明了一個簡單情況下的策略:尋找使Etrain最小的W。

在这里插入图片描述
測試集和訓練集的差值,由這些值決定:
P是訓練的樣本數,h是計算的有效能力或者機器的複雜程度,α是在0.5到1之間的數,k是常數。
當訓練的樣本數P增多時這個差值就會下降。
當容量h增大時,

II CNN for Isolated Character Recognition

B LeNet-5

在这里插入图片描述

這部分重點介紹LeNet-5.LeNet包含7層(不算輸入層),每一層都包含可訓練的參數(權重)。輸入爲32×32畫素的影象,(這比數據庫中最大的影象還要大,因此足夠大了)

layer C1

在这里插入图片描述

六個feature map的一個單元對應輸入的5×5的元素。feature map的尺寸爲28×28,可以防止輸入的連線脫離邊界。C1包含156個可訓練參數,與輸入之間共有156* 28* 28個連線。

layer S2

在这里插入图片描述
下採樣層(池化層),有6個feature maps,每個14×14,其中每個單元與C1的2×2相連,池化方法是C1的這四個元素相加,然後與一個可訓練的參數相乘再加一個可訓練的偏置,再將結果通過sigmoidal function。這2×2的區域是不重疊的,因此S2的行、列數是C1的一半。S2有4×3個可訓練參數,141430個連線。

layer C3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C3有16個feature maps,每個單元與S2有5×5個連線,
通過這樣的連線,可以將連線的數量控制在合理的範圍內;並且破壞了網路的對稱性,不同特徵圖被迫提取不同的特徵。這個表的連線方案的原理如下:前六個feature map從S2的三個feature map的每個相鄰子集中獲取輸入,接下來的6個通過從每個連續的四個子集中獲取輸入,然後三個從不連續的4個子集中獲取輸入,最後一個從S2的所有子集獲取輸入,因此需要的參數數量爲:
6 *(3 *5 *5+1)+6 * (4 *5 *5+1)+3 * (4 * 5 * 5 +1)+1 * (6 * 5 * 5 + 1 ) = 1516
每個折積核的一個單元都要與S2中的10 * 10個單元連線,則總共需要151600個連線

layer S4

在这里插入图片描述
S4爲第二個下採樣層,與S2演算法類似,由C3與2*2折積核折積而得(no overlapping)。則需要16 * 2 = 32 個可訓練參數,有16 * (2 * 2 + 1 ) * 5 * 5 = 2000個連線

layer C5

在这里插入图片描述
C5是第三個折積層,有120個feature map,還是5 * 5 折積核,因爲S4也是5 * 5,所以每個feature map 是1 * 1,與S4全連線,之所以C5不被稱爲全連線層,是因爲,如果輸入更大,那這裏C5的大小可能不是1 * 1。可訓練的參數爲120 * (16 * 5 * 5 + 1) = 120 * 401 = 48120個連線

layer F6

在这里插入图片描述
有84個units,與C5是全連線層,需要可訓練參數84 * (120+1) = 10164
這個84是因爲,96個ASCII碼,有84個是表示字元的。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在一個傳統的神經網路中,從C1到F6的每一個單元,都是由輸入向量與權重向量相乘然後再加一個偏移量得到的,這個加權和ai再通過一個sigmoid squashing 函數,用其結果表示單元ii的狀態。
squashing函數如文獻中的公式(6)所示,公式中的A爲函數幅度,S決定了原點處的斜率。這個函數是奇函數,有兩條水平漸近線±A,這裏的A被選爲1.7159

output layer

在这里插入图片描述
在这里插入图片描述
最後,輸出層由一個Euclidean Radial Basis Function units(歐式徑向基函數,RBF)組成,每類組成一個單元,每個單元有84個輸入。這個公式在幾何上可以理解爲計算輸入向量與其參數向量的歐式距離。
對於一些較容易混淆的字元,就要依賴語言後處理來提高準確性了
在这里插入图片描述
在这里插入图片描述
這裏沒有看懂,而且估計也沒人會讀到這裏甚至讀吧…

C 損失函數

在这里插入图片描述

最簡單的輸出損失函數是最大似然估計準則(Maximum Likelihood Estimation criterion,MSE)這個準則對於一個訓練集是很簡單的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

yDp是第Dp個RBF單元的輸出,亦即對應於輸入Zp正確分類的輸出。這種損失函數適用於大多數情況,但是缺少三個重要的特性:
1)如果我們使RBF的參數有適應性,E(W)有一個微不足道的,但完全不可接受的解,在這個解中,所有的RBF參數向量都相等,且F6的狀態爲常數,等於該參數向量。這樣所有的RBF輸出都爲0,如果不允許RBF權值適應,則不會發生這種坍縮現象。(我的理解是,如果有適應性,就會產生一個通解,這個解造成RBF的輸出都是0)
2)類與類之間沒有競爭,可以通過一個更有區別的訓練準則來實現,即最大後驗估計(maximum a posteriori,MAP),類似於有時用來訓練HMMs的最大互資訊準則(Maximum Mutual Information,MMH)假設輸入影象來自一個類,或者哪個類都不屬於(即rubbish),那麼它就相當於將正確類的後驗概率最大化(或者最小化正確類概率的對數)在懲罰方面,它既可以像MSE那樣將正確分類pushing down,也可以將錯誤結果pulls up
在这里插入图片描述
第二項爲一個負值,起着MSE沒有的競爭的作用。常數j是正的,用來防止將分類的懲罰進一步推高。垃圾類的後驗概率是e-j與第二項中求和項的比值。這個判別標準防止了前面提到的「坍縮效應」,因爲它使RBF中心彼此分開
在这里插入图片描述
損失函數相對於折積網路所有層中所有權值的梯度是通過反向傳播來計算的。標準演算法必須稍加修改,以考慮到權值的共用。一個簡單的實現方法是首先計算損失函數對每個連線的偏導數,就好像網路是一個傳統的沒有權值共用的多層網路。然後將具有相同參數的所有連線的偏導數相加,形成對該參數的導數。
可以非常有效地培訓這樣一個大型體系結構,但是這樣做需要使用附錄中描述的一些技術。附錄的A部分描述了一些細節,比如使用的特定的sigmoid和權重初始化。B節和C節描述了所使用的最小化過程,它是Levenberg-Marquardt過程對角逼近的隨機版本。