公(gōng)司新(xīn)聞
公(gōng)司新(xīn)聞

公(gōng)司新(xīn)聞

一文(wén)看懂深度學(xué)習(白話解釋+8個優缺點+4個典型算法)

2022-01-21 742


深度學(xué)習有(yǒu)很(hěn)好的表現,引領了第三次人工(gōng)智能(néng)的浪潮。目前大部分(fēn)表現優異的應用(yòng)都用(yòng)到了深度學(xué)習,大紅大紫的 AlphaGo 就使用(yòng)到了深度學(xué)習。


本文(wén)将詳細的給大家介紹深度學(xué)習的基本概念、優缺點和主流的4個典型算法。



深度學(xué)習、神經網絡、機器學(xué)習、人工(gōng)智能(néng)的關系



深度學(xué)習、機器學(xué)習、人工(gōng)智能(néng)



簡單來說:


深度學(xué)習是機器學(xué)習的一個分(fēn)支(最重要的分(fēn)支)


機器學(xué)習是人工(gōng)智能(néng)的一個分(fēn)支



目前表現最好的一些應用(yòng)大部分(fēn)都是深度學(xué)習,正是因為(wèi)深度學(xué)習的突出表現,引發了人工(gōng)智能(néng)的第三次浪潮。詳情可(kě)以看《人工(gōng)智能(néng)的發展史——3次 AI 浪潮》



深度學(xué)習、神經網絡



深度學(xué)習的概念源于人工(gōng)神經網絡的研究,但是并不完全等于傳統神經網絡。



不過在叫法上,很(hěn)多(duō)深度學(xué)習算法中(zhōng)都會包含”神經網絡”這個詞,比如:卷積神經網絡、循環神經網絡。



所以,深度學(xué)習可(kě)以說是在傳統神經網絡基礎上的升級,約等于神經網絡。



大白話解釋深度學(xué)習



看了很(hěn)多(duō)版本的解釋,發現李開複在《人工(gōng)智能(néng)》一書中(zhōng)講的是最容易理(lǐ)解的,所以下面直接引用(yòng)他(tā)的解釋:



我們以識别圖片中(zhōng)的漢字為(wèi)例。



假設深度學(xué)習要處理(lǐ)的信息是“水流”,而處理(lǐ)數據的深度學(xué)習網絡是一個由管道和閥門組成的巨大水管網絡。網絡的入口是若幹管道開口,網絡的出口也是若幹管道開口。這個水管網絡有(yǒu)許多(duō)層,每一層由許多(duō)個可(kě)以控制水流流向與流量的調節閥。根據不同任務(wù)的需要,水管網絡的層數、每層的調節閥數量可(kě)以有(yǒu)不同的變化組合。對複雜任務(wù)來說,調節閥的總數可(kě)以成千上萬甚至更多(duō)。水管網絡中(zhōng),每一層的每個調節閥都通過水管與下一層的所有(yǒu)調節閥連接起來,組成一個從前到後,逐層完全連通的水流系統。


那麽,計算機該如何使用(yòng)這個龐大的水管網絡來學(xué)習識字呢(ne)?



比如,當計算機看到一張寫有(yǒu)“田”字的圖片,就簡單将組成這張圖片的所有(yǒu)數字(在計算機裏,圖片的每個顔色點都是用(yòng)“0”和“1”組成的數字來表示的)全都變成信息的水流,從入口灌進水管網絡。


所以,深度學(xué)習可(kě)以說是在傳統神經網絡基礎上的升級,約等于神經網絡。


我們預先在水管網絡的每個出口都插一塊字牌,對應于每一個我們想讓計算機認識的漢字。這時,因為(wèi)輸入的是“田”這個漢字,等水流流過整個水管網絡,計算機就會跑到管道出口位置去看一看,是不是标記由“田”字的管道出口流出來的水流最多(duō)。如果是這樣,就說明這個管道網絡符合要求。如果不是這樣,就調節水管網絡裏的每一個流量調節閥,讓“田”字出口“流出”的水最多(duō)。



這下,計算機要忙一陣了,要調節那麽多(duō)閥門!好在計算機的速度快,暴力的計算加上算法的優化,總是可(kě)以很(hěn)快給出一個解決方案,調好所有(yǒu)閥門,讓出口處的流量符合要求。


下一步,學(xué)習“申”字時,我們就用(yòng)類似的方法,把每一張寫有(yǒu)“申”字的圖片變成一大堆數字組成的水流,灌進水管網絡,看一看,是不是寫有(yǒu)“申”字的那個管道出口流水最多(duō),如果不是,我們還得再調整所有(yǒu)的閥門。這一次,要既保證剛才學(xué)過的“田”字不受影響,也要保證新(xīn)的“申”字可(kě)以被正确處理(lǐ)。


如此反複進行,知道所有(yǒu)漢字對應的水流都可(kě)以按照期望的方式流過整個水管網絡。這時,我們就說,這個水管網絡是一個訓練好的深度學(xué)習模型了。當大量漢字被這個管道網絡處理(lǐ),所有(yǒu)閥門都調節到位後,整套水管網絡就可(kě)以用(yòng)來識别漢字了。這時,我們可(kě)以把調節好的所有(yǒu)閥門都“焊死”,靜候新(xīn)的水流到來。


與訓練時做的事情類似,未知的圖片會被計算機轉變成數據的水流,灌入訓練好的水管網絡。這時,計算機隻要觀察一下,哪個出水口流出來的水流最多(duō),這張圖片寫的就是哪個字。



深度學(xué)習大緻就是這麽一個用(yòng)人類的數學(xué)知識與計算機算法構建起來的整體(tǐ)架構,再結合盡可(kě)能(néng)多(duō)的訓練數據以及計算機的大規模運算能(néng)力去調節内部參數,盡可(kě)能(néng)逼近問題目标的半理(lǐ)論、半經驗的建模方式。



傳統機器學(xué)習 VS 深度學(xué)習



傳統機器學(xué)習和深度學(xué)習的相似點


在數據準備和預處理(lǐ)方面,兩者是很(hěn)相似的。



他(tā)們都可(kě)能(néng)對數據進行一些操作(zuò):



數據清洗


數據标簽


歸一化


去噪


降維


對于數據預處理(lǐ)感興趣的可(kě)以看看《AI 數據集最常見的6大問題(附解決方案)》



傳統機器學(xué)習和深度學(xué)習的核心區(qū)别


傳統機器學(xué)習的特征提取主要依賴人工(gōng),針對特定簡單任務(wù)的時候人工(gōng)提取特征會簡單有(yǒu)效,但是并不能(néng)通用(yòng)。



深度學(xué)習的特征提取并不依靠人工(gōng),而是機器自動提取的。這也是為(wèi)什麽大家都說深度學(xué)習的可(kě)解釋性很(hěn)差,因為(wèi)有(yǒu)時候深度學(xué)習雖然能(néng)有(yǒu)好的表現,但是我們并不知道他(tā)的原理(lǐ)是什麽。



深度學(xué)習的優缺點


優點1:學(xué)習能(néng)力強



從結果來看,深度學(xué)習的表現非常好,他(tā)的學(xué)習能(néng)力非常強。



優點2:覆蓋範圍廣,适應性好



深度學(xué)習的神經網絡層數很(hěn)多(duō),寬度很(hěn)廣,理(lǐ)論上可(kě)以映射到任意函數,所以能(néng)解決很(hěn)複雜的問題。



優點3:數據驅動,上限高



深度學(xué)習高度依賴數據,數據量越大,他(tā)的表現就越好。在圖像識别、面部識别、NLP 等部分(fēn)任務(wù)甚至已經超過了人類的表現。同時還可(kě)以通過調參進一步提高他(tā)的上限。



優點4:可(kě)移植性好



由于深度學(xué)習的優異表現,有(yǒu)很(hěn)多(duō)框架可(kě)以使用(yòng),例如 TensorFlow、Pytorch。這些框架可(kě)以兼容很(hěn)多(duō)平台。



缺點1:計算量大,便攜性差



