訓練一個神經網絡模型,自然避免不了其中的solver配置,這裡面的超參數的含義你是否知道呢?本文帶你一窺到底!
配置文件中的參數:
base_lr: 0.001
lr_policy: "step"
gamma: 0.1
stepsize: 50000
display: 20
average_loss: 100
momentum: 0.9
weight_decay: 0.0005
一、前四個參數都是關於學習率的設置,初始設置大小為0.001,方式為step;
二、average_loss,是指你在命令行中看到的第一個loss,是100次的平均;
三、weight decay(權值衰減)的使用既不是為了提高收斂精確度也不是為了提高收斂速度,其最終目的是防止過擬合。
在損失函數中,weight decay是放在正則項(regularization)前面的一個係數,正則項一般指示模型的複雜度,所以weight decay的作用是調節模型複雜度對損失函數的影響,若weight decay很大,則複雜的模型損失函數的值也就大。
四、momentum是梯度下降法中一種常用的加速技術。對於一般的SGD,其表達式為:
其中x沿負梯度方向下降。而帶momentum項的SGD則寫生如下形式:
其中β即momentum係數,通俗的理解上面式子就是,如果上一次的momentum與這一次的負梯度方向是相同的,那這次下降的幅度就會加大,所以這樣做能夠達到加速收斂的過程。
五、normalization,batch normalization的是指在神經網絡中激活函數的前面,將
按照特徵進行normalization,這樣做的好處有三點:
1、提高梯度在網絡中的流動。Normalization能夠使特徵全部縮放到[0,1],這樣在反向傳播時候的梯度都是在1左右,避免了梯度消失現象。
2、提升學習速率。歸一化後的數據能夠快速的達到收斂。
3、減少模型訓練對初始化的依賴。
歡迎訂閱,為你帶來好玩有有趣的知識與新視界!大家可以踴躍評論你們想看到的內容,下一期專門為你而定製!