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