方法:ディープニューラルネットワークの重みの初期化


10

難しい学習タスク(高次元、固有のデータの複雑さなど)が与えられると、ディープニューラルネットワークはトレーニングが難しくなります。多くの問題を緩和するには、次のようにします。

  1. ハンドピック品質データを正規化する
  2. 別のトレーニングアルゴリズムを選択する(たとえば、勾配降下の代わりにRMSprop)
  3. 勾配の急なコスト関数を選択します(例:MSEの代わりにクロスエントロピー)
  4. 異なるネットワーク構造を使用する(例:フィードフォワードではなくたたみ込み層)

より良い重みを初期化する賢い方法があると聞いたことがあります。例えば、あなたはより良い等級を選ぶことができます:Glorot and Bengio(2010)

  • シグモイド単位の場合: Uniform(-r、r)をサンプリングしますr=6N+Noあなたt
  • または双曲線正接単位: Uniform(-r、r)をサンプリングしますr=46N+Noあなたt

重みをより適切に初期化する一貫した方法はありますか?

回答:


7

私が知る限り、あなたが与えた2つの式は、ほぼ標準的な初期化です。私が行っていた文献レビューの興味があれば前に、私は以下のそれをコピーしながらAを。


[1]は質問に対処します:

まず、バックプログラゲーション時に対称性を壊すために、重みをゼロに設定しないでください。

バイアスは一般にゼロに初期化できますが、同じレイヤーの非表示のユニット間の対称性を壊すために、重みを慎重に初期化する必要があります。異なる出力ユニットが異なる勾配信号を受信するため、この対称性の破れの問題は(出力ユニットへの)出力の重みに関係しないため、ゼロに設定することもできます。

いくつかの初期化戦略:

  • [2]と[3]は、ファンインの平方根の逆数によるスケーリングを推奨します
  • Glorot and Bengio(2010)とディープラーニングチュートリアルでは、ファンインとファンアウトの組み合わせを使用しています。
    • シグモイド単位の場合: Uniform(-r、r)をサンプリングし(fan-inはユニットの入力)。r=6ファンイン+扇形に広がります
    • 双曲線正接ユニットの場合: Uniform(-r、r)をサンプリングします(ファンインはユニットの入力数)。r=46ファンイン+扇形に広がります
  • RBMの場合、標準偏差が約0.1または0.01のゼロ平均ガウス分布が適切に機能し(Hinton、2010)、重みを初期化します。
  • 直交ランダム行列の初期化。つまり、初期化行列としてW = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)使用uします。

また、教師なしの事前トレーニングは、状況によっては役立つ場合があります。

重要な選択は、パラメータを初期化するために、教師なし事前トレーニングを使用するかどうか(および使用する教師なし機能学習アルゴリズム)です。ほとんどの設定では、監視なしの事前トレーニングが役立つことはほとんどありませんが、害を及ぼすことはほとんどありませんが、もちろん、追加のトレーニング時間と追加のハイパーパラメータを意味します。

一部のANNライブラリーには、興味深いリストもいくつかあります。例:Lasagne

Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b])   Glorot weight initialization.
GlorotNormal([gain, c01b])  Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b])   He weight initialization.
HeNormal([gain, c01b])  He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain])  Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.

[1]ベンジオ、ヨシュア。「ディープアーキテクチャの勾配ベースのトレーニングに関する実用的な推奨事項。」ニューラルネットワーク:貿易の秘訣。スプリンガーベルリンハイデルベルク、2012年。437-478。

[2] LeCun、Y.、Bottou、L.、Orr、GB、およびMuller、K。(1998a)。効率的なバックプロップ。ニューラルネットワークでは、貿易の秘訣

[3] Glorot、Xavier、およびYoshua Bengio。「深いフィードフォワードニューラルネットワークのトレーニングの難しさを理解する。」人工知能と統計に関する国際会議。2010。


2
不足しているように見えるのは、バッチ正規化です。ここに記述:arxiv.org/abs/1502.03167役立つ かもしれません。
Joonatan Samuel 2016

:Kaiming彼は、Xiangyu張、Shaoqingレン、建日はGlorotとBengioからザビエルの重みの初期化の変動を含んでいる新しい記事公開している「整流器掘り下げるディープ:ImageNet分類上の人間のレベルのパフォーマンスを上回ります」
mjul
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.