神經(jīng)網(wǎng)絡(luò)技術(shù)的核心之——反向傳播算法(BP算法) 原創(chuàng)
“ 如果說(shuō)神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì)是神經(jīng)網(wǎng)絡(luò)的核心,那么反向傳播算法就是神經(jīng)網(wǎng)絡(luò)模型的核心?!?/strong>
在前面的文章中介紹訓(xùn)練一個(gè)模型,其主要區(qū)別就在于神經(jīng)網(wǎng)絡(luò)模型的架構(gòu);但可能很多人并不知道神經(jīng)網(wǎng)絡(luò)模型的核心算法就是——反向傳播算法,也被叫做BP算法。
可能很多人都聽說(shuō)過(guò)反向傳播算法,但可能很多人都沒(méi)意識(shí)到反向傳播算法對(duì)神經(jīng)網(wǎng)絡(luò)的重要性;可以說(shuō)現(xiàn)在的神經(jīng)網(wǎng)絡(luò)模型就建立在反向傳播算法之上,沒(méi)有反向傳播算法就沒(méi)有神經(jīng)網(wǎng)絡(luò)的存在。
反向傳播(BP)算法
了解過(guò)人工智能發(fā)展史的人應(yīng)該都知道,人工智能技術(shù)并不是最近才出現(xiàn)的新技術(shù);在世界上第一臺(tái)計(jì)算機(jī)出現(xiàn)之后的十年,人工智能的概念就已經(jīng)被提出來(lái)了,但人工智能技術(shù)的發(fā)展卻是最近幾年才爆火的。
但在爆火之前,人工智能技術(shù)已經(jīng)經(jīng)過(guò)了幾十年的發(fā)展;而且人工智能技術(shù)的發(fā)展也有幾個(gè)流派,也經(jīng)過(guò)了幾次大起大落。
特別是以仿生學(xué)為基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)模型,經(jīng)過(guò)幾次大起大落才走到了今天這個(gè)地步。
神經(jīng)網(wǎng)絡(luò)模型的提出是基于神經(jīng)元模型的提出,在1943年,心理學(xué)家McCulloch和數(shù)學(xué)家Pitts參考了生物神經(jīng)元的結(jié)構(gòu);發(fā)表了抽象的神經(jīng)元模型MP。而在1958年,計(jì)算科學(xué)家Rosenblatt提出了由單層神經(jīng)元組成的神經(jīng)網(wǎng)絡(luò)——感知機(jī),也就是世界上第一個(gè)神經(jīng)網(wǎng)絡(luò)模型。
但受限于當(dāng)時(shí)的技術(shù)與理論,感知機(jī)只能解決最簡(jiǎn)單的線性分類任務(wù);對(duì)異或這種簡(jiǎn)單的分類任務(wù)都無(wú)法解決,再加上受限于當(dāng)時(shí)的計(jì)算能力,導(dǎo)致神經(jīng)網(wǎng)絡(luò)發(fā)展被擱置,這也使得神經(jīng)網(wǎng)絡(luò)模型的研究進(jìn)入了一個(gè)冰河時(shí)期。
在1969年發(fā)現(xiàn)單層神經(jīng)網(wǎng)絡(luò)無(wú)法解決異或問(wèn)題之后,又過(guò)了大概十年左右;由兩層神經(jīng)網(wǎng)絡(luò)構(gòu)成的多層感知機(jī)被提了出來(lái);當(dāng)神經(jīng)網(wǎng)絡(luò)增加一層之后,不但能夠解決異或問(wèn)題,而且還擁有非常好的非線性分類效果。
但多層感知機(jī)存在的一個(gè)主要問(wèn)題還是計(jì)算問(wèn)題,在多層感知機(jī)提出來(lái)時(shí)并沒(méi)有一個(gè)很好的解決方案;直到1986年,Rumelhar和Hinton等人提出了反向傳播算法(Backpropagation,BP算法);才解決了兩層神經(jīng)網(wǎng)絡(luò)所需要的復(fù)雜計(jì)算量問(wèn)題。
而反向傳播算法的啟示是數(shù)學(xué)中的鏈?zhǔn)椒磩t。
在此需要說(shuō)明的是,盡管早期神經(jīng)網(wǎng)絡(luò)的研究人員努力從生物學(xué)中得到啟發(fā),但從BP算法開始,研究者們更多地從數(shù)學(xué)上尋求問(wèn)題的最優(yōu)解。不再盲目模擬人腦網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)研究走向成熟的標(biāo)志。正如科學(xué)家們可以從鳥類的飛行中得到啟發(fā),但沒(méi)有必要一定要完全模擬鳥類的飛行方式,也能制造可以飛天的飛機(jī)。
而后神經(jīng)網(wǎng)絡(luò)模型的發(fā)展又經(jīng)過(guò)幾次摧殘,比如支持向量機(jī)的產(chǎn)生(SVM);盡管使用了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ì)此多有抱怨。
多層神經(jīng)網(wǎng)絡(luò)——深度學(xué)習(xí)
2006年,Hinton在《Science》和相關(guān)期刊上發(fā)表了論文,首次提出了“深度信念網(wǎng)絡(luò)”的概念。與傳統(tǒng)的訓(xùn)練方式不同,“深度信念網(wǎng)絡(luò)”有一個(gè)“預(yù)訓(xùn)練”(pre-training)的過(guò)程,這可以方便的讓神經(jīng)網(wǎng)絡(luò)中的權(quán)值找到一個(gè)接近最優(yōu)解的值,之后再使用“微調(diào)”(fine-tuning)技術(shù)來(lái)對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行優(yōu)化訓(xùn)練。這兩個(gè)技術(shù)的運(yùn)用大幅度減少了訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的時(shí)間。他給多層神經(jīng)網(wǎng)絡(luò)相關(guān)的學(xué)習(xí)方法賦予了一個(gè)新名詞--“深度學(xué)習(xí)”。
由此,深度學(xué)習(xí)技術(shù)發(fā)展進(jìn)入快車道,快速應(yīng)用于圖像處理,自然語(yǔ)言處理等領(lǐng)域;而后到谷歌工程師提出了Transformer架構(gòu),以及openAI基于Transformer架構(gòu)開發(fā)了chatGPT聊天機(jī)器人神經(jīng)網(wǎng)絡(luò)模型。
在人腦的神經(jīng)網(wǎng)絡(luò)中,不同神經(jīng)元之間的信號(hào)是實(shí)時(shí)傳遞和變化的;因此,反向傳播算法就是計(jì)算不同神經(jīng)網(wǎng)絡(luò)層神經(jīng)元的信號(hào)值;因此,也就解決了神經(jīng)網(wǎng)絡(luò)最核心的問(wèn)題。
本文轉(zhuǎn)載自公眾號(hào)AI探索時(shí)代 作者:DFires
