ニューラルネットワークの重み初期値をランダムに設定する理由
こんにちは。ゆうせいです。
ニューラルネットワークが画像認識や自然言語処理などの課題を解決するためには、モデル内部に存在する重みと呼ばれる変数を適切な値へと更新していく必要があります。学習を開始する際、重みの初期値にはゼロや特定の一律の値ではなく、ランダムな数値(乱数)が設定されます。重みの初期値をランダムにする理由、対称性の破れの仕組み、初期値の設定手法を順を追って解説します。
重みの初期値設定における課題
ニューラルネットワークは、入力層、中間層(隠れ層)、出力層が何層にも重なり、各層にある多数のノード(人工ニューロン)が結合した構造を持っています。
重みの一律設定を合唱隊の練習に例える
もし重みの初期値をすべて0や同じ値に設定した場合、モデルの学習には支障が生じます。
この状態は、同じ楽譜を渡された合唱隊のメンバー全員が、まったく同じ声量と同じ音程で斉唱し続けている状況に例えられます。指導者が「もっと音の厚みを出すために、パートごとに異なる響きを加えてほしい」と指示を出しても、全員が同じ基準と同じ耳でその指示を受け取るため、全員が同じように声量を変えるだけで、ソプラノやアルトのような役割分担が生まれません。
ニューラルネットワークも同様に、重みを同一の値で初期化すると、各ノードがまったく同じ計算を行い、同じ勾配(誤差の情報)を受け取ることになります。
対称性の崩壊(Symmetry Breaking)の仕組み
同じ値を持ったノード同士が同一の動作を繰り返す状態を対称性と呼びます。モデルが複雑な特徴を捉えるためには、ノードごとに異なる役割を持たせる必要があり、この対称性を崩す作業を「対称性の破れ」と呼びます。
誤差逆伝播法における勾配の均一化
ニューラルネットワークのパラメータ更新には、誤差逆伝播法(バックプロパゲーション)が用いられます。出力の誤差を出力層から入力層へ向けて順に伝達し、各重みの偏微分(勾配)を求めて値を更新します。
初期の重みがすべて同じ値である場合、同一の層に存在するノードはまったく同じ出力を次の層へと送ります。誤差を逆向きに伝える際にも、各ノードにはまったく同じ誤差信号が戻ってきます。
結果として、すべての重みが同じ幅で更新され続けます。どれほど反復学習を行っても、1つのノードが行う計算を複製して並べているだけの状態になり、複数のノードを用意した意味が失われます。
重みをランダムな値で初期化すれば、各ノードの出力値や受け取る誤差信号に差異が生じます。ノードごとに異なる特徴(画像の輪郭、明暗、特定の形状など)を分担して学習できるようになります。
重み初期化の手法と特性
重みをランダムに設定する場合でも、乱数のばらつき(分散)の大きさによって学習の進行度合いは変化します。代表的な初期化手法の特性を整理します。
Xavier(Glorot)の初期化
シグモイド関数やtanh関数などの活性化関数を使用する際に適した初期化手法です。前層のノード数nと次層のノード数mを考慮し、正規分布の標準偏差を次のように設定します。
- 前後の層に伝わる信号の分散が均一に保たれ、勾配消失や勾配爆発を防ぎやすくなります。
- ReLU関数のように出力の半分がゼロになる活性化関数と組み合わせた場合、層が深くなるにつれて信号が減衰する傾向があります。
Heの初期化
深層学習で標準的に用いられるReLU関数に適した初期化手法です。前層のノード数nに基づき、標準偏差を設定します。
- ReLU関数によってノードの出力値の半分がゼロになる影響を考慮して分散を広めに確保しているため、層が深いネットワークでも信号を消失させずに伝達できます。
- 活性化関数にシグモイド関数を採用したモデルに適用した場合、出力値が極端な値に偏りやすくなります。
重みをランダムに設定することの長所と短所
重みを乱数によって設定する運用上の特性を整理します。
長所
- 各ノードが異なる出力と勾配を持つようになり、モデル全体で多様な特徴表現を獲得できます。
- 適切な乱数の分布を選択することで、ネットワークが多層化しても勾配消失や勾配爆発といった計算上の破綻を抑制できます。
短所
- 乱数生成器のシード値(乱数の種)の違いによって、学習の開始地点や収束に至るまでの経路が毎回変動します。
- 乱数の分散が大きすぎると信号が極端に発散し、小さすぎると信号がゼロに収縮して学習が進まなくなるため、活性化関数に応じた分布の設計が求められます。
まとめ
重みの初期設定に関する理解を深めるための学習手順は次の通りです。
- 2つのノードを持つ最小構成のニューラルネットワークを想定し、同一の重みと異なる重みにおいて逆伝播の勾配がどう算出されるかを手計算で比較する。
- シグモイド関数とReLU関数それぞれの導関数の性質を確認し、なぜ活性化関数によって適した初期値の分散が異なるのかを数式上で確かめる。
- 初期値への依存度を低減させるための別のアプローチである「バッチ正規化(Batch Normalization)」の仕組みへと学習を進める。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。

