一文看懂深度学习——人工智能系列学习笔记
深度學習有很好的表現,引領了第三次人工智能的浪潮。目前大部分表現優異的應用都用到了深度學習,大紅大紫的 AlphaGo 就使用到了深度學習。
本文將詳細的給大家介紹深度學習的基本概念、優缺點和主流的幾種算法。
?
深度學習、神經網絡、機器學習、人工智能的關系
深度學習、機器學習、人工智能
簡單來說:
目前表現最好的一些應用大部分都是深度學習,正是因為深度學習的突出表現,引發了人工智能的第三次浪潮。詳情可以看《人工智能的發展史——3次 AI 浪潮》
?
詳細了解人工智能:《“2019更新”什么是人工智能?(AI的本質+發展史+局限性)》
詳細了解機器學習:《“75頁PDF免費下載”面向所有人的機器學習科普大全》
?
深度學習、神經網絡
深度學習的概念源于人工神經網絡的研究,但是并不完全等于傳統神經網絡。
不過在叫法上,很多深度學習算法中都會包含”神經網絡”這個詞,比如:卷積神經網絡、循環神經網絡。
所以,深度學習可以說是在傳統神經網絡基礎上的升級,約等于神經網絡。
?
大白話解釋深度學習
看了很多版本的解釋,發現李開復在《人工智能》一書中講的是最容易理解的,所以下面直接引用他的解釋:
我們以識別圖片中的漢字為例。
假設深度學習要處理的信息是“水流”,而處理數據的深度學習網絡是一個由管道和閥門組成的巨大水管網絡。網絡的入口是若干管道開口,網絡的出口也是若干管道開口。這個水管網絡有許多層,每一層由許多個可以控制水流流向與流量的調節閥。根據不同任務的需要,水管網絡的層數、每層的調節閥數量可以有不同的變化組合。對復雜任務來說,調節閥的總數可以成千上萬甚至更多。水管網絡中,每一層的每個調節閥都通過水管與下一層的所有調節閥連接起來,組成一個從前到后,逐層完全連通的水流系統。
那么,計算機該如何使用這個龐大的水管網絡來學習識字呢?
比如,當計算機看到一張寫有“田”字的圖片,就簡單將組成這張圖片的所有數字(在計算機里,圖片的每個顏色點都是用“0”和“1”組成的數字來表示的)全都變成信息的水流,從入口灌進水管網絡。
我們預先在水管網絡的每個出口都插一塊字牌,對應于每一個我們想讓計算機認識的漢字。這時,因為輸入的是“田”這個漢字,等水流流過整個水管網絡,計算機就會跑到管道出口位置去看一看,是不是標記由“田”字的管道出口流出來的水流最多。如果是這樣,就說明這個管道網絡符合要求。如果不是這樣,就調節水管網絡里的每一個流量調節閥,讓“田”字出口“流出”的水最多。
這下,計算機要忙一陣了,要調節那么多閥門!好在計算機的速度快,暴力的計算加上算法的優化,總是可以很快給出一個解決方案,調好所有閥門,讓出口處的流量符合要求。
下一步,學習“申”字時,我們就用類似的方法,把每一張寫有“申”字的圖片變成一大堆數字組成的水流,灌進水管網絡,看一看,是不是寫有“申”字的那個管道出口流水最多,如果不是,我們還得再調整所有的閥門。這一次,要既保證剛才學過的“田”字不受影響,也要保證新的“申”字可以被正確處理。
如此反復進行,知道所有漢字對應的水流都可以按照期望的方式流過整個水管網絡。這時,我們就說,這個水管網絡是一個訓練好的深度學習模型了。當大量漢字被這個管道網絡處理,所有閥門都調節到位后,整套水管網絡就可以用來識別漢字了。這時,我們可以把調節好的所有閥門都“焊死”,靜候新的水流到來。
與訓練時做的事情類似,未知的圖片會被計算機轉變成數據的水流,灌入訓練好的水管網絡。這時,計算機只要觀察一下,哪個出水口流出來的水流最多,這張圖片寫的就是哪個字。
深度學習大致就是這么一個用人類的數學知識與計算機算法構建起來的整體架構,再結合盡可能多的訓練數據以及計算機的大規模運算能力去調節內部參數,盡可能逼近問題目標的半理論、半經驗的建模方式。
?
傳統機器學習 VS 深度學習
傳統機器學習和深度學習的相似點
在數據準備和預處理方面,兩者是很相似的。
他們都可能對數據進行一些操作:
- 數據清洗
- 數據標簽
- 歸一化
- 去噪
- 降維
對于數據預處理感興趣的可以看看《AI 數據集最常見的6大問題(附解決方案)》
?
傳統機器學習和深度學習的核心區別
傳統機器學習的特征提取主要依賴人工,針對特定簡單任務的時候人工提取特征會簡單有效,但是并不能通用。
深度學習的特征提取并不依靠人工,而是機器自動提取的。這也是為什么大家都說深度學習的可解釋性很差,因為有時候深度學習雖然能有好的表現,但是我們并不知道他的原理是什么。
?
深度學習的優缺點
優點1:學習能力強
從結果來看,深度學習的表現非常好,他的學習能力非常強。
優點2:覆蓋范圍廣,適應性好
深度學習的神經網絡層數很多,寬度很廣,理論上可以映射到任意函數,所以能解決很復雜的問題。
優點3:數據驅動,上限高
深度學習高度依賴數據,數據量越大,他的表現就越好。在圖像識別、面部識別、NLP 等部分任務甚至已經超過了人類的表現。同時還可以通過調參進一步提高他的上限。
優點4:可移植性好
由于深度學習的優異表現,有很多框架可以使用,例如 TensorFlow、Pytorch。這些框架可以兼容很多平臺。
?
缺點1:計算量大,便攜性差
深度學習需要大量的數據很大量的算力,所以成本很高。并且現在很多應用還不適合在移動設備上使用。目前已經有很多公司和團隊在研發針對便攜設備的芯片。這個問題未來會得到解決。
缺點2:硬件需求高
深度學習對算力要求很高,普通的 CPU 已經無法滿足深度學習的要求。主流的算力都是使用 GPU 和 TPU,所以對于硬件的要求很高,成本也很高。
缺點3:模型設計復雜
深度學習的模型設計非常復雜,需要投入大量的人力物力和時間來開發新的算法和模型。大部分人只能使用現成的模型。
缺點4:沒有”人性”,容易存在偏見
由于深度學習依賴數據,并且可解釋性不高。在訓練數據不平衡的情況下會出現性別歧視、種族歧視等問題。
?
4種典型的深度學習算法
卷積神經網絡 – CNN
CNN 的價值:
CNN 的基本原理:
CNN 的實際應用:
了解更多《一文看懂卷積神經網絡-CNN(基本原理+獨特價值+實際應用)》
?
循環神經網絡 – RNN
RNN 是一種能有效的處理序列數據的算法。比如:文章內容、語音音頻、股票價格走勢…
之所以他能處理序列數據,是因為在序列中前面的輸入也會影響到后面的輸出,相當于有了“記憶功能”。但是 RNN 存在嚴重的短期記憶問題,長期的數據影響很小(哪怕他是重要的信息)。
于是基于 RNN 出現了 LSTM 和 GRU 等變種算法。這些變種算法主要有幾個特點:
RNN 幾個典型的應用如下:
了解更多《一文看懂循環神經網絡-RNN(獨特價值+優化算法+實際應用)》
?
生成對抗網絡 – GANs
假設一個城市治安混亂,很快,這個城市里就會出現無數的小偷。在這些小偷中,有的可能是盜竊高手,有的可能毫無技術可言。假如這個城市開始整飭其治安,突然開展一場打擊犯罪的“運動”,警察們開始恢復城市中的巡邏,很快,一批“學藝不精”的小偷就被捉住了。之所以捉住的是那些沒有技術含量的小偷,是因為警察們的技術也不行了,在捉住一批低端小偷后,城市的治安水平變得怎樣倒還不好說,但很明顯,城市里小偷們的平均水平已經大大提高了。
警察們開始繼續訓練自己的破案技術,開始抓住那些越來越狡猾的小偷。隨著這些職業慣犯們的落網,警察們也練就了特別的本事,他們能很快能從一群人中發現可疑人員,于是上前盤查,并最終逮捕嫌犯;小偷們的日子也不好過了,因為警察們的水平大大提高,如果還想以前那樣表現得鬼鬼祟祟,那么很快就會被警察捉住。為了避免被捕,小偷們努力表現得不那么“可疑”,而魔高一尺、道高一丈,警察也在不斷提高自己的水平,爭取將小偷和無辜的普通群眾區分開。隨著警察和小偷之間的這種“交流”與“切磋”,小偷們都變得非常謹慎,他們有著極高的偷竊技巧,表現得跟普通群眾一模一樣,而警察們都練就了“火眼金睛”,一旦發現可疑人員,就能馬上發現并及時控制——最終,我們同時得到了最強的小偷和最強的警察。
了解更多《什么是生成對抗網絡 – GAN?(基本概念+工作原理)》
?
深度強化學習 – RL
強化學習算法的思路非常簡單,以游戲為例,如果在游戲中采取某種策略可以取得較高的得分,那么就進一步“強化”這種策略,以期繼續取得較好的結果。這種策略與日常生活中的各種“績效獎勵”非常類似。我們平時也常常用這樣的策略來提高自己的游戲水平。
在 Flappy bird 這個游戲中,我們需要簡單的點擊操作來控制小鳥,躲過各種水管,飛的越遠越好,因為飛的越遠就能獲得更高的積分獎勵。
這就是一個典型的強化學習場景:
- 機器有一個明確的小鳥角色——代理
- 需要控制小鳥飛的更遠——目標
- 整個游戲過程中需要躲避各種水管——環境
- 躲避水管的方法是讓小鳥用力飛一下——行動
- 飛的越遠,就會獲得越多的積分——獎勵
你會發現,強化學習和監督學習、無監督學習 最大的不同就是不需要大量的“數據喂養”。而是通過自己不停的嘗試來學會某些技能。
了解更多:《一文看懂什么是強化學習?(基本概念+應用場景+主流算法)》
?
總結
深度學習屬于機器學習的范疇,深度學習可以說是在傳統神經網絡基礎上的升級,約等于神經網絡。
深度學習和傳統機器學習在數據預處理上都是類似的。核心差別在特征提取環節,深度學習由機器自己完成特征提取,不需要人工提取。
?
深度學習的優點:
深度學習的缺點:
?
深度學習的4種典型算法:
?
百度百科版本+維基百科
百度百科版本深度學習的概念源于人工神經網絡的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示。
深度學習的概念由Hinton等人于2006年提出。基于深度置信網絡(DBN)提出非監督貪心逐層訓練算法,為解決深層結構相關的優化難題帶來希望,隨后提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。
深度學習是機器學習中一種基于對數據進行表征學習的方法。觀測值(例如一幅圖像)可以使用多種方式來表示,如每個像素強度值的向量,或者更抽象地表示成一系列邊、特定形狀的區域等。而使用某些特定的表示方法更容易從實例中學習任務(例如,人臉識別或面部表情識別)。深度學習的好處是用非監督式或半監督式的特征學習和分層特征提取高效算法來替代手工獲取特征。
深度學習是機器學習研究中的一個新的領域,其動機在于建立、模擬人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。
同機器學習方法一樣,深度機器學習方法也有監督學習與無監督學習之分.不同的學習框架下建立的學習模型很是不同.例如,卷積神經網絡(Convolutional neural networks,簡稱CNNs)就是一種深度的監督學習下的機器學習模型,而深度置信網(Deep Belief Nets,簡稱DBNs)就是一種無監督學習下的機器學習模型。
查看詳情
?
維基百科版本深度學習(也稱為深度結構化學習 或分層學習)是基于學習數據表示的更廣泛的機器學習方法系列的一部分,而不是特定于任務的算法。學習可以是監督,半監督或無監督。
深度學習架構,如深度神經網絡,深度置信網絡和遞歸神經網絡,已應用于計算機視覺,語音識別,自然語言處理,音頻識別,社交網絡過濾,機器翻譯,生物信息學,藥物設計,醫學圖像分析等領域。 材料檢查和棋盤游戲程序,它們產生的結果可與人類專家相媲美,在某些情況下優于人類專家。
深度學習模型受到生物神經系統中信息處理和通信模式的模糊啟發,但與生物大腦(尤其是人類大腦)的結構和功能特性存在各種差異,這使得它們與神經科學證據不相容。
查看詳情
?
擴展閱讀
入門類文章(5)
深度學習背后的基礎-神經網絡揭秘
Deep Learning – All You Need to Know
技術科普:用高中數學理解 AI “深度學習”的基本原理
AI知識圖鑒:機器學習、深度學習、數據分析、數據挖掘
三分鐘看懂人工智能核心技術:深度學習
相關課程、書籍(4)
Fast.ai——深度學習教程
DeepLearning.ai——深度學習教程
著名的斯坦福教程(圖像識別 | 自然語言處理)
極客Array做的吳恩達深度學習筆記(多篇連載)
《深度學習》
《Python深度學習》
開拓視野類文章(5)
【DLIndaba2019】微軟大佬帶你學習深度學習基礎,82頁PPT(2019-9)
深度學習算法地圖(2019-5)
F-Principle:初探理解深度學習不能做什么
破局!Alan Yuille:深度學習關鍵在于克服組合爆炸
影響堪比登月!谷歌等探索深度學習新理論藍圖,讓神經網絡更深更窄
實踐類文章(4)
李飛飛高徒、AI“網紅”Karpathy:訓練神經網絡不得不看的33個技巧
深度學習七個實用技巧
德國普馬研究所發布DEEPOBS:深度學習優化器基準套件
如何分分鐘構建強大又好用的深度學習環境?
總結
以上是生活随笔為你收集整理的一文看懂深度学习——人工智能系列学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA 2020.3版本中的lombo
- 下一篇: Paas是什么——Go语言相关学习笔记