>100 Views
June 23, 25
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2025年度前期輪読会#9「ゼロから作るDeepLearning」 6章 学習に関するテクニック 6.4〜6.6 京都大学 工学部 理工化学科 B2 山内泰嘉 0
アジェンダ ■ 6.4 正則化 ■ 6.5 ハイパーパラメーターの検証 ■ 6.6 まとめ 1
アジェンダ ■ 6.4 正則化 ■ 6.5 ハイパーパラメーターの検証 ■ 6.6 まとめ 2
過学習(overfitting)とは? 訓練データに過度に適合し,新規データにうまく対応できない状態をいう。 ● 機械学習ではまだ見ぬデータを正しく識別できる(汎化性能が高い)モデルが望まれる ● 複雑で表現力の高いモデルを作ることは可能だが、その分、過学習を抑制するテクニック が重要になる 3
過学習の主な原因 過学習が起きる原因として主に以下の3つが挙げられる。 ● モデルのパラメータ過多 ○ 表現力が上がるため、訓練データにより適合しやすい ● 訓練データが少ないこと ● パラメータの大きさ ○ データの少しの変化に機敏に反応しやすい →正則化手法でモデルの自由度を適切に制御 4
正則化の全体像 目的:汎化性能を保ちつつ過学習を抑制 主な手法 ● Weight decay(L2正則化) ● L1正則化 ● Dropout ● 早期終了(early stopping) ● アンサンブル学習 など 5
Weight decay(L2 正則化)の原理 学習の過程において大きな重みを持つことに対してペナルティを課す ● 損失関数にペナルティ項を追加 ● 重み減衰項の追加によって学習則が変更され,通常の勾配の更新に 一定の割合で重み ベクトルが加わる ○ 重みが大きいほど大きく更新され,小さいほど更新は減る なぜL2ノルムなのに平方根を取らないのか? • 微分しやすいから • 正則化効果が変わらないから 6
Weight decayの効果 λ=0.1 適用時(右) vs 未適用(左)の訓練/テスト精度推移 なんかギザギザしている 7
Dropoutの原理 ニューロンをランダムに消去しながら学習する手法 ● 学習時 ○ 順伝播ではバッチごとにユニットを確立pで選ぶ。1ーpがド ロップアウトの割合となる ○ 逆伝播は選ばれたサブネットワーク上で行う ● 推論時 Srivastava et al., “Dropout: A Simple Way to Prevent Neural Networks from Overfi?ng” (2014) ○ 全てのユニットを使うが、出力スケールを合わせる(p)倍 ○ 消去されなかった割合 をかけることに注意する Dropoutの実装 # forward mask = np.random.rand(*x.shape) > dropout_ratio out = x * mask # backward dout = dout * mask # テスト時は出力を (1−dropout_ratio) 倍 8
Dropoutの効果 dropout_ratio=0.15適用時(右) vs 未適用(左)の訓練/テスト精度推移 9
Dropout とアンサンブル学習 Dropout は異なるサブネットワークの“疑似アンサンブル” アンサンブル学習とは? ● 複数の学習器を組み合わせて訓練させることで汎化性能を向上させる技術 ● 個々の学習器はベース学習器(base learner)や弱学習器(weak learner)と呼ばれ、最終的には,分 類問題であれば多数決,回帰であれば(重み付き)平均をとる Dropoutは学習時にランダムにニューロンを消去することで毎回異なるモデルを学習させていると解釈で きる ● 出力時に消去しなかった割合(p)を乗算する ≒ モデルの平均を取る Dropconnect • Dropoutと異なり,ノードでなく重みを一定の割合でマスクする • Dropoutと同様に擬似アンサンブル効果がある 10
アジェンダ ■ 6.4 正則化 ■ 6.5 ハイパーパラメーターの検証 ■ 6.6 まとめ 11
ハイパーパラメーター ミューラルネットワークではハイパーパラメータが数多く登場する • 一般的なもの ○ Learning rateやバッチサイズ、エポック数 • ネットワーク構造やタスクに応じて ○ 正則化項の係数(Weight decayのλなど) ○ 隠れニューロンの数 ○ 隠れ層の数(レイヤー総数) 12
検証データ( Validation)の重要性 ハイパーパラメータ調整にはテストデータではなく検証データを使用 ● テストデータを使ってハイパーパラメータを調整すると「情報漏洩」になる → モデルがテストに適合してしまい、真の汎化性能を過大評価するリスク 具体的な分割方法 ● ● ホールドアウト法( Holdout method) ○ 訓練データの 20% 程度を検証用に取っておく ○ 例:MNIST(60,000枚)→ 48,000枚訓練 + 12,000枚検証 K-Fold クロスバリデーション (精度高だがコスト大) ○ 全データを K 分割し、K 回検証を繰り返す ○ 各データが一度ずつ検証に使われるため、評価のバラつきが減る 13
ハイパーパラメータ探索手法 探索のステップ(実践例) ① 範囲を広く設定 ● 対数スケールで指定:例)0.001〜1,000(10-3〜10-3) ② ランダムにサンプリング ● グリッドより効率的 ③ 簡易学習で仮評価 ● 各組み合わせについて、数エポックだけ学習して検証精度を比較 ④ 良好な領域を特定・絞り込み ● 有望な組合せ付近を再探索(局所探索) 14
Grid Search と Random Search 2つのパラメータ最適化手法 グリッドサーチ ● あらかじめ指定したハイパーパラメータの組み合わせをすべて試す ● ⻑所:網羅的に探索するので最適な組み合わせが確実に見つかる ● 短所:探索に時間がかかる ランダムサーチ ● 指定した回数だけ組み合わせの中からランダムに探索 ● ⻑所:探索時間を削減できる ● 短所:最適な組み合わせを見つけられる確率が減る ニューラルネットワークでは、解空間が広く、ハイパーパラメータごとに最終的な認識精度にあたえる影響 度合いが異なるため、ランダムサーチの方が良い解に辿り着きやすい 15
ハイパーパラメータ最適化の実装 学習率(lr)と重み減衰(weight_decay)の値をランダムに100通り探索 16
アジェンダ ■ 6.4 正則化 ■ 6.5 ハイパーパラメーターの検証 ■ 6.6 まとめ 17
まとめ ● 正則化:過学習を抑えて汎化性能を高める ○ Weight decay(L2 正則化):重みが大きくなるのを防ぐ ○ Dropout:一部ニューロンをマスクする ● ハイパーパラメータ検証 ○ 検証データを使用:テストデータで調整しない ○ 探索方法 ■ 対数スケールでランダムサーチ、少数エポックで仮学習を繰り返しりょくこうな領域で絞り込 んでいく Google colabのコードはこちら 18