【ゼロから作るDeep Learning】6.4~6.6

>100 Views

July 08, 24

スライド概要

profile-image

AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2024年度前期輪読会#10「ゼロから作るDeep Learning」 6章 学習に関するテクニック 6.4~6.6 理学部理学科 ⼀回 栗岡幸作 0

2.

6章 ⽬次 学習に関するテクニック 01 正則化 02 ハイパーパラメータの検証 03 まとめ 1

3.

1. 正則化 2

4.

1.正則化 1.1 過学習 ニューラルネットワークの学習において重⼤な問題点 モデルが複雑になりすぎる 過度な学習は汎化能⼒の低下を招く(過学習) 例 50 50 40 40 30 30 20 20 C 10 -60 -50 -40 -30 -20 -10 C 10 0 10 20 30 40 50 60 70 80 -60 -50 -40 -30 -20 -10E 0 B 10 20 F 30 40 50 60 70 80 B -10 -10 A A -20 -20 -30 -30 D -40 g -40 g f -50 -50 -60 -60 f 3

5.

1.正則化 1.1 過学習 訓練データの量やノイズとモデルの複雑さのアンバランスさが原因 MNISTデータセットの60000個のうち300個を抽出。 7層、各層100ニューロンのニューラルネットワーク 活性化関数はReLU 訓練データの認識精度が早い段階で100%になって いるのに、テストデータでの認識精度は伸び悩んでいる。 →では、過学習はどうやったら防⽌できる︖︖ 汎化誤差を減少させるために学習アルゴリズムに 加える変更を正則化という。 4

6.

1.2 Weight decay 過学習の状態になると、ニューラルネットワークの重みが⼤きくな る。 →重みの⼤きさを制限することで過学習を抑制する。 損失関数L︓ 𝜆 ! 𝐿 = 𝐿 + & ' 𝑤"# 2 " 損失関数が⼩さくなるようにパラメータを更新 →重みのノルムも⼩さくなる ! (𝜆はWeight decayの効果の⼤きさ) 主なノルム(ベクトルの⼤きさの指標) L1:∥ 𝑊 ∥! = ∑" ∥ 𝑤" ∥ L2:∥ 𝑊 ∥# = ∑" 𝑤"# L∞︓∥ 𝑊 ∥∞ = 𝑚𝑎𝑥 ∥ 𝑤" ∥ 5

7.

1.2 Weight decay 先ほどの過学習が起きたデータセットとニューラルネットワークで 実験 λ=0.08 λ=0.1 λ=0.12 どうやってλを決める︖︖ 6

8.

1.2 Weight decay Weight decay法の⽋点・問題点 ・ニューラルネットワークのモデルが複雑になってくると重みに制 約を課しても、あまり効果が望めなくなる。 (重みパラメータの数が増えるから︖︖) 7

9.

1.3 Dropout Dropout法を導⼊する前に、Ensemble⼿法を紹介。 アンサンブル(Ensemble)法とは、 複数のモデル(ニューラルネットワーク)で別々に訓練させ、より よい結果を求めようとする⼿法。 具体的には、複数のモデルのテストデータに対する出⼒の平均など を最終評価とする。 https://datawokagaku.com/ensemble/#google_vignette 8

10.

1.3 Dropout Dropout法とは⼀定の確率でランダムにニューロンを無視して学習 する⽅法。 訓練時にデータが流れるたびに無視するニューロンを選択。 →訓練時には異なるニューラルネットワークで学習。 (アンサンブル学習と同じアイデア) 推論時には全てのニューロンを⽤いる。 この際各ニューロンの出⼒に対して 訓練時に消去しなかった割合を乗算して 出⼒する。 引用元:『深層学習』I.Goodfellow et.al ドワンゴ 9

11.

1.3 Dropout MNISTデータセットの60000個のうち300個を抽出。 7層、各層100ニューロンのニューラルネットワーク 活性化関数はReLU 左︓Dropoutなし(過学習) 中︓Dropout_rate=0.15 右︓Dropout_rate 0.20 10

12.

2.ハイパーパラメータの検証 11

13.

2.ハイパーパラメータの検証 2.1 検証データ ハイパーパラメータとは︖ ・機械学習アルゴリズムの挙動を制御するための設定値 該当学習アルゴリズムそのものでは調節できない(例外あり︖) ・ニューラルネットワークにおいては各層のニューロンの数やバッ チサイズ、パラメータ更新の際の学習係数やWeight decay、 Dropoutの割合 ・テストデータを⽤いてハイパーパラメータを評価する際、過学習 が発⽣する可能性がある。 →ハイパーパラメータ⽤の「訓練データ」である検証データを 導⼊する必要がある 12

14.

2. ハイパーパラメータの検証 2.2 ハイパーパラメータの最適化 Step 1 ハイパーパラメータの範囲を設定する(10の冪乗のスケール)。 その範囲からランダムにサンプリングする。 Step 2 サンプル値を⽤いて学習を⾏い、検証データで認識精度の検証。 学習が進んでいるハイパーパラメータの範囲を選択。 Step 3 Step1とstep2を繰り返し⾏い、ハイパーパラメータの範囲を 狭め、ある程度絞り込めたらその範囲から⼀つ抽出する。 13

15.

2.ハイパーパラメーターの検証 2.2 ハイパーパラメータの最適化 今回紹介した⽅法はランダムサーチと呼ばれる⼿法。 他に、ランダムサーチを丁寧にしたグリッドサーチ ベイズの定理を⽤いるベイズ最適化が挙げられる。 グリッドサーチについて補⾜ グリッドサーチとは、ランダムサーチで⾏ったサンプリングを⾏わ ないで全ての組み合わせから最適化する⼿法。この場合、ニュー ラルネットワークの出⼒にあまり影響しないハイパーパラメータ についても探索を⾏うため、ハイパーパラメータの数が増⼤する ほど、計算量が指数関数的に増⼤する。 14

16.

2.ハイパーパラメーターの検証 2.3 ハイパーパラメータ最適化の実装 MNISTデータセットを⽤いて、学習係数とWeight decayの効果を表すパラメータについて最 適化する。 初めの探索範囲を 学習係数︓10!" ~10!# W.D係数︓10!$ ~10!% として最適化。 グラフからBest1〜6までのものが学習が 進んでいるように⾒える。 実線が検証データ、点線が訓練データの認識精度 15

17.

2.ハイパーパラメーターの検証 2.3 ハイパーパラメータ最適化の実装 Best1~6のハイパーパラメータの値を確認 Best-1(val acc:0.82) | lr:0.00888997441729975, weight decay:1.4863010864728978e-08 Best-2(val acc:0.79) | lr:0.008821131191724488, weight decay:5.842840908527679e-05 Best-3(val acc:0.79) | lr:0.008117992185657626, weight decay:1.0803066121428894e-05 Best-4(val acc:0.78) | lr:0.007922307253268975, weight decay:4.262291038018093e-05 Best-5(val acc:0.72) | lr:0.006590331277287298, weight decay:3.023575962880382e-08 Best-6(val acc:0.72) | lr:0.00702916884503172, weight decay:2.8557333134614683e-05 ハイパーパラメータの範囲を、対数スケールで絞り込む。 学習係数︓0.001~0.01 W.D係数︓10!" ~10!# ハイパーパラメータの範囲を絞り込めた。 16

18.

3.まとめ 17

19.

3.まとめ まとめ1 まとめ2 まとめ3 Weigh decay:重みのL2ノルムの二乗を損失関数に繰り込むことでニューラルネッ トワークの重みに制約を課すことによって正規化する手法。 Dropout:学習時にランダムにニューロンを無視することで一つのニューラルネットワー クでアンサンブル学習を実現する。ニューラルネットワークが複雑になっても有効。 ハイパーパラメータは、探索範囲をどんどん狭めていき、サンプル値を用いて実験 を繰り返すことで効率的に最適化ができる。 18