機械学習の課題

に公開

はじめに

概要

  • シラバス:E資格2024#2
  • 機械学習の課題と解決策を知ります
  • 機械学習の解決策を考える場合に、バランスが重要です。やりすぎると反対的な課題が出ます。

キーワード

汎化性能, 汎化誤差, 訓練誤差, バイアス, バリアンス,
過学習, 次元の呪い, 過剰適合, 過少適合, 正則化

学習内容

汎化性能(Generalization Performance)

  • AIモデルが、学習に使っていない新しいデータに対しても、正確に予測や判断ができる能力のことです
    汎化性能が高い:新しいデータにも強い
    汎化性能が低い:学習データだけでしか通用しない(=過学習)

汎化誤差(Generalization Error)

  • 未知のデータに対する間違いの度合い
  • 未知のすべてのデータに対する平均的な誤差
  • AIモデルは訓練データでは高精度でも、初めて見るデータに弱いことがあります。それを測るのが汎化誤差です
  • 汎化誤差の値が小さいほど、応用が効きます

テスト誤差

  • 学習後に手元にあるテストデータで測った誤差です
  • テストデータを使いすぎると汎化誤差を正しく測れなくなります(情報漏れ)

訓練誤差

  • 学習に使ったデータに対する誤差です

汎化性能を測る方法

  • テストデータで評価する(学習に使ってないデータ)
  • 交差検証(クロスバリデーション)を行う
  • 汎化誤差を見る(テスト誤差 ≒ 汎化誤差)

汎化性能を高めるには

方法 内容
十分なデータ量 + 多様なデータ データが少ないと偏るため、多くて多様なデータを用意
適切なモデル選択 複雑すぎると過学習、単純すぎると表現力不足
正則化 不要な重みを抑えることで過学習を防ぐ
データ拡張 画像やテキストのバリエーションを増やして訓練する
ドロップアウト(深層学習) ニューラルネットの一部を一時的に無効にして学習

バイアス(Bias)とバリアンス(Variance)

  • バイアスとバリアンスはトレードオフの関係にあり、どちらか一方を減らすと、もう一方が増える傾向があります


出典:
Varun Bhatia, Bias and variance using bulls-eye diagram, Bias & Variance- The Ultimate Trade-Off(2021), https://medium.com/analytics-vidhya/bias-variance-the-ultimate-trade-off-e604528bd30a

  • 左上(バイアスが低い、バリアンス低い):中心にヒットします
  • 右上(バイアスが低い、バリアンス高い):中心の周りに散らばっています
  • 左下(バイアスが高い、バリアンス低い):中心に外れたところで集中しています
  • 右下(バイアスが高い、バリアンス高い):あっちこっちで散らばっていて、規則性がない感じです

バイアス

  • モデルの予測が真の値からどれだけずれているかを示します

  • 過少適合の原因となります

  • 高バイアスの場合

    • モデルが単純すぎてデータのパターンをうまく捉えられません
    • 訓練データにもテストデータにも精度が悪いです
  • 低バイアスの場合

    • モデルが不安定になる:新しいデータに対して大きく出力が変動する
    • テスト誤差が大きくなる:学習データではうまくいっても、未知のデータに対しての精度が著しく低くなります
    • 過学習しやすい:訓練データに完璧にフィットしすぎることで、テストデータでは精度が落ちます

バリアンス

  • モデルが訓練データに対してどれだけ敏感に反応するかを示します

  • 過学習の原因となります

  • 高バリアンスの場合

    • 訓練データに対して非常に高精度な予測をするが、テストデータにはうまく適応できません
    • モデルが訓練データの細かなパターン(ノイズなど)にまで適応してしまいます
  • 低バリアンスの場合

    • モデルが単純すぎて、データのパターンを捉えられません
    • 訓練誤差もテスト誤差も高くなって、モデルが「何も学べていない」状態です
    • 予測が大雑把で精度が低くって、入力が多少変わっても、出力が変わらず、使い物にならないです

過学習(Overfitting)

  • 訓練データに依存しすぎ、未知のデータに対してうまく対応できなくなる状態のことです
  • 汎化性能が低下します
  • 過剰適合(Overfitting)とほぼ同じ意味です
    • 過剰適合は学術論文や統計的な分析の用語・現象の記述で使われやすいです
    • 英語の表記は同じです

特徴

特徴 説明
訓練誤差がとても低い 学習データに対しては完璧に近い予測をする
テスト誤差が高い 新しいデータに対して精度が悪い
ノイズまで覚える 本質ではない細かな情報・例外まで暗記してしまう

発生原因

原因 説明
モデルが複雑すぎる ニューラルネットが深すぎたり、パラメータが多すぎる
データが少ない 偶然の特徴に引っ張られやすい
学習しすぎ 学習回数(エポック数)が多すぎて細部まで覚えてしまう
ノイズが多い 例外的なデータに引っ張られてしまう

対策

方法 説明
データを増やす 多様なパターンを学習させる
正則化(L1/L2) パラメータが無駄に大きくならないよう制限する
ドロップアウト ニューラルネットの一部を無効にして汎化力を上げる
早期終了(Early Stopping) テスト誤差が増えた時点で学習を止める
モデルの簡略化 小さめのネットワークを使う、不要な特徴量を除く
クロスバリデーション 過学習を検知するためのテスト方法

次元の呪い(Curse of Dimensionality)

  • データの次元数が増えると、学習の難易度が急激に上がる現象を指します

発生原因

  • 次元が増えると、データの特徴空間が指数関数的に広がります。また、下記の問題が発生します
    • データが疎になる:高次元空間では、データ点同士が遠く離れた位置に存在することが多くなります。その結果、有意義なパターンを見つけるのが難しくなります
    • 計算コストが急増:必要な計算リソース(メモリや処理速度)が急激に増えます
    • 過学習のリスクが高まります:モデルがデータの細部(ノイズ)まで覚えてしまうことがあり、過学習のリスクが高くなります
    • 次元間の相関の低下:次元数が増えると、特徴量間の相関性が薄くなるため、重要な情報をうまく捉えきれないことが増えます

対策

  • 特徴選択(Feature Selection):不要な特徴量を削除して、モデルが学習するべき重要な特徴に絞り込む方法です
  • 主成分分析(PCA):高次元のデータを低次元空間に変換する手法です
  • t-SNE(t-Distributed Stochastic Neighbor Embedding):次元削減手法の一つで、データ点を低次元空間にマッピングします
  • 正則化:高次元データに対して、過学習を防ぐために、モデルの複雑さを制限する手法です
  • カーネル法(Kernel Methods):特に非線形なデータに対して、カーネル法を使って高次元空間にマッピングし、線形的に分離できるようにする方法です

過少適合(Underfitting)

  • AIモデルが訓練データすらうまく学習できていない状態を指します

特徴

特徴 説明
訓練誤差が高い 学習したデータでもミスが多い
テスト誤差も高い 本番用のデータにも弱い
モデルがシンプルすぎる データの複雑さに対して表現力が足りない

発生原因

  • モデルが単純すぎる
  • 学習不足
  • 特徴量が不十分:入力データに必要な情報が欠けています
  • 正則化が強すぎる:学習を抑えすぎて、特徴を捉えられません

解決策

  • モデルを複雑にします
  • 学習を長く行います
  • 特徴量エンジニアリング:新しい入力変数を作成して追加します
  • 正則化を弱める:学習制限を緩めてみます

正則化(Regularization)

  • モデルの複雑さを抑えるために、不要な学習を抑制する手法です
  • 目的
    • 過学習を防ぐ
    • 汎化能力を高める
  • モデルは重要な特徴を優先的に学習し、無関係な特徴量に過度に依存しないようになります

正則化の方法

用語 意味
L1 正則化 特徴選択を促し、不要な重みをゼロにする
L2 正則化 重みを小さく保ち、極端な値を防ぐ
Elastic Net L1とL2を組み合わせて、両方の利点を活かす
GitHubで編集を提案

Discussion