深度學習(Deep learning)
深度學習也只要三個步驟:建構網路、設定目標、開始學習。
從類神經網路到深度學習
https://www.inside.com.tw/2017/07/10/ai-history
1943 年就有學者用數學模型來模擬生物大腦的神經網路。1980 年代,當時的諾貝爾醫學獎得主研究了大腦內部的神經迴路而轟動一時。也讓科學家們對「模擬人類大腦的運算模型」抱持了高度期待。
1986 年,Rumelhar 和 Hinton 等學者提出了反向傳播算法(Back Propagation),解決了神經網路所需要的複雜計算量問題,從而帶動了神經網路的研究熱潮。然而過了不久就發現反向傳播法遇到了瓶頸──反向傳播的優化(找出誤差的最小值)會發生梯度消失問題,使得神經網路只要超過 3 層以上就幾乎沒有效果。
如果神經網路無法達到多層的運算,相較之下不如採用其它淺層(小於 3)且效果又更好的機器學習算法,比如 SVM、隨機森林等,此時 SVM 火熱了一段時間,在垃圾信件分類上做得特別好。同時間,學術界一度放棄類神經網路的研究方向,甚至只要有論文或研究標明「Neural Network」,幾乎不願意花心思閱覽或刊出。
2006 年 HINTON 成功訓練多層神經網路、稱為深度學習。Hinton 提出限制玻爾茲曼機(RBM)模型成功訓練多層神經網路。這帶來了類神經網路模型復甦的又一春。由於 Neural Network 長久以來太過惡名昭彰,Hinton 決定把多層的神經網路(Deep Neural Network)重命名為深度學習(Deep Learning)。
深度學習+GPU 一戰成名,爆發人工智慧熱潮
ImageNet 是全世界最大的圖像識別資料庫。每年,史丹佛大學都會舉辦 ImageNet 圖像識別競賽,參加者包括了 Google、微軟、百度等大型企業,除了在比賽中爭奪圖像識別寶座、同時測試自家系統的效能與極限。
其實從 2007 年 ImageNet 比賽創辦以來,每年的比賽結果、每家都差不多,錯誤率大致落在 30%、29%、28%... 瓶頸一直無法突破。結果 2012 年 Hinton 的兩個學生以 SuperVision 的隊伍名參賽,以 16.42% 的錯誤率遠勝第二名的 26.22%,用的正是深度學習技術。
此景一出,大家都瘋了!從此爆發深度學習熱潮。先是 Google 在 2013 年人才收購了 Hinton 和他的兩位學生,接下來一堆企業爭相投入深度學習的研究領域。後來,2015 年的冠軍 Microsoft ,已以 3.5% 的錯誤率贏得冠軍,超越⼈類 5%,發展可謂一日千里。深度學習會大量用到矩陣運算,最合適的硬體事實上是負責圖形處理的 GPU。直到 2012 年 Hinton 的兩位學生利用「深度學習 + GPU」的組合,才真正發揮 GPU 的威力。
但為什麼這麼長以來的時間,都沒有人用 GPU 來運算呢?因為編譯有其難度。
我們之所以能用 CPU 做運算,是因為 CPU 有編譯器(Compiler)這樣的設計,能讓工程師寫完程式後、經過編譯器的轉譯、成為 CPU 看得懂的機械碼。
然而一般 GPU 並沒有類似的設計,因此工程師難以直接寫程式讓 GPU 來運算。直到 NVIDIA 在 2006 -- 2007 年間推出全新運算架構 CUDA ——NVIDIA 成為深度學習運算必用硬體的關鍵。
使用者可以撰寫 C 語言、再透過 CUDA 底層架構轉譯成 GPU 看得懂的語言。
這也是自 GPU 可以拿來做大規模運算的概念推出之後,首次可以讓人使用 C 語言來運用 GPU 蘊藏已久的強大運算能力,故 NVIDIA 從 GeForce 8 系列之後的顯示卡全開始支援 CUDA 技術。