深度学习神经网络:改善与优化的方法
文章目錄
- 第一周
- 訓練集 驗證集 測試集
- 偏差和方差
- 根據方差和偏差調節網絡
- 正則化
- dropout 正則化
- 為什么dropout可以工作
- 其他正則化方法
- 歸一化輸入
- 梯度消失與梯度爆炸
- 神經網絡權重初始化
- 梯度檢查
- 第二周
- minibatch梯度下降法
- 指數加權平均
- 動量梯度下降法
- RMSprop
- Adam 優化算法
- 學習率衰減
- 局部最優的問題
- 第三周
- 超參數的調試重要性排序
- 為超參數選擇合適的范圍
- 正則化網絡的激活函數
- batch 歸一化
- softmax回歸
- 深度學習框架
第一周
訓練集 驗證集 測試集
公認的比較好的比例是3:1:1,在數據量不是特別大的時候
當數據特別大的時候根據情況考慮
注意數據的分布性問題
訓練集(train set) —— 用于模型擬合的數據樣本。
驗證集(development set)—— 是模型訓練過程中單獨留出的樣本集,它可以用于調整模型的超參數和用于對模型的能力進行初步評估。
測試集 —— 用來評估模最終模型的泛化能力。但不能作為調參、選擇特征等算法相關的選擇的依據。
偏差和方差
偏差大:過度擬合 訓練集誤差小 驗證集誤差大
方差大:欠擬合 訓練集和驗證集誤差都大
實際上有可能出現偏差大 方差也大的情況
根據方差和偏差調節網絡
當偏差過高時可以嘗試增加網絡的大小,
當方差偏大時可以增加數據。
正則化
就是讓w盡量小,L1正則化和L2正則化,L2正則化更常用
在神經網絡中添加正則化項
等價于在損失函數后面添加正則化項
對損失函數求導的時候,正則化被單獨求導
正則化項被加到dw中,計算表達式等價于一個衰減項,
會讓w越來越小
正則化當中的lamda大小非常重要,控制著網絡的大小
lamda太大時會導致w過小,w過小會導致激活函數幾乎為線性函數,這會導致整個神經網絡等價于一個線性函數
dropout 正則化
隨機讓一些網絡結構失活,直接讓節點的輸出等于0
dropout方法相對于L2范數正則化可以避免參數的比例縮小問題
在測試階段要避免使用dropout函數
為什么dropout可以工作
避免w權重全部落在某一個輸入之上
dropout在圖像識別上經常使用
其他正則化方法
數據增強:通過變換使數據量變多
及早停止:early stopping
歸一化輸入
標準歸一化 極值歸一化
其它方法
梯度消失與梯度爆炸
當網絡太深的時候容易發生
神經網絡權重初始化
使用隨機函數初始化,但是可以乘以sqrt(2/n),幫助避免梯度消失和爆炸的問題
梯度檢查
梯度的計算考慮數值的精度問題
雙邊誤差公式的結果更準確
梯度檢查公式:
梯度檢查的禁忌:
不要在訓練的時候用
不要和dropout一起用
記得正則化
第二周
minibatch梯度下降法
一次性使用m個樣本訓練,計算在m個樣本的平均下降梯度,一次minbathc訓練稱為一個epoch。當數據量足夠時,多使用mini_batch,典型的mini_batch尺寸 64 128 256 512 ,使用過大的mini_batch注意內存大小
指數加權平均
讓數據平滑一些
注意平滑系數B的含義
指數加權在初期產生誤差,所以要修正
動量梯度下降法
有時候梯度方向可能比較曲折,將之前的多個梯度方向結合起來使用,形似向量加起來
RMSprop
Adam 優化算法
把動量法和RMSprop方法結合起來,這里有幾個超參數需要調試
學習率衰減
隨著迭代的進行,讓沿梯度方向逐漸變小步伐,避免錯過最優解
局部最優的問題
在高維,大的神經網絡中不容易遇到局部最優點,但是容易遇到平穩段
第三周
超參數的調試重要性排序
學習率最重要
動量學習參數 批學習大小 隱藏層單元
隱藏層數 學習率衰減
隨機取超參數優化,更可能發現好的
先大范圍搜索,再小范圍細致搜索
為超參數選擇合適的范圍
為超參數選取合適的范圍
對于如神經網絡隱藏層數這類超參數可以采用平均取值,但是對于類似學習率和指數加權平均中的超參數ββ這類超參數需要采用對數平均取值。
如對學習率取值時,學習率的變化范圍為[0.001,1],但是如果采用平均取值,則90%的都落在[0.1,1]的范圍內,反而使得學習率不能在較大范圍變化。因此采用對數取值,在區間[0.0001,0.001]、[0.001,0.01]、[0.01,0.1]和[0.1,1]內平均取值。
將取值范圍從0.n-0.m轉化到0.0-0.(m-n),使得可以用對數
正則化網絡的激活函數
對激活函數的輸出也進行歸一化,如同對輸入數據一樣,采用標準歸一化還可以逆變換回來
batch 歸一化
softmax回歸
softmax放在最后一層(輸出層)使用
深度學習框架
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的深度学习神经网络:改善与优化的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机系统 过程调用
- 下一篇: 深度学习-序列模型