天天看點

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

 前言

本文介紹了為什麼初始化很重要,總結了常用的幾種初始化方法:全零或等值初始化、正态初始化、均勻初始化、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