2016年8月30日 星期二

Deep learning 知識整理

自從AlphaGo在與南韓棋士李世石的圍棋對戰中取得了4勝ㄧ敗的好成績

背後的深度學習 (Deep Learning) 技術成為最近相當火紅的名詞

淺談Alpha Go所涉及的深度學習技術 ( Alpha GO 刊登在 Nature 上的論文 )

於是在這邊嘗試著用淺顯的語言試圖描述這個技術

以下的文章是目前看過講述深度學習最詳盡的文章



配合影片


一天搞懂深度學習 by 李宏毅教授


Wiki上寫得有點模糊,引述其中最重要研究里程碑的部分 

深度神經網路是一種具備至少一個隱層的神經網路。與淺層神經網路類似,深度神經網路也能夠為複雜非線性系統提供建模,但多出的層次為模型提供了更高的抽象層次,因而提高了模型的能力。深度神經網路通常都是前饋神經網路,但也有語言建模等方面的研究將其拓展到遞迴神經網路[43]卷積深度神經網路(Covolutional Neuron Networks, CNN)在電腦視覺領域得到了成功的應用[44]。此後,卷積神經網路也作為聽覺模型被使用在自動語音識別領域,較以往的方法獲得了更優的結果[45]

簡單來說 Deep learning 是具備至少一個隱藏層(hidden layer) 半監督式的機器學習方法 (註1)

可以使用捲積式神經網絡( Convolution Neural Network, CNN )做為實現工具 

至於什麼是CNN呢 ? 下面有一個簡短的影片對CNN的介紹 : 


下面三張圖是 CNN 的示意圖

一起合併起來看算是很容易理解

基本上使用了捲積式神經網絡的技術

能夠在有了特定影像的輸入後,用來做下ㄧ步分類的動作


但是,這邊就需要知道為什麼需要進行 Convolution 與 Pooling (即Subsampling)

Convolution 做的事情是把特徵從影像中提取出來 (至於為什麼,需要翻閱論文來解答)

Pooling(池化) 則是因為需要分類 convolution 的時候產生過多的特徵,不但數量龐大,也容易發生過度擬合(overfitting)的現象。因此,池化是來進行特徵統計的動作,讓它們轉變成比較低維度的資料,也避免過度擬合現象

透過前述的方法對機器學習演算法進行訓練

我們能夠獲得一個具備有學習能力且高可性度預測能力的系統

(尚待補完)

註1 : 机器学习算法汇总:人工神经网络、深度学习及其它



沒有留言:

張貼留言

/* 載入prettify的autoloader */ /* 載入JQuery */