6K Views
March 07, 24
スライド概要
Deep Learning Foundations and Conceptsの勾配降下の章をまとめたものです.
人工ニューラルネットワー クのための勾配降下 公立小松大学 藤田 一寿 Ver. 20260520 Bishop and BishopのDeep learningの勾配降下の章をまとめたものです. 所々独自解釈が入っています.途中式はあります. 興味がある方は本も読みましょう.無料で読めます. https://www.bishopbook.com/
人工ニューラルネットワークの訓練 • 人工ニューラルネットワークでタスクを実現するために,訓練データを用いを 訓練を行う. • 訓練は,タスクに適したニューラルネットワークのパラメータ(重みとバイア ス)を探すことだと言える. • 適したパラメータとは何か? • タスクに応じ設定した誤差関数(損失関数) 𝐸 𝒘 を小さくするパラメータが,よ りタスクに適したパラメータとする. • 誤差関数を小さくするパラメータをどう探すか? • 誤差関数の勾配(微分)情報を利用し,誤差関数を最適化する. 誤差関数𝐸 𝒘 • 誤差関数は微分可能であるように設計する必要がある. ∇𝐸 𝒘 ≠ 0 ∇𝐸 𝒘 = 0 接線
誤差局面 • ニューラルネットワークの訓練の目的は,タスクが効果的に解ける重みとバイアスの値 を見つけることである. • タスクが効果的に解けるかどうかを誤差関数𝐸 𝒘 で定量化し,𝒘について最適化する. • 𝐸 𝒘 は重み空間上の面としてみることができる. • 𝒘から𝒘 + 𝛿𝒘の微小な変化があったとき,𝐸 𝒘 の変化は次のように書ける. • 𝛿𝐸 ≅ 𝛿𝒘T ∇𝐸 𝒘 • ∇𝐸 𝒘 は𝐸 𝒘 の勾配で,その方向は𝐸 𝒘 の増加が最も大きい方向を表す. • 𝐸 𝒘 が滑らかで連続であるならば,𝐸 𝒘 の最も小さい値は勾配が消える場所にあるだ ろう. • ∇𝐸 𝒘 = 0 • 逆に,−∇𝐸 𝒘 の方向に𝒘を微小変化させれば𝐸 𝒘 を減らせる.
誤差関数の最小化 • 我々の目的は,誤差関数を最小とする𝒘を求めることである. • 誤差関数は𝒘に対し極めて非線形な依存性を持っている. • 勾配が消失(もしくは極めて小さい)点は重み空間に多数あることが予想される. • つまり,極小値は沢山ある. • 重み空間全域における誤差関数の最小値をglobal minimumという. • 極小値(局所最小値)をlocal minimumという. • 会話ではlocal minimumはglobal minimum以外を指すことが多い. • 深層ニューラルネットワークでは誤差関数の曲面は非常に複雑になる可能性が あり,不適切な極小値に陥る可能性がある. • しかし,実際にはこれはあまり当てはまらないようで,大きなネットワークは 様々な初期条件下でも同等のパフォーマンスに達成できる.
局所2次近似 ෝ • 誤差関数𝐸 𝒘 を𝒘の付近で2次近似すると T ෝ + 𝒘−𝒘 ෝ 𝒃+ • 𝐸 𝒘 ≅𝐸 𝒘 𝟏 𝟐 ෝ T 𝐇(𝒘 − 𝒘) ෝ 𝒘−𝒘 ෝ のときの 𝐸 𝒘 の勾配,𝐇は𝐸 𝒘 のヘッシアンである. • 𝒃は𝒘 • 𝒃 = ∇𝐸 𝒘 ȁ𝒘=ෝ𝒘, 𝐇 = ∇∇𝐸 𝒘 ȁ𝒘=ෝ𝒘 • 𝐸 𝒘 の勾配は ෝ • ∇𝐸 𝒘 = 𝒃 + 𝐇(𝒘 − 𝒘) ෝ • となる.𝒘と𝒘が十分近ければ,これは十分reasonableな近似である.
局所2次近似 • 誤差関数𝐸 𝒘 を最小とする𝒘⋆ を考え,その周辺での局所2次近似を考える. • 𝐸 𝒘 ≅ 𝐸 𝒘⋆ + 𝒘 − 𝒘⋆ T 𝒃 + 1 2 𝒘⋆周辺でテーラー展開する. 𝒘 − 𝒘⋆ T 𝐇 𝒘 − 𝒘⋆ • 𝒃は𝒘⋆ のときの 𝐸 𝒘 の勾配,𝐇は𝐸 𝒘 のヘッシアンである. • 𝒃 = ∇𝐸 𝒘 ȁ𝒘=𝒘⋆ , 𝐇 = ∇∇𝐸 𝒘 ȁ𝒘=𝒘⋆ • 最小値では勾配は0だから, • 𝒃=𝟎 • これを誤差関数の局所2次近似に代入すると • 𝐸 𝒘 ≅𝐸 𝒘 ⋆ + 1 2 𝒘 − 𝒘⋆ T 𝐇 𝒘 − 𝒘⋆
誤差関数の解釈 • 誤差関数を幾何学的に考えてみよう. 𝑤2 • ヘッシアン𝐇の固有値方程式は ⋆ 𝛼𝑗 𝒖𝑗 𝒘 − 𝒘 • 𝐇 𝒖 𝑖 = 𝜆𝑖 𝒖 𝑖 • 固有ベクトル 𝒖𝑖 は完全正規直交系を形成するから • 𝒖𝑖 𝒖𝑗 = 𝛿𝑖𝑗 • 𝛿𝑖𝑗 はクロネッカーのデルタである. 𝛼𝑖 𝒖𝑖 𝒘 𝒘⋆ 𝑤1 • 任意のベクトルは固有ベクトルの線形結合で表せるから • 𝒘 − 𝒘⋆ = σ 𝑖 𝛼𝑖 𝒖 𝑖 • これは原点が点𝒘⋆ に平行移動され,{ 𝒖1 , … , 𝒖𝑊 } である直交行列を通じて軸を 固有ベクトルに合わせて回転させる座標系の変換とみなすことができる.
誤差関数の解釈 • 以上を用い誤差関数を書き変えると 𝟏 1 ⋆ ⋆ T ⋆ ⋆ 𝐸 𝒘 =𝐸 𝒘 + 𝒘−𝒘 𝐇 𝒘−𝒘 =𝐸 𝒘 + 𝛼𝑖 𝒖𝑖 𝟐 2 = 𝐸 𝒘⋆ + 1 𝛼𝑖 𝒖𝑖 2 𝑖 𝑖 T T 𝐇 𝛼𝑖 𝒖𝑖 T 𝑖 1 𝛼𝑖 𝒖𝑖 𝛼𝑖 𝜆𝑖 𝒖𝑖 2 𝑖 𝑖 𝑖 ≠ 𝑗のとき𝒖𝑖 𝒖𝑗 = 0 2 𝛼𝑖 𝐇𝒖𝑖 = 𝐸 𝒘⋆ + 𝑖 = 𝐸 𝒘⋆ 1 + 𝜆𝑖 𝛼𝑖 2 𝑖 • 𝜆𝑖 が全て正ならば, 𝐸 𝒘 > 𝐸 𝒘⋆ となり𝐸 𝒘⋆ は極小値である. • 𝜆𝑖 が全て負ならば, 𝐸 𝒘 < 𝐸 𝒘⋆ となり𝐸 𝒘⋆ は極大値である. • 𝜆𝑖 が正負が混合しているならば, 𝒘⋆ はsaddle pointである. 高校で行った2階微分と極値の判定の拡張(多変量版)だと思えば良い。 高校は,2階微分が正なら極小値であると習ったと思う.
正定値 • ヘッシアン𝐇が任意の非ゼロベクトル𝑣に対し • 𝒗𝑇 𝐇𝒗 > 0 • である時,正定値(positive definite)であるという.𝒖は完全基底であるから • 𝒗 = σ𝑖 𝑐𝑖 𝒖𝑖 • と書ける.よって • 𝒗𝑇 𝐇𝒗 = σ𝑖 𝑐𝑖 𝒖𝑖 𝑇 𝐇 σ𝑖 𝑐𝑖 𝒖𝑖 = σ𝑖 𝑐𝑖2 𝜆𝑖 > 0 • つまり,固有値が全て正のとき𝐻は正定値となる. • また,𝒗が𝑐𝑖 𝒖𝑖 方向のベクトルとしたとき固有値𝜆𝑖 > 0である.つまり,正定値 であるとき固有値は全て正でなければならない.
誤差関数が𝒘⋆ で極小値である必要十分条件 • 誤差関数が𝒘⋆ で極小値である必要十分条件は次のとおりである. • 誤差関数の勾配が𝒘⋆ で消滅する. • 𝒘⋆ のときのヘッシアンが正定値である. 1 • また,𝐸 𝒘 = 𝐸 𝒘⋆ + σ𝑖 𝜆𝑖 𝛼𝑖2 だから,図に示すように基底ベクトルが固有ベ 2 クトル 𝒖𝑖 によって与えられる新しい座標系では,𝐸(𝒘)の等高線は原点を中心 とする軸に沿った楕円になる(つまり𝐸(𝒘)は定数としたときの𝒘は𝒘⋆ を中心と する楕円上にある). 1 𝐸 𝒘 = 𝐸 𝒘⋆ + 𝜆𝑖 𝛼𝑖2 2 𝒘 = 𝛼1 𝒖1 + 𝛼2 𝒖2 𝑖 𝜆𝑖 𝛼𝑖2 = 2 𝐸 𝒘 − 𝐸 𝒘⋆ 𝑖 =𝐶 𝛼𝑖2 =1 𝐶 𝑖 𝜆𝑖 よって,軸の長さが 𝐶/𝜆𝑖 の楕円である.
勾配降下最適化
反復処理 • ニューラルネットワークの誤差関数において∇𝐸 𝒘 = 0に対する解析解を見つけるこ とはほとんど期待できないため,反復的な数値処理に頼ることになる. • 反復的な手法では,重みベクトルの初期値𝒘 0 を選択し,次の形式で示す一連のス テップで重み空間を移動する. • 𝒘 𝜏 = 𝒘 𝜏 − 1 + Δ𝒘 𝜏 − 1 • 𝜏は反復ステップを表す.重みベクトルの更新量Δ𝒘 𝜏 − 1 は,アルゴリズムにより異 なる. • 最も単純なニューラルネットワークを除くすべてのニューラルネットワークでは,誤 差曲面の形状が複雑なため,見つかった解は初期値𝒘 0 の選択に依存する. • 十分に適切な解を見つけるには,勾配ベースのアルゴリズムを複数回実行し,そのた びにランダムに選択される異なる初期値を使用し,独立した検証セットで結果のパ フォーマンスを比較する必要があるかもしれない.
バッチ勾配降下 • 勾配を用いた反復処理により,誤差関数を最小とする𝒘を求める. • 最も簡単なアプローチは,重み𝒘を負の勾配の方向に小さく移動させる方法である. • 𝒘 𝜏 = 𝒘 𝜏 − 1 − 𝜂∇𝐸 𝒘 𝜏 − 1 • ここで,パラメータ𝜂 > 0は学習率である. ∇𝐸 𝒘 ≠ 0 ∇𝐸 𝒘 = 0 • 重みの更新が行われる度に勾配を再計算し,さらに新たな重みを計算することを繰り 返す. • 各ステップで重みは誤差関数の最大減少率の方向に移動するため,このアプローチは 勾配降下法または最急降下法と呼ばれる. • 誤差関数は訓練セットから計算されるため, ∇𝐸を計算するには各ステップで訓練 セット全体を処理する必要がある. • データセット全体を一度に使用する手法はバッチ法と呼ばれる. 接線
確率的勾配降下 • 訓練セットに多くのデータポイントがある場合,誤差関数または勾配の計算でデータセット全体を 処理する必要があるため,バッチ手法は非常に非効率になるだろう. 分類のときの誤差関数を思い出してほしい. • より効率的なアプローチを見つけるために,一連の独立した観測値のセットの最大尤度に基づく誤 差関数はデータポイントごとの項の合計で構成されることに注意する.つまり,𝐸(𝒘) = σ𝑁 𝑛=1 𝐸𝑛 𝒘 . • 大規模なデータセットに対して最も広く使用されている訓練アルゴリズムは確率的勾配降下(SGD )として知られる勾配降下法の逐次バージョンに基づいている.これは,次のように一度に1つの データポイントを用い重みベクトルを更新する. • 𝒘 𝜏 = 𝒘 𝜏 − 1 − 𝜂 ∇𝐸𝑛 𝒘 𝜏 − 1 • この更新はデータを循環させることによって繰り返される.訓練セット全体を1順することを1エ ポックという. • 確率的勾配降下のさらなる利点は,データの冗長性をより効率的に処理できる点にある. • すべてのデータポイントを複製することでそのサイズを2 倍にすることを考える.バッチ法では誤差関数 の勾配を計算するために2倍の計算量が必要となるが,確率的勾配降下法は複製の影響を受けない. • 確率的勾配降下のもう 1 つの特性は,データセット全体の誤差関数に関する停留点は一般にデータ ポイント個別の停留点とは異なるため,局所最小値から脱出できる可能性ある点である. 𝐸𝑛 は𝒘の関数でもあるが,データ点𝒙の関数でもある.データ点が異なれば,𝐸𝑛 𝒘 の形状も変わるだろう.
ミニバッチ • 確率的勾配降下法の欠点は,単一のデータポイントから計算された誤差関数の勾配は, 完全なデータセットで計算された誤差関数の勾配のノイズが多い推定値である点であ る. • そこで,ミニバッチと呼ばれるデータポイントの小さなサブセットを使用して各反復 で勾配を評価する中間のアプローチを考える. • ミニバッチから計算される平均の誤差が𝜎/ 𝑁で与えられることに注意する.ここで,𝜎は データを生成する分布の標準偏差𝑁はバッチサイズである.このことから,バッチサイズ を増やすことによる真の勾配の推定値の改善には限界があることが示唆される.例えば, ミニバッチのサイズを100倍に増やしても,誤差は1/10にしかならない. • ミニバッチのサイズを決めるときはハードウェアを効率的に利用できる値にしたい. • ミニバッチを構成するデータポイントはデータセットからランダムに選択される.エポッ ク毎にランダムに選ぶことができるため,各ミニバッチが以前に使用された可能性が低く なり,局所最小値を回避するのに役立つ. • ミニバッチが使用される場合でも,学習アルゴリズムは依然として確率的勾配降下と 呼ばれることが多いことに注意する.
Batch learning, online learning, mini-batch learningのまとめ • Batch learning • 訓練データすべて用い学習する.すべてのデータを使うため,学習がノイズや外れ値などの影響を受けにくい.逆に,ノイ ズや外れ値の影響が少ないため,local mimimumから抜け出すのが難しいかもしれない.また,大量のメモリが必要である . • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸 𝒘𝜏 𝟏 𝟐 𝟐 = σ𝑁 𝑬 • 𝐸 𝒘 = σ𝑁 𝑛=1 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 𝑛=1 𝑛 • Online learning • データ一つづつ用い学習する.訓練データの総数が分からない場合やコンピュータのメモリが少ない場合有効である.ただ し,学習が一つ一つのデータに影響される.つまり,学習に対しノイズや外れ値の影響がある. • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸𝑛 𝒘𝜏 • 𝐸𝑛 (𝒘) = 𝟏 𝟐 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 𝟐 誤差関数は凸関数ではないので,多数の局所最小値(local minimum)を持つ. • Mini-batch learning • 訓練データをいくつかに分け,それぞれについて学習する.現在最も使われる.Onlineとbatchの良いとこ取り. • 𝒘𝜏+1 = 𝒘𝜏 − 𝜂∇𝐸𝑏 𝒘𝜏 𝟏 𝟐 • 𝐸𝑏 𝒘 = σ𝒙𝑛 ∈𝑿batch 𝒚 𝒘, 𝒙𝑛 − 𝒕𝑛 𝟐 • 𝑿batchにはbatch size個のデータ点 𝒙𝑛 が入っている. このスライドでは誤差の総和を取っているが平均でも良い. 誤差の大きさを学習率で調整するか,個数で割って調整する かの差である.
誤差の計算 ミニバッチ𝑥1 , … , 𝑥𝑁 が平均𝜇の分布から生じたとする. 平均の2乗誤差の期待値は 2 𝑁 𝐸 1 𝑥𝑛 − 𝜇 𝑁 𝑛=1 𝑁 1 = 2𝐸 𝑁 𝑛=1 𝑁 𝑁 𝜎2 = 𝑁 𝑥𝑛 − 𝜇 𝑛=1 𝐸 𝑥𝑚 − 𝜇 𝑥𝑛 − 𝜇 = 𝐸 𝑥𝑚 𝑥𝑛 − 𝜇𝐸 𝑥𝑚 − 𝜇𝐸 𝑥𝑛 + 𝜇2 = 0 𝑥𝑚 − 𝜇 𝑥𝑛 − 𝜇 𝑚=1 {𝑛∣𝑛=1,…,𝑁,𝑚≠𝑛} 𝑁 𝑁 𝑥𝑚 − 𝜇 𝑥𝑛 − 𝜇 𝑚=1 {𝑛∣𝑛=1,…,𝑁,𝑚≠𝑛} 𝑁 𝑁 1 1 2 = 2 𝐸 𝑥𝑛 − 𝜇 + 2 𝑁 𝑁 𝑛=1 2 𝑁 𝑁 1 1 2 = 2 𝐸 𝑥𝑛 − 𝜇 + 2𝐸 𝑁 𝑁 𝑛=1 1 = 2𝐸 𝑁 𝑥𝑛 − 𝑁𝜇 1 = 2 𝐸 𝑥𝑛 − 𝜇 2 + 𝑁 𝑛=1 𝑁 2 𝑁 𝑚=1 {𝑛∣𝑛=1,…,𝑁,𝑚≠𝑛} 𝐸 𝑥𝑚 − 𝜇 𝑥𝑛 − 𝜇 1 = 2 𝑁𝜎 2 𝑁 ∫ ∫ 𝑥𝑚𝑥𝑛 𝑝 𝑥𝑚 , 𝑥𝑛 𝑑𝑥𝑚 𝑑𝑥𝑛 𝑥𝑚 と𝑥𝑛 は独立だから ∫ ∫ 𝑥𝑚 𝑥𝑛 𝑝 𝑥𝑚 , 𝑥𝑛 𝑑𝑥𝑚 𝑑𝑥𝑛 = ∫ ∫ 𝑥𝑚𝑥𝑛 𝑝 𝑥𝑚 𝑝 𝑥𝑛 𝑑𝑥𝑚𝑑𝑥𝑛 = ∫ 𝑥𝑚 𝑝 𝑥𝑚 𝜇𝑑𝑥𝑚 = 𝜇2
パラメタの初期化 • 勾配降下法などの反復アルゴリズムでは,学習するパラメーターを初期化しな ければならない. • 初期化は,解に到達するまでにかかる時間と,訓練済みネットワークの汎化能 力に重大な影響を与える可能性がある. • 初期化において重要な考慮すべき事項の1つに対称性の破れがある. • 同じ入力を受け取る一連の隠れユニットまたは出力ユニットを考えてみる. • パラメータがすべて同じ値で初期化されている場合,これらのユニットのパラメー タはすべて一致して更新され,ユニットはそれぞれ同じ関数を計算することになる. • この問題はパラメータをある分布からランダムに初期化して対称性を破ることに よって解決できる. • 計算リソースが許せば,さまざまなランダムな初期化から始めてネットワーク を複数回訓練し,その結果を検証データで比較するできるだろう.
重みの初期化 • 重みを初期化するために,通常 −𝜖, 𝜖 の範囲の一様分布か,𝑁(0, 𝜖 2 )のゼロ平均ガウス分布が通常使 われる. • 𝜖 の値の選択は重要であり,それを選択するためのさまざまなヒューリスティックが提案されている. • He初期化(He et al., 2015b)が広く使用されている. • 𝑙層が次の変換をするネットワークを考えてみる. (𝑙− 1) 𝑙 • 𝑎𝑖 = σ𝑀 𝑗=1 𝑤𝑖𝑗 𝑧𝑗 • 𝑧𝑖 𝑙 = ReLU 𝑎𝑖𝑙 • ここで,𝑀はユニット𝑖に接続するユニットの数である. 𝑙 • 𝑁(0, 𝜖 2 )のガウス分布を使用し重みを初期化し,𝑙 − 1層のユニットの出力𝑧𝑖 が分散𝜆2 を持つと仮定 する. • 𝐸 𝑎𝑖 𝑙 • var 𝑧𝑖 =0 𝑙 = 𝑀 2 𝜖 2 𝜆2
計算の詳細 𝑀 𝐸 𝑎𝑖 𝑙 =𝐸 𝑀 (𝑙− 1) 𝑤𝑖𝑗 𝑧𝑗 𝑗=1 𝑀 (𝑙− 1) 𝑤𝑖𝑗 𝑧𝑗 = 𝐸 (𝑙− 1) = 𝐸 𝑤𝑖𝑗 𝐸 𝑧𝑗 𝑗=1 𝑗=1 𝑤𝑖𝑗は平均0のガウス分布だから 𝐸 𝑎𝑖 𝑙 = 0 𝑥と𝑦が独立なら𝐸 𝑥𝑦 = ∫ ∫ 𝑥𝑦𝑝 𝑥 𝑝 𝑦 𝑑 ∫ 𝑦𝑝 𝑦 ∫ 𝑥𝑝 𝑥 𝑑𝑥 𝑑𝑦 = ∫ 𝑥𝑝 𝑥 𝑑𝑥∫ 𝑦𝑝 𝐸𝑥𝐸𝑦 𝑎𝑖𝑙 分散は 𝑀 𝑀 (𝑙− 1) (𝑙− 1) var 𝑎𝑖 = var 𝑤𝑖𝑗 𝑧𝑗 = var 𝑤𝑖𝑗 𝑧𝑗 𝑗=1 𝑗=1 2 2 2 2 (𝑙− 1) var 𝑤𝑖𝑗 𝑧𝑗 = 𝐸 𝑤𝑖𝑗 2 𝐸 𝑧𝑗 𝑙− 1 − 𝐸 𝑤𝑖𝑗 𝐸 𝑧𝑗 𝑙− 1 = 𝐸 𝑤𝑖𝑗 2 𝐸 𝑧𝑗 𝑙− 1 2 2 𝐸 𝑤𝑖𝑗 = 0だから𝐸 𝑤𝑖𝑗 = 𝐸 𝑤𝑖𝑗 − 𝐸 𝑤𝑖𝑗 = var 𝑤𝑖𝑗 = 𝜖 2 2 一方,var 𝑧𝑗 𝑙− 1 = 𝐸 𝑧𝑗 𝑙− 1 − 𝐸 𝑧𝑗 𝑙− 1 = 𝜆2である. 𝐸 𝑧𝑗 𝑙− 1 は定数で,それが何であれ,分散 var 𝑧𝑗 𝑙− 1 2 こでは, 𝐸 𝑧𝑗 𝑙− 1 = 0, var 𝑧𝑗 𝑙− 1 = 𝐸 𝑧𝑗 𝑙− 1 = 𝜆2と仮定する. 𝑙 𝑀 var 𝑎𝑖 𝑙 = var var 𝑧𝑖 var 𝑎𝑖 = 𝜖 2𝜆2 = 𝑀𝜖 2𝜆2 𝑗=1 また, 𝑙 𝑀 (𝑙− 1) 𝑤𝑖𝑗 𝑧𝑗 ∞ = ∫−∞ 𝑙 𝑎𝑖 − 𝐸 𝑎𝑖 𝑙 2 𝑝 𝑎𝑖 𝑙 𝑑𝑎𝑖 𝑙 𝑙 𝑗=1 ∞ =න ReLU 𝑎𝑖 −∞ ∞ = ∫−∞ 𝑎𝑖 𝑙 2 var 𝑧𝑖 𝑙 2 𝑝 𝑎𝑖 𝑙 𝑙 𝑙 ∞ 𝑑𝑎𝑖 = න 0 𝑎𝑖 𝑙 2 𝑥と𝑦が独立ならvar 𝑥𝑦 = 𝐸ሾ(𝑥𝑦 − 𝐸 𝑥𝑦 )2ሿ = 𝐸 𝑥𝑦 2 − 𝐸 𝑥𝑦 2 = 𝐸 𝑥 2𝑦 2 − 𝐸 𝑥 2 𝐸 𝑦 2 = 𝐸 𝑥 2 𝐸ሾ𝑦 2ሿ − 𝐸𝑥 2 𝐸𝑦 2 𝑝 𝑎𝑖 𝑙 𝑑𝑎𝑖 𝑙 𝑑𝑎𝑖 であり,さらに𝑎𝑖 𝑙 が対称な分布であると仮定すれば ∞ 2 1 = න 𝑎𝑖 𝑙 𝑝 𝑎𝑖 𝑙 𝑑𝑎𝑖 𝑙 = 𝑀𝜖 2𝜆2 2 0 𝑝 𝑎𝑖 𝑙 𝑙 = 𝜆2でなければならない.こ
重みの初期化 • 理想的には,ある層から次の層に伝播するとき,事前の活性の分散がゼロに減衰したり,大幅 に増加したりしないようにしたい. • したがって,𝑙層のユニットの分散も𝜆2 にするのであれば,𝑀個の入力を持つユニットに入力す る重みを初期化するために使用されるガウスの標準偏差を次の値にする. • 𝜖= 2 𝑀 𝑀 2 2 𝜖 𝜆 = 𝜆2 2 2 𝜖2 = 𝑀 • 初期化分布の𝜖をハイパーパラメータとして扱い,複数の訓練の実行にわたって異なる初期値 を探索することも可能である. • 通常,バイアスパラメーターは,学習中ほとんどの前活性が最初にアクティブになるように, 小さな正の値に設定される.これは,学習を進めるためにゼロ以外の勾配が存在するように前 活性を正にする必要があるReLUで有効である. • ニューラルネットワークのパラメータ初期化のもう1つの重要なテクニックは,別のタスクで ネットワークを訓練した結果の値を使用するか,さまざまな形式の教師なし訓練を利用するこ とである.これらの手法は転移学習に分類される.
収束
収束 • 勾配降下法では学習率パラメータ𝜂の値を決める必要がある. • 図のような谷を形成する仮想の 2 次元重み空間での単純な誤差曲面を考える. • この空間では𝐸の曲率が方向によって大きく変化する. • 誤差曲面上のほとんどの点では勾配ベクトルは最小値に向いていない. • 直感的には𝜂を大きくすると重み空間のステップが大きくなり収束が速くなる と予想されるが,実際には図のように連続するステップは谷を挟んで前後に振 動するため,𝜂を大きくしすぎると振動が発散する. • 谷を横切る発散振動を避けるために𝜂を十分に小さくする必要があるため,と てもゆっくり谷に沿って進む. • 勾配降下法では最小値に到達するまでに多くの小さなステップが必要となり非 常に非効率な手順となる.
誤差関数の二次近似の解析 𝟏 • 最小値付近の誤差関数の二次近似𝐸 𝒘 = 𝐸 𝒘⋆ + 𝟐 𝒘 − 𝒘⋆ T 𝐇 𝒘 − 𝒘⋆ を考察し,この現象 の理解を深める. • 二次近似における誤差関数の勾配は次のように書ける. • ∇𝐸 𝒘 = 𝐇 𝒘 − 𝒘⋆ = 𝐇 σ𝑖 𝛼𝑖 𝒖𝑖 = σ𝑖 𝛼𝑖 𝐇𝒖𝑖 = σ𝑖 𝛼𝑖 𝜆𝑖 𝒖𝑖 • 𝒘 − 𝒘⋆ = σ𝑖 𝛼𝑖 𝒖𝑖 から係数{𝛼𝑖 }の変化に対する重みベクトルの変化は • Δ𝒘 = σ𝑖 Δ𝛼𝑖 𝒖𝑖 Δ𝒘 = 𝒘𝜏 − 𝒘𝜏−1 • 𝒘 𝜏 = 𝒘 𝜏 − 1 − 𝜂∇𝐸 𝒘 𝜏 − 1 より = 𝒘⋆ + 𝛼𝑖,𝜏 𝒖𝑖 − 𝒘⋆ + 𝛼𝑖,𝜏−1 𝒖𝑖 • Δ𝒘 = 𝒘 𝜏 − 𝒘 𝜏 − 1 = −𝜂∇𝐸 𝒘 𝜏 − 1 𝑖 = −𝜂 σ𝑖 𝛼𝑖 𝜆𝑖 𝒖𝑖 𝑖 = 𝛼𝑖,𝜏 − 𝛼𝑖,𝜏−1 𝒖𝑖 = Δ𝛼𝑖 𝒖𝑖 𝑖 𝑖 • σ𝑖 Δ𝛼𝑖 𝒖𝑖 = −𝜂 σ𝑖 𝛼𝑖 𝜆𝑖 𝒖𝑖 • これの両辺に𝒖𝑖 をかけると,勾配法におけるステップあたりの係数 𝛼𝑖 の変化が求まる. • Δ𝛼𝑖 = −𝜂𝛼𝑖 𝜆𝑖
誤差関数の二次近似の解析 • よって • 𝛼𝑖𝑛𝑒𝑤 = 𝛼𝑖𝑜𝑙𝑑 + Δ𝛼𝑖 = 𝛼𝑖𝑜𝑙𝑑 − 𝜂𝛼𝑖𝑜𝑙𝑑 𝜆𝑖 = 1 − 𝜂𝜆𝑖 𝛼𝑖𝑜𝑙𝑑 • ここで,oldとnewは重みの更新前後の値を示す.これから,𝛼𝑖 はそれぞれ独立して変 化し,各ステップで 1 − 𝜂𝜆𝑖 が乗算されることが分かる. • 𝒘 − 𝒘⋆ = σ𝑖 𝛼𝑖 𝒖𝑖 の両辺に𝒖𝑖 をかけると • 𝒖T𝑖 𝒘 − 𝒘⋆ = 𝛼𝑖 • したがって,𝛼𝑖 は方向𝑢𝑖 に沿った最小値までの距離として解釈できる. • また,𝑇ステップの後, 𝛼𝑖 は次のようになる. • 𝛼𝑖 𝑇 = 1 − 𝜂𝜆𝑖 𝛼𝑖 0 • 1 − 𝜂𝜆𝑖 < 1という条件では,𝑇 → ∞の極限を取ると, 𝛼𝑖 = 0となる.このとき,𝒘 − 𝒘⋆ = 0となるので,重みベクトルは誤差の最小値に達する.
誤差関数の二次近似の解析 • 𝛼𝑖 𝑇 = 1 − 𝜂𝜆𝑖 𝛼𝑖 0 は,勾配降下が最小値付近で線形収束することを示している. • また,静止点に収束するには,すべての𝜆𝑖 が正である必要があり( 1 − 𝜂𝜆𝑖 < 1 のと き収束, 𝜂 > 0なら𝜆𝑖 > 0) ,これは静止点が実際に最小であることを意味する. • 𝜂を大きくすると係数 1 − 𝜂𝜆𝑖 は小さくなり,収束速度が向上する. • ただし,𝜂を大きくするには限界がある. • 1 − 𝜂𝜆𝑖 < 1より, 𝜂の値が𝜂 < 2/𝜆max に制限される. • 𝜆max は固有値の最大値である. • ただし,収束率 1 − 𝜂𝜆𝑖 は最小の固有値によって支配されるため𝜂を最大許容値に設 定すると最小の固有値に対応する方向に沿った収束は次のように支配される. 2𝜆 • 1 − 𝜆 min max • ここで,𝜆min は最小の固有値である. 𝜆min /𝜆max の比(この逆数はヘッセ行列の条件 数)が非常に小さい場合,つまり図のように誤差の等高線が非常に細長い楕円になっ ていると最小値への進みが遅くなる.
Momentum • 固有値が大きく異なる問題に対処する簡単な手法の1つは,勾配降下の式に Momentum項を追加である. • これにより,重み空間での動きに慣性が効果的に追加され,振動が平滑化され る. • Momentumが追加された勾配降下の式は次のようになる. • 𝚫𝒘 𝜏 − 1 = −𝜂∇𝐸 𝒘 𝜏 − 1 + 𝜇Δ𝒘 𝜏 − 2 • ここで,𝜇は運動量パラメータである.これを𝒘 𝜏 = 𝒘 𝜏 − 1 + Δ𝒘 𝜏 − 1 に 代入し重みベクトルを更新する.
Momentumの効果 • Momentum項の効果を理解するために,上の図のように曲率が小さ く勾配が緩やかで,勾配が変化しないと近似する場合を考える. • 先の重みの更新式を長い一連の重み更新に繰り返し適用したとする と,重みの変化は次のように書ける. 𝜂 • Δ𝒘 = −𝜂∇𝐸 1 + 𝜇 + 𝜇2 + ⋯ = − 1−𝜇 ∇𝐸 • この式から,momentum項により,学習率が𝜂から𝜂 /(1 − 𝜇 ) に増 加することが分かる. • 対称的に,中図のように勾配降下が振動する曲率の高い領域では, momentum項の寄与が相殺される傾向があり,有効学習率は𝜂に近 くなる.したがって,momentum項は,発散振動を引き起こすこと なく最小値に向かってより速く収束することができる.momentum 項の効果の概略図を下図に示す.
RMSPropとAdam • 最適な学習率は誤差曲面の局所的な曲率に依存する. • さらにこの曲率はパラメータ空間の方向に応じて変化する可能性がある. • そのため,ネットワークの各パラメータに対し異なる学習率を使用するアルゴ リズムが提案されている. • この直感が実際に当てはまるのは,主曲率方向が重み空間の軸と一致している場合, つまり局所的にヘッシアンが対角である場合に限られるが,実際にはそのようなこ とは起こりそうにないことを注意しておく.それにもかかわらず,この種のアルゴ リズムは効果的で,広く使用されている. 𝒘2 𝒘1 パラメタはそれぞれ独立だから,それぞれ別 に最適化(別の学習率)してよいだろうとい う気持ちがある.しかし,実際にはそんなこ とは無い.
AdaGrad • Adaptive gradientの略称であるAdaGradは,各学習率パラメータに対して計算された すべての導関数の2乗の累積和𝑟𝑖 𝜏 を使用し,各学習率パラメータを時間の経過とと もに減少させる (Duchi, Hazan, and Singer, 2011). • したがって,高い曲率に関連するパラメータは最も急速に減少する. • 𝑟𝑖 𝜏 = 𝑟𝑖 𝜏−1 + • 𝑤𝑖 𝜏 = 𝑤𝑖 𝜏−1 − 𝜕𝐸 𝒘 2 𝜕𝑤𝑖 𝜂 𝑟𝑖 𝜏 𝜕𝐸 𝒘 +𝛿 𝜕𝑤𝑖 • ここで,𝜂は学習率パラメータ,𝛿は小さな定数,たとえば10−8 で,𝑟𝑖 がゼロに近い場 合の安定性を保証する. • このアルゴリズムは𝑟𝑖 0 = 0で初期化される. • 𝐸(𝒘)は特定のミニバッチの誤差関数であり,重みは確率的勾配降下で更新されるが, それぞれのパラメタに対し調整された学習率を使用する.
RMSProp • AdaGradの問題の1つは,訓練の開始直後から勾配の2乗が蓄積されるため, 重みの更新が非常に小さくなり,後の段階でトレーニングが遅くなりすぎる可 能性があることである. • RMSProp アルゴリズム (Root Mean Square Propagation) では,AdaGradの 勾配の二乗和を指数加重平均に置き換える (Hinton、2012). • 𝑟𝑖 𝜏 • 𝑤𝑖 𝜏 = 𝛽𝑟𝑖 𝜏−1 = 𝑤𝑖 𝜏−1 + 1−𝛽 𝜂 − 𝑟𝑖 𝜏 𝜕𝐸 𝒘 2 𝜕𝑤𝑖 𝜕𝐸 𝒘 +𝛿 𝜕𝑤𝑖 • ここで,0 < 𝛽 < 1で,𝛽 = 0.9が典型的な値である.
Adam • RMSPropとmomentumを組み合わせたものがAdam (Adaptive moments) (Kingma and Ba, 2014) である. • Adamは、次の形式の勾配と2 乗勾配の両方の指数関数的に重み付けされた移動平均で構成される更新方程式を 使用して各パラメーターのmomentumを個別に保存する. • 𝑠𝑖 𝜏 • 𝑟𝑖 𝜏 • 𝑠ෝ𝑖 𝜏 • 𝑟ෝ𝑖 𝜏 • 𝑤𝑖 𝜏 = 𝛽1 𝑠𝑖 𝜏−1 = 𝛽2 𝑟𝑖 𝜏−1 𝑠𝑖 + 1 − 𝛽1 𝜕𝐸 𝒘 + 1 − 𝛽2 𝜕𝐸 𝒘 𝜏 𝜕𝑤𝑖 2 𝜕𝑤𝑖 𝜏 = 1−𝛽𝜏 1 𝑟𝑖 𝜏 = 1−𝛽𝜏 𝑠𝑖 を0に初期化すると,訓練のはじめ のうちは小さな値となる(これがバイ アスにあたる). 𝛽1𝜏 も訓練はじめの うちは大きな値となるので,係数 1/ 1 − 𝛽1𝜏 は大きな値となる.つまり 𝜏 , 𝑠𝑖 が小さい分,係数を大きくし, バイアスを補正する. 𝛽1 = 0.9のときの例 𝜏 = 1のとき,1/(1 − 𝛽11 ) = 10 𝜏 = 10のとき,1/(1 − 𝛽110 ) ≈ 1.5 𝜏 = 100のとき,1/(1 − 𝛽1100 ) ≈ 1.0 1 = 𝑤𝑖 𝜏−1 −𝜂 𝜏 𝑠ෝ𝑖 𝜏 𝑟ෝ𝑖 +𝛿 • ここで、係数1/ 1 − 𝛽1𝜏 および1/ 1 − 𝛽2𝜏 は,𝑠𝑖 0 および𝑟𝑖 0 をゼロにすることで起こるバイアスを補正する. • 重み付けパラメータの一般的な値は,𝛽1 = 0.9および𝛽2 = 0.99である.
正規化
正規化 • ニューラルネットワークの順方向パス中に計算された変数を正規化すると, ネットワークが極端に大きい値または極端に小さい値を処理する必要がなくな る. • 原理的には,ニューラルネットワークの重みとバイアスは入力変数と隠れ変数 がどのような値でも適応できるが,実際には正規化が効果的な訓練を保証する ために重要となるだろう. • ここでは,入力データ全体で正規化,ミニバッチ全体で正規化,レイヤー全体 で正規化,の3種類の正規化を取り扱う.
データの正規化 • データセット内の異なる入力変数の値が非常に異なる範囲にわたる場合がある. • このような場合,勾配降下による訓練が大幅に難しくなる可能性がある. • 2 つの重みを持ち,対応する2つの入力変数の範囲が大きく異なる単層回帰ネットワークを考えてみる. • 重みの1つの値が変化すると,他の重みの変化よりも出力,つまり誤差関数に大きな変化が生じる. • したがって,連続入力変数の場合,入力値が同じ範囲に収まるように入力値をスケールすることは非常に有益 だろう. • このスケーリングは,訓練開始時に各入力の平均と分散を使うことで簡単に行うことができる. 1 • 𝜇𝑖 = 𝑁 σ𝑁 𝑛=1 𝑥𝑛𝑖 1 2 • 𝜎𝑖2 = 𝑁 σ𝑁 𝑛=1 𝑥𝑛𝑖 − 𝜇𝑖 𝑥 −𝜇𝑖 • 𝑥𝑛𝑖 = 𝑛𝑖𝜎 𝑖 • スケーリングされた値𝑥𝑛𝑖 はゼロ平均と単位分散となる. • すべての入力が同じ方法でスケーリングされるよう,開発,検証,テストにおいて前処理するときは, 𝜇𝑖 と𝜎𝑖 同じ値を使う必要がある.
バッチ正規化 • 特定の隠れ層の活性化値の範囲に大きなばらつきがある場合,それらの値をゼ ロ平均と単位分散がになるように正規化すると,次の層の学習問題が容易にな る. • ただし,訓練の開始前に一度実行できる入力値の正規化とは異なり,隠れユ ニットの値の正規化はトレーニング中に重みが更新されるたびに繰り返す必要 がある.これはバッチ正規化と呼ばれる(Ioffe , Szegedy, 2015) . • バッチ正規化は,非常に深いニューラルネットワークを訓練しようとすると発生 する勾配の消失と勾配の爆発という問題を大幅に解決する.
バッチ正規化 • 多層ネットワーク内の特定の層を考えてみる. • その層の各隠れユニット𝑖は,入力された前活性の非線形関数𝑧𝑖 = ℎ 𝑎𝑖 を計算する. • そのため,前活性値𝑎𝑖 を正規化するか活性値𝑧𝑖 を正規化するかの選択がある.実際に は,どちらのアプローチも使用できる.ここでは,前活性を正規化する. • 重み値は各ミニバッチの後に更新されるため,正規化を各ミニバッチに適用する.サ イズ𝐾のミニバッチの場合,次のように正規化する. 1 • 𝜇𝑖 = 𝐾 σ𝐾 𝑛=1 𝑎𝑛𝑖 1 2 • 𝜎𝑖2 = 𝐾 σ𝐾 𝑛=1 𝑎𝑛𝑖 − 𝜇𝑖 • 𝑎ො𝑛𝑖 = 𝑎11 𝑎21 𝜇1 𝑎12 𝑎22 𝑎𝑛𝑖 −𝜇𝑖 𝜎𝑖2 +𝛿 • ここで,𝛿は小さな定数であり,𝜎𝑖2 が小さいときの数値的問題を回避するために導入 された.
バッチ正規化 正規化することで,ネットワークが表せる関数の多様性 が減ることを自由度が減ると表現している. • ネットワークの特定の層で前活性を正規化(ゼロ平均単位分散)することにより,そ の層のパラメータの自由度の数が減少し,その層の表現能力が減少する. • これは,次の式を使用して平均𝛽𝑖 と標準偏差𝛾𝑖 になるように前活性を再スケーリング することで補正することが出来る. • 𝑎𝑛𝑖 = 𝛾𝑖 𝑎ො𝑛𝑖 + 𝛽𝑖 • ここで,𝛽𝑖 と𝛾𝑖 は,ネットワークの重みとバイアスを組み合わせた勾配降下によって 学習される適応パラメーターである. • バッチ正規化を使わない場合,ミニバッチ全体の平均と分散は層内のすべての重みと バイアスの複雑な関数によって決定されるが,学習パラメータを用いたバッチ正規化 の場合,独立したパラメータ𝛽𝑖 と𝛾𝑖 によって直接決定される. • バッチ正規化は微分可能な変数の変換だから,ニューラルネットワークの追加層とみ なすことができる.つまり,各標準的な隠れ層の後にバッチ正規化層を追加すること が出来る.
バッチ正規化 • バッチ正規化はバッチの平均と分散を用いるため,1つのデータから予測する 場合はそれを用いることができない. • これを解決するために,平均と分散を訓練全体での移動平均から計算する. • 𝜇ҧ𝑖 𝜏 = 𝛼 𝜇ҧ𝑖 𝜏−1 + 1 − 𝛼 𝜇𝑖 • 𝜎ത𝑖 𝜏 = 𝛼 𝜎ത𝑖 𝜏−1 + 1 − 𝛼 𝜎𝑖 • ここで,0 ≤ 𝛼 ≤ 1である. • これらの移動平均は訓練中には使用されないが,推論段階で新しいデータ点を 処理するために使用される.
レイヤー正規化 • バッチ正規化では,バッチの平均と分散を計算する.しかし,バッチサイズが 小さすぎるとそれらの推定値はノイジーになる. • また,非常に大規模な訓練セットの場合,ミニバッチが異なるGPUに分割され る可能性があり,ミニバッチ全体にわたるグローバルな正規化が非効率になる. • これを解決するために,各データ点について隠れユニット値を個別に正規化す る,レイヤー正規化(Ba, Kiros, and Hinton,2016)と呼ばれる方法がある. • これは,時間ステップごとに分布が変化し,バッチ正規化が不可能になるリカレン トニューラルネットワークで導入された. しかし,Transformerなどの他のアーキ テクチャでも役に立つ.
レイヤー正規化 • レイヤー正規化では,次の変換を行う. • 𝜇𝑛 = • 𝜎𝑛2 = • 𝑎ො 𝑛𝑖 = 1 𝑀 1 𝐾 σ𝑀 𝑖=1 𝑎𝑛𝑖 𝑎11 𝑎21 𝑎12 𝑎22 2 σ𝑀 𝑎 − 𝜇 𝑛𝑖 𝑛 𝑖=1 𝑎𝑛𝑖 −𝜇𝑛 𝜎𝑛2 +𝛿 𝜇1 • ここで,𝑀は隠れユニットの数である. • バッチ正規化と同様に,追加の学習可能な平均および標準偏差のパラメータが, 隠れユニットごとに𝑎 𝑛𝑖 = 𝛾𝑖 𝑎ො𝑛𝑖 + 𝛽𝑖 で導入される. • 同じ正規化関数を訓練中と推論中に使用できるため,移動平均を保存する必要 がない.
Weight decay
正則化項 • モデルの複雑さを制御するために線形回帰では正則化項を導入する. • 最も単純な正則化項は,次の式のようにモデルパラメータの二乗和である. 𝜆 𝑇 ෨ • 𝐸 𝑤 =𝐸 𝑤 + 𝑤 𝑤 2 • これはパラメータ値に大きなペナルティを与える.この式の係数1/2は,慣例 により含まれることが多いが微分を行うと消える. • この正則化項は,機械学習では重み減衰(weight decay)として知られている. • これが逐次学習アルゴリズムではデータに必要とされない重みの値がゼロに向かっ て減衰することを促すため,そう呼ばれる. • この正則化項の利点の 1 つは,勾配降下で使用する導関数を評価するのが簡単 ことにある. 上記の式の場合,勾配は次の式で与えられる. • ∇𝐸෨ 𝑤 = ∇𝐸 𝑤 + 𝜆𝑤
2次正則化項 • 図は,誤差関数(赤),正規化項𝑤12 + 𝑤22 (緑),正則化誤差関数𝐸 𝑤 + 𝜆 𝑤12 + 𝑤22 (青)の等高線で ある.ここでは,パラメータ空間の軸は,楕円誤差関数の等高線の軸に対応するヘッセ行列の固有 ベクトルと一致するように回転されている. • 𝜆 = 0の場合,𝑤 ⋆ のとき最小誤差となる. • 𝜆 > 0の場合,正則化誤差関数𝐸 𝑤 + 𝜆 𝑤12 + 𝑤22 の最小値は原点に向かってシフトする. • 図において,このシフトは, 𝐸 𝑤 が𝑤1 の影響を受けにくいため𝑤1 方向で大きくなり, 𝐸 𝑤 が𝑤2 により強 く依存しているため𝑤2 方向では小さくなる. • 正則化項は重みパラメータの大きさを縮小する効果を持つ. • 直感的には,出力が𝑤1 の影響を比較的受けないため,𝑤2 のみがアクティブになり,𝑤1 をゼロに近づける. • パラメータの有効数は,正則化後にアクティブなままのパラメータ数である. • 正則化項はネットワークの予測精度にほとんど影響を与えないパラメーターを効果的に抑制する. • 𝜆 → ∞の場合,すべてのパラメータはゼロに駆動され, パラメーターの有効数はゼロになる. • 正則化によるモデルの複雑さの制御は,パラメータの数を 制限することによるモデルの複雑さの制御と似ている.
単純なweight decayの限界 𝜆 • 𝐸෨ 𝑤 = 𝐸 𝑤 + 2 𝑤 𝑇 𝑤における単純なweight decayの制限の 1 つは,ネットワークマッピングの望ましい変換 特性を壊すかもしれないことである. • 入力変数 𝑥𝑖 のセットから出力変数 𝑦𝑘 のセットへのマッピングを実行する2層の多層パーセプトロンを考えて みる. • 最初の隠れ層の隠れユニットの活性化は次の形式になる. • 𝑧𝑗 = ℎ σ𝑖 𝑤𝑗𝑖 𝑥𝑖 + 𝑤𝑗0 • 出力ユニットの活性は次の式で与えらる. • 𝑦𝑘 = σ𝑗 𝑤𝑘𝑗 𝑧𝑗 + 𝑤𝑘0 • 入力データの線形変換を実行するとする. • 𝑥𝑖 → 𝑥𝑖 = 𝑎𝑥𝑖 + 𝑏 • 次に,入力から隠れ層のユニットへの重みとバイアスの線形変換を行うことでネットワークによって実行され るマッピングが変更されないように調整できる. 1 • 𝑤𝑗𝑖 → 𝑤 𝑗𝑖 = 𝑎 𝑤𝑗𝑖 𝑏 • 𝑤𝑗0 → 𝑤 𝑗0 = 𝑤𝑗0 − 𝑎 σ𝑖 𝑤𝑗𝑖 1 𝑏 𝑤 𝑗𝑖 𝑥𝑖 + 𝑤 𝑗0 = 𝑤𝑗𝑖 (𝑎𝑥𝑖 + 𝑏) + 𝑤𝑗0 − 𝑤𝑗𝑖 𝑎 𝑎 𝑖 𝑖 𝑖 𝑏 𝑏 = 𝑤𝑗𝑖 𝑥𝑖 + 𝑤𝑗𝑖 + 𝑤𝑗0 − 𝑤𝑗𝑖 = 𝑤𝑗𝑖 𝑥𝑖 + 𝑤𝑗0 𝑎 𝑎 𝑖 𝑖 𝑖 𝑖
単純なweight decayの限界 • 同様に,ネットワークの出力を線形変換すると次のようになる. • 𝑦𝑘 → 𝑦𝑘 = 𝑐𝑦𝑘 + 𝑑 • つぎに第2層の重みとバイアスを変換することで,先と同様にネットワークに よって実行されるマッピングが変更されないように調整できる. • 𝑤𝑘𝑗 → 𝑤 𝑘𝑗 = 𝑐𝑤𝑘𝑗 • 𝑤𝑘0 → 𝑤 𝑘0 = 𝑐𝑤𝑘0 + 𝑑 • つまり,線形変換によって入力変数および/またはターゲット変数が変換され たデータを使用して訓練したネットワークの重みは,元のデータを使用して訓 練したネットワークの重みの線形変換で得られる. このスライドの例では,𝑤を𝑐倍する出力は𝑐倍とな 𝑇 2 る.しかし,L2正則化項𝑤 𝑤だから𝑐 倍となる. つまり,L2正則化の場合は,スケールの影響がネ ットワークと正則化項で異なってしまう. • どの正則化も,この性質と一致している必要がある. • しかし,先の単純なweight decay(L2正則化)は,この特性を満たしていない.
修正されたweight decay • 線形変換の下で不変である正則化項を考える. • これを満たすために,正則化項が重みの再スケーリングやバイアスのシフトに 対して不変である必要がある. • このような正則化項は次のように与えられる. • 𝜆1 2 2 σ𝑤∈𝒲1 𝑤 + 𝜆2 2 σ𝑤∈𝒲2 𝑤 2 • ここで,𝒲1 は最初の層の重みのセットを表し,𝒲2 は2番目の層の重みのセッ トを表す.バイアスは合計から除外している. • この正則化は,𝜆1 → 𝑎1/2 𝜆1 および𝜆2 → 𝑐 −1/2 𝜆2 を使用して再スケーリングされ た正則化パラメータにより提供される重み変換の下でも変わらず維持される. Pytorchのweight decayは単純なL2正則化のようだ. https://pytorch.org/docs/stable/generated/torch.optim.SGD.html
学習曲線
学習曲線 • 勾配降下による誤差関数の最適化中,モデルパラメーターが更新されると訓練 誤差は通常減少するが,検証データの誤差は単調ではないだろう. • この誤差の動きは学習曲線を使用して視覚化できる. • 学習曲線は,反復学習プロセス中の反復回数の関数として訓練セットや検証 セットの誤差などのパフォーマンスの測定値をプロットしたものである.
早期停止 • 正則化に代わるネットワークの実質的な複雑さを制御する方法は,訓練を早期に停止 することである. • 深層学習モデルの訓練において,訓練セットを使用して評価された誤差関数は,反復 回数の関数としてほぼ単調な減少を示すことがよくある. • しかし,一般に検証セットに関して測定された誤差は,多くの場合,最初は減少し, ネットワークがオーバーフィッティングし始めると増加する. • したがって,良好な汎化能力を持つネットワークを取得するには,右図に示すように, 検証データセットに関して誤差が最小になる時点で訓練を停止する必要がある. 0.45 ここで訓練を止めたい. 0.25 0.4 0.2 0.15 0 10 20 30 40 50 訓練データに対する誤差の変化 0.35 0 10 20 30 40 50 検証データに対する誤差の変化
早期停止が有効な理由 • 学習曲線のこの動作は,ネットワーク内のパラメータの有効数という観点から定性的に説明さ れる場合がある. 初期では訓練データを説明する事が出来るパラメータの数(有効なパラメータの数)は少ないが,訓練すると増えてくる. • パラメタの有効数は最初は小さく,訓練中に増加する.これは,モデルの実質的な複雑さの着 実な増加に対応する. • トレーニング誤差が最小値に達する前にトレーニングを停止することは,実質的なネットワー クの複雑さを制限する方法となる. • 図は,二次誤差関数のヘッセ行列の固有ベクトルと平行になるように重み空間の軸が回転され ている. • Weight decayがない場合,重みベクトルが原点から始まり,訓練中に 局所的に負の勾配ベクトルに従うパスに沿って進むなら,重み ベクトルは最初は𝑤2 軸に平行に移動し,𝑤におおよそ対応した点を ෝ 通過し,誤差関数𝑤𝑀𝐿 の最小値に向かって移動する. • したがって, 学習をෝ 𝑤に近い点で停止させることは,weight decayに 似ている(Weight decayの図を思い出そう).
モデルは大きほど良い • パラメーターが少なすぎるモデルでは,表現能力が限られているためテスト セットの誤差が高くなる.そして,パラメーターの数が増加させるにつれて, テスト誤差は低下すると予想される. • しかし,パラメーターの数がさらに増加すると,オーバフィッティングにより テスト誤差が再び増加するだろう. • しかし,この予想に反して深層ニューラルネットワークでは,パラメーターの 数がトレーニングデータに完全にフィットするために必要な数をはるかに超え ている場合でも優れたパフォーマンスを発揮できることがわかっている (Zhang et al., 2016). • モデルは大きいほど優れているというは,深層学習コミュニティでは一般的な 知恵である.
Double descent • これらの一見矛盾した視点は,学習曲線や汎化能力とモデルの複雑さの他のプロットを調べることで調整でき る(Belkin et al., 2019). • この調査により,double descenと呼ばれるより捉えにくい現象が明らかになる. • 図は,ResNet18 (He et al., 2015a)と呼ばれるニューラルネットワークの学習可能なパラメータの数に対する訓 練セットとテストセットの誤差を示す.ネットワークは画像分類タスクで訓練されている. • ネットワーク内の重みとバイアスの数は,各層の 隠れユニットの数を制御するwidth parameterに より変化する. • 予想どおり,パラメータ数が増加するに つれて訓練誤差が単調に減少している. • しかし,テストセットの誤差は最初は減少し, その後,増加する.そして,再び減少する. • テストセット誤差の減少は,訓練セットの 誤差がゼロに達した後も継続する.
Double descent • Double descentは,2つの異なるモデルフィッティングの領域を示す. • 古典的なバイアス-バリアンスのトレードオフに対応する,小中程度の複雑性の領域 • テストセットの誤差が減少する巨大なモデルの領域 • この2つの領域間の移行は,モデルのパラメータの数が十分に大きく,モデル が訓練データに正確に適合できる場合にほぼ発生する (Belkin et al., 2019).
早期停止とdouble descent • 図に示すように,早期停止を使用してモデルの複雑さを制御すると,double descentと同様の動きが見られる. • エポックの数を増やすと実質的なモデルの複雑さが増加する. • 十分に大きなモデルでは,エポック数の増加に伴う実質的なモデルの複雑さの 増加により,double descent が観察される. • 正則化項を使用して複雑さを制御する場合にも,同様の結果が得らる.
Double descentの問題 • Double descentの皮肉な結果の1つは,データが多ければ多いほど良いという 従来の考え方とは逆に,学習データセットのサイズを大きくすると,かえって 性能が低下するような領域で動作する可能性があることである. • 図に示すResNetの場合,訓練セットのサイズを増やすと,interpolation thresholdが右に押し上げられ,テストセットの誤差が増加する可能性がある. データが増えるとInterpolation threasholdが移動
Double descentの問題 • 図は,transformerのembeddingの次元の関数とテストセットの誤差を示す. • embedding次元を増やすと,モデルの重みとバイアスの数が増え,モデルの複 雑さが増す. • 訓練セットのサイズを4,000から18,000データ点に増やすと,全体的には,誤 差は低くなる. • しかし,critical regimeに対応する 次元の範囲では,データセットの サイズを大きくすると汎化能力が 低下する可能性がある.