“一天搞懂深度学习”笔记
“一天搞懂深度學習”筆記
1. A brief Introduction of Deep Learning
1.1 Introduction of Deep Learning
- Neuron
權重和偏置稱為神經(jīng)元的參數(shù),區(qū)別于神經(jīng)網(wǎng)絡結構參數(shù),如神經(jīng)元個數(shù),隱含層層數(shù),網(wǎng)絡連接方式等,網(wǎng)絡結構參數(shù)是超參之一, 需要人為根據(jù)經(jīng)驗設置。
- 全連接前饋神經(jīng)網(wǎng)絡
深度意味神經(jīng)網(wǎng)絡具有多個隱含層。
神經(jīng)網(wǎng)絡結構確定了一個函數(shù)集(函數(shù)空間),特定的神經(jīng)元參數(shù)確定了函數(shù)集中一個函數(shù)。
- soft max 輸出層
softmax 輸出層將網(wǎng)絡輸出值歸一化到[0,1), softmax 層的輸出可解釋成輸入vector 屬于不同類的概率值。
- loss function
loss 可以衡量網(wǎng)絡輸出和期望輸出的距離。在網(wǎng)絡結構超參確定的情況下,我們的目標就是尋找一個使loss最小的函數(shù),最終目標轉化為:通過訓練數(shù)據(jù),以最小化 loss 函數(shù)為目標,尋找最佳神經(jīng)元參數(shù)。
- 網(wǎng)絡優(yōu)化算法:尋找最佳神經(jīng)元參數(shù)
基于梯度下降法的BP算法
1.2 why deep ?
實驗證明,網(wǎng)絡參數(shù)的增多,網(wǎng)絡性能提升。
任何復雜函數(shù)均能由單隱含層的網(wǎng)絡擬合出來。
網(wǎng)絡參數(shù)的增多可以通過“廣度學習”和“深度學習”的方式實現(xiàn),哪一種方式更好呢?
在編程中,我門通過定義子函數(shù),實現(xiàn)復雜函數(shù)模塊化,模塊化的好處是子模塊實現(xiàn)簡單、子模塊可以共用、高層調(diào)度實現(xiàn)復雜功能且形式簡潔高效(main 函數(shù)形式通常是elegant的).類似的,我們說深度學習實現(xiàn)了模塊化Modularization
假設我們有一個圖像分類任務,若按照上圖方式訓練各個分類器,則因為長發(fā)男數(shù)據(jù)較少,則 Classifier 2 的性能就較為 weak.
若我們先訓練兩個基分類器,則兩個基分類器因為有足夠數(shù)據(jù),可以訓練得相當好。然后將它們視作module,第二層的每個分類器只需去 call 第一層的兩個共用 modules 的 output ,就可以實現(xiàn)每個分類器的任務。所以雖然長頭發(fā)男生的數(shù)據(jù)依然較少,此時 Classifier 2 的性能卻比較 strong.
在 Deep learnin 中,第一層的每個神經(jīng)元是最 basic 的 classifier ,第二層 將第一層的 classifier 當做 module 去實現(xiàn)復雜的 classifier ,以此類推。
故 deep learning 的好處是: 實現(xiàn)模組化后,每個模塊會變得簡單,所需訓練數(shù)據(jù)較少。(這與人們津津樂談的 AI = 深度學習+人工智能 的說法不同)
關于why deep 的直觀實例,可以參看油管上一個很好的視頻:
But what is a Neural Network? | Chapter 1, deep learning
2.Tips for Training Deep Neural Network
當我們訓練兩個分別為56層和20層的網(wǎng)絡時,在測試集上的表現(xiàn)如右圖所示,我門無法根據(jù) 20-layer 的損失曲線在 56-layer 的下方 ,就得出56-layer 的網(wǎng)絡已經(jīng)過擬合了。因為觀察左圖兩者在訓練集上的損失曲線,我們發(fā)現(xiàn),56 layer 的網(wǎng)絡性能居然弱于 20-layer, 這是不合理的,因為我們只要將56- layer 的網(wǎng)絡前20 層參數(shù)與 20-layer保持一致,則損失曲線便與20-layer identity . 所以根據(jù)在訓練集上的損失曲線表現(xiàn)看,我們對56-layer 的網(wǎng)絡訓練得還不夠好,可能落入了局部最優(yōu)。
所以我們得根據(jù)網(wǎng)絡在訓練集上的表現(xiàn)和在測試集上的表現(xiàn),對癥下藥。例如drop out 就是針對網(wǎng)絡在測試集上的表現(xiàn)較差使用的技術。
2.1 train set: choosing proper loss
當我們使用softmax輸出層時,我們傾向于使用交叉熵損失函數(shù)。原因是:相較平方損失函數(shù),交叉熵損失函數(shù)的地貌更加陡峭,梯度更大,更不容易陷入局部最優(yōu)。
[圖片上傳中...(image.png-60b999-1518163976905-0)]
2.2 train set: Mini-batch
若batchsize 為1,就成為了隨機梯度下降。
但我們一般不將batchsize 設為1.從上面PPT 可以看出,在使用GPU 進行并行運算后,在相同時間內(nèi),batchsize = 1和batchsize =10,參數(shù)的更新總次數(shù)是相近的,但是batchsize = 10 時更穩(wěn)定,收斂地更快。
當batchsize 過大時,則一方面超出了GPU硬件并行能力,另一方面,此時去train 網(wǎng)絡時會經(jīng)常進入鞍點或局部極小值而無法逃離,訓練過程中止,performance 下降,所以引入隨機性是必要的,有助于逃離局部最優(yōu)和鞍點。
2.3 train set: New activation function
- ReLU
使用ReLU的好處是:
計算快速,激活機制與生理類似,相當于無窮多個加權sigmoid函數(shù)加權,可以防止梯度消失。
使用ReLU后,網(wǎng)絡變成輕量的線性網(wǎng)絡,并且這個線性網(wǎng)絡隨著輸入input的不同而不同,相當于用多個線性網(wǎng)絡去逼近一個復雜網(wǎng)絡
- Maxout
Maxout 方法認為每個神經(jīng)元的激活函數(shù)是可以學習的
在maxout 的隱層中的一個神經(jīng)元(圖中的紅色框)需要比普通網(wǎng)絡的神經(jīng)元多學習一倍參數(shù),或者多倍(取決于在一個group 中的元素個數(shù),一個group 中的元素個數(shù)人為指定)
上圖指出,ReLU是maxout學習到的激活函數(shù)中的一個特例, 即在Maxout 中學習到的參數(shù)為w,b,0,0時,則此時神經(jīng)元的激活函數(shù)就等于ReLU。
學習到一個神經(jīng)元的參數(shù)都非零時,則激活函數(shù)為上圖形式。
maxout 可以學習到的激活函數(shù)為任意的分段線性凸函數(shù),分段數(shù)目取決于一個group中的elementshumu
與ReLU一樣,給定一個input,網(wǎng)絡將變成一個線性網(wǎng)絡,并且這個線性網(wǎng)絡隨著input的不同而改變。給定一個input,我們可以對這個線性網(wǎng)絡進行訓練,更新部分參數(shù),再給定一個input,我們可以對產(chǎn)生的另一個線性網(wǎng)絡進行訓練,更新部分參數(shù)。所以雖然max操作不好求導,但是采用maxout的網(wǎng)絡仍然是可以train 的。
2.4 train set: Adaptive Learning Rate
- Adagrad
- RMSprop
與Adagrad 只有略微的不同,RMSprop對過去梯度平方和做了加權衰減。
- Momentum
- Adam
2.6 test set: early stopping
early stopping其實是在控制epochs的大小
2.7 test set : Regularization
在神經(jīng)網(wǎng)絡優(yōu)化中,正則項技術其實與early stopping 的功能是近似重疊的。考慮網(wǎng)絡參數(shù)初始化為接近零的值,隨著更新次數(shù)的增加,參數(shù)會越來越偏離0。所以如果參數(shù)更新次數(shù)較小,參數(shù)偏離0的程度下降,而early stopping 就是為了控制epochs 的大小。正則化技術目的也是希望參數(shù)越接近零越好。所以說兩者的功能是近似的。
2.8 test set: Dropout
dripout 有效性的解釋:
3.Variants of Neural Network
3.1 Convolutional Neural Network (CNN)
3.2 Recurrent Neural Network (RNN)
4.Next Wave
4.1Supervised Learning
4.1.1 Ultra Deep Network
4.1.2 Attention Model
4.2 Reinforcement Learning
4.3 Unsupervised Learning
4.3.1 Image: Realizing what the World Looks Like
4.3.2 Text: Understanding the Meaning of Words
4.3.3 Audio: Learning human language without supervision
參考資料
一天搞懂深度學習
</div></div> </div>總結
以上是生活随笔為你收集整理的“一天搞懂深度学习”笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组件传参
- 下一篇: 一文搞懂深度学习中常用的优化算法