1. 定義と概要
Heの初期値とは、ニューラルネットワークの重みをランダムな値で初期化する手法の一つです。前層のノード数(直前の層にあるニューロンの数)をnとしたとき、平均0・標準偏差(データや分布のばらつきの大きさを表す数値)を√(2/n)としたガウス分布に従って重みを設定します。
このガウス分布は正規分布と呼ばれ、平均値の周辺にデータが集まる釣鐘型の分布です。活性化関数にReLU(入力が0以下なら0、0より大きければそのまま出力する関数。ランプ関数とも呼ばれる)やその派生形(Leaky ReLU関数など)を用いる層に適した手法です。
2015年に「Kaiming He」(何愷明)らが論文『Delving Deep into Rectifiers』で提案したことから、提案者名にちなんで「Heの初期値」「Kaiming初期化」とも呼ばれています。
ニューラルネットワークの重みをすべて0や同じ値で初期化すると、逆伝播(出力の誤差を逆方向にたどってネットワークの重みを少しずつ修正する学習の仕組み)の際に各ニューロンが同じ勾配で更新されてしまい、層を重ねる意味がなくなってしまいます。この対称性の問題(重みを全て同じ値で初期化すると、各ニューロンが同じ更新しかできず学習が進まなくなること)があるため、乱数による初期化が学習の前提になります。
ただし単純な乱数で初期化すると、層を重ねるごとに各層の出力(活性化)の分布が0付近に偏り、勾配消失(層を重ねるごとに逆伝播で伝わる勾配が小さくなりすぎて、学習がほとんど進まなくなる現象)を招くことがあります。
逆に分布が大きくなりすぎると、勾配爆発(同じく勾配が大きくなりすぎて学習が不安定になる現象)を招くこともあり、いずれも学習を妨げる課題でした。こうした課題に対応するため、活性化関数の性質に合わせて標準偏差を調整する初期化手法として、Xavierの初期値(シグモイド・tanh関数向けの初期化手法)とHeの初期値がそれぞれ提案されています。
2. 試験対策ポイント
まず整理しておきたいのは、Heの初期値の数式とReLU系の活性化関数との対応関係です。前層のノード数nに対して標準偏差√(2/n)のガウス分布という式と、活性化関数にReLU系を用いるという条件は、セットで押さえておきたいポイントです。この対応関係は選択肢問題・穴埋め問題のいずれでも扱われる重要な論点です。
比較の軸としては、Xavierの初期値との使い分けが中心的な論点になります。Xavierの初期値は2010年に「Glorot & Bengio」が提案した手法で、シグモイド・tanh関数(出力が一定の範囲に収まる、左右対称に近い形の活性化関数)向けに標準偏差1/√nのガウス分布を用います。
これに対しHeの初期値は、負の入力を一律0にする非対称なReLU関数向けに標準偏差√(2/n)のガウス分布を用いる設計です。ReLU関数を通過すると出力の分散(値のばらつきの大きさを表す統計量)がおよそ半分に縮小してしまうため、Xavierの初期値をそのまま適用すると深い層で活性化が0に潰れやすくなります。
Heの初期値はこの分散の縮小を打ち消すため、Xavierの式の分散を2倍に補正した設計になっており、活性化関数が左右対称かどうかが使い分けの軸になっています。
また、重みをすべて同じ値(たとえばすべて0)で初期化すると、逆伝播の際に各ニューロンが同一の更新しか行えなくなり、学習が進まなくなる対称性の問題が起こります。乱数による初期化が必要な理由として、この対称性の問題が試験で扱われます。
あわせて、適切な重みの初期値の選択が、層を重ねた際の勾配消失・勾配爆発の抑制と学習の収束速度に関わるという因果関係(原因と結果の関係)があります。収束速度は学習に要する時間や計算コストにも直結するため、初期値の選択は理論だけでなく実務上の合理性とも結び付けて整理しておきたいところです。
3. 関連概念との比較・相違点
Xavierの初期値との最大の違いは、対応する活性化関数の違いにあります。Xavierの初期値はシグモイド・tanh関数のような左右対称に近い活性化関数向けに標準偏差1/√nを採用しているのに対し、Heの初期値は負の入力を一律0にする非対称なReLU系向けに標準偏差√(2/n)を採用しています。
2つの初期化手法を観点ごとに並べると、対応関係がつかみやすくなります。
| 観点 | Xavierの初期値 | Heの初期値 |
|---|---|---|
| 適した活性化関数 | シグモイド・tanh関数 | ReLU系の関数 |
| 標準偏差 | 1/√n | √(2/n) |
| 分散の補正係数 | 1倍 | 2倍 |
| 提案 | 2010年・「Glorot & Bengio」 | 2015年・「Kaiming He」ら |
分散の補正係数が1倍か2倍かという違いは、活性化関数を通過した際に出力の分散がどれだけ縮小するかという性質の差に対応したものです。ReLU系のネットワークにXavierの初期値を適用すると、層を重ねるごとに活性化の分布が0に近づき、深い層ほど学習が進みにくくなるため、活性化関数に応じた使い分けが重要な違いになります。
重みをすべて同じ値(たとえば0)で初期化する方法との違いは、対称性が破れているかどうかにあります。全ニューロンが同じ値からスタートすると、逆伝播でも同じ更新しか行えず学習が進みません。
Heの初期値やXavierの初期値のようにガウス分布に従う乱数で重みを初期化する手法は、この対称性の問題を避けるための前提条件にあたります。乱数の分布そのものは同じ考え方でも、標準偏差の設定次第で学習の安定性が変わる点が、単純な乱数初期化とHeの初期値のような設計された初期化手法との違いです。
4. ビジネス・実務での活用シナリオ
画像認識の分野では、活性化関数にReLU関数を用いるCNN(畳み込みニューラルネットワーク。画像の特徴を捉えるのに適したネットワーク構造)ベースのモデルでHeの初期値が標準的に選ばれています。製造業の外観検査や医療画像診断のように層を深くする必要があるモデルでも、Heの初期値を用いることで学習が発散したり停滞したりしにくくなります。
層が数十から数百に及ぶ深いネットワークほど初期値の影響が積み重なりやすく、活性化関数の性質に合った初期値を選ぶことが、精度の高いモデルを安定して学習させるための土台になっています。
AIモデルを開発する実務では、深層学習フレームワークの「PyTorch」が全結合層(nn.Linear)や畳み込み層(nn.Conv2d)の重みのデフォルト初期化に、Kaiming(He)初期化に基づく手法を採用しています。開発者が初期値を明示的に指定しなくても、妥当な初期値から学習を始められる設計になっているという関係にあります。
初期値の選定は本来モデルの構造や活性化関数ごとに検討が必要な作業ですが、フレームワーク側に妥当な既定値が用意されていることで、実務では初期値の細部よりもモデル構造やデータの質の改善に労力を配分しやすくなっています。
5. 要点まとめ
- Heの初期値は、ReLU系の活性化関数に適した重みの初期化手法で、前層のノード数nに対して標準偏差√(2/n)のガウス分布に従って重みを設定します。
- Xavierの初期値(シグモイド・tanh関数向け、標準偏差1/√n)との使い分けが比較の軸になり、ReLU関数が出力の分散を約半分に縮小させる特性を補うために分散を2倍にした設計になっています。
- 重みを全て同じ値で初期化すると対称性の問題で学習が進まないため、乱数による初期化と適切な標準偏差の選択が勾配消失・勾配爆発の抑制につながります。
6. 確認問題
問1Heの初期値は、活性化関数にReLU系を用いる場合に適した重みの初期化手法で、前層のノード数をnとすると標準偏差√(2/n)のガウス分布に従って重みを設定する。
解答・解説をみる
○ 正しい
定義のとおりです。前層のノード数nに対する標準偏差√(2/n)のガウス分布という数式と、ReLU系の活性化関数に対応するという組み合わせが、Heの初期値の核心にあたります。
問2Xavierの初期値はReLU系の活性化関数に、Heの初期値はシグモイド・tanh系の活性化関数に適している。
解答・解説をみる
× 誤り
対応関係が逆になっています。正しくは、Xavierの初期値がシグモイド・tanh系に、Heの初期値がReLU系に適しています。左右対称か非対称かという活性化関数の性質の違いに対応した使い分けです。
問3深層学習フレームワークの「PyTorch」では、全結合層や畳み込み層の重みのデフォルト初期化にKaiming(He)初期化に基づく手法が採用されている。
解答・解説をみる
○ 正しい
「PyTorch」のnn.Linear・nn.Conv2dは、開発者が明示的に指定しない場合でも、Kaiming(He)初期化に基づく手法をデフォルトの重み初期化として採用しています。

