ニューラルネットワークの重みの初期値

ニューラルネットワークのアルゴリズムは、学習を進めながら重みの更新を繰り返すことで最適な重みを求めます。学習を始める際に設定する重みの初期値は、学習結果の良し悪しを左右するため非常に大切です。

このページでは、重みの初期値がニューラルネットワークの学習に与える影響と、その設定方法について説明します。

重みの初期値の重要性

ニューラルネットワーク勾配法のようなアルゴリズムで学習を進めます。

重みの初期値は、ニューラルネットワークの学習速度に影響を与えます。一般に重みの初期値のバラツキが大きすぎても、小さすぎても学習速度は遅くなります。

また初期値は「勾配消失」、「表現力の制限」といった問題を引き起こすことがあります。

勾配消失

勾配消失とは、誤差逆伝播法による勾配の値が0に近づくことで学習が進まなくなる現象を指します。

勾配が0に近づくと重みの更新が局所地点で停滞してしまうため、十分な学習が行われなくなります。

表現力の制限

表現力の制限とは、各層におけるノードの出力が偏ることで学習が進まなくなる現象を指します。

隠れ層の各々のノードの出力の分布をアクティベーション分布と呼びます。アクティベーション分布が偏るということは、複数のノードが同じ出力をしているということを意味します。

このようなニューラルネットワークは、複数のノードが同じ働きをしているため、十分な表現力を持つことができません。

初期値の設定手法

初期値を設定するためにどのような初期値を用いればよいのかについて説明します。

初期値を用いることでアクティベーション分布に偏りが生じにくくなり、勾配消失や表現力の制限といった問題を回避することができます。

ここではXivierの初期値Heの初期値について解説します。

Xivierの初期値

Xaivierの初期値は、ノード数n n に対して平均0、標準偏差 1 n \displaystyle \frac{ 1 }{ \sqrt{ n } } である正規分布から重みを設定します。

sigmoid関数やtanh関数を活性化関数とするときに、Xaivierの初期値を利用するとよいです。

Heの初期値

Heの初期値はノード数n n に対して平均0、標準偏差 2n\sqrt{ \displaystyle \frac{ 2 }{ n } } である正規分布から重みを設定します。

ReLU関数を活性化関数とするときに、Heの初期値を利用するとよいです。

関連サービス

講座一覧ページ

記事一覧はこちら

無料で統計学を学ぶ