2.3K Views
March 07, 24
スライド概要
Deep Learning Foundations and Conceptsの勾配降下の章をまとめたものです.
⼈⼯ニューラルネットワー クのための勾配降下 公⽴⼩松⼤学 藤⽥ ⼀寿 Ver. 20240605 Bishop and BishopのDeep learningの勾配降下の章をまとめたものです. 所々独⾃解釈が⼊っています.途中式はあります. 興味がある⽅は本も読みましょう.無料で読めます. https://www.bishopbook.com/
⼈⼯ニューラルネットワークの訓練 • ⼈⼯ニューラルネットワークはタスクを解くために訓練する. • 訓練では,タスクが解ける適したパラメータ(重みとバイアス)を探す. • 適したパラメータとは何か? • タスクに応じ設定した誤差関数(損失関数) 𝐸 𝒘 を⼩さくするパラメータがタス クに適したパラメータとする. • 誤差関数を⼩さくするパラメータをどう探すか? • 誤差関数の勾配(微分)情報を利⽤し,誤差関数を最適化する. • 誤差関数は微分可能であるように設計する必要がある. 誤差関数𝐸 𝒘 ∇𝐸 𝒘 ≠ 0 ∇𝐸 𝒘 = 0 接線
誤差局⾯ • ニューラルネットワークの訓練の⽬的は,タスクが効果的に解ける重みとバイアス の値を⾒つけることである. • タスクが効果的に解けるかどうかを誤差関数𝐸 𝒘 で定量化し,𝒘について最適化す る. E(w) • 𝐸 𝒘 は重み空間上の⾯としてみることができる. • 𝒘から𝒘 + 𝛿𝒘の微⼩な変化があったとき,𝐸 𝒘 の変化は次のように書ける. • 𝛿𝐸 ≅ 𝛿𝒘! ∇𝐸 𝒘 • ∇𝐸 𝒘 は𝐸 𝒘 の勾配で,その⽅向は𝐸 𝒘 の増加が最も⼤きい⽅向を表す. w wA wB 2 • 𝐸 𝒘 が滑らかで連続であるならば,𝐸 𝒘 の最も⼩さい値は勾配が消える場所にある だろう. • ∇𝐸 𝒘 = 0 • 逆に,−∇𝐸 𝒘 の⽅向に𝒘を微⼩変化させれば𝐸 𝒘 を減らせる. wC rE
誤差関数の最⼩化 • 我々の⽬的は,誤差関数を最⼩とする𝒘を求めることである. • 誤差関数は𝒘に対し極めて⾮線形な依存性を持っている. • 勾配が消失(もしくは極めて⼩さい)点は重み空間に多数あることが予想される. • つまり,極⼩値は沢⼭ある. E(w) • 重み空間全域における誤差関数の最⼩値をglobal minimumという. • 最⼩値よりも⼤きい極⼩値をlocal minimumという. w1 wA wB wC w2 • 深層ニューラルネットワークでは誤差関数の曲⾯は⾮常に複雑になる可能性が あり,不適切な極⼩値に陥る可能性がある. • しかし,実際にはこれはあまり当てはまらないようで,⼤きなネットワークは 様々な初期条件下でも同等のパフォーマンスに達成できる. rE
局所2次近似 $ • 誤差関数𝐸 𝒘 を𝒘の付近で2次近似すると $ + 𝒘−𝒘 $ !𝒃 + • 𝐸 𝒘 ≅𝐸 𝒘 𝟏 𝟐 $ ! 𝐇(𝒘 − 𝒘) $ 𝒘−𝒘 • 𝒃は𝒘 $ のときの 𝐸 𝒘 の勾配,𝐇は𝐸 𝒘 のヘッシアンである. • 𝒃 = ∇𝐸 𝒘 |𝒘#$ 𝒘 , 𝐇 = ∇∇𝐸 𝒘 |𝒘#$ 𝒘 • 𝐸 𝒘 の勾配は $ • ∇𝐸 𝒘 = 𝒃 + 𝐇(𝒘 − 𝒘) $ • となる.𝒘と𝒘が⼗分近ければ,これは⼗分reasonableな近似である.
局所2次近似 • 誤差関数𝐸 𝒘 を最⼩とする𝒘⋆ を考え,その周辺での局所2次近似を考える. 𝒘⋆ 周辺でテーラー展開する. • このときの𝐸 𝒘 の勾配は • ∇𝐸 𝒘 = 𝒃 + 𝐇 𝒘 − 𝒘⋆ • 最⼩値では勾配は0だから, • 𝒃 + 𝐇 𝒘 − 𝒘⋆ = 0 • 両辺に 𝒘 − 𝒘⋆ ! をかけると • 𝒘 − 𝒘⋆ ! 𝒃 + 𝒘 − 𝒘⋆ ! 𝐇 𝒘 − 𝒘⋆ = 0 • これを誤差関数の局所2次近似に代⼊すると & • 𝐸 𝒘 ≅ 𝐸 𝒘⋆ + 𝒘 − 𝒘⋆ ! 𝒃 + ' 𝒘 − 𝒘⋆ ! 𝐇 𝒘 − 𝒘⋆ & • = 𝐸 𝒘⋆ + ' 𝒘 − 𝒘⋆ ! 𝐇 𝒘 − 𝒘⋆
誤差関数の解釈 • 誤差関数を幾何学的に考えてみよう. 𝑤# • ヘッシアン𝐇の固有値⽅程式は • 𝐇 𝒖$ = 𝜆$ 𝒖$ 𝛼& 𝒖& • 固有ベクトル 𝒖$ は完全正規直交系を形成するから 𝒘 • 𝒖$ 𝒖% = 𝛿$% • 𝛿$% はクロネッカーのデルタである. 𝒘 − 𝒘⋆ 𝛼% 𝒖% 𝒘⋆ 𝑤" • 任意のベクトルは固有ベクトルの線形結合で表せるから • 𝒘 − 𝒘⋆ = ∑$ 𝛼$ 𝒖$ • これは原点が点𝒘⋆ に平⾏移動され,{ 𝒖' , … , 𝒖( } である直交⾏列を通じて軸を 固有ベクトルに合わせて回転させる座標系の変換とみなすことができる.
誤差関数の解釈 • 以上を⽤い誤差関数を書き変えると 𝟏 1 𝐸 𝒘 = 𝐸 𝒘⋆ + 𝒘 − 𝒘⋆ ' 𝐇 𝒘 − 𝒘⋆ = 𝐸 𝒘⋆ + . 𝛼% 𝒖% 𝟐 2 = 𝐸 𝒘⋆ + 1 . 𝛼% 𝒖% 2 % % ' ' ' 𝐇 . 𝛼% 𝒖% % 1 . 𝛼% 𝒖% . 𝛼% 𝜆% 𝒖% 2 % % 𝑖 ≠ 𝑗のとき𝒖 % 𝒖& = 0 # . 𝛼% 𝐇𝒖% = 𝐸 𝒘⋆ + % 1 = 𝐸 𝒘⋆ + . 𝜆% 𝛼% 2 % • 𝜆$ が全て正ならば, 𝐸 𝒘 > 𝐸 𝒘⋆ となり𝐸 𝒘⋆ は極⼩値である. • 𝜆$ が全て負ならば, 𝐸 𝒘 < 𝐸 𝒘⋆ となり𝐸 𝒘⋆ は極⼤値である. • 𝜆$ が正負が混合しているならば, 𝒘⋆ はsaddle pointである.
正定値 • ヘッシアン𝐇が任意の⾮ゼロベクトル𝑣に対し • 𝒗) 𝐇𝒗 > 0 • である時,正定値(positive definite)であるという.𝒖は完全基底であるから • 𝒗 = ∑$ 𝑐$ 𝒖$ • と書ける.よって • 𝒗) 𝐇𝒗 = ∑$ 𝑐$ 𝒖$ ) 𝐇 ∑$ 𝑐$ 𝒖$ = ∑$ 𝑐$* 𝜆$ > 0 • つまり,固有値が全て正のとき𝐻は正定値となる. • また,𝒗が𝑐$ 𝒖$ ⽅向のベクトルとしたとき固有値𝜆$ > 0である.つまり,正定値 であるとき固有値は全て正でなければならない.
誤差関数が𝒘⋆ で極⼩値である必要⼗分条件 • 誤差関数が𝒘⋆ で極⼩値である必要⼗分条件は次のとおりである. • 誤差関数の勾配が𝒘⋆で消滅する. • 𝒘⋆のときのヘッシアンが正定値である. ' • また,𝐸 𝒘 = 𝐸 𝒘⋆ + * ∑$ 𝜆$ 𝛼$* だから,図に⽰すように基底ベクトルが固有 ベクトル 𝒖$ によって与えられる新しい座標系では,𝐸(𝒘)の等⾼線は原点を中 ⼼とする軸に沿った楕円になる(つまり𝐸(𝒘)は定数としたときの𝒘は𝒘⋆ を中 ⼼とする楕円上にある). w2 𝒘 = 𝛼" 𝒖" + 𝛼# 𝒖# u2 1/2 u1 w? 2 1/2 1 1 𝐸 𝒘 = 𝐸 𝒘⋆ + * 𝜆" 𝛼"# 2 " * 𝜆" 𝛼"# = 2 𝐸 𝒘 " 𝛼"# * − 𝐸 𝒘⋆ =𝐶 =1 𝐶 𝜆" よって,軸の⻑さが 𝐶/𝜆" の楕円である. "
勾配降下最適化
反復処理 • ニューラルネットワークの誤差関数において∇𝐸 𝒘 = 0に対する解析解を⾒つける ことはほとんど期待できないため,反復的な数値処理に頼ることになる. • 反復的な⼿法では,重みベクトルの初期値𝒘 0 を選択し,次の形式で⽰す⼀連の ステップで重み空間を移動する. • 𝒘 𝜏 = 𝒘 𝜏 − 1 + Δ𝒘 𝜏 − 1 • 𝜏は反復ステップを表す.重みベクトルの更新量Δ𝒘 𝜏 − 1 は,アルゴリズムにより 異なる. • 最も単純なニューラルネットワークを除くすべてのニューラルネットワークでは, 誤差曲⾯の形状が複雑なため,⾒つかった解は初期値𝒘 0 の選択に依存する. • ⼗分に適切な解を⾒つけるには,勾配ベースのアルゴリズムを複数回実⾏し,その たびにランダムに選択される異なる初期値を使⽤し,独⽴した検証セットで結果の パフォーマンスを⽐較する必要があるかもしれない.
バッチ勾配降下 • 勾配を⽤いた反復処理により,誤差関数を最⼩とする𝒘を求める. • 最も簡単なアプローチは,重み 𝒘 を負の勾配の⽅向に⼩さく移動させる⽅法である. • 𝒘 𝜏 = 𝒘 𝜏 − 1 − 𝜂∇𝐸 𝒘 𝜏 − 1 • ここで,パラメータ𝜂 > 0は学習率である. • 重みの更新が⾏われる度に勾配を再計算し,さらに新たな重みを計算することを繰 り返す. • 各ステップで重みは誤差関数の最⼤減少率の⽅向に移動するため,このアプローチ は勾配降下法または最急降下法と呼ばれる. • 誤差関数は訓練セットから計算されるため, ∇𝐸を計算するには各ステップで訓練 セット全体を処理する必要がある. • データセット全体を⼀度に使⽤する⼿法はバッチ法と呼ばれる.
確率的勾配降下 • 訓練セットに多くのデータポイントがある場合,誤差関数または勾配の計算でデータセット全体を処 理する必要があるため,バッチ⼿法は⾮常に⾮効率になるだろう. 分類のときの誤差関数を思い出してほしい. • より効率的なアプローチを⾒つけるために,⼀連の独⽴した観測値のセットの最⼤尤度に基づく誤差 関数はデータポイントごとの項の合計で構成されることに注意する.つまり,𝐸(𝒘) = ∑* ()" 𝐸( 𝒘 . • ⼤規模なデータセットに対して最も広く使⽤されている訓練アルゴリズムは確率的勾配降下(SGD) として知られる勾配降下法の逐次バージョンに基づいている.これは,次のように⼀度に1つのデー タポイントを⽤い重みベクトルを更新する. • 𝒘 𝜏 = 𝒘 𝜏 − 1 − 𝜂 ∇𝐸( 𝒘 𝜏 − 1 • この更新はデータを循環させることによって繰り返される.訓練セット全体を1順することを1エポッ クという. • 確率的勾配降下のさらなる利点は,データの冗⻑性をより効率的に処理できる点にある. • すべてのデータポイントを複製することでそのサイズを2 倍にすることを考える.バッチ法では誤差関数の勾配 を計算するために2倍の計算量が必要となるが,確率的勾配降下法は複製の影響を受けない. • 確率的勾配降下のもう 1 つの特性は,データセット全体の誤差関数に関する停留点は⼀般にデータ ポイント個別の停留点とは異なるため,局所最⼩値から脱出できる可能性ある点である.
ミニバッチ • 確率的勾配降下法の⽋点は,単⼀のデータポイントから計算された誤差関数の勾配 は,完全なデータセットで計算された誤差関数の勾配のノイズが多い推定値である 点である. • そこで,ミニバッチと呼ばれるデータポイントの⼩さなサブセットを使⽤して各反 復で勾配を評価する中間のアプローチを考える. • ミニバッチから計算される平均の誤差が𝜎/ 𝑁で与えられることに注意する.ここで,𝜎は データを⽣成する分布の標準偏差𝑁はバッチサイズである.このことから,バッチサイズ を増やすことによる真の勾配の推定値の改善には限界があることが⽰唆される.例えば, ミニバッチのサイズを100倍に増やしても,誤差は1/10にしかならない. • ミニバッチのサイズを決めるときはハードウェアを効率的に利⽤できる値にしたい. • ミニバッチを構成するデータポイントはデータセットからランダムに選択される.エポッ ク毎にランダムに選ぶことができるため,各ミニバッチが以前に使⽤された可能性が低く なり,局所最⼩値を回避するのに役⽴つ. • ミニバッチが使⽤される場合でも,学習アルゴリズムは依然として確率的勾配降下 と呼ばれることが多いことに注意する.
Batch learning, online learning, mini-batch learningのまとめ • Batch learning • 訓練データすべて⽤い学習する.すべてのデータを使うため,学習がノイズや外れ値などの影響を受けにくい.逆に,ノ イズや外れ値の影響が少ないため,local mimimumから抜け出すのが難しいかもしれない.また,⼤量のメモリが必要で ある. • 𝒘$%& = 𝒘$ − 𝜂∇𝐸 𝒘$ 𝟏 𝟐 • 𝐸 𝒘 = ∑+ = ∑+ )*& 𝒚 𝒘, 𝒙) − 𝒕) )*& 𝑬) 𝟐 • Online learning • データ⼀つづつ⽤い学習する.訓練データの総数が分からない場合やコンピュータのメモリが少ない場合有効である.た だし,学習が⼀つ⼀つのデータに影響される.つまり,学習に対しノイズや外れ値の影響がある. • 𝒘$%& = 𝒘$ − 𝜂∇𝐸) 𝒘$ • 𝐸) (𝒘) = 𝟏 𝟐 𝒚 𝒘, 𝒙) − 𝒕) 𝟐 誤差関数は凸関数ではないので,多数の局所最⼩値(local minimum)を持つ. • Mini-batch learning • 訓練データをいくつかに分け,それぞれについて学習する.現在最も使われる.Onlineとbatchの良いとこ取り. • 𝒘$%& = 𝒘$ − 𝜂∇𝐸, 𝒘$ 𝟏 • 𝐸, 𝒘 = ∑𝒙"∈𝑿#$%&' 𝒚 𝒘, 𝒙) − 𝒕) 𝟐 𝟐 • 𝑿01234 にはbatch size個のデータ点 𝒙) が⼊っている. このスライドでは誤差の総和を取っているが平均でも良い. 誤差の⼤きさを学習率で調整するか,個数で割って調整する かの差である.
誤差の計算 ミニバッチ𝑥" , … , 𝑥* が平均𝜇の分布から⽣じたとする. 平均の2乗誤差の期待値は * 𝐸 1 . 𝑥( − 𝜇 𝑁 ()" * = . 𝑥( − 𝑁𝜇 ()" * . = * 𝜎 𝑁 . 𝑥( − 𝜇 ()" 𝐸 𝑥( − 𝜇 𝑥) − 𝜇 = 𝐸 𝑥( 𝑥) − 𝜇𝐸 𝑥( − 𝜇𝐸 𝑥) + 𝜇* = 0 𝑥+ − 𝜇 𝑥( − 𝜇 . 𝑥+ − 𝜇 𝑥( − 𝜇 +)" {(∣()",…,*,+0(} * 1 1 # . 𝐸 𝑥 − 𝜇 + . ( 𝑁# 𝑁# ()" # * +)" {(∣()",…,*,+0(} * * ()" # 1 = #𝐸 𝑁 * 1 1 # 𝐸 . 𝑥 − 𝜇 + 𝐸 . ( 𝑁# 𝑁# * = # * 1 = #𝐸 𝑁 1 𝐸 . 𝑥( − 𝜇 # + . # 𝑁 ()" * = # . +)" {(∣()",…,*,+0(} 𝐸 𝑥+ − 𝜇 𝑥( − 𝜇 = 1 𝑁𝜎 # # 𝑁 ∫ ∫ 𝑥( 𝑥) 𝑝 𝑥( , 𝑥) 𝑑𝑥( 𝑑𝑥) 𝑥( と𝑥) は独⽴だから ∫ ∫ 𝑥( 𝑥) 𝑝 𝑥( , 𝑥) 𝑑𝑥( 𝑑𝑥) = ∫ ∫ 𝑥( 𝑥) 𝑝 𝑥( 𝑝 𝑥) 𝑑𝑥( 𝑑𝑥) = ∫ 𝑥( 𝑝 𝑥( 𝜇𝑑𝑥( = 𝜇*
パラメタの初期化 • 勾配降下法などの反復アルゴリズムでは,学習するパラメーターを初期化しな ければならない. • 初期化は,解に到達するまでにかかる時間と,訓練済みネットワークの汎化能 ⼒に重⼤な影響を与える可能性がある. • 初期化において重要な考慮すべき事項の1つに対称性の破れがある. • 同じ⼊⼒を受け取る⼀連の隠れユニットまたは出⼒ユニットを考えてみる. • パラメータがすべて同じ値で初期化されている場合,これらのユニットのパラメー タはすべて⼀致して更新され,ユニットはそれぞれ同じ関数を計算することになる. • この問題はパラメータをある分布からランダムに初期化して対称性を破ることに よって解決できる. • 計算リソースが許せば,さまざまなランダムな初期化から始めてネットワーク を複数回訓練し,その結果を検証データで⽐較するできるだろう.
重みの初期化 • 重みを初期化するために,通常 −𝜖, 𝜖 の範囲の⼀様分布か,𝑁(0, 𝜖 # )のゼロ平均ガウス分布が通常使 われる. • 𝜖 の値の選択は重要であり,それを選択するためのさまざまなヒューリスティックが提案されている. • He初期化(He et al., 2015b)が広く使⽤されている. • 𝑙層が次の変換をするネットワークを考えてみる. (=@ ") • 𝑎% = = ∑> &)" 𝑤%& 𝑧& • 𝑧% = = ReLU 𝑎%= • ここで,𝑀はユニット𝑖に接続するユニットの数である. = • 𝑁(0, 𝜖 # )のガウス分布を使⽤し重みを初期化し,𝑙 − 1層のユニットの出⼒𝑧% が分散𝜆# を持つと仮定す る. • 𝐸 𝑎% = =0 • var 𝑧% = = > # 𝜖 # 𝜆#
計算の詳細 0 0 (,3 /) 𝐸 𝑎+ , = C 𝐸 𝑤+- 𝑧- -./ 𝑤𝑖𝑗は平均0のガウス分布だから 0 (,3 /) = 𝐸 C 𝑤+- 𝑧- (,3 /) = C 𝐸 𝑤+- 𝐸 𝑧- -./ 𝐸 𝑎+ -./ , 𝑥と𝑦が独⽴なら𝐸 𝑥𝑦 = ∫ ∫ 𝑥𝑦𝑝 𝑥 𝑝 𝑦 𝑑𝑥𝑑𝑦 = ∫ 𝑦𝑝 𝑦 ∫ 𝑥𝑝 𝑥 𝑑𝑥 𝑑𝑦 = ∫ 𝑥𝑝 𝑥 𝑑𝑥∫ 𝑦𝑝 𝑦 𝑑𝑦 = 𝐸 𝑥 𝐸 𝑦 =0 𝑎+, 分散は 0 0 (,3 /) var 𝑎+ = var C 𝑤+- 𝑧-./ * (,3 /) ,3 / * 𝑤+- 𝑧= 𝐸 𝑤+- 𝐸 𝑧− 𝐸 𝑤+, var 𝐸 𝑤+- = 0だから𝐸 𝑤+-* = 𝐸 ⼀⽅,var 𝑧- ,3 / ここでは, 𝐸 𝑧- =𝐸 ,3 / 𝑧- 𝑤+- − 𝐸 𝑤+- ,3 / − 𝐸 𝑧- = 0, var 𝑧- ,3 / * -./ * =𝐸 = 𝜆* である. 𝐸 𝑧𝑧- ,3 / * ,3 / var 𝑎+ var 𝑎+ 5 = ∫35 , 𝑎+ − 𝐸 𝑎+ , * 𝑝 𝑎+ , 𝑑𝑎+ , 𝑧- = 𝜆* と仮定する. , ,3 / * = C var , = C 𝜖 * 𝜆* = 𝑀𝜖 * 𝜆* -./ 5 =N ReLU 𝑎+ 35 5 , = ∫35 𝑎+ var 𝑧+ * , 𝑝 𝑎+ , , * 𝑝 𝑎+ , , , 5 𝑑𝑎+ = N 6 𝑎+ , , * 𝑝 𝑎+ ,3 / = 𝜆* でなければならない. 𝑥と𝑦が独⽴ならvar 𝑥𝑦 = 𝐸[(𝑥𝑦 − 𝐸 𝑥𝑦 )* ] = 𝐸 𝑥𝑦 * − 𝐸 𝑥𝑦 * = 𝐸 𝑥*𝑦* − 𝐸 𝑥 * 𝐸 𝑦 * = 𝐸 𝑥 * 𝐸[𝑦 * ] − 𝐸 𝑥 * 𝐸 𝑦 * 0 (,3 /) 𝑤+- 𝑧- -./ また, , = 𝐸 𝑤+- * 𝐸 は定数で,それが何であれ,分散 var 𝑧- 0 var 𝑧+ * ,3 / 𝐸 𝑧- = var 𝑤+- = 𝜖 * * ,3 / (,3 /) = C var 𝑤+- 𝑧- , 𝑑𝑎+ , 𝑑𝑎+ であり,さらに𝑎+ が対称な分布であると仮定すれば 5 * 1 , , , = N 𝑎+ 𝑝 𝑎+ 𝑑𝑎+ = 𝑀𝜖 * 𝜆* 2 6
重みの初期化 • 理想的には,ある層から次の層に伝播するとき,事前の活性の分散がゼロに減衰したり,⼤幅 に増加したりしないようにしたい. • したがって,𝑙層のユニットの分散も𝜆; にするのであれば,𝑀個の⼊⼒を持つユニットに⼊⼒ する重みを初期化するために使⽤されるガウスの標準偏差を次の値にする. • 𝜖= ; < 𝑀 * * 𝜖 𝜆 = 𝜆* 2 2 𝜖* = 𝑀 • 初期化分布の𝜖をハイパーパラメータとして扱い,複数の訓練の実⾏にわたって異なる初期値 を探索することも可能である. • 通常,バイアスパラメーターは,学習中ほとんどの前活性が最初にアクティブになるように, ⼩さな正の値に設定される.これは,学習を進めるためにゼロ以外の勾配が存在するように前 活性を正にする必要があるReLUで有効である. • ニューラルネットワークのパラメータ初期化のもう1つの重要なテクニックは,別のタスクで ネットワークを訓練した結果の値を使⽤するか,さまざまな形式の教師なし訓練を利⽤するこ とである.これらの⼿法は転移学習に分類される.
収束
u2 収束 u1 • 勾配降下法では学習率パラメータ𝜂の値を決める必要がある. • 図のような⾕を形成する仮想の 2 次元重み空間での単純な誤差曲⾯を考える. • この空間では𝐸の曲率が⽅向によって⼤きく変化する. • 誤差曲⾯上のほとんどの点では勾配ベクトルは最⼩値に向いていない. • 直感的には𝜂を⼤きくすると重み空間のステップが⼤きくなり収束が速くなる と予想されるが,実際には図のように連続するステップは⾕を挟んで前後に振 動するため,𝜂を⼤きくしすぎると振動が発散する. • ⾕を横切る発散振動を避けるために𝜂を⼗分に⼩さくする必要があるため,と てもゆっくり⾕に沿って進む. • 勾配降下法では最⼩値に到達するまでに多くの⼩さなステップが必要となり⾮ 常に⾮効率な⼿順となる.
誤差関数の⼆次近似の解析 𝟏 • 最⼩値付近の誤差関数の⼆次近似𝐸 𝒘 = 𝐸 𝒘⋆ + 𝒘 − 𝒘⋆ @ 𝐇 𝒘 − 𝒘⋆ を考察し,この現象 𝟐 の理解を深める. • ⼆次近似における誤差関数の勾配は次のように書ける. • ∇𝐸 𝒘 = 𝐇 𝒘 − 𝒘⋆ = 𝐇 ∑A 𝛼A 𝒖A = ∑A 𝛼A 𝐇𝒖A = ∑A 𝛼A 𝜆A 𝒖A • 𝒘 − 𝒘⋆ = ∑A 𝛼A 𝒖A から係数{𝛼A }の変化に対する重みベクトルの変化は • Δ𝒘 = ∑A Δ𝛼A 𝒖A • 𝒘 𝜏 = 𝒘 𝜏 − 1 − 𝜂∇𝐸 𝒘 𝜏 − 1 より • Δ𝒘 = 𝒘 𝜏 − 𝒘 𝜏 − 1 = −𝜂∇𝐸 𝒘 𝜏 − 1 = −𝜂 ∑A 𝛼A 𝜆A 𝒖A • ∑A Δ𝛼A 𝒖A = −𝜂 ∑A 𝛼A 𝜆A 𝒖A • これの両辺に𝒖A をかけると,勾配法におけるステップあたりの係数 𝛼A の変化が求まる. • Δ𝛼A = −𝜂𝛼A 𝜆A
誤差関数の⼆次近似の解析 • よって • 𝛼()*+ = 𝛼(,-. + Δ𝛼( = 𝛼(,-. − 𝜂𝛼(,-. 𝜆( = 1 − 𝜂𝜆( 𝛼(,-. • ここで,oldとnewは重みの更新前後の値を⽰す.これから,𝛼( はそれぞれ独⽴し て変化し,各ステップで 1 − 𝜂𝜆( が乗算されることが分かる. • 𝒘 − 𝒘⋆ = ∑( 𝛼( 𝒖( の両辺に𝒖( をかけると • 𝒖!( 𝒘 − 𝒘⋆ = 𝛼( • したがって,𝛼( は⽅向𝑢( に沿った最⼩値までの距離として解釈できる. • また,𝑇ステップの後, 𝛼( は次のようになる. • 𝛼( / = 1 − 𝜂𝜆( 𝛼( 0 • 1 − 𝜂𝜆( < 1という条件では,𝑇 → ∞の極限を取ると, 𝛼( = 0となる.このとき, 𝒘 − 𝒘⋆ = 0となるので,重みベクトルは誤差の最⼩値に達する.
誤差関数の⼆次近似の解析 • 𝛼A B C = 1 − 𝜂𝜆A 𝛼A は,勾配降下が最⼩値付近で線形収束することを⽰している. • また,静⽌点に収束するには,すべての𝜆A が正である必要があり( 1 − 𝜂𝜆A < 1 のとき収束, 𝜂 > 0なら𝜆A > 0) ,これは静⽌点が実際に最⼩であることを意味する. u2 • 𝜂を⼤きくすると係数 1 − 𝜂𝜆A は⼩さくなり,収束速度が向上する. • ただし,𝜂を⼤きくするには限界がある. u1 • 1 − 𝜂𝜆% < 1より, 𝜂の値が𝜂 < 2/𝜆XYZ に制限される. • 𝜆XYZ は固有値の最⼤値である. • ただし,収束率 1 − 𝜂𝜆A は最⼩の固有値によって⽀配されるため𝜂を最⼤許容値に設定すると 最⼩の固有値に対応する⽅向に沿った収束は次のように⽀配される. ;D • 1 − D !"# !$% • ここで,𝜆EFG は最⼩の固有値である. 𝜆EFG /𝜆EHI の⽐(この逆数はヘッセ⾏列の条件数)が⾮ 常に⼩さい場合,つまり図のように誤差の等⾼線が⾮常に細⻑い楕円になっていると最⼩値へ の進みが遅くなる.
Momentum • 固有値が⼤きく異なる問題に対処する簡単な⼿法の1つは,勾配降下の式に Momentum項を追加である. • これにより,重み空間での動きに慣性が効果的に追加され,振動が平滑化され る. • Momentumが追加された勾配降下の式は次のようになる. • 𝚫𝒘 𝜏 − 1 = −𝜂∇𝐸 𝒘 𝜏 − 1 + 𝜇Δ𝒘 𝜏 − 2 • ここで,𝜇は運動量パラメータである.これを𝒘 𝜏 = 𝒘 𝜏 − 1 + Δ𝒘 𝜏 − 1 に 代⼊し重みベクトルを更新する.
Momentumの効果 • Momentum項の効果を理解するために,上の図のように曲率が⼩ さく勾配が緩やかで,勾配が変化しないと近似する場合を考える. E • 先の重みの更新式を⻑い⼀連の重み更新に繰り返し適⽤したとす ると,重みの変化は次のように書ける. • Δ𝒘 = −𝜂∇𝐸 1 + 𝜇 + 𝜇 ' + ⋯ = − 1 &23 ¢w(1) ¢w(2) ¢w(3) w ∇𝐸 • この式から,momentum項により,学習率が𝜂から𝜂 /(1 − 𝜇 ) に 増加することが分かる. • 対称的に,中図のように勾配降下が振動する曲率の⾼い領域では, momentum項の寄与が相殺される傾向があり,有効学習率は𝜂に 近くなる.したがって,momentum項は,発散振動を引き起こす ことなく最⼩値に向かってより速く収束することができる. momentum項の効果の概略図を下図に⽰す. ¢w(1) ¢w(2) ¢w(3) u2 u1
RMSPropとAdam • 最適な学習率は誤差曲⾯の局所的な曲率に依存する. • さらにこの曲率はパラメータ空間の⽅向に応じて変化する可能性がある. • そのため,ネットワークの各パラメータに対し異なる学習率を使⽤するアルゴ リズムが提案されている. • この直感が実際に当てはまるのは,主曲率⽅向が重み空間の軸と⼀致している場合, つまり局所的にヘッシアンが対⾓である場合に限られるが,実際にはそのようなこ とは起こりそうにないことを注意しておく.それにもかかわらず,この種のアルゴ リズムは効果的で,広く使⽤されている. 𝒘# u2 𝒘" u1 パラメタはそれぞれ独⽴だから,それぞれ 別に最適化(別の学習率)してよいだろう という気持ちがある.しかし,実際にはそ んなことは無い.
AdaGrad • Adaptive gradientの略称であるAdaGradは,各学習率パラメータに対して計算されたすべて の導関数の2乗の累積和𝑟A J を使⽤し,各学習率パラメータを時間の経過とともに減少させる (Duchi, Hazan, and Singer, 2011). • したがって,⾼い曲率に関連するパラメータは最も急速に減少する. • 𝑟A J = 𝑟A J = 𝑤A • 𝑤A JKL JKL + MN 𝒘 MO& ; P − Q& ' RS MN 𝒘 MO& • ここで,𝜂は学習率パラメータ,𝛿は⼩さな定数,たとえば10KT で,𝑟A がゼロに近い場合の安定 性を保証する. • このアルゴリズムは𝑟A C = 0で初期化される. • 𝐸(𝒘)は特定のミニバッチの誤差関数であり,重みは確率的勾配降下で更新されるが,それぞ れのパラメタに対し調整された学習率を使⽤する.
RMSProp • AdaGradの問題の1つは,訓練の開始直後から勾配の2乗が蓄積されるため, 重みの更新が⾮常に⼩さくなり,後の段階でトレーニングが遅くなりすぎる可 能性があることである. • RMSProp アルゴリズム (Root Mean Square Propagation) では,AdaGradの 勾配の⼆乗和を指数加重平均に置き換える (Hinton、2012). • 𝑟$ + • 𝑤$ + = 𝛽𝑟$ +,' = 𝑤$ +,' + 1−𝛽 -. 𝒘 1 -. 𝒘 -0U − 2U V 34 * -0U • ここで,0 < 𝛽 < 1で,𝛽 = 0.9が典型的な値である.
Adam • RMSPropとmomentumを組み合わせたものがAdam (Adaptive moments) (Kingma and Ba, 2014) である. • Adamは、次の形式の勾配と2 乗勾配の両⽅の指数関数的に重み付けされた移動平均で構成される更新⽅程式 を使⽤して各パラメーターのmomentumを個別に保存する. + 1 − 𝛽* ,- 𝒘 • 𝑟( ) = 𝛽0 𝑟( )+* + 1 − 𝛽0 ,- 𝒘 • 𝑠( ) • 𝑠=( ) • 𝑟=( ) = 𝛽* 𝑠( 15 )+* ,/ 5 0 ,/ 5 6 = *+2 6 7 35 6 = *+2 6 𝑠" $ を0に初期化すると,訓練のはじ めのうちは⼩さな値となる(これが バイアスにあたる). 𝛽&$ も訓練はじ めのうちは⼤きな値となるので,係 数 1/ 1 − 𝛽&$ は⼤きな値となる.つ まり, 𝑠" $ が⼩さい分,係数を⼤きく し,バイアスを補正する. 𝛽& = 0.9のときの例 𝜏 = 1のとき,1/(1 − 𝛽&&) = 10 𝜏 = 10のとき,1/(1 − 𝛽&&8) ≈ 1.5 𝜏 = 100のとき,1/(1 − 𝛽&&88) ≈ 1.0 7 • 𝑤( ) = 𝑤( )+* − 𝜂 145 6 345 6 56 • ここで、係数1/ 1 − 𝛽*) および1/ 1 − 𝛽0) は,𝑠( 7 および𝑟( 7 をゼロにすることで起こるバイアスを補正する. • 重み付けパラメータの⼀般的な値は,𝛽* = 0.9および𝛽0 = 0.99である.
正規化
正規化 • ニューラルネットワークの順⽅向パス中に計算された変数を正規化すると, ネットワークが極端に⼤きい値または極端に⼩さい値を処理する必要がなくな る. • 原理的には,ニューラルネットワークの重みとバイアスは⼊⼒変数と隠れ変数 がどのような値でも適応できるが,実際には正規化が効果的な訓練を保証する ために重要となるだろう. • ここでは,⼊⼒データ全体で正規化,ミニバッチ全体で正規化,レイヤー全体 で正規化,の3種類の正規化を取り扱う.
データの正規化 • データセット内の異なる⼊⼒変数の値が⾮常に異なる範囲にわたる場合がある. • このような場合,勾配降下による訓練が⼤幅に難しくなる可能性がある. • 2 つの重みを持ち,対応する2つの⼊⼒変数の範囲が⼤きく異なる単層回帰ネットワークを考えてみる. • 重みの1つの値が変化すると,他の重みの変化よりも出⼒,つまり誤差関数に⼤きな変化が⽣じる. • したがって,連続⼊⼒変数の場合,⼊⼒値が同じ範囲に収まるように⼊⼒値をスケールすることは⾮常に有 益だろう. • このスケーリングは,訓練開始時に各⼊⼒の平均と分散を使うことで簡単に⾏うことができる. * • 𝜇( = 8 ∑ 8 9:* 𝑥9( * 0 • 𝜎(0 = 8 ∑8 9:* 𝑥9( − 𝜇( • 𝑥H9( = ; 95 += 5 >5 • スケーリングされた値𝑥H9( はゼロ平均と単位分散となる. • すべての⼊⼒が同じ⽅法でスケーリングされるよう,開発,検証,テストにおいて前処理するときは, 𝜇( と 𝜎( 同じ値を使う必要がある.
バッチ正規化 • 特定の隠れ層の活性化値の範囲に⼤きなばらつきがある場合,それらの値をゼ ロ平均と単位分散がになるように正規化すると,次の層の学習問題が容易にな る. • ただし,訓練の開始前に⼀度実⾏できる⼊⼒値の正規化とは異なり,隠れユ ニットの値の正規化はトレーニング中に重みが更新されるたびに繰り返す必要 がある.これはバッチ正規化と呼ばれる(Ioffe , Szegedy, 2015) . • バッチ正規化は,⾮常に深いニューラルネットワークを訓練しようとすると 発⽣する勾配の消失と勾配の爆発という問題を⼤幅に解決する.
バッチ正規化 • 多層ネットワーク内の特定の層を考えてみる. • その層の各隠れユニット𝑖は,⼊⼒された前活性の⾮線形関数𝑧A = ℎ 𝑎A を計算する. • そのため,前活性値𝑎A を正規化するか活性値𝑧A を正規化するかの選択がある.実際には,どち らのアプローチも使⽤できる.ここでは,前活性を正規化する. • 重み値は各ミニバッチの後に更新されるため,正規化を各ミニバッチに適⽤する.サイズ𝐾の ミニバッチの場合,次のように正規化する. Mini-batch L ^ • 𝜇 A = ∑^ _`L 𝑎_A µ 𝑎&& 𝑎#& L ; • 𝜎A; = ^ ∑^ _`L 𝑎_A − 𝜇A • 𝑎G_A = 𝜇/ 𝑎&# 𝑎## Hidden units a?& Kb& c&@ RS • ここで,𝛿は⼩さな定数であり,𝜎A; が⼩さいときの数値的問題を回避するために導⼊された.
バッチ正規化 正規化することで,ネットワークが表せる関数の多様性 が減ることを⾃由度が減ると表現している. • ネットワークの特定の層で前活性を正規化(ゼロ平均単位分散)することにより, その層のパラメータの⾃由度の数が減少し,その層の表現能⼒が減少する. • これは,次の式を使⽤して平均𝛽( と標準偏差𝛾( になるように前活性を再スケーリン グすることで補正することが出来る. • 𝑎A )( = 𝛾( 𝑎D)( + 𝛽( • ここで,𝛽( と𝛾( は,ネットワークの重みとバイアスを組み合わせた勾配降下によっ て学習される適応パラメーターである. • バッチ正規化を使わない場合,ミニバッチ全体の平均と分散は層内のすべての重み とバイアスの複雑な関数によって決定されるが,学習パラメータを⽤いたバッチ正 規化の場合,独⽴したパラメータ𝛽( と𝛾( によって直接決定される. • バッチ正規化は微分可能な変数の変換だから,ニューラルネットワークの追加層と みなすことができる.つまり,各標準的な隠れ層の後にバッチ正規化層を追加する ことが出来る.
バッチ正規化 • バッチ正規化はバッチの平均と分散を⽤いるため,1つのデータから予測する 場合はそれを⽤いることができない. • これを解決するために,平均と分散を訓練全体での移動平均から計算する. • 𝜇̅$ + = 𝛼𝜇̅$ +,' + 1 − 𝛼 𝜇$ • 𝜎K$ + = 𝛼𝜎K$ +,' + 1 − 𝛼 𝜎$ • ここで,0 ≤ 𝛼 ≤ 1である. • これらの移動平均は訓練中には使⽤されないが,推論段階で新しいデータ点を 処理するために使⽤される.
レイヤー正規化 • バッチ正規化では,バッチの平均と分散を計算する.しかし,バッチサイズが ⼩さすぎるとそれらの推定値はノイジーになる. • また,⾮常に⼤規模な訓練セットの場合,ミニバッチが異なるGPUに分割さ れる可能性があり,ミニバッチ全体にわたるグローバルな正規化が⾮効率にな る. • これを解決するために,各データ点について隠れユニット値を個別に正規化す る,レイヤー正規化(Ba, Kiros, and Hinton,2016)と呼ばれる⽅法がある. • これは,時間ステップごとに分布が変化し,バッチ正規化が不可能になるリカレン トニューラルネットワークで導⼊された. しかし,Transformerなどの他のアーキ テクチャでも役に⽴つ.
レイヤー正規化 Mini-batch • レイヤー正規化では,次の変換を⾏う. • 𝜇I = ' J ∑J $K' 𝑎I$ 𝑎&& 𝑎#& 𝑎&# 𝑎## Hidden units ' * • 𝜎I* = L ∑J $K' 𝑎I$ − 𝜇I • 𝑎OI$ = MeU ,Ne f 34 Oe µ 𝜇/ • ここで,𝑀は隠れユニットの数である. • バッチ正規化と同様に,追加の学習可能な平均および標準偏差のパラメータが, 隠れユニットごとに𝑎Q I$ = 𝛾$ 𝑎OI$ + 𝛽$ で導⼊される. • 同じ正規化関数を訓練中と推論中に使⽤できるため,移動平均を保存する必要 がない.
Weight decay
正則化項 • モデルの複雑さを制御するために線形回帰では正則化項を導⼊する. • 最も単純な正則化項は,次の式のようにモデルパラメータの⼆乗和である. P • 𝐸S 𝑤 = 𝐸 𝑤 + 𝑤 ) 𝑤 * • これはパラメータ値に⼤きなペナルティを与える.この式の係数1/2は,慣例 により含まれることが多いが微分を⾏うと消える. • この正則化項は,機械学習では重み減衰(weight decay)として知られている. • これが逐次学習アルゴリズムではデータに必要とされない重みの値がゼロに向かっ て減衰することを促すため,そう呼ばれる. • この正則化項の利点の 1 つは,勾配降下で使⽤する導関数を評価するのが簡 単ことにある. 上記の式の場合,勾配は次の式で与えられる. • ∇𝐸S 𝑤 = ∇𝐸 𝑤 + 𝜆𝑤
2次正則化項 • 図は,誤差関数(⾚),正規化項𝑤"# + 𝑤## (緑),正則化誤差関数𝐸 𝑤 + 𝜆 𝑤"# + 𝑤## (⻘)の等⾼線であ る.ここでは,パラメータ空間の軸は,楕円誤差関数の等⾼線の軸に対応するヘッセ⾏列の固有ベク トルと⼀致するように回転されている. • 𝜆 = 0の場合,𝑤 ⋆ のとき最⼩誤差となる. • 𝜆 > 0の場合,正則化誤差関数𝐸 𝑤 + 𝜆 𝑤"# + 𝑤## の最⼩値は原点に向かってシフトする. • このシフトは, 𝐸 𝑤 が𝑤* の影響を受けにくいため⽅向で⼤きくなり, 𝐸 𝑤 が𝑤0 により強く依存しているため 𝑤0 ⽅向では⼩さくなる. • 正則化項は重みパラメータの⼤きさを縮⼩する効果を持つ. • 直感的には,出⼒が𝑤* の影響を⽐較的受けないため,𝑤0 のみがアクティブになり,𝑤* をゼロに近づける. • パラメータの有効数は,正則化後にアクティブなままのパラメータ数である. • 正則化項はネットワークの予測精度にほとんど影響を与えないパラメーターを効果的に抑制する. • 𝜆 → ∞の場合,すべてのパラメータはゼロに駆動され, u2 w2 E(w) パラメーターの有効数はゼロになる. • 正則化によるモデルの複雑さの制御は,パラメータの数を 制限することによるモデルの複雑さの制御と似ている. w? u1 b w E(w) + ∏(w12 + w22 ) w1 w12 + w22
単純なweight decayの限界 A • 𝐸Q 𝑤 = 𝐸 𝑤 + 𝑤 B 𝑤における単純なweight decayの制限の 1 つは,ネットワークマッピングの望ましい変 0 換特性を壊すかもしれないことである. • ⼊⼒変数 𝑥( のセットから出⼒変数 𝑦C のセットへのマッピングを実⾏する2層の多層パーセプトロンを考 えてみる. • 最初の隠れ層の隠れユニットの活性化は次の形式になる. • 𝑧D = ℎ ∑( 𝑤D( 𝑥( + 𝑤D7 • 出⼒ユニットの活性は次の式で与えらる. • 𝑦C = ∑D 𝑤CD 𝑧D + 𝑤C7 • ⼊⼒データの線形変換を実⾏するとする. • 𝑥( → 𝑥H( = 𝑎𝑥( + 𝑏 • 次に,⼊⼒から隠れ層のユニットへの重みとバイアスの線形変換を⾏うことでネットワークによって実⾏さ れるマッピングが変更されないように調整できる. * • 𝑤D( → 𝑤 YD( = E 𝑤D( F • 𝑤D7 → 𝑤 YD7 = 𝑤D7 − E ∑( 𝑤D( 1 𝑏 C𝑤 [-+ 𝑥\+ + 𝑤 [-6 = C 𝑤-+ (𝑎𝑥+ + 𝑏) + 𝑤-6 − C 𝑤-+ 𝑎 𝑎 + + + 𝑏 𝑏 = C 𝑤-+ 𝑥+ + C 𝑤-+ + 𝑤-6 − C 𝑤-+ = C 𝑤-+ 𝑥+ + 𝑤-6 𝑎 𝑎 + + + +
単純なweight decayの限界 • 同様に,ネットワークの出⼒を線形変換すると次のようになる. • 𝑦6 → 𝑦A6 = 𝑐𝑦6 + 𝑑 • つぎに第2層の重みとバイアスを変換することで,先と同様にネットワークによっ て実⾏されるマッピングが変更されないように調整できる. • 𝑤67 → 𝑤 I67 = 𝑐𝑤67 • 𝑤60 → 𝑤 I60 = 𝑐𝑤60 + 𝑑 • つまり,線形変換によって⼊⼒変数および/またはターゲット変数が変換された データを使⽤して訓練したネットワークの重みは,元のデータを使⽤して訓練した このスライドの例では,𝑤を𝑐倍する出⼒は𝑐倍とな ネットワークの重みの線形変換で得られる. 7 * • どの正則化も,この性質と⼀致している必要がある. る.しかし,L2正則化項𝑤 𝑤だから𝑐 倍となる.つ まり,L2正則化の場合は,スケールの影響がネット ワークと正則化項で異なってしまう. • しかし,先の単純なweight decay(L2正則化)は,この特性を満たしていない.
修正されたweight decay • 線形変換の下で不変である正則化項を考える. • これを満たすために,正則化項が重みの再スケーリングやバイアスのシフトに 対して不変である必要がある. • このような正則化項は次のように与えられる. P P • *g ∑0∈𝒲g 𝑤 * + *f ∑0∈𝒲f 𝑤 * • ここで,𝒲' は最初の層の重みのセットを表し,𝒲* は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がない場合,重みベクトルが原点から始まり,訓練中に w2 局所的に負の勾配ベクトルに従うパスに沿って進むなら,重み w? ベクトルは最初は𝑤; 軸に平⾏に移動し,𝑤におおよそ対応した点を H 通過し,誤差関数𝑤<h の最⼩値に向かって移動する. • したがって, 学習を𝑤に近い点で停⽌させることは,weight H decayに 似ている(Weight decayの図を思い出そう). b w w1
モデルは⼤きほど良い • パラメーターが少なすぎるモデルでは,表現能⼒が限られているためテスト セットの誤差が⾼くなる.そして,パラメーターの数が増加させるにつれて, テスト誤差は低下すると予想される. • しかし,パラメーターの数がさらに増加すると,オーバフィッティングにより テスト誤差が再び増加するだろう. • しかし,この予想に反して深層ニューラルネットワークでは,パラメーターの 数がトレーニングデータに完全にフィットするために必要な数をはるかに超え ている場合でも優れたパフォーマンスを発揮できることがわかっている (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に対応する 次元の範囲では,データセットの サイズを⼤きくすると汎化能⼒が 低下する可能性がある.