引子
Minsky說(shuō)過(guò)神經(jīng)網(wǎng)絡(luò)無(wú)法解決異或問(wèn)題侄非。60年代關(guān)于神經(jīng)網(wǎng)絡(luò)的研究還取得了一定的進(jìn)展,但是都沒(méi)有取得重大的突破箫老。70年代封字,神經(jīng)網(wǎng)絡(luò)的研究進(jìn)入了蕭條期,人工智能里產(chǎn)生了許多不同的方向耍鬓,神經(jīng)網(wǎng)絡(luò)阔籽,好像被人們所忘記。
直到1986年牲蜀,David Rumelhar和Geoffery Hinton等人提出了反向傳播(Backpropagation笆制,BP)算法,解決了兩層神經(jīng)網(wǎng)絡(luò)所需要的復(fù)雜計(jì)算量問(wèn)題涣达,克服了Minsky說(shuō)過(guò)神經(jīng)網(wǎng)絡(luò)無(wú)法解決異或問(wèn)題在辆,該算法是對(duì)神經(jīng)網(wǎng)絡(luò)受到批判的一個(gè)有力的回答。
其中Geoffery Hinton是神經(jīng)網(wǎng)絡(luò)的發(fā)展中一個(gè)重要的人物度苔,對(duì)神經(jīng)網(wǎng)絡(luò)堅(jiān)持匆篓,使得他獲得了很高的成就,2013年加入google寇窑,成為google神經(jīng)網(wǎng)絡(luò)的領(lǐng)軍人物鸦概。
Geoffery Hinton
BP神經(jīng)網(wǎng)絡(luò)
從感如器的學(xué)習(xí)算法可知,學(xué)習(xí)的目的是在于修改網(wǎng)絡(luò)中的權(quán)系數(shù)疗认,使到網(wǎng)絡(luò)對(duì)于所輸入的模式樣本能正確分類完残。當(dāng)學(xué)習(xí)結(jié)束時(shí)伏钠,也即神經(jīng)網(wǎng)絡(luò)能正確分類時(shí),顯然 權(quán)系數(shù)就反映了同類輸人模式樣本的共同特征谨设。換句話講熟掂,權(quán)系數(shù)就是存儲(chǔ)了的輸人模式。由于權(quán)系數(shù)是分散存在的扎拣,故神經(jīng)網(wǎng)絡(luò)自然而然就有分布存儲(chǔ)的特點(diǎn)赴肚。
能夠求出網(wǎng)絡(luò)中的權(quán)系數(shù),是神經(jīng)網(wǎng)絡(luò)的關(guān)鍵二蓝。在bp神經(jīng)網(wǎng)絡(luò)中誉券,采用的是誤差回傳,從結(jié)果的誤差刊愚,回傳到中間層踊跟,利用梯度算法,計(jì)算權(quán)重鸥诽,為了能實(shí)現(xiàn)梯度算法商玫,故把神經(jīng)元的激發(fā)函數(shù)改為可微分函數(shù),例如Sigmoid函數(shù):
最后又按負(fù)梯度方向修改權(quán)系數(shù)W的修改規(guī)則:
mu 是權(quán)重變化率牡借,它視情況不同而取值不同拳昌,一般取0-1之間的小數(shù)。很明顯钠龙,梯度法比原來(lái)感知器的學(xué)習(xí)算法進(jìn)了一大步炬藤。其關(guān)鍵在于兩點(diǎn):
- 神經(jīng)元的傳遞函數(shù)采用連續(xù)的s型函數(shù),而不是階躍函數(shù)碴里;
- 對(duì)權(quán)系數(shù)的修改采用誤差的梯度去控制沈矿,而不是采用誤差去控制。故而有更好的動(dòng)態(tài)特能并闲,即加強(qiáng)了收斂進(jìn)程细睡。
bp神經(jīng)網(wǎng)絡(luò)算法的推導(dǎo)過(guò)程有點(diǎn)復(fù)雜,最后的結(jié)果為:
算法的執(zhí)行的步驟如下:
- 對(duì)權(quán)系數(shù)Wij置初值帝火。對(duì)各層的權(quán)系數(shù)置一個(gè)較小的非零隨機(jī)數(shù)溜徙。
- 輸入一個(gè)樣本,以及對(duì)應(yīng)期望輸出犀填。
- 計(jì)算各層的輸出蠢壹,對(duì)于第k層第i個(gè)神經(jīng)元的輸出,有:
4.求各層的學(xué)習(xí)誤差,對(duì)于輸出層有k=m九巡,有
對(duì)于其他各層图贸,有
5.修正權(quán)系數(shù)Wij和閥值θ
6.當(dāng)求出了各層各個(gè)權(quán)系數(shù)之后,可按給定品質(zhì)指標(biāo)判別是否滿足要求。如果滿足要求疏日,則算法結(jié)束偿洁;如果未滿足要求,則返回(3)執(zhí)行沟优。
這個(gè)學(xué)習(xí)過(guò)程涕滋,對(duì)于任一給定的樣本和期望輸出都要執(zhí)行,直到滿足所有輸入輸出要求為止挠阁。
許多問(wèn)題
歷史總是驚人的相似宾肺,神經(jīng)網(wǎng)絡(luò)的學(xué)者們?cè)俅蔚巧狭恕都~約時(shí)報(bào)》的專訪。人們認(rèn)為神經(jīng)網(wǎng)絡(luò)可以解決許多問(wèn)題侵俗。就連娛樂(lè)界都開(kāi)始受到了影響锨用,當(dāng)年的《終結(jié)者》電影中的阿諾都趕時(shí)髦地說(shuō)一句:我的CPU是一個(gè)神經(jīng)網(wǎng)絡(luò)處理器,一個(gè)會(huì)學(xué)習(xí)的計(jì)算機(jī)隘谣。
但是神經(jīng)網(wǎng)絡(luò)仍然存在若干的問(wèn)題:盡管使用了BP算法增拥,一次神經(jīng)網(wǎng)絡(luò)的訓(xùn)練仍然耗時(shí)太久,而且困擾訓(xùn)練優(yōu)化的一個(gè)問(wèn)題就是局部最優(yōu)解問(wèn)題洪橘,這使得神經(jīng)網(wǎng)絡(luò)的優(yōu)化較為困難跪者。同時(shí)棵帽,隱藏層的節(jié)點(diǎn)數(shù)需要調(diào)參熄求,這使得使用不太方便,工程和研究人員對(duì)此多有抱怨逗概。
又一次寒冬
Yann Lecun 1960年 出生于巴黎弟晚。1987年 在法國(guó)獲得博士學(xué)位后,他曾追隨 Hinton 教授到多倫多大學(xué)做了一年博士后的工作逾苫,隨后搬到新澤西州的貝爾實(shí)驗(yàn)室繼續(xù)研究工作卿城。
在貝爾實(shí)驗(yàn)室,Yann Lecun 1989年 發(fā)表了論文铅搓, “反向傳播算法在手寫郵政編碼上的應(yīng)用”瑟押。他用美國(guó)郵政系統(tǒng)提供的近萬(wàn)個(gè)手寫數(shù)字的樣本來(lái)培訓(xùn)神經(jīng)網(wǎng)絡(luò)系統(tǒng),培訓(xùn)好的系統(tǒng)在獨(dú)立的測(cè)試樣本中星掰, 錯(cuò)誤率只有 5%多望。
Yann Lecun 進(jìn)一步運(yùn)用一種叫做“卷積神經(jīng)網(wǎng)絡(luò)” (Convoluted Neural Networks) 的技術(shù),開(kāi)發(fā)出商業(yè)軟件用于讀取銀行支票上的手寫數(shù)字氢烘,這個(gè)支票識(shí)別系統(tǒng)在九十年代末占據(jù)了美國(guó)接近 20%的市場(chǎng)怀偷。
至今在 Yann Lecun的網(wǎng)站里還能看到Convoluted Neural Networks的算法,簡(jiǎn)稱為L(zhǎng)eNet 5播玖,下圖是算法的動(dòng)態(tài)演示圖椎工,能夠清晰的看到手寫數(shù)字被正確的識(shí)別為相應(yīng)的數(shù)字,對(duì)代碼有興趣的同學(xué),github上有很多相關(guān)的LeNet 5代碼维蒙。
然而神經(jīng)網(wǎng)絡(luò)還是存在著上面所述的缺陷掰吕,此時(shí)就在貝爾實(shí)驗(yàn)室,Yann Lecun臨近辦公室的一個(gè)同事的工作颅痊,又把神經(jīng)網(wǎng)絡(luò)的研究帶入第二個(gè)寒冬畴栖。 (未完待續(xù))
作者:林清漂