1.4 一個分類手寫數(shù)字的簡單神經(jīng)網(wǎng)絡(七)

定義完了神經(jīng)網(wǎng)絡,讓我們回到手寫識別。我們可以將手寫識別這個問題分解成兩個子問題。第一,我們需要將一張包含很多數(shù)字的圖片分解成只包含一個數(shù)字的單獨圖片序列。例如,我們要把這幅圖片


分解成6個單獨的圖片,

我們?nèi)祟惡苋菀拙湍芴幚磉@種分割問題,但是對計算機程序來說,正確的分割照片是一個挑戰(zhàn)。一旦照片被分割完成,程序接下來需要分類每個單獨的數(shù)字。所以,例如,我們要程序識別上面的第一個數(shù)字,

是5。

我們將主要寫一個解決第二個問題的程序,也就是識別單獨數(shù)字。我們這樣做是因為分割問題并不是很難解決,一旦你找到了一個分類單獨數(shù)字的好方法,將會有很多方法解決分割問題。一種方法就是嘗試不同的分割方法,使用數(shù)字分類器為每個分割打分。如果數(shù)字分類器對每一個分段的置信度都很高,那么這個分割就會得到很高的分數(shù)。相反,數(shù)字分類器在一個或多個分段上出現(xiàn)問題,那么這個分割方法就會得到很低的分數(shù)。這個方法的關鍵是如果分類器出現(xiàn)了問題,那么這有可能是因為分割方法不對造成的。這個方法或其他的變種可以很好的解決圖片分割問題。與其關心分割問題還不如把精力集中在開發(fā)一個神經(jīng)網(wǎng)路來解決更有趣和更難的問題,即手寫數(shù)字識別。

為了解決這個問題,我們將使用一個三層網(wǎng)絡:



輸入層是對輸入像素編碼的神經(jīng)元。接下來的部分,我們將使用28x28像素的掃描手寫數(shù)字圖片組成訓練數(shù)據(jù),因此輸入層包含784=28x28個神經(jīng)元。為了簡便,上圖中我省略了784個神經(jīng)元中的大部分。輸入的像素點是其灰度值,0.0代表白色,1.0代表黑色,中間值表示不同程度的灰度值

第二層是隱層,我們用n表示這一層中的神經(jīng)元的個數(shù),我們將嘗試不同大小的n。舉例的圖中是一個很小的隱層,僅僅包含n=15個神經(jīng)元。

這個網(wǎng)絡的輸出層包含了10個神經(jīng)元。如果第一個神經(jīng)元激活了,例如輸出1,則表明網(wǎng)絡認為數(shù)字是0,如果第二個神經(jīng)元激活了,則表明神經(jīng)元認為數(shù)字是1,等等。說的更明確一點,我們?yōu)槊總€神經(jīng)元從0到9進行編號,然后觀察哪個神經(jīng)元有最高的活動值。如果這個神經(jīng)元是6號神經(jīng)元,那么可以得到神經(jīng)網(wǎng)絡的輸出是6。其他的也是如此。

你也許對為什么用10個輸出神經(jīng)元感到奇怪。畢竟這個神經(jīng)網(wǎng)絡的目標是哪一個數(shù)字和我們輸入的圖片一致??雌饋砀匀坏淖龇ㄊ鞘褂?個輸出神經(jīng)元,將每一個神經(jīng)元二值化,取決于神經(jīng)元的輸入是否接近0或1。四個神經(jīng)元足夠編碼答案的解,因為2^4 = 16遠遠超過了10種可能輸入的數(shù)字。為什么我們要用10個神經(jīng)元代替呢?這難道不是低效的嗎?終極原因源于經(jīng)驗:我們可以同時試驗設計兩個神經(jīng)網(wǎng)絡,然而事實證明,在這個特殊的問題上,10個神經(jīng)元的神經(jīng)網(wǎng)絡要比4個輸出神經(jīng)元的神經(jīng)網(wǎng)絡要好。令我們好奇的是為什么使用10個輸出神經(jīng)元更有效呢?有什么啟發(fā)式的思考可以提前告訴我們?yōu)槭裁词褂?0個輸出神經(jīng)元替代4個輸出神經(jīng)元的編碼嗎?

為了理解我們?yōu)槭裁催@樣做,需要從根本原理上思考神經(jīng)網(wǎng)絡是怎樣做的。思考第一種我們使用10個出書神經(jīng)元的情況,讓我們集中在第一個輸出神經(jīng)元上,它盡力決定輸入數(shù)字是不是0。他通過權衡隱層的輸入來做出決策。那隱層神經(jīng)元做了什么呢?假設隱層的第一個神經(jīng)元只是為了檢查是否存在以下圖像:


它可以通過增加和它重疊部分的權重,而減少其他輸入的權重。同樣的,我們假設隱層第2/3/4個神經(jīng)元是為了識別以下的圖片:

也許你已經(jīng)猜到了,這四個圖片組合成了我們之前看到的數(shù)字0圖片:

因此,如果這四個神經(jīng)元被激活了,我們可以認為數(shù)字是0。當然,這不是唯一的能得出這個圖片是0的方法,我們還有很多其他合理的方法(比如,對上述圖像做些轉(zhuǎn)換,或者輕微的變形)。但是在這里,這種方法可以得出輸入是0。

假設神經(jīng)網(wǎng)絡以這種方式工作,我們可以給出一個貌似合理的解釋,為什么10個輸出神經(jīng)元工作的要比4個輸出神經(jīng)元要好。如果我們有4個輸出,那么第一個神經(jīng)元就會盡力判斷最高有效位是什么,把數(shù)字的最高有效位和數(shù)字的形狀聯(lián)系取來并不是一個簡單的問題。很難想想有什么恰當?shù)臍v史原因,數(shù)字的形狀和最高有效位有什么緊密聯(lián)系。

上面所說的僅僅是給出一個啟示。沒有什么能夠表明神經(jīng)網(wǎng)絡像我說的那樣工作,即隱層判斷數(shù)字的形狀。也許一個聰明的學習算法將會找到一些合適的權重讓我們僅僅用4個輸出神經(jīng)元就行。但是,這個啟發(fā)式的思考通常很有效,它會節(jié)省你大量的時間去設計一個好的神經(jīng)網(wǎng)絡架構。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 善用理財預算,切忌用生活必需資金為資本 切忌用你的生活資金做為交易的資本,資金壓力過大會誤導你的投資策略,徒增交易...
    通金之路閱讀 181評論 0 0
  • 近日,一位名叫黃思思,自稱是LOL電競選手、主播、歌手、演員的妹紙在微博上火了。起因是微博上有四段她被打的視頻被曝...
    f伐木累閱讀 1,734評論 0 0
  • 月亮是一只籠子 暗藍的夜流恣意闖蕩 塵土從高空飛落下來 飄散在我灰色的窗前 我的窗門密閉 鎖著一塊四方的混凝土 蝴...
    日臻閱讀 201評論 0 0
  • 二十出頭,剛剛離開學校的懷抱,擁入社會的浪潮。迷茫又不知所措,感覺自己卑微地存活在這個世界。 孤獨又彷徨,想要熱情...
    木落夕閱讀 863評論 9 5

友情鏈接更多精彩內(nèi)容