Advanced
首頁 Usuage Advanced

 

 

 

在手寫字辨識進階理論的部分,我們將特別介紹:1.紀錄手寫字特徵的bended ellipse features, 2.classification 中的比對方式,與 3.整個network training 的過程.

 

Bended ellipse features (J.13)

還記得我們在Introduction中曾介紹我們紀錄"字"的哪些特徵嗎? 沒錯,就是, 其中,,而代表第j個字根的第l個feature vector,因此,第j個字根的表示式就是; 同理,我們可以將一個手寫字表示成,其中,代表該手寫字的第m個feature vector,因此對於一次輸入一組手寫字而言,其中每一個手寫字皆可以寫成 (i 表示第i個手寫字,而這一組輸入共有N個手寫字), 且表示第i個手寫字中的第n個vector feature.  現在,我們再更深入說明feature vector的概念.

像"口"這樣的字,每一個頂點(seed)都有兩個相連的邊,對於這樣的seed而言,它有 1 個feature vector; 而像"田"這個字中間這一點(seed),總共有四個邊與它相連,因此它有 6 個feature vectors(左與上,左與右,左與下,右與上,右與下,上與下),所以,計算feature vector數目的方式就是 ,其中, a表示與該seed相連的邊的數目,而對於每一個seed而言,我們會把它的feature vectors 寫在一個concept feature中,以方便之後的引用與計算.

 

Compatibility (J.13)

在比對的過程中,我們會將手寫字及標準字與每一個字根做比對. 例如對於第j個字根Rj而言,我們計算它與手寫字H的相符性並令此值為,因此當所有的字根都與該手寫字做完比對後,我們可以得到, 而所有字根與每一個標準字 的相符性也可以寫成,其中表示第j個字根與第i個標準字的相符性,因此為了要達到辨識的目的,我們要讓的值為最小,而達到此極小值的"標準字"就是我們要求的classification後的結果.

接下來我們要深入介紹Introduction中提到過的inter-feature similarity 和 inter-link similarity計算方式. 假設我們今天要比對相對應的feature pairs,則當feature vectors l1, l2間有交點,且feature vectors m1, m2間有交點時(即符合inter-link similarity),則,否則,其值為-µ.(我們設 µ=10). 而D1的定義為 ,即是表示inter-feature similarity.

 

Train the network (J.13)

在我們的network中,我們將每一個收斂的state寫成一個矩陣V, 其中V的每一列(row)表示字根的features, 而V的每一行(column)表示手寫字的features. 並且當Vlm=1時,表示第l個字根的feature與第m個手寫字的feature相符,此時我們會把這對pair加到route中,而為了要確保route的正確性,V必須符合以下的規定:

 
每一列中僅有一個1(因為feature-to-feature不能是一對多或多對一的)
每一行中至多只有一個1
當network收斂時,該route的compatibility加總起來應是最大

我們可以把上述的要求限制寫成一個方程式,我們稱它作energy function:

|此三項滿足第一和二條的限制                   ||此項滿足第三條的限制         |

其中A=500, B=500, C=500/N, D=500N/80, 且N=LjM.

而network的state會隨著下式作改變:

, 且

而對於Vlm的初始值而言,若 (表示threshold),則我們設Vlm=1.

 我們的network採用backpropogation的方式(因為簡單的classification對於中文字而言是不夠的),而network的架構為如下所示:

我們輸入之前求得的(其中1<=i<=N, N表示標準字的個數)來training 此network,也就是說,若我們輸入,則output layer的第i個neuron就會是on state, 且其他的neurons會是off state.  而當這個network收斂時,我們就可以用它作手寫字(pattern)的分類器了.