Deep Learning Tutorial

大綱

  • 深度學(xué)習(xí)介紹
  • 深度學(xué)習(xí)訓(xùn)練的技巧
  • 神經(jīng)網(wǎng)絡(luò)的變體
  • 展望

Lecture I:概論

1.介紹深度學(xué)習(xí)

深度學(xué)習(xí)過程大體分為三個(gè)步驟:(1)定義方法(2)判斷方法優(yōu)劣(3)選出最佳方法


(1)定義方法——神經(jīng)網(wǎng)絡(luò)

深度學(xué)習(xí)可以理解為多層的神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)的思想來源于對于人腦的生理上的研究,人腦由數(shù)億個(gè)神經(jīng)元組成,神經(jīng)元通過軸突互相連接通信。神經(jīng)網(wǎng)絡(luò)和人腦類似,存在多個(gè)層級(layer),每個(gè)層級都有多個(gè)節(jié)點(diǎn)(神經(jīng)元neuron),層級和層級之間相互連接(軸突),最終輸出結(jié)果。



對于神經(jīng)網(wǎng)絡(luò)的計(jì)算能力可以理解為通過一層層Layer的計(jì)算歸納,逐步的將抽象的原始數(shù)據(jù)變的具體。以圖片識別為例,輸入是一個(gè)個(gè)像素點(diǎn),經(jīng)過每層神經(jīng)網(wǎng)絡(luò),逐步變化成為線、面、對象的概念,然后機(jī)器有能力能夠識別出來。


(2)判斷方法優(yōu)劣

首先準(zhǔn)備待訓(xùn)練的數(shù)據(jù)和它們的標(biāo)簽,最終目標(biāo)是由訓(xùn)練數(shù)據(jù)學(xué)習(xí)而來的。
我們用學(xué)習(xí)出來的參數(shù)對測試數(shù)據(jù)進(jìn)行計(jì)算,得出對應(yīng)的預(yù)測(y)然后和真實(shí)的測試數(shù)據(jù)的目標(biāo)值(t)進(jìn)行比對,y和t之間的差距往往就是Loss。
我們評估一個(gè)方法的好壞,就是看這個(gè)Loss是不是盡可能小。

(3)選出最佳方法

獲得最佳的學(xué)習(xí)是采用梯度下降算法,作者也提到梯度下降算法存在局部最優(yōu)解的問題,即找到一條最“陡峭”的路下山。人們往往認(rèn)為機(jī)器無所不能,實(shí)際上更像是在一個(gè)地圖上面拓荒,對周邊一無所知。

神經(jīng)網(wǎng)絡(luò)計(jì)算梯度的算法是反向傳播算法,簡稱BP。

2.Why Deep?

很顯然,神經(jīng)網(wǎng)絡(luò)的參數(shù)越多,預(yù)測能力就越好。那么如果是同樣的參數(shù)情況下,為什么層級較多的表現(xiàn)會更好呢?



作者認(rèn)為深度網(wǎng)絡(luò)可以帶來模塊化的好處,模塊化是從數(shù)據(jù)中自動學(xué)習(xí)的。隨著網(wǎng)絡(luò)的層級變多,神經(jīng)網(wǎng)絡(luò)會將像素元素逐漸歸納出一些基本的特征,進(jìn)而變成紋理,進(jìn)而變成對象。


3.Keras

TensorFlow or Theano的接口。

Lecture II:訓(xùn)練方法

經(jīng)過神經(jīng)網(wǎng)絡(luò)訓(xùn)練之后會發(fā)現(xiàn)兩種問題:
1.訓(xùn)練結(jié)果很差→重新選擇訓(xùn)練方式
2.測試結(jié)果很差→(往往由于過擬合導(dǎo)致)重新定義方法

1.優(yōu)化訓(xùn)練方法的手段:

(1)Choosing proper loss
選擇合適的Loss function,使用Cross Entropy(交叉熵)效果要優(yōu)于Mean Square Error(均方差)。

(2)Mini-batch
每次訓(xùn)練使用少量數(shù)據(jù)而不是全量數(shù)據(jù)效率更高。

(3)New activation function
使用ReLU(線性整流函數(shù))替代Sigmoid可以解決梯度消失的問題,可以訓(xùn)練更深的神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)不是越深越好。

(4)Adaptive Learning Rate
可以隨著迭代不斷自我調(diào)整,提高學(xué)習(xí)效率。

(5)Momentum
可以一定程度上避免陷入局部最低點(diǎn)的問題。

2.避免過度擬合的方法

增加數(shù)據(jù)量是最簡單的方法:創(chuàng)造更多的數(shù)據(jù)、給數(shù)據(jù)加噪聲。

(1)Early Stopping
使用cross validation的方式,不斷對validation data進(jìn)行檢驗(yàn),一旦發(fā)現(xiàn)預(yù)測精度下降則停止。

(2)Regularization(Weight Decay)
參數(shù)正則化的一種方式。刪除無用的聯(lián)系。

(3)Dropout
通過隨機(jī)去掉一些節(jié)點(diǎn)的連接達(dá)到改變網(wǎng)絡(luò)形式,所以會產(chǎn)生出多種網(wǎng)絡(luò)形態(tài),然后匯集得到一個(gè)最佳結(jié)果。

(4)Network Structure
如CNN等其他形態(tài)的網(wǎng)絡(luò)。

Lecture III: 神經(jīng)網(wǎng)絡(luò)的變體

1. 卷積神經(jīng)網(wǎng)絡(luò)(CNN) 廣泛用在圖像處理中


通常情況下,一個(gè)CNN包含多次的卷積、池化,然后Flatten,最終再通過一個(gè)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)預(yù)測。CNN在圖像、語音識別取得非常好的成績,核心的想法在于一些物體的特征往往可以提取出來,并且可能出現(xiàn)在圖片的任何位置,而且通過卷積、池化可以大大減少輸入數(shù)據(jù),加快訓(xùn)練效率。

why CNN for Image?
圖片中的一些模式比整張圖片要小,一個(gè)神經(jīng)元不需要去看見整個(gè)圖片來發(fā)現(xiàn)這種模式,只用少量的參數(shù)來去連接小的區(qū)域即可。卷積網(wǎng)絡(luò)的特性:某些模式比整個(gè)圖片小,相同的模式出現(xiàn)在不同的區(qū)域。下采樣像素不會改變目標(biāo)。

2. 遞歸神經(jīng)網(wǎng)絡(luò)(RNN,Recurrent Neural Network)

RNN的想法是可以將hidden layer的數(shù)據(jù)存儲下來,然后作為輸入給下一個(gè)網(wǎng)絡(luò)學(xué)習(xí)。這種網(wǎng)絡(luò)的想法可以解決自然語言中前后詞語是存在關(guān)聯(lián)性的,所以RNN可以把這些關(guān)聯(lián)性放到網(wǎng)絡(luò)中進(jìn)行學(xué)習(xí)。

Lecture IV: Next Wave

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容