- 深度學習:基于Python語言和TensorFlow平臺(視頻講解版)
- 謝瓊
- 2447字
- 2019-10-23 13:19:52
1.5 人工智能研究的沉默探索與復蘇
在AI的第一個寒冬過程中,人們對AI的研究并沒有完全停止,總有一些信念堅定的人在堅持。但是,這次AI所遇到的挫折也給之前對AI抱過高期望值的研究者降了溫,研究者們更理性地思考AI所能夠做到的事情,開始收縮AI系統的目標和AI研究的范圍,將其局限在最有可能發揮當時條件下AI系統能力的方向上?,F在回過頭去看,在這個階段及后面的沉默探索過程中,很多研究成果對后來神經網絡的發展是具有相當重要的作用的,有一些甚至是決定性的。
20世紀60年代末,人們開始了關于專家系統的研究,專家系統是匯聚了某個領域內的專家知識和經驗,由計算機系統進行推理和推斷,幫助和輔助人類進行決策的系統。專家系統至今仍活躍于人工智能領域,是人工智能領域的一個重要分支,被廣泛應用于自然語言處理、數學、物理、化學、地質、氣象、醫療、農業等行業。1972年,面向專家系統應用的高級計算機語言Prolog面世。Prolog是一款支持知識獲取、知識存儲和管理的計算機語言。當時其他的大多數語言還是聚焦于計算與流程的控制上,基本上還是以順序執行的程序為主;而Prolog語言沒有所謂的執行順序,它主要的使用方式是由人來提出問題,機器根據知識庫來回答問題。這種形式和現在基于事件產生反饋的非順序化編程方式非常相似,這在當時,甚至現在也是屬于比較先進的一種方式。
圖1.5中,第一個線框中是一段用Prolog語言編成的實例代碼,前3行分別定義了3件事實,即亞當(adam)是男人,夏娃(eve)是女人,蛇(snake)是動物;最后一行定義了一條規則,即如果X是男人,Y是女人,那么X和Y相愛。第二個線框中是前面Prolog代碼執行時,我們做出的提問,例如,當問到亞當夏娃是否相愛時,系統會回答“true”(是);當問到夏娃和蛇是否相愛時,系統會回答“false”(否)。這就是一個典型的把知識灌輸給計算機系統后進行使用的例子,其中事實和規則都是知識,而提問和獲得答案的過程就是對專家系統知識庫的應用。
專家系統和以Prolog為代表的人工智能語言的出現,標志著人們把對知識認知和應用作為人工智能研究的重要方向之一;從此之后,對于知識表達形式的研究,以及如何利用知識進行推理和計劃決策等研究,逐步被人們重視起來,并對后來的人工智能領域產生了深遠的影響。

