【深度學習】|01復旦大學邱錫鵬《神經網絡與深度學習》學習小筆記(四)優化正則
優化與正則
網絡優化難點,改善方法
一、優化與正則
優化:經驗風險最小
正則化:降低模型復雜度
(1)網絡優化
a.網絡優化難點:
結構差異大
沒有通用的優化算法
超參數多
非凸優化問題
參數初始化
逃離局部最優(鞍點)
梯度消失(爆炸)問題
b.神經網絡優化的改善方法:
更有效的優化算法來提高優化方法的效率和穩定性
動態學習率調整
梯度估計修正
更好的參數初始化方法、數據預處理方法來提高優化效率
修改網絡結構來得到更好的優化地形
優化地形( Optimization Landscape )指在高維空間中損失函數的曲面形狀
好的優化地形通常比較平滑
使用 ReLU 激活函數、殘差連接、逐層歸一化等
使用更好的超參數優化方法
c.Batchsize和learning rate
批量越大,隨機梯度的方差越小,引入的噪聲也越小,訓練也越穩定,因此可以設置較大的學習率.
而批量較小時,需要設置較小的學習率,否則模型會不收斂.
d.優化算法 wt = wt-lr*m/sqirt(V)
自己整理的一些資料:
鏈接
更多:知乎
幫助記憶一部分:
元素:梯度,一階動量m,二階動量V
SGD(一階動量)
SGDM(加在一階動量上的momentum)
m_w = beta*m_w+(1-beta)*grads[0]
Adagrad(一階gradient,累加的二階動量)
RMSprop(一階gradient,momentum的二階動量)
AdaDelta在RMSprop的基礎上多維護了一個學習率
adam(給Adagrad的兩個都加momentum)

e.梯度截斷
梯度截斷是一種比較簡單的啟發式方法,把梯度的模限定在一個區間,當梯度的模小于或大于這個區間時就進行截斷。
f.參數初始化
1.預訓練初始化
2.隨機初始化
Gaussian初始化方法是最簡單的初始化方法,參數從一個固定均值(比如0)和固定方差(比如0.01)的Gaussian分布進行隨機初始化。
均勻分布初始化:參數可以在區間[?r,r]內采用均勻分布進行初始化。
基于方差縮放的參數初始化
正交初始化
1 )用均值為 0 、方差為 1 的高斯分布初始化一個矩陣;
2 )將這個矩陣用奇異值分解得到兩個正交矩陣,并使用其中之一作為權重矩陣。
3.固定值初始化
偏置( Bias )通常用 0 來初始化
g.歸一化方法
批量歸一化(Batch Normalization,BN)
層歸一化(Layer Normalization)
權重歸一化(Weight Normalization)
局部響應歸一化(Local Response Normalization,LRN)
h.超參數優化
網格搜索: ??_1 × ??_2 ×···× ??_?? 個取值組合
隨機搜索: 隨機搜索
貝葉斯優化
動態資源分配
神經架構搜索
i.Dropout :就是集成學習,bagging的一種策略
對于一個神經層?? = ??(????+??),引入一個丟棄函數??(·)使得?? = ??(????(??)+??)。

其中?? ∈ 〖{0,1}〗^?? 是丟棄掩碼(dropout mask),通過以概率為p的貝努力分布隨機生成
NLP方向暫時就整理到這里吧^.^后續會把Self-Attention,Transformer,BERT放在一起整理
浙公網安備 33010602011771號