2016年,AlphaGo 擊敗韓國圍棋冠軍李世石,在媒體報道中,曾多次提及“深度學習”這個概念。而新版本的AlphaGoZero,更充分地運用了深度學習法,不再從人類棋手的以往棋譜記錄中開始訓練,而是完全靠自己的學習算法,通過自我對弈來學會下棋。經過一段時間的自我學習,它就擊敗了曾打敗李世石的以及曾完勝柯潔的AlphaGo版本。
由此可見,機器的確開始具有了某種學習能力。它在訓練中得到的不再只是規則、對象信息,而是還能獲得對象出現的可能條件。換言之,它已經能夠開始“感受”和捕捉可能性,而不只是現成之物了。這種學習就是一個非線性的、概率的、反饋調整的和逐層逐時地深化和構成的準發生過程。這是一個具有某種真實時間歷程的習得過程。
什么是深度學習?
深度學習是機器學習的一種形式,所采用的神經網絡在輸入節點和輸出節點之間具有許多“深度”層。通過基于大數據集訓練網絡,創建的模型可用于根據輸入數據進行精確預測。在用于深度學習的神經網絡中,每一層的輸出會前饋到下一層的輸入。通過更改各層之間連接的加權,反復優化模型。在每一個周期,對模型預測準確度的反饋將用于指導連接加權的更改。
輸入和輸出之間含有“深度”隱藏層的神經網絡:
相對輸入加權的更改:
人工智能、機器學習與深度學習
如上圖,最早出現的人工智能位于同心圓最外側;其次是隨后發展起來的機器學習,位于中間;最后是推動人工智能突飛猛進發展的深度學習,位于最內側。
自上個世紀50年代的人工智能熱以來,基于人工智能概念的機器學習和深度學習又掀起一陣前所未有的新浪潮。
1956年,幾個計算機科學家在達特茅斯會議上首次提出了“人工智能”的概念。此后,人工智能就一直縈繞于人們的腦海之中,并在科研實驗室中蓄勢待發。之后的幾十年,人工智能一直在兩極反轉,有人稱其為打開人類文明輝煌未來的鑰匙,也有人將其當成科技瘋子的狂想扔到技術垃圾堆里。其實2012年之前,這兩種觀點一直不相上下。
過去幾年,尤其是2015年以來,人工智能突飛猛進地發展。這主要歸功于圖形處理器(GPU)的廣泛應用,使得并行計算變得更快、更便宜、更有效。當然,無限拓展的存儲能力和驟然爆發的數據洪流(大數據)的組合拳,也使得圖像數據、文本數據、交易數據、映射數據全面海量爆發。
機器學習——實現人工智能的方法
機器學習最基本的做法,是使用算法來解析數據、從中學習,然后對真實世界中的事件做出決策和預測。與傳統的為解決特定任務、硬編碼的軟件程序不同,機器學習是用大量的數據來“訓練”,通過各種算法從數據中學習如何完成任務。
機器學習直接來源于早期的人工智能領域。傳統算法包括決策樹學習、推導邏輯規劃、聚類、強化學習和貝葉斯網絡等等。眾所周知,我們還沒有實現強人工智能。早期機器學習方法甚至都無法實現弱人工智能。
機器學習最成功的應用領域是計算機視覺,雖然也還是需要大量的手工編碼來完成工作。人們需要手工編寫分類器、邊緣檢測濾波器,以便讓程序能識別物體從哪里開始,到哪里結束;寫形狀檢測程序來判斷檢測對象是不是有八條邊;寫分類器來識別字母“ST-O-P”。使用以上這些手工編寫的分類器,人們總算可以開發算法來感知圖像,判斷圖像是不是一個停止標志牌。
深度學習——實現機器學習的技術
人工神經網絡是早期機器學習中的一個重要的算法。神經網絡的原理是受我們大腦的生理結構——互相交叉相連的神經元啟發。但與大腦中一個神經元可以連接一定距離內的任意神經元不同,人工神經網絡具有離散的層、連接和數據傳播的方向。
例如,我們可以把一幅圖像切分成圖像塊,輸入到神經網絡的第一層。在第一層的每一個神經元都把數據傳遞到第二層。第二層的神經元也是完成類似的工作,把數據傳遞到第三層,以此類推,直到最后一層,然后生成結果。
每一個神經元都為它的輸入分配權重,這個權重的正確與否與其執行的任務直接相關。最終的輸出由這些權重加總來決定。
我們停止(Stop)標志牌為例。將一個停止標志牌圖像的所有元素都打碎,然后用神經元進行“檢查”:八邊形的外形、救火車般的紅顏色、鮮明突出的字母、交通標志的典型尺寸和靜止不動運動特性等等。神經網絡的任務就是給出結論,它到底是不是一個停止標志牌。神經網絡會根據所有權重,給出一個經過深思熟慮的猜測——“概率向量”。
這個例子里,系統可能會給出這樣的結果:86%可能是一個停止標志牌;7%的可能是一個限速標志牌;5%的可能是一個風箏掛在樹上等等。然后網絡結構告知神經網絡,它的結論是否正確。
其實在人工智能出現的早期,神經網絡就已經存在了,但神經網絡對于“智能”的貢獻微乎其微。主要問題是,即使是最基本的神經網絡,也需要大量的運算。神經網絡算法的運算需求難以得到滿足。
現在,經過深度學習訓練的圖像識別,在一些場景中甚至可以比人做得更好:從識別貓,到辨別血液中癌癥的早期成分,到識別核磁共振成像中的腫瘤。Google的AlphaGo先是學會了如何下圍棋,然后與它自己下棋訓練。它訓練自己神經網絡的方法,就是不斷地與自己下棋,反復地下,永不停歇。
深度學習的相關技術
深度學習可以讓那些擁有多個處理層的計算模型來學習具有多層次抽象的數據的表示。這些方法在許多方面都帶來了顯著的改善,包括最先進的語音識別、視覺對象識別、對象檢測和許多其它領域。深度學習能夠發現大數據中的復雜結構。深度卷積網絡在處理圖像、視頻、語音和音頻方面帶來了突破,而遞歸網絡在處理序列數據,比如文本和語音方面表現出了閃亮的一面。
幾十年來,想要構建一個模式識別系統或者機器學習系統,需要一個精致的引擎和相當專業的知識來設計一個特征提取器,把原始數據(如圖像的像素值)轉換成一個適當的內部特征表示或特征向量,子學習系統,通常是一個分類器,對輸入的樣本進行檢測或分類。特征表示學習是一套給機器灌入原始數據,然后能自動發現需要進行檢測和分類的表達的方法。
深度學習就是一種特征學習方法,把原始數據通過一些簡單的但是非線性的模型轉變成為更高層次的,更加抽象的表達。通過足夠多的轉換的組合,非常復雜的函數也可以被學習。
監督學習
機器學習中,不論是否是深層,最常見的形式是監督學習。我們要建立一個系統,它能夠對一個包含了一座房子、一輛汽車、一個人或一個寵物的圖像進行分類。我們先收集大量的房子,汽車,人與寵物的圖像的數據集,并對每個對象標上它的類別。在訓練期間,機器會獲取一副圖片,然后產生一個輸出,這個輸出以向量形式的分數來表示,每個類別都有一個這樣的向量。我們希望所需的類別在所有的類別中具有最高的得分,但是這在訓練之前是不太可能發生的。通過計算一個目標函數可以獲得輸出分數和期望模式分數之間的誤差(或距離)。然后機器會修改其內部可調參數,以減少這種誤差。這些可調節的參數,通常被稱為權值,它們是一些實數,定義了機器的輸入輸出功能。
在典型的深學習系統中,有可能有數以百萬計的樣本和權值,和帶有標簽的樣本,用來訓練機器。為了正確地調整權值向量,該學習算法計算每個權值的梯度向量,表示了如果權值增加了一個很小的量,那么誤差會增加或減少的量。權值向量然后在梯度矢量的相反方向上進行調整。我們的目標函數,所有訓練樣本的平均,可以被看作是一種在權值的高維空間上的多變地形。負的梯度矢量表示在該地形中下降方向最快,使其更接近于最小值,也就是平均輸出誤差低最低的地方。
卷積神經網絡
卷積神經網絡被設計用來處理到多維數組數據的,比如一個有3個包含了像素值2-D圖像組合成的一個具有3個顏色通道的彩色圖像。很多數據形態都是這種多維數組的:1D用來表示信號和序列包括語言,2D用來表示圖像或者聲音,3D用來表示視頻或者有聲音的圖像。卷積神經網絡使用4個關鍵的想法來利用自然信號的屬性:局部連接、權值共享、池化以及多網絡層的使用。
一個典型的卷積神經網絡結構是由一系列的過程組成的。最初的幾個階段是由卷積層和池化層組成,卷積層的單元被組織在特征圖中,在特征圖中,每一個單元通過一組叫做濾波器的權值被連接到上一層的特征圖的一個局部塊,然后這個局部加權和被傳給一個非線性函數,比如ReLU。在一個特征圖中的全部單元享用相同的過濾器,不同層的特征圖使用不同的過濾器。使用這種結構處于兩方面的原因:
1、在數組數據中,比如圖像數據,一個值的附近的值經常是高度相關的,可以形成比較容易被探測到的有區分性的局部特征。
2、不同位置局部統計特征不太相關的,也就是說,在一個地方出現的某個特征,也可能出現在別的地方,所以不同位置的單元可以共享權值以及可以探測相同的樣本。在數學上,這種由一個特征圖執行的過濾操作是一個離線的卷積,卷積神經網絡也是這么得名來的。
深度神經網絡利用的很多自然信號是層級組成的屬性,在這種屬性中高級的特征是通過對低級特征的組合來實現的。在圖像中,局部邊緣的組合形成基本圖案,這些圖案形成物體的局部,然后再形成物體。這種層級結構也存在于語音數據以及文本數據中,如電話中的聲音,因素,音節,文檔中的單詞和句子。當輸入數據在前一層中的位置有變化的時候,池化操作讓這些特征表示對這些變化具有魯棒性。
使用深度卷積網絡進行圖像理解
21世紀開始,卷積神經網絡就被成功的大量用于檢測、分割、物體識別以及圖像的各個領域。這些應用都是使用了大量的有標簽的數據,比如交通信號識別,生物信息分割,面部探測,文本、行人以及自然圖形中的人的身體部分的探測。近年來,卷積神經網絡的一個重大成功應用是人臉識別。
圖像可以在像素級別進行打標簽,這樣就可以應用在比如自動電話接聽機器人、自動駕駛汽車等技術中。像Mobileye以及NVIDIA公司正在把基于卷積神經網絡的方法用于汽車中的視覺系統中。其它的應用涉及到自然語言的理解以及語音識別中。
如今的卷積神經網絡架構有10-20層采用ReLU激活函數、上百萬個權值以及幾十億個連接。然而訓練如此大的網絡兩年前就只需要幾周了,現在硬件、軟件以及算法并行的進步,又把訓練時間壓縮到了幾小時。
卷積神經網絡很容易在芯片或者現場可編程門陣列(FPGA)中高效實現,許多公司正在開發卷積神經網絡芯片,以使智能機、相機、機器人以及自動駕駛汽車中的實時視覺系統成為可能。
遞歸神經網絡
引入反向傳播算法時,最令人興奮的便是使用遞歸神經網絡訓練。對于涉及到序列輸入的任務,比如語音和語言,利用RNNs能獲得更好的效果。RNNs一次處理一個輸入序列元素,同時維護網絡中隱式單元中隱式的包含過去時刻序列元素的歷史信息的“狀態向量”。如果是深度多層網絡不同神經元的輸出,我們就會考慮這種在不同離散時間步長的隱式單元的輸出,這將會使我們更加清晰怎么利用反向傳播來訓練RNNs。
RNNs是非常強大的動態系統,但是訓練它們被證實存在問題的,因為反向傳播的梯度在每個時間間隔內是增長或下降的,所以經過一段時間后將導致結果的激增或者降為零。
由于先進的架構和訓練方式,RNNs被發現可以很好的預測文本中下一個字符或者句子中下一個單詞,并且可以應用于更加復雜的任務。例如在某時刻閱讀英語句子中的單詞后,將會訓練一個英語的“編碼器”網絡,使得隱式單元的最終狀態向量能夠很好地表征句子所要表達的意思或思想。這種“思想向量”可以作為聯合訓練一個法語“編碼器”網絡的初始化隱式狀態(或者額外的輸入),其輸出為法語翻譯首單詞的概率分布。如果從分布中選擇一個特殊的首單詞作為編碼網絡的輸入,將會輸出翻譯的句子中第二個單詞的概率分布,并直到停止選擇為止。總體而言,這一過程是根據英語句子的概率分布而產生的法語詞匯序列。這種簡單的機器翻譯方法的表現甚至可以和最先進的的方法相媲美,同時也引起了人們對于理解句子是否需要像使用推理規則操作內部符號表示質疑。這與日常推理中同時涉及到根據合理結論類推的觀點是匹配的。
機器學習和深度學習的主要差異
深度學習和機器學習都提供了訓練模型和分類數據的方法,那么這兩者到底有什么區別?
使用標準的機器學習的方法,我們需要手動選擇圖像的相關特征,以訓練機器學習模型。然后,模型在對新對象進行分析和分類時引用這些特征。
通過深度學習的工作流程,可以從圖像中自動提取相關功能。另外,深度學習是一種端到端的學習,網絡被賦予原始數據和分類等任務,并且可以自動完成。
另一個關鍵的區別是深度學習算法與數據縮放,而淺層學習數據收斂。淺層學習指的是當用戶向網絡中添加更多示例和訓練數據時,機器學習的方式能夠在特定性能水平上達到平臺級。
如果需要在深度學習和機器學習之間作出抉擇,用戶需要明確是否具有高性能的GPU和大量的標記數據。如果用戶沒有高性能GPU和標記數據,那么機器學習比深度學習更具優勢。這是因為深度學習通常比較復雜,就圖像而言可能需要幾千張圖才能獲得可靠的結果。高性能的GPU能夠幫助用戶,在建模上花更少的時間來分析所有的圖像。
如果用戶選擇機器學習,可以選擇在多種不同的分類器上訓練模型,也能知道哪些功能可以提取出最好的結果。此外,通過機器學習,我們可以靈活地選擇多種方式的組合,使用不同的分類器和功能來查看哪種排列最適合數據。
所以,一般來說,深度學習的計算量更大,而機器學習技術通常更易于使用。
深度學習使得機器學習能夠實現眾多的應用,并拓展了人工智能的領域范圍。深度學習摧枯拉朽般地實現了各種任務,使得似乎所有的機器輔助功能都變為可能。無人駕駛汽車,預防性醫療保健,甚至是更好的電影推薦,都近在眼前,或者即將實現。
-
人工智能
+關注
關注
1791文章
47279瀏覽量
238499 -
深度學習
+關注
關注
73文章
5503瀏覽量
121162
原文標題:關于人工智能深度學習的那些事兒
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論