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

本文首發自 easyAI - 人工智能知識庫算法

原文地址:《一文看懂深度學習(白話解釋+8個優缺點+4個典型算法)網絡

一文看懂深度學習

深度學習有很好的表現,引領了第三次人工智能的浪潮。目前大部分表現優異的應用都用到了深度學習,大紅大紫的 AlphaGo 就使用到了深度學習。架構

本文將詳細的給你們介紹深度學習的基本概念、優缺點和主流的4個典型算法。app

深度學習、神經網絡、機器學習、人工智能的關係

深度學習、機器學習、人工智能框架

簡單來講:機器學習

  1. 深度學習是機器學習的一個分支(最重要的分支)
  2. 機器學習是人工智能的一個分支

深度學習、機器學習、人工智能的關係

目前表現最好的一些應用大部分都是深度學習,正是由於深度學習的突出表現,引起了人工智能的第三次浪潮。詳情能夠看《人工智能的發展史——3次 AI 浪潮函數

深度學習、神經網絡學習

深度學習的概念源於人工神經網絡的研究,可是並不徹底等於傳統神經網絡。大數據

不過在叫法上,不少深度學習算法中都會包含"神經網絡"這個詞,好比:卷積神經網絡、循環神經網絡。優化

因此,深度學習能夠說是在傳統神經網絡基礎上的升級,約等於神經網絡。

深度學習和神經網絡的關係

大白話解釋深度學習

看了不少版本的解釋,發現李開復在《人工智能》一書中講的是最容易理解的,因此下面直接引用他的解釋:

咱們以識別圖片中的漢字爲例。

假設深度學習要處理的信息是「水流」,而處理數據的深度學習網絡是一個由管道和閥門組成的巨大水管網絡。網絡的入口是若干管道開口,網絡的出口也是若干管道開口。這個水管網絡有許多層,每一層由許多個能夠控制水流流向與流量的調節閥。根據不一樣任務的須要,水管網絡的層數、每層的調節閥數量能夠有不一樣的變化組合。對複雜任務來講,調節閥的總數能夠成千上萬甚至更多。水管網絡中,每一層的每一個調節閥都經過水管與下一層的全部調節閥鏈接起來,組成一個從前到後,逐層徹底連通的水流系統。

深度學習相似一個水流系統

那麼,計算機該如何使用這個龐大的水管網絡來學習識字呢?

好比,當計算機看到一張寫有「田」字的圖片,就簡單將組成這張圖片的全部數字(在計算機裏,圖片的每一個顏色點都是用「0」和「1」組成的數字來表示的)全都變成信息的水流,從入口灌進水管網絡。

深度學習-將圖片數字化

咱們預先在水管網絡的每一個出口都插一塊字牌,對應於每個咱們想讓計算機認識的漢字。這時,由於輸入的是「田」這個漢字,等水流流過整個水管網絡,計算機就會跑到管道出口位置去看一看,是否是標記由「田」字的管道出口流出來的水流最多。若是是這樣,就說明這個管道網絡符合要求。若是不是這樣,就調節水管網絡裏的每個流量調節閥,讓「田」字出口「流出」的水最多。

這下,計算機要忙一陣了,要調節那麼多閥門!好在計算機的速度快,暴力的計算加上算法的優化,老是能夠很快給出一個解決方案,調好全部閥門,讓出口處的流量符合要求。

深度學習-識別田字

下一步,學習「申」字時,咱們就用相似的方法,把每一張寫有「申」字的圖片變成一大堆數字組成的水流,灌進水管網絡,看一看,是否是寫有「申」字的那個管道出口流水最多,若是不是,咱們還得再調整全部的閥門。這一次,要既保證剛纔學過的「田」字不受影響,也要保證新的「申」字能夠被正確處理。

深度學習-學習申字

如此反覆進行,知道全部漢字對應的水流均可以按照指望的方式流過整個水管網絡。這時,咱們就說,這個水管網絡是一個訓練好的深度學習模型了。當大量漢字被這個管道網絡處理,全部閥門都調節到位後,整套水管網絡就能夠用來識別漢字了。這時,咱們能夠把調節好的全部閥門都「焊死」,靜候新的水流到來。

