轉載請注明作者:夢里風林
Github工程地址:https://github.com/ahangchen/GDLnotes
歡迎star,有問題可以到Issue區討論
官方教程地址
視頻/字幕下載
Limit of Linear Model
- 實際要調整的參數很多
如果有N個Class,K個Label,需要調整的參數就有(N+1)K個
-
Linear Model不能應對非線性的問題
-
Linear Model的好處
- GPU就是設計用於大矩陣相乘的,因此它們用來計算Linear Model非常efficient
- Stable:input的微小改變不會很大地影響output
- 求導方便:線性求導是常數
-
我們希望參數函數是線性的,但整個model是非線性的
-
所以需要對各個線性模型做非線性組合
- 最簡單的非線性組合:分段線性函數(RELU)
Neural network
- 用一個RELU作為中介,一個Linear Model的輸出作為其輸入,其輸出作為另一個Linear Model的輸入,使其能夠解決非線性問題
- 神經網絡並不一定要完全像神經元那樣工作
- Chain Rule:復合函數求導規律
- Lots of data reuse and easy to implement(a simple data pipeline)
- Back propagation
- 計算train_loss時,數據正向流入,計算梯度時,逆向計算
- 計算梯度需要的內存和計算時間是計算train_loss的兩倍
Deep Neural Network
Current two layer neural network:
優化:
-
優化RELU(隱藏層), wider
-
增加linear層,layer deeper
- Performance: few parameters by deeper
- 隨層級變高,獲得的信息越綜合,越符合目標
About t-model
- t-model只有在有大量數據時有效
- 今天我們才有高效的大數據訓練方法:Better Regularization
- 難以決定適應問題的神經網絡的規模,因此通常選擇更大的規模,並防止過擬合
Avoid Overfit
Early Termination
- 當訓練結果與驗證集符合度下降時,就停止訓練
Regulation
- 給神經網絡里加一些常量,做一些限制,減少自由的參數
- L2 regularization
在計算train loss時,增加一個l2 norm作為新的損失,這里需要乘一個β(Hyper parameter),調整這個新的項的值
Hyper parameter:拍腦袋參數→_→
- l2模的導數容易計算,即W本身
DropOut
最近才出現,效果極其好
-
從一個layer到另一個layer的value被稱為activation
-
將一個layer到另一個layer的value的中,隨機地取一半的數據變為0,這其實是將一半的數據直接丟掉
-
由於數據缺失,所以就強迫了神經網絡學習redundant的知識,以作為損失部分的補充
-
由於神經網絡中總有其他部分作為損失部分的補充,所以最后的結果還是OK的
-
More robust and prevent overfit
-
如果這種方法不能生效,那可能就要使用更大的神經網絡了
-
評估神經網絡時,就不需要DropOut,因為需要確切的結果
-
可以將所有Activation做平均,作為評估的依據
-
因為我們在訓練時去掉了一半的隨機數據,如果要讓得到Activation正確量級的平均值,就需要將沒去掉的數據翻倍
覺得得我的文章對您有幫助的話,就給個star吧~