圖1.5 Prolog代碼示意圖
1972年,芬蘭科學家托伊沃·科霍寧(Teuvo Kohonen)提出了自組織特征映射(Self-organizing Feature Map,SOFM)網絡,這是一個支持無監督學習(Unsupervised Learning)的神經網絡模型,能夠識別環境特征并自動分類。無監督學習是人們收集數據,讓神經網絡自己去發現規律并做出處理的機器學習方法,是現在乃至未來人工智能研究的重要方向之一。
1974年,保羅·沃波斯(Paul Werbos)第一次提出了后來對神經網絡的發展騰飛具有重要意義的反向傳播算法(Back-propagation Algorithm,簡稱BP算法)。該算法是根據神經網絡的計算結果誤差來調整神經網絡參數以達到訓練神經網絡目的的方法。但由于處于AI的寒冬期中,該方法在當時沒有得到足夠的重視。
1976年,美國認知學家、神經學家史蒂芬·格羅斯伯格(Stephen Grossberg)和他的伙伴女神經學家蓋爾·卡彭特(Gail Carpenter)提出了一種自適應共振理論(Adaptive Resonance Theory,ART)。在這個理論中,提出了一些支持有監督和無監督學習的神經網絡,來模仿人腦的方式處理模式識別和預測等問題。
1982年,美國物理學家約翰·約瑟夫·霍普菲爾德(John Joseph Hopfield)提出了一種具有反饋機制的神經網絡,被稱為霍普菲爾德網絡(Hopfield Network)?;羝辗茽柕率状我肓四芰亢瘮档母拍睿纬闪松窠浘W絡一種新的計算方法;用非線性動力學方法研究神經網絡的特性,提出了判斷神經網絡穩定性的依據,并指出了神經網絡中信息存儲的方式?;羝辗茽柕绿岢隽藙恿Ψ匠毯蛯W習方程,對神經網絡算法提供了重要公式和參數,使神經網絡的構造和學習有了理論指導。1984年,霍普菲爾德用運算放大器模擬神經元,用電子線路模擬神經元之間的連接,成功實現了自己提出的模型,從而重新激發了很多研究者對神經網絡的研究熱情,有力地推動了神經網絡的研究。
1983年,安德魯·G. 巴托(Andrew G. Barto)、理查德·S. 薩頓(Richard S. Sutton)等人發表了關于增強學習(Reinforcement Learning)及其在控制領域的應用的文章。增強學習是研究機器如何在不斷變化的環境中相應地做出最合適的反應的方法,主要通過讓機器不斷調整自己的行為以求獲得更好的長效回報(Long-term Reward)來實現機器學習。增強學習現在結合深度學習的其他方法,已經成為深度學習領域中非常熱門的一個分支,被廣泛應用于無人駕駛、電子競技等方面。
1985年,大衛·艾克利(David Ackley)、杰弗里·辛頓(Geoffrey Hinton)和特里·塞吉諾斯基(Terry Sejnowski)等人基于霍普菲爾德神經網絡加入了隨機機制,提出了玻爾茲曼機(Boltzmann Machine)的模型,這個模型由于引入了隨機振動的機制,一定程度上具備了讓神經網絡擺脫局部最優解的能力。
1986年,大衛·魯姆哈特(David Rumelhart)和詹姆斯·麥克萊蘭(James McClelland)在《并行分布式處理:對認知微結構的探索》(Parallel Distributed Processing:Explorations in the Microstructure of Cognition)一文中,重新提出了反向傳播學習算法(Back-propagation Learning Algorithm,簡稱BP算法)并給出了完整的數學推導過程。BP算法正式出現的意義在于,對于如何更高效地訓練神經網絡,讓神經網絡更有序地進行學習,提供了有效的、可遵循的理論和方法,這在以后神經網絡(尤其是深度學習)領域是一個里程碑式的事件,至今BP方法仍然是訓練多層神經網絡的最主要、最有效的方法。在同一時期,辛頓、羅納德·威廉姆斯(Ronald Williams)、大衛·帕克(David Parker)和楊立昆(Yann LeCun)等人也分別做出了關于BP算法的獨立研究或類似的貢獻。
這一時期的重要成果還包括多層前饋神經網絡(Multilayer Feedforward Neural Network)模型的提出和梯度下降算法等數學和概率論方法被應用于神經網絡的學習中。多層前饋神經網絡是一個包含輸入層、多個隱藏層和輸出層在內的神經網絡(見圖1.6),所謂的前饋指的是神經網絡中的各層均只從上一層接收信號并向下一層輸出信號,即每層只向前傳遞信號而不向后反饋;梯度下降算法則被作為訓練神經網絡的反向傳播算法的基礎之一。另一重要的貢獻是,基于不同研究人員及多方面對多層神經網絡的研究,基本上推翻了明斯基對于多層感知機無法實現解決非線性問題的預測,這給神經網絡的研究者們繼續按此方向研究下去提供了極大的信心。

圖1.6 典型的多層前饋神經網絡結構圖
- Learning Cython Programming
- Mastering AndEngine Game Development
- Yii Project Blueprints
- Python Essentials
- FPGA嵌入式項目開發實戰
- CodeIgniter Web Application Blueprints
- Web前端開發最佳實踐
- JavaScript Concurrency
- Java EE項目應用開發
- C/C++代碼調試的藝術(第2版)
- JavaWeb從入門到精通(視頻實戰版)
- AngularJS UI Development
- Puppet Cookbook(Third Edition)
- Web前端開發實戰教程(HTML5+CSS3+JavaScript)(微課版)
- HTML 5與CSS 3權威指南(第4版·下冊)