2019/04/23
2020/04/14
ニューラルネットワークの重みの初期値について解説!
ニューラルネットワークでは重みを求めるために確率的勾配降下法やAdamといったアルゴリズムを用いていました。
これらのアルゴリズムは重みの更新を繰り返すことで最適な重みを求めます。この重みの更新を行うためにはあらかじめ重みの初期値を設定しなくてはなりません。この設定された重みの初期値によってニューラルネットワークの学習結果も変化するため、適切な初期値を設定する必要があります。
今回は重みの初期値がニューラルネットワークの学習にどのような影響を及ぼし、どのように設定すれば良いかについて説明します。
初期値の重要性
記事の冒頭で重みの初期値がニューラルネットワークの学習に影響を及ぼすと説明しました。ニューラルネットワークの学習には勾配法といったアルゴリズムを用いていました。
ではどのような影響を与えるのでしょうか。初期値はニューラルネットワークの学習速度に影響を及ぼします。
一般に重みの初期値のバラツキを大きくすぎても、小さすぎても学習速度は遅くなります。このことから適切な初期値を設定しないといけないことが分かります。
また初期値は「勾配消失」、「表現力の制限」といった問題を引き起こすことがあります。
この二つの問題がどのような問題かを説明します。
勾配消失
勾配消失とは誤差逆伝播法による勾配の値が0に近づくことで学習が進まなくなる現象を指します。勾配が0に近づくと重みの更新が局所地点で停滞してしまうため、十分な学習が行われなくなります。
この勾配消失という問題を避けるために適切な初期値を設定する必要があります。
表現力の制限
表現力の制限とは各層におけるノードの出力が偏ることで学習が進まなくなる現象を指します。隠れ層の各々のノードの出力の分布をアクティベーション分布と呼びます。アクティベーション分布が偏るということは複数のノードが同じ出力をしているということを意味します。
複数のノードが同じ出力を行っているなら、わざわざ多くのノードを用いる必要がありません。このようなニューラルネットワークは複数のノードが同じ働きをしているため、十分な表現力を持つことができません。
適切な初期値を設定することで表現力の制限を防ぐことができます。
初期値の設定手法
これまでは初期値を設定する重要性について説明してきました。
これからは初期値を設定するためにどのような初期値を用いればよいのかについて説明します。
ここではXivierとHeの二人が開発した初期値、それぞれについて説明します。これらの初期値を用いることでアクティベーション分布に偏りが生じにくくなります。アクティベーション分布が広く分布することで勾配消失や表現力の制限といった問題を回避することができます。
バイアスの初期値は0とします。
Xivierの初期値
Xaivierの初期値は様々なニューラルネットで用いられています。sigmoid関数やtanh関数を活性化関数として用いる時、このXavierの初期値を用いるとよいでしょう。
この初期値はノード数\( n \)に対して平均0、標準偏差\( \displaystyle \frac{ 1 }{ \sqrt{ n } } \)である正規分布から重みを設定します。
以下の図を参考に考えてみましょう。
入力層から2層に向かう重みをXaivierの初期値で設定してみましょう。入力層のノードの数は\( n \)であるため、平均0、標準偏差\( \displaystyle \frac{ 1 }{ \sqrt{ n } } \)である正規分布から重みをランダムに生成します。
2層から出力層に向かう重みも同様に平均0、標準偏差\( \displaystyle \frac{ 1 }{ \sqrt{ m } } \)である正規分布から生成します。
Heの初期値
Heの初期値はReLU関数を活性化関数とするときに用いるとよいでしょう。ReLU関数を活性化関数としたモデルにXavierの初期値を用いるとアクティベーション分布に偏りが生じやすくなることが知られています。
Heの初期値はノード数\( n \)に対して平均0、標準偏差\(\sqrt{ \displaystyle \frac{ 2 }{ n } } \)である正規分布から重みを設定します。
まとめ
今回はニューラルネットワークの初期値の役割について解説してきました。
ニューラルネットワークの活性化関数がReLU関数の時はHeの初期値を用いて、それ以外の時はXivierの初期値を用いるとよいでしょう。
初期値に対する依存性や学習速度といった課題を解決するためにBatch Normalizationなどのアルゴリズムが開発されています。
最新投稿記事
-
E資格・領域特化コース受講体験談:山田裕之さん 「E資格で基礎知識を、領域特化コースで実務への応用を」 2021年1月8日
-
AI導入とは?RPAとの関係、プロセス、事例、メリット、費用を詳細に解説 2020年12月7日
-
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
-
AI人材を育成できる研修プログラムを一挙紹介! 2020年10月20日
-
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
-
JDLAとは?G検定、E資格の認定プログラム、合格者の会など紹介! 2020年10月14日
-
G検定(2020#3)受験申し込み開始、11月7日(土)実施-JDLA 2020年10月1日
-
【独占】コロナ禍で人材登録急増、アノテーション単月売上高は4倍超-パソナJOB HUB 2020年10月1日
-
E資格を転職に活用!評判とデータを徹底調査! 2020年9月29日
-
E資格とは?大注目のディープラーニングの資格を解説! 2020年9月29日
週間ランキング
【2021年版】期待のAI資格11選!就職・転職にも使える! 2020年10月18日
【2021年版】コスパ重視のG検定対策!おすすめの本・講座・教材を一挙紹介! 2020年6月6日
注目のAI開発企業11社!支援領域や提供方法など検証! 2020年10月28日
G検定に短期間・独学で合格した勉強法を解説! 2020年8月3日
最弱オセロを初めて攻略した天才オセロ高校生。負け方を解説! 2020年7月31日
効率重視のE資格対策!参考書・模擬試験・過去問を徹底解説! 2020年8月7日
E資格の難易度を、合格率と問題から徹底分析! 2020年8月11日
G検定は難しい?難易度・合格ライン・問題を徹底解説! 2020年6月19日
MLOpsとは|定義、メリット、課題、ツール、ワークフローを分かりやすく解説 2020年9月18日
FRONTEO、AI解析の新型コロナ治療候補薬を公表ー「プラニケル」など 2020年5月13日