深度學(xué)習需要大量的數據很(hěn)大量的算力,所以成本很(hěn)高。并且現在很(hěn)多(duō)應用(yòng)還不适合在移動設備上使用(yòng)。目前已經有(yǒu)很(hěn)多(duō)公(gōng)司和團隊在研發針對便攜設備的芯片。這個問題未來會得到解決。



缺點2:硬件需求高



深度學(xué)習對算力要求很(hěn)高,普通的 CPU 已經無法滿足深度學(xué)習的要求。主流的算力都是使用(yòng) GPU 和 TPU,所以對于硬件的要求很(hěn)高,成本也很(hěn)高。



缺點3:模型設計複雜



深度學(xué)習的模型設計非常複雜,需要投入大量的人力物(wù)力和時間來開發新(xīn)的算法和模型。大部分(fēn)人隻能(néng)使用(yòng)現成的模型。



缺點4:沒有(yǒu)”人性”,容易存在偏見



由于深度學(xué)習依賴數據,并且可(kě)解釋性不高。在訓練數據不平衡的情況下會出現性别歧視、種族歧視等問題。



4種典型的深度學(xué)習算法


卷積神經網絡 - CNN


CNN 的價值:


能(néng)夠将大數據量的圖片有(yǒu)效的降維成小(xiǎo)數據量(并不影響結果)


能(néng)夠保留圖片的特征,類似人類的視覺原理(lǐ)



CNN 的基本原理(lǐ):


卷積層 – 主要作(zuò)用(yòng)是保留圖片的特征


池化層 – 主要作(zuò)用(yòng)是把數據降維,可(kě)以有(yǒu)效的避免過拟合


全連接層 – 根據不同任務(wù)輸出我們想要的結果



CNN 的實際應用(yòng):


圖片分(fēn)類、檢索


目标定位檢測


目标分(fēn)割


人臉識别


骨骼識别


了解更多(duō)《一文(wén)看懂卷積神經網絡-CNN(基本原理(lǐ)+獨特價值+實際應用(yòng))》



循環神經網絡 - RNN


RNN 是一種能(néng)有(yǒu)效的處理(lǐ)序列數據的算法。比如:文(wén)章内容、語音音頻、股票價格走勢…



之所以他(tā)能(néng)處理(lǐ)序列數據,是因為(wèi)在序列中(zhōng)前面的輸入也會影響到後面的輸出,相當于有(yǒu)了“記憶功能(néng)”。但是 RNN 存在嚴重的短期記憶問題,長(cháng)期的數據影響很(hěn)小(xiǎo)(哪怕他(tā)是重要的信息)。



于是基于 RNN 出現了 LSTM 和 GRU 等變種算法。這些變種算法主要有(yǒu)幾個特點:



長(cháng)期信息可(kě)以有(yǒu)效的保留


挑選重要信息保留,不重要的信息會選擇“遺忘”



RNN 幾個典型的應用(yòng)如下:


文(wén)本生成


語音識别


機器翻譯


生成圖像描述


視頻标記


了解更多(duō)《一文(wén)看懂循環神經網絡-RNN(獨特價值+優化算法+實際應用(yòng))》



生成對抗網絡 - GANs


假設一個城市治安(ān)混亂,很(hěn)快,這個城市裏就會出現無數的小(xiǎo)偷。在這些小(xiǎo)偷中(zhōng),有(yǒu)的可(kě)能(néng)是盜竊高手,有(yǒu)的可(kě)能(néng)毫無技(jì )術可(kě)言。假如這個城市開始整饬其治安(ān),突然開展一場打擊犯罪的「運動」,警察們開始恢複城市中(zhōng)的巡邏,很(hěn)快,一批「學(xué)藝不精(jīng)」的小(xiǎo)偷就被捉住了。之所以捉住的是那些沒有(yǒu)技(jì )術含量的小(xiǎo)偷,是因為(wèi)警察們的技(jì )術也不行了,在捉住一批低端小(xiǎo)偷後,城市的治安(ān)水平變得怎樣倒還不好說,但很(hěn)明顯,城市裏小(xiǎo)偷們的平均水平已經大大提高了。



警察們開始繼續訓練自己的破案技(jì )術,開始抓住那些越來越狡猾的小(xiǎo)偷。随着這些職業慣犯們的落網,警察們也練就了特别的本事,他(tā)們能(néng)很(hěn)快能(néng)從一群人中(zhōng)發現可(kě)疑人員,于是上前盤查,并最終逮捕嫌犯;小(xiǎo)偷們的日子也不好過了,因為(wèi)警察們的水平大大提高,如果還想以前那樣表現得鬼鬼祟祟,那麽很(hěn)快就會被警察捉住。為(wèi)了避免被捕,小(xiǎo)偷們努力表現得不那麽「可(kě)疑」,而魔高一尺、道高一丈,警察也在不斷提高自己的水平,争取将小(xiǎo)偷和無辜的普通群衆區(qū)分(fēn)開。随着警察和小(xiǎo)偷之間的這種「交流」與「切磋」,小(xiǎo)偷們都變得非常謹慎,他(tā)們有(yǒu)着極高的偷竊技(jì )巧,表現得跟普通群衆一模一樣,而警察們都練就了「火眼金睛」,一旦發現可(kě)疑人員,就能(néng)馬上發現并及時控制——最終,我們同時得到了最強的小(xiǎo)偷和最強的警察。



了解更多(duō)《什麽是生成對抗網絡 - GAN?(基本概念+工(gōng)作(zuò)原理(lǐ))》



深度強化學(xué)習 - RL


強化學(xué)習算法的思路非常簡單,以遊戲為(wèi)例,如果在遊戲中(zhōng)采取某種策略可(kě)以取得較高的得分(fēn),那麽就進一步「強化」這種策略,以期繼續取得較好的結果。這種策略與日常生活中(zhōng)的各種「績效獎勵」非常類似。我們平時也常常用(yòng)這樣的策略來提高自己的遊戲水平。



在 Flappy bird 這個遊戲中(zhōng),我們需要簡單的點擊操作(zuò)來控制小(xiǎo)鳥,躲過各種水管,飛的越遠(yuǎn)越好,因為(wèi)飛的越遠(yuǎn)就能(néng)獲得更高的積分(fēn)獎勵。



這就是一個典型的強化學(xué)習場景:



機器有(yǒu)一個明确的小(xiǎo)鳥角色——代理(lǐ)


需要控制小(xiǎo)鳥飛的更遠(yuǎn)——目标


整個遊戲過程中(zhōng)需要躲避各種水管——環境


躲避水管的方法是讓小(xiǎo)鳥用(yòng)力飛一下——行動


飛的越遠(yuǎn),就會獲得越多(duō)的積分(fēn)——獎勵


你會發現,強化學(xué)習和監督學(xué)習、無監督學(xué)習 最大的不同就是不需要大量的“數據喂養”。而是通過自己不停的嘗試來學(xué)會某些技(jì )能(néng)。



了解更多(duō):《一文(wén)看懂什麽是強化學(xué)習?(基本概念+應用(yòng)場景+主流算法)》



總結



深度學(xué)習屬于機器學(xué)習的範疇,深度學(xué)習可(kě)以說是在傳統神經網絡基礎上的升級,約等于神經網絡。



深度學(xué)習和傳統機器學(xué)習在數據預處理(lǐ)上都是類似的。核心差别在特征提取環節,深度學(xué)習由機器自己完成特征提取,不需要人工(gōng)提取。



深度學(xué)習的優點:


學(xué)習能(néng)力強


覆蓋範圍廣,适應性好


數據驅動,上限高


可(kě)移植性好



深度學(xué)習的缺點:


計算量大,便攜性差


硬件需求高


模型設計複雜


沒有(yǒu)”人性”,容易存在偏見



深度學(xué)習的4種典型算法:


卷積神經網絡 - CNN


循環神經網絡 - RNN


生成對抗網絡 - GANs


深度強化學(xué)習 - RL



文(wén)章來源于産(chǎn)品經理(lǐ)的 AI 知識庫,作(zuò)者easyAI