神經網絡的初始化方法總結 | 又名“如何選擇合適的初始化方法”


 前言

本文介紹了為什么初始化很重要,總結了常用的幾種初始化方法:全零或等值初始化、正態初始化、均勻初始化、Xavier初始化、He初始化和Pre-trained初始化,並介紹了幾個還活躍的初始化方向:數據相關初始化、稀疏權重矩陣和隨機正交矩陣初始化。

 

 

為什么初始化很重要


不正確初始化的權重會導致梯度消失或爆炸問題,從而對訓練過程產生負面影響。

對於梯度消失問題,權重更新很小,導致收斂速度變慢——這使得損失函數的優化變慢,在最壞的情況下,可能會阻止網絡完全收斂。相反,使用過大的權重進行初始化可能會導致在前向傳播或反向傳播過程中梯度值爆炸。

 

常見的初始化方法


1. 全零或等值初始化

由於初始化的值全都相同,每個神經元學到的東西也相同,將導致“對稱性(Symmetry)”問題。

 

2. 正態初始化(Normal Initialization)

均值為零,標准差設置一個小值。

這樣的做好的好處就是有相同的偏差,權重有正有負。比較合理。

例:2012年AlexNet使用“均值為零、標准差設置為0.01、偏差為1的高斯(正常)噪聲進行初始化”的初始化方法。然而,這種正常的隨機初始化方法不適用於訓練非常深的網絡,尤其是那些使用 ReLU激活函數的網絡,因為之前提到的梯度消失和爆炸問題。

 

3. 均勻初始化(Uniform Initialization)

均勻分布的區間通常為【-1/sqrt(fan_in),1/sqrt(fan_in)】

其中fan_in表示輸入神經元的數量,fan_out表示輸出神經元的數量。

圖片​​

 

4. Xavier Initialization

來自論文《Understanding the difficulty of training deep feedforward neural networks》

根據sigmoid函數圖像的特點

圖片​​

如果初始化值很小,那么隨着層數的傳遞,方差就會趨於0,此時輸入值也變得越來越小,在sigmoid上就是在0附近,接近於線性,失去了非線性。

如果初始值很大,那么隨着層數的傳遞,方差會迅速增加,此時輸入值變得很大,而sigmoid在大輸入值寫倒數趨近於0,反向傳播時會遇到梯度消失的問題。

針對這個問題,Xavier 和 Bengio提出了“Xavier”初始化,它在初始化權重時考慮了網絡的大小(輸入和輸出單元的數量)。這種方法通過使權重與前一層中單元數的平方根成反比來確保權重保持在合理的值范圍內。

Xavier 的初始化有兩種變體。

Xavier Normal:正態分布的均值為0、方差為sqrt( 2/(fan_in + fan_out) )。

Xavier Uniform:均勻分布的區間為【-sqrt( 6/(fan_in + fan_out)) , sqrt( 6/(fan_in + fan_out)) 】。

Xavier 初始化適用於使用tanh、sigmoid為激活函數的網絡。

 

5. He Initialization

來自論文《Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification》

激活函數的選擇最終在決定初始化方法的有效性方面發揮着重要作用。激活函數是可微的,並將非線性特性引入神經網絡,這對於解決機器學習和深度學習旨在解決的復雜任務至關重要。ReLU和leaky ReLU是常用的激活函數,因為它們對消失/爆炸梯度問題相對魯棒。

Xavier在tanh函數上表現可以,但對 ReLU 等激活函數效果不好,何凱明引入了一種更魯棒的權重初始化方法--He Initialization。

He Initialization也有兩種變體:

He Normal:正態分布的均值為0、方差為sqrt( 2/fan_in )。

He Uniform:均勻分布的區間為【-sqrt( 6/fan_in) , sqrt(6/fan_in) 】

 He Initialization適用於使用ReLU、Leaky ReLU這樣的非線性激活函數的網絡。

 

He Initialization和Xavier Initialization 兩種方法都使用類似的理論分析:它們為從中提取初始參數的分布找到了很好的方差。該方差適用於所使用的激活函數,並且在不明確考慮分布類型的情況下導出。

圖片​​

圖來自何凱明的論文。

論文展示了何凱明改進的初始化策略(紅色)如何比 (P)ReLU 的 Xavier 方法(藍色)更快地降低錯誤率。

 

有關 Xavier 和 He 初始化方法的證明,請參閱 Pierre Ouannes 的文章《如何初始化深度神經網絡?Xavier 和 Kaiming 初始化》。

 

6. Pre-trained

使用預訓練的權重作為初始化,相比於其它初始化,收斂速度更快,起點更好。

 

除了以上的初始化方法外,還包括有LeCun Initialization。方法跟He Initialization和Xavier Initialization類似,但基本沒怎么看見用,這里就不列出來了。

 

權重初始化仍然是一個活躍的研究領域。出現了幾個有趣的研究項目,包括數據相關初始化、稀疏權重矩陣和隨機正交矩陣初始化。

數據相關初始化

論文:Data-dependent Initializations of Convolutional Neural Networks

地址:https://arxiv.org/abs/1511.06856

稀疏權重矩陣初始化

地址:https://openai.com/blog/block-sparse-gpu-kernels/

隨機正交矩陣初始化

論文:Exact solutions to the nonlinear dynamics of learning in deep linear neural networks

地址:https://arxiv.org/abs/1312.6120

 

參考資料

1. https://medium.com/comet-ml/selecting-the-right-weight-initialization-for-your-deep-neural-network-780e20671b22

2. https://medium.com/analytics-vidhya/weights-initialization-in-neural-network-d962ac438bdb

3. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification He, K. et al. (2015)

4. Understanding the difficulty of training deep feedforward neural networks

 

歡迎關注公眾號 CV技術指南 ,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。

在公眾號中回復關鍵字 “入門指南“可獲取計算機視覺入門所有必備資料。

其它文章

ML2021 | PatrickStar:通過基於塊的內存管理實現預訓練模型的並行訓練

ICCV2021 | PnP-DETR:用Transformer進行高效的視覺分析

ICCV2021 | 醫學影像等小數據集的非自然圖像領域能否用transformer?

ICCV2021 | Vision Transformer中相對位置編碼的反思與改進

ICCV2021 | TransFER:使用Transformer學習關系感知的面部表情表征

2021-視頻監控中的多目標跟蹤綜述

統一視角理解目標檢測算法:最新進展分析與總結

全面理解目標檢測中的anchor      |    姿態估計綜述

目標檢測中回歸損失函數總結     |     小目標檢測常用方法總結

視覺Transformer綜述    |    2021年小目標檢測最新研究綜述

Siamese network綜述    |  小目標檢測的一些問題,思路和方案

視頻理解綜述:動作識別、時序動作定位、視頻Embedding

從CVPR 2021的論文看計算機視覺的現狀

ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識別

ICCV2021 | 重新思考視覺transformers的空間維度

CVPR2021 | TransCenter: transformer用於多目標跟蹤算法

CVPR2021 | 開放世界的目標檢測

CVPR2021 | TimeSformer-視頻理解的時空注意模型

CVPR2021 | 一個高效的金字塔切分注意力模塊PSA

CVPR2021 | 特征金字塔的新方式YOLOF

經典論文系列 | 重新思考在ImageNet上的預訓練

經典論文系列 | Group Normalization & BN的缺陷

經典論文系列 | 目標檢測--CornerNet  & anchor boxes的缺陷

經典論文系列 | 縮小Anchor-based和Anchor-free檢測之間差距的方法:自適應訓練樣本選擇

CV方向的高效閱讀英文文獻方法總結

CNN可視化技術總結(一)-特征圖可視化

CNN可視化技術總結(二)--卷積核可視化

CNN可視化技術總結(三)--類可視化

CNN可視化技術總結(四)--可視化工具與項目

池化技術總結    |  NMS總結    |  注意力機制總結

特征金字塔總結      |  數據增強方法總結

計算機視覺專業術語總結(一)構建計算機視覺的知識體系

欠擬合與過擬合技術總結    |  損失函數技術總結

CNN可視化技術總結

CNN結構演變總結—經典模型

CNN結構演變總結—輕量化模型

CNN結構演變總結—設計原則

論文創新的常見思路總結

在公眾號《CV技術指南》中回復“技術總結”可獲取以上所有總結系列文章的匯總pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM