【ゼロつく学習記録】重みの初期値

DeepLearning

ニューラルネットワークでは重みの初期値の設定はとても大切です。

重みの初期値によっては学習がうまく進行しなかったり、学習が進行する速度が遅くなることもあります。

この記事ではニューラルネットワークで重みの初期値としてよく用いられるXavierの初期値とHeの初期値について解説します。

Xavierの初期値

Xvaierの初期値とは前層のノード数を\(n\)としたとき重みの初期値として\(\frac{1}{\sqrt{n}}\)の標準偏差とするガウス分布を使用する方法である。

この初期値は活性化関数が線形であることを前提としている初期値で、sigmoid関数などに有効だ(sigmoid関数は左右対称であるため中央付近が線形であるとみなせるため)。

\(n=100\)とした場合のXavierの初期値の分布は以下のようになる。

Heの初期値

Heの初期値とは前層のノード数を\(n\)としたとき重みの初期値として\(\sqrt{\frac{2}{n}}\)を標準偏差とするガウス分布を使用する方法である。

ReLU関数などの非線形活性化関数の初期値として有効な方法である。

\(n=100\)とした場合のHeの初期値の分布は以下のようになる。

ReLUは負の要素が全て0になるためXvaiarの初期値と比べてより広がりを持たせているHeの初期値の方が有効であると考えられている。

コメント

タイトルとURLをコピーしました