>100 Views
June 04, 26
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2026前期輪読会#6 ゼロから作るDeep Learning 6章 学習に関するテクニック 6.3-6.6 京都大学 総合人間学部 B2 本川玄人 0
アジェンダ ◼ 6.3 Batch Normalization ◼ 6.4 正則化 ◼ 6.5 ハイパーパラメータの検証 ◼ 6.6 まとめ 1
アジェンダ ◼ 6.3 Batch Normalization ◼ 6.4 正則化 ◼ 6.5 ハイパーパラメータの検証 ◼ 6.6 まとめ 2
6.3 Batch Normalization Batch Normalization: 強制的にアクティベーションの分布を整える…Batch Normalization Batch Normの利点 ・学習を早く進行させることが出来る(学習係数を大きくできる) ・初期値にそれほど依存しない ・過学習を抑制する Affine Batch Norm ReLU Affine Batch Norm ReLU 3
6.3 Batch Normalization Batch Normではミニバッチ毎の正規化を行う 具体的なアルゴリズム : データの分布が平均0・分散1になるように正規化 𝑚 𝑚 𝑖=1 𝑖=1 1 1 𝑥𝑖 − 𝜇𝐵 2 2 𝜇𝐵 = 𝑥𝑖 , 𝜎𝐵 = (𝑥𝑖 − 𝜇𝐵 ) , 𝑥ෝ𝑖 = 𝑚 𝑚 𝜎2 + 𝜖 𝐵 その後、このデータを固有のスケールとシフトで変換 𝑦𝑖 = 𝛾𝑥ෝ𝑖 + 𝛽 (γ、βはパラメータ) Batch Normalizationを活性化関数の前後どちらかに入れるかは議論あり 4
6.3 Batch Normalization Batch Normalizationの評価 Batch Normを使用すると ・学習の進みが速くなる ・重みの初期値にロバストになる 5
アジェンダ ◼ 6.3 Batch Normalization ◼ 6.4 正則化 ◼ 6.5 ハイパーパラメータの検証 ◼ 6.6 まとめ 6
6.4 正則化 過学習とは 過学習…訓練データだけに適応しすぎてしまい、訓練データに含まれない他のデータには うまく対応できない状態 まだ見ぬデータを正しく識別できるモデルが理想→過学習を避ける 過学習が起きる原因は、主に次の2つ ・表現力の高いモデルであること ・訓練データが少ないこと 7
6.4 正則化 訓練データの数を少なくして学習すると、過学習が起きる 8
6.4 正則化 過学習を抑える方法その1: Weight decay Weight decay 過学習は重みパラメータが大きな値をとることで発生しやすい →大きな重みをもつことに対してペナルティを課す 損失関数をL、重みをWとすると 1 𝐿 + 𝜆𝑊 2 2 λはハイパーパラメータ、 ここではL2ノルムをペナルティとして課す 勾配を求める際には、新たに正則化項の微分𝜆𝑊を加算 9
6.4 正則化 Weight decayの有無による性能の変化 ここではあえて過学習を起きやすいように少ない訓練データで学習 Weight decayなし Weight decayあり 10
6.4 正則化 過学習を抑える方法その2: Dropout モデルが複雑になるとweight decayだけでは不十分 →Dropoutを採用 Dropout : ニューロンをランダムに消去しながら学習 訓練時…消去するニューロンをランダムに選ぶ テスト時…すべてのニューロンの信号を伝達 消去しなかった割合を乗算して計算 Dropoutはアンサンブル学習に類似 11
6.4 正則化 Dropoutの有無による性能比較 Dropoutなし Dropoutあり(dropout_ratio=0.20) 12
アジェンダ ◼ 6.3 Batch Normalization ◼ 6.4 正則化 ◼ 6.5 ハイパーパラメータの検証 ◼ 6.6 まとめ 13
6.4 ハイパーパラメータの検証 ハイパーパラメータ 重みやバイアス以外にもパラメータは存在→ハイパーパラメータ 例)ニューロン数、バッチサイズ、weight decay… ここまではデータセットを訓練データとテストデータに分けていたが、 テストデータでハイパーパラメータを評価してはいけない! ハイパーパラメータの評価のために新しく検証データが必要 14
6.5 ハイパーパラメータの検証 検証データの分離方法 データセットは必ずしも最初から3種類のデータに分けられているわけではない →自分でデータの分離を行う必要あり データの分離の例 ここでは、訓練データの20%を検証データとして分離 データの偏りの影響を避けるために分離前にシャッフル 15
6.5 ハイパーパラメータの最適化 「良い値」が存在する範囲を絞り込む ハイパーパラメータの改善方法(経験的) Step0 最初はパラメータの範囲を大雑把に指定(10−3 ~103 など、10のべき乗スケール) ↓ Step1 指定された範囲からランダムにサンプリング ↓ Step2 サンプリングされた値を使用して学習を行う(エポック数は小さめ) ↓ Step3 1,2の操作をある回数繰り返した結果からパラメータの範囲を狭める ある程度絞り込んだ段階でハイパーパラメータを一つ選択 ※数学的な理論を使って最適化する方法もある(ベイズ最適化など) 16
6.5 ハイパーパラメータの最適化 最適化の実装 Learning rateとWeight decayのハイパーパラメータの最適化の実装を行う 17
アジェンダ ◼ 6.3 Batch Normalization ◼ 6.4 正則化 ◼ 6.5 ハイパーパラメータの検証 ◼ 6.6 まとめ 18
6.6 まとめ 本章では学習を支える様々なテクニックを紹介 ・パラメータの更新方法 SGD, Momentum, AdaGrad, Adam ・重みの初期値の与え方 Xavierの初期値、Heの初期値 ・Batch Normalization ・過学習を抑える正則化の手法 Weight decay, Dropout ・ハイパーパラメータの探索法 良い値が存在する範囲を絞り込む コードはこちらから 19