人類的視覺(jué)系統(tǒng)絕對(duì)算是這個(gè)世界上的一個(gè)奇跡??紤]如下的手寫(xiě)數(shù)字的序列:

大多數(shù)人都能輕易的認(rèn)出這些數(shù)字是504192。其實(shí)輕易的認(rèn)出這些數(shù)字只是個(gè)假象。在我們大腦的每個(gè)半球中都存在一個(gè)初級(jí)視皮層(primary visual corte),也被稱為V1,包含1.4億個(gè)神經(jīng)元,并且這些神經(jīng)元之間存在著數(shù)百億的連接。但是人類的視覺(jué)系統(tǒng)不僅依賴于V1,而是整個(gè)視皮層——V2,V3,V4和V5——來(lái)逐步進(jìn)行復(fù)雜的圖像處理。我們的大腦就像一臺(tái)超級(jí)計(jì)算機(jī),經(jīng)過(guò)億萬(wàn)年的進(jìn)化,已經(jīng)非常適合理解視覺(jué)世界。識(shí)別手寫(xiě)數(shù)字并不簡(jiǎn)單,但是,我們?nèi)祟悩O易理解我們眼睛看到的東西,并且這些幾乎都是在無(wú)意識(shí)的情況下完成的,因此,我們通常并不會(huì)感激我們的視覺(jué)系統(tǒng)解決了多么艱難的問(wèn)題。
如果你嘗試寫(xiě)一個(gè)電腦程序來(lái)識(shí)別數(shù)字,就像上面的那些,視覺(jué)模式識(shí)別的困難將會(huì)非常明顯。看起來(lái)很簡(jiǎn)單,但是親自實(shí)現(xiàn)起來(lái)卻很難。簡(jiǎn)單直觀的識(shí)別形狀的方法——“數(shù)字9上部有一個(gè)圓圈,并且右下部有一豎”——在算法表達(dá)上卻沒(méi)有這么簡(jiǎn)單。當(dāng)你嘗試做一些精確的規(guī)則的時(shí)候,你會(huì)很快的迷失在意外情況、注意事項(xiàng)和特殊情況里,毫無(wú)希望。
神經(jīng)網(wǎng)絡(luò)用不同的方法解決這個(gè)問(wèn)題。這個(gè)方法需要大量的手寫(xiě)數(shù)字,即訓(xùn)練樣本,

然后開(kāi)發(fā)一個(gè)系統(tǒng),這個(gè)系統(tǒng)可以從這些訓(xùn)練樣本中學(xué)習(xí)。換句話說(shuō),神經(jīng)網(wǎng)絡(luò)使用這些訓(xùn)練樣本自動(dòng)的推斷出識(shí)別手寫(xiě)數(shù)字的規(guī)則。此外,通過(guò)增加訓(xùn)練樣本的數(shù)量,神經(jīng)網(wǎng)絡(luò)可以從更多的手寫(xiě)中學(xué)習(xí),以此提高它的正確率。雖然在上面我只展示了100個(gè)訓(xùn)練數(shù)字,但可能我們要想做一個(gè)更好的手寫(xiě)識(shí)別器需要數(shù)千甚至數(shù)百萬(wàn)的訓(xùn)練樣本。
在這一章里,我將寫(xiě)一個(gè)可以學(xué)習(xí)識(shí)別手寫(xiě)數(shù)字的的神經(jīng)網(wǎng)絡(luò)程序,這個(gè)程序僅僅74行,而且沒(méi)有使用其他的神經(jīng)網(wǎng)絡(luò)庫(kù)。但是這個(gè)小程序識(shí)別手寫(xiě)數(shù)字的準(zhǔn)確率可以達(dá)到96%,并且沒(méi)有人工干預(yù)。此外,在接下來(lái)的章節(jié)里,我們將改進(jìn)想法,將正確率提高到99%。事實(shí)上,最好的商業(yè)神經(jīng)網(wǎng)絡(luò)效果非常好,可以被銀行用來(lái)識(shí)別支票,可以被郵局用來(lái)識(shí)別地址。
一般來(lái)說(shuō),我們選擇手寫(xiě)識(shí)別是因?yàn)樗且粋€(gè)關(guān)于神經(jīng)網(wǎng)絡(luò)的非常好的原型問(wèn)題。作為原型,它擊中了甜蜜點(diǎn):具有挑戰(zhàn)性,識(shí)別手寫(xiě)數(shù)字是一個(gè)不小的壯舉,并且不需要極其困難的解決方案和強(qiáng)大的計(jì)算能力;此外,這是一個(gè)學(xué)習(xí)更先進(jìn)技術(shù)的好方法,比如深度學(xué)習(xí),所以在本書(shū)中會(huì)反復(fù)提到手寫(xiě)識(shí)別問(wèn)題。本書(shū)接下來(lái)的部分中,我們會(huì)討論怎樣把這些方法用在計(jì)算機(jī)視覺(jué)的其他問(wèn)題上,還有語(yǔ)音識(shí)別、自然語(yǔ)言處理等其他的領(lǐng)域。
當(dāng)然,如果本章只是寫(xiě)一個(gè)識(shí)別手寫(xiě)數(shù)字的程序的話,本章將會(huì)短很多。但是,沿著這條線,我們將會(huì)學(xué)習(xí)很多神經(jīng)網(wǎng)絡(luò)的關(guān)鍵思想,包括兩個(gè)重要的人工神經(jīng)元(感知機(jī)和sigmoid神經(jīng)元),和神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)學(xué)習(xí)算法,隨機(jī)梯度下降算法。我將始終注重解釋使用某種方法解決問(wèn)題的原因,并建立你的神經(jīng)網(wǎng)絡(luò)直覺(jué)。這要比我剛才講是怎樣的基本方法要長(zhǎng)的多,但為了你更好的理解這是值得的。其中的收益,當(dāng)本章結(jié)束的時(shí)候,我們將以適當(dāng)?shù)姆绞嚼斫馐裁词巧疃葘W(xué)習(xí)和深度學(xué)習(xí)為什么這么重要。