1969年,作為人工神經網絡創始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》壹書,論證了簡單的線性感知器功能有限,不能解決如“異或”(XOR )這樣的基本問題,而且對多層網絡也持悲觀態度。這些論點給神經網絡研究以沈重的打擊,很多科學家紛紛離開這壹領域,神經網絡的研究走向長達10年的低潮時期。[1]
1974年哈佛大學的Paul Werbos發明BP算法時,正值神經外網絡低潮期,並未受到應有的重視。[2]
1983年,加州理工學院的物理學家John Hopfield利用神經網絡,在旅行商這個NP完全問題的求解上獲得當時最好成績,引起了轟動[2]。然而,Hopfield的研究成果仍未能指出明斯基等人論點的錯誤所在,要推動神經網絡研究的全面開展必須直接解除對感知器——多層網絡算法的疑慮。[1]
真正打破明斯基冰封魔咒的是,David Rumelhart等學者出版的《平行分布處理:認知的微觀結構探索》壹書。書中完整地提出了BP算法,系統地解決了多層網絡中隱單元連接權的學習問題,並在數學上給出了完整的推導。這是神經網絡發展史上的裏程碑,BP算法迅速走紅,掀起了神經網絡的第二次高潮。[1,2]
因此,BP算法的歷史意義:明確地否定了明斯基等人的錯誤觀點,對神經網絡第二次高潮具有決定性意義。
這壹點是說BP算法在神經網絡領域中的地位和意義。
BP算法是迄今最成功的神經網絡學習算法,現實任務中使用神經網絡時,大多是在使用BP算法進行訓練[2],包括最近炙手可熱的深度學習概念下的卷積神經網絡(CNNs)。
BP神經網絡是這樣壹種神經網絡模型,它是由壹個輸入層、壹個輸出層和壹個或多個隱層構成,它的激活函數采用sigmoid函數,采用BP算法訓練的多層前饋神經網絡。
BP算法全稱叫作誤差反向傳播(error Back Propagation,或者也叫作誤差逆傳播)算法。其算法基本思想為:在2.1所述的前饋網絡中,輸入信號經輸入層輸入,通過隱層計算由輸出層輸出,輸出值與標記值比較,若有誤差,將誤差反向由輸出層向輸入層傳播,在這個過程中,利用梯度下降算法對神經元權值進行調整。
BP算法中核心的數學工具就是微積分的 鏈式求導法則 。
BP算法的缺點,首當其沖就是局部極小值問題。
BP算法本質上是梯度下降,而它所要優化的目標函數又非常復雜,這使得BP算法效率低下。
[1]、《BP算法的哲學思考》,成素梅、郝中華著
[2]、《機器學習》,周誌華著
[3]、 Deep Learning論文筆記之(四)CNN卷積神經網絡推導和實現
2016-05-13 第壹次發布
2016-06-04 較大幅度修改,完善推導過程,修改文章名
2016-07-23 修改了公式推導中的壹個錯誤,修改了壹個表述錯誤