ニューラルネットワークの重みの初期値
ニューラルネットワークのアルゴリズムは、学習を進めながら重みの更新を繰り返すことで最適な重みを求めます。学習を始める際に設定する重みの初期値は、学習結果の良し悪しを左右するため非常に大切です。
このページでは、重みの初期値がニューラルネットワークの学習に与える影響と、その設定方法について説明します。
重みの初期値の重要性
ニューラルネットワークは勾配法のようなアルゴリズムで学習を進めます。
重みの初期値は、ニューラルネットワークの学習速度に影響を与えます。一般に重みの初期値のバラツキが大きすぎても、小さすぎても学習速度は遅くなります。
また初期値は「勾配消失」、「表現力の制限」といった問題を引き起こすことがあります。
勾配消失
勾配消失とは、誤差逆伝播法による勾配の値が0に近づくことで学習が進まなくなる現象を指します。
勾配が0に近づくと重みの更新が局所地点で停滞してしまうため、十分な学習が行われなくなります。
表現力の制限
表現力の制限とは、各層におけるノードの出力が偏ることで学習が進まなくなる現象を指します。
隠れ層の各々のノードの出力の分布をアクティベーション分布と呼びます。アクティベーション分布が偏るということは、複数のノードが同じ出力をしているということを意味します。
このようなニューラルネットワークは、複数のノードが同じ働きをしているため、十分な表現力を持つことができません。
初期値の設定手法
初期値を設定するためにどのような初期値を用いればよいのかについて説明します。
初期値を用いることでアクティベーション分布に偏りが生じにくくなり、勾配消失や表現力の制限といった問題を回避することができます。
ここではXivierの初期値とHeの初期値について解説します。
Xivierの初期値
Xaivierの初期値は、ノード数に対して平均0、標準偏差である正規分布から重みを設定します。
sigmoid関数やtanh関数を活性化関数とするときに、Xaivierの初期値を利用するとよいです。
Heの初期値
Heの初期値はノード数に対して平均0、標準偏差である正規分布から重みを設定します。
ReLU関数を活性化関数とするときに、Heの初期値を利用するとよいです。
カテゴリ: ニューラルネットワーク
関連するサービス
記事の筆者
AVILEN編集部
株式会社AVILEN