深度學習-學習全部漢字

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

深度學習大體就是這麼一個用人類的數學知識與計算機算法構建起來的總體架構,再結合儘量多的訓練數據以及計算機的大規模運算能力去調節內部參數,儘量逼近問題目標的半理論、半經驗的建模方式。

傳統機器學習 VS 深度學習

傳統機器學習和深度學習的類似點

傳統機器學習和深度學習的類似點

在數據準備和預處理方面,二者是很類似的。

他們均可能對數據進行一些操做:

  • 數據清洗
  • 數據標籤
  • 歸一化
  • 去噪
  • 降維

對於數據預處理感興趣的能夠看看《AI 數據集最多見的6大問題(附解決方案)

傳統機器學習和深度學習的核心區別

傳統機器學習和深度學習的核心區別

傳統機器學習的特徵提取主要依賴人工,針對特定簡單任務的時候人工提取特徵會簡單有效,可是並不能通用。

深度學習的特徵提取並不依靠人工,而是機器自動提取的。這也是爲何你們都說深度學習的可解釋性不好,由於有時候深度學習雖然能有好的表現,可是咱們並不知道他的原理是什麼。

深度學習的優缺點

深度學習的優缺點

優勢1:學習能力強

從結果來看,深度學習的表現很是好,他的學習能力很是強。

優勢2:覆蓋範圍廣,適應性好

深度學習的神經網絡層數不少,寬度很廣,理論上能夠映射到任意函數,因此能解決很複雜的問題。

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

深度學習高度依賴數據,數據量越大,他的表現就越好。在圖像識別、面部識別、NLP 等部分任務甚至已經超過了人類的表現。同時還能夠經過調參進一步提升他的上限。

優勢4:可移植性好

因爲深度學習的優異表現,有不少框架可使用,例如 TensorFlowPytorch。這些框架能夠兼容不少平臺。

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

深度學習須要大量的數據很大量的算力,因此成本很高。而且如今不少應用還不適合在移動設備上使用。目前已經有不少公司和團隊在研發針對便攜設備的芯片。這個問題將來會獲得解決。

缺點2:硬件需求高

深度學習對算力要求很高,普通的 CPU 已經沒法知足深度學習的要求。主流的算力都是使用 GPU 和 TPU,因此對於硬件的要求很高,成本也很高。

缺點3:模型設計複雜

深度學習的模型設計很是複雜,須要投入大量的人力物力和時間來開發新的算法和模型。大部分人只能使用現成的模型。

缺點4:沒有"人性",容易存在偏見

因爲深度學習依賴數據,而且可解釋性不高。在訓練數據不平衡的狀況下會出現性別歧視、種族歧視等問題。

4種典型的深度學習算法

4種典型的深度學習算法

卷積神經網絡 - CNN

CNN 的價值:

  1. 可以將大數據量的圖片有效的降維成小數據量(並不影響結果)
  2. 可以保留圖片的特徵,相似人類的視覺原理

CNN 的基本原理:

  1. 卷積層 – 主要做用是保留圖片的特徵
  2. 池化層 – 主要做用是把數據降維,能夠有效的避免過擬合
  3. 全鏈接層 – 根據不一樣任務輸出咱們想要的結果

CNN 的實際應用:

  1. 圖片分類、檢索
  2. 目標定位檢測
  3. 目標分割
  4. 人臉識別
  5. 骨骼識別

瞭解更多《一文看懂卷積神經網絡-CNN(基本原理+獨特價值+實際應用)

循環神經網絡 - RNN

RNN 是一種能有效的處理序列數據的算法。好比:文章內容、語音音頻、股票價格走勢…

之因此他能處理序列數據,是由於在序列中前面的輸入也會影響到後面的輸出,至關於有了「記憶功能」。可是 RNN 存在嚴重的短時間記憶問題,長期的數據影響很小(哪怕他是重要的信息)。

因而基於 RNN 出現了 LSTM 和 GRU 等變種算法。這些變種算法主要有幾個特色:

  1. 長期信息能夠有效的保留
  2. 挑選重要信息保留,不重要的信息會選擇「遺忘」

RNN 幾個典型的應用以下:

  1. 文本生成
  2. 語音識別
  3. 機器翻譯
  4. 生成圖像描述
  5. 視頻標記

瞭解更多《一文看懂循環神經網絡-RNN(獨特價值+優化算法+實際應用)

生成對抗網絡 - GANs

假設一個城市治安混亂,很快,這個城市裏就會出現無數的小偷。在這些小偷中,有的多是盜竊高手,有的可能毫無技術可言。假如這個城市開始整飭其治安,忽然開展一場打擊犯罪的「運動」,警察們開始恢復城市中的巡邏,很快,一批「學藝不精」的小偷就被捉住了。之因此捉住的是那些沒有技術含量的小偷,是由於警察們的技術也不行了,在捉住一批低端小偷後,城市的治安水平變得怎樣倒還很差說,但很明顯,城市裏小偷們的平均水平已經大大提升了。

警察們開始繼續訓練本身的破案技術,開始抓住那些愈來愈狡猾的小偷。隨着這些職業慣犯們的落網,警察們也練就了特別的本事,他們能很快能從一羣人中發現可疑人員,因而上前盤查,並最終逮捕嫌犯;小偷們的日子也很差過了,由於警察們的水平大大提升,若是還想之前那樣表現得鬼鬼祟祟,那麼很快就會被警察捉住。爲了不被捕,小偷們努力表現得不那麼「可疑」,而魔高一尺、道高一丈,警察也在不斷提升本身的水平,爭取將小偷和無辜的普通羣衆區分開。隨着警察和小偷之間的這種「交流」與「切磋」,小偷們都變得很是謹慎,他們有着極高的偷竊技巧,表現得跟普通羣衆如出一轍,而警察們都練就了「火眼金睛」,一旦發現可疑人員,就能立刻發現並及時控制——最終,咱們同時獲得了最強的小偷和最強的警察。

同時獲得了最強的小偷和最強的警察

瞭解更多《什麼是生成對抗網絡 - GAN?(基本概念+工做原理)

深度強化學習 - RL

強化學習算法的思路很是簡單,以遊戲爲例,若是在遊戲中採起某種策略能夠取得較高的得分,那麼就進一步「強化」這種策略,以期繼續取得較好的結果。這種策略與平常生活中的各類「績效獎勵」很是相似。咱們平時也經常用這樣的策略來提升本身的遊戲水平。

在 Flappy bird 這個遊戲中,咱們須要簡單的點擊操做來控制小鳥,躲過各類水管,飛的越遠越好,由於飛的越遠就能得到更高的積分獎勵。

這就是一個典型的強化學習場景:

  • 機器有一個明確的小鳥角色——代理
  • 須要控制小鳥飛的更遠——目標
  • 整個遊戲過程當中須要躲避各類水管——環境
  • 躲避水管的方法是讓小鳥用力飛一下——行動
  • 飛的越遠,就會得到越多的積分——獎勵

遊戲是典型的強化學習場景

你會發現,強化學習和監督學習、無監督學習 最大的不一樣就是不須要大量的「數據餵養」。而是經過本身不停的嘗試來學會某些技能。

瞭解更多:《一文看懂什麼是強化學習?(基本概念+應用場景+主流算法)

總結

深度學習屬於機器學習的範疇,深度學習能夠說是在傳統神經網絡基礎上的升級,約等於神經網絡。

深度學習和傳統機器學習在數據預處理上都是相似的。核心差異在特徵提取環節,深度學習由機器本身完成特徵提取,不須要人工提取。

深度學習的優勢:

  1. 學習能力強
  2. 覆蓋範圍廣,適應性好
  3. 數據驅動,上限高
  4. 可移植性好

深度學習的缺點:

  1. 計算量大,便攜性差
  2. 硬件需求高
  3. 模型設計複雜
  4. 沒有"人性",容易存在偏見

深度學習的4種典型算法:

  1. 卷積神經網絡 - CNN
  2. 循環神經網絡 - RNN
  3. 生成對抗網絡 - GANs
  4. 深度強化學習 - RL
相關文章
相關標籤/搜索