- Python快樂編程:人工智能深度學習基礎
- 千鋒教育高教產品研發(fā)部編著
- 2084字
- 2022-07-27 18:55:54
1.2.1 深度學習的發(fā)展
圍繞著人工智能如何理解關于世界的知識,科學家用不同的方法進行了不同的探索和嘗試。在國際上,學者們對機器學習的發(fā)展階段并沒有非常明確的劃分規(guī)則,本書將機器學習的發(fā)展劃分為推理期、知識期、學習期、快速發(fā)展期和爆發(fā)期。
1.推理期
從20世紀50年代到70年代初,人工智能發(fā)展尚處于推理期,這一時期的機器學習只能稱為感知,即認為只要給機器賦予邏輯推理能力,機器就具有了智能。最早的人工智能實踐起源于1943年的人工神經元模型,該模型的神經元主要包含了輸入信號以及對信號進行線性加權、求和、非線性激活(閾值法)3個過程,希望通過計算機來模擬人類神經元的活動方式,如圖1.5所示。

圖1.5 早期通過計算機來模擬人類的神經元活動的方式
1958年,Frank Rosenblatt第一次將人工神經元模型用于機器學習,發(fā)明了感知機(Perceptron)算法。該算法使用人工神經元模型對輸入的多維數據進行二元線性分類,且能夠使用梯度下降法從訓練樣本中自動學習更新權值。1962年,該方法被證明為能夠收斂,其理論與實踐效果引發(fā)了第一次神經網絡熱潮。
然而機器學習的發(fā)展并不總是一帆風順的。1969年,美國數學家Marvin Minsky在其著作中證明了感知機本質上是一種線性模型,只能處理線性分類問題,例如,感知機在處理異或問題上的表現極差。僅讓機器具有邏輯推理能力是遠遠無法實現人工智能的,還需要賦予機器理解世界知識的能力。
2.知識期
20世紀70年代中期開始,人工智能進入了知識期。在這一時期,人們將關于世界的知識用形式化的語言進行硬編碼,使得計算機可以使用邏輯推理規(guī)則來自動地理解這些關于世界的知識。這種方法被稱為人工智能的知識庫方法,其中Douglas Lenat的Cyc項目最為著名。Cyc由推斷引擎和使用CycL語言(Cyc項目的專有知識表示語言)描述的聲明數據庫組成,該項目最開始的目標是將上百萬條知識編碼成機器可用的形式。在當時,Lenat預測完成Cyc這樣龐大的常識知識系統(涉及的規(guī)則高達25萬條)需要花費350人年才能完成。由人將世界知識用形式化的語言進行硬編碼的工程顯然過于龐大和低效,因此,AI系統需要具備自己獲取有關世界知識的能力,從而增強系統對未知事件的預測和理解能力。
3.學習期
1986年,加拿大多倫多大學的Geoffrey Hinton教授發(fā)明了適用于多層感知機的人工神經網絡算法——反向傳播算法(Back Propagation,BP)。它有效解決了神經網絡在處理非線性分類和學習中的瓶頸,引起了神經網絡的第二次熱潮,這個熱潮一直持續(xù)到今天。通過BP算法可以讓一個人工神經網絡模型從大量訓練樣本中學習樣本中的規(guī)律,從而對未知事件進行預測和理解。在模型訓練的準確性和高效性上,這種基于統計的機器學習方法比過去基于人工規(guī)則的系統有了極大改善。這個階段的人工神經網絡,雖然被稱作多層感知機(Multi-layer Perceptron),但實際上是一種只含有一層隱藏層節(jié)點的淺層學習模型。由于神經網絡存在過擬合、調參困難、訓練效率較低,在層級小于等于3的情況下并不比其他方法更好。
20世紀90年代,其他各種各樣的淺層機器學習模型相繼被提出,例如支持向量機、最大熵方法、邏輯回歸等。這些模型的結構基本上可以看成帶有一層隱藏層節(jié)點(如SVM、Boosting)或沒有隱藏層節(jié)點(如LR)。多數分類、回歸等學習方法均為淺層結構算法,主要局限性在于有限樣本和計算單元無法滿足對復雜函數的表示能力的需求,針對復雜分類問題的泛化能力受到制約。直到1989年,Hinton和LeCun等人發(fā)明了卷積神經網絡(Convolutional Neural Network,CNN),并將其用于識別數字,且取得了較好的成績。
4.快速發(fā)展期
2006年,Hinton教授和他的學生Salakhutdinov在《科學》上發(fā)表了一篇有關人工神經網絡的論文,提出了無監(jiān)督貪心逐層訓練(Layerwise Pre-Training)算法,其主要思想是先通過自學習的方法學習到訓練數據的結構(自動編碼器),然后在該結構上進行有監(jiān)督訓練微調。這篇論文指出多隱藏層的人工神經網絡具有優(yōu)異的特征學習能力,學習得到的特征可以更準確地描繪出數據的本質,從而有利于可視化或分類。深度學習可通過學習一種深層非線性網絡結構,實現復雜函數逼近,表征輸入數據分布式表示,并展現了強大的從少數樣本集中學習數據集本質特征的能力。Hinton提出了深層網絡訓練中梯度消失問題的解決方案:無監(jiān)督預訓練對權值進行初始化,然后進行有監(jiān)督訓練微調。2011年,激活函數的理念被提出,激活函數能夠有效地抑制梯度消失問題。
深度學習是一系列在信息處理階段利用無監(jiān)督特征學習和模型分析分類功能的,具有多層分層體系結構的機器學習技術。深度學習的本質是對觀察數據進行分層特征表示,實現將低層次特征進一步抽象成高層次特征表示。
5.爆發(fā)期
在2012年,Hinton帶領的小組為了證明深度學習的潛力,使用通過CNN網絡架構的AlexNet在ImageNet圖像識別比賽中獲得冠軍,這場比賽之后CNN吸引了眾多研究者的注意。AlexNet采用使用了激活函數的純粹有監(jiān)督學習,激活函數的使用極大地提高了收斂速度且從根本上解決了梯度消失問題。
從目前的最新研究進展來看,只要數據足夠大、隱藏層足夠深,即便沒有預熱訓練,深度學習也可以取得很好的結果。這凸顯出大數據和深度學習的相輔相成。無監(jiān)督學習曾是深度學習的一個優(yōu)勢,但有監(jiān)督的卷積神經網絡算法正逐漸成為主流。2015年,Hinton、LeCun、Bengio等人論證了Loss的局部極值問題對于深度學習的影響可以忽略,該論斷消除了籠罩在神經網絡上的局部極值問題的陰霾。
- 零基礎學C++程序設計
- Getting started with Google Guava
- Java面向對象軟件開發(fā)
- 程序員數學:用Python學透線性代數和微積分
- Spring Boot+Spring Cloud+Vue+Element項目實戰(zhàn):手把手教你開發(fā)權限管理系統
- Building Cross-Platform Desktop Applications with Electron
- Unity Game Development Scripting
- 零基礎學Python網絡爬蟲案例實戰(zhàn)全流程詳解(入門與提高篇)
- 微信小程序開發(fā)實戰(zhàn):設計·運營·變現(圖解案例版)
- 和孩子一起學編程:用Scratch玩Minecraft我的世界
- C#開發(fā)之道
- Java編程動手學
- Web應用程序設計:ASP
- Learning WebRTC
- jQuery Mobile從入門到精通