機械学習の2つの壁「分類モデルの選定」と「過学習」への対処法AI基礎解説(2/2 ページ)

» 2020年04月07日 10時00分 公開
前のページへ 1|2       

過学習への対応

 過学習は、あるモデルがデータセットに適合していても、新しいデータに対してうまく一般化しない場合に発生します。特に、そのモデルを使って機械学習を行っている担当者自身がデータ収集を行っていない場合、学習データが不十分であることが多いため、過学習を回避するのは困難です。過学習を回避する最善の方法は、モデルの多様性と複雑性を正確に反映するために十分な学習データを使用することです。

 エンジニアや科学者が過学習を避けるには、データの正則化(regularization)と汎化(generalization)という追加的な2つの手法があります。

 正則化は、モデルが個々のデータポイントに過度に依存することを防ぐ技術です。正則化アルゴリズムは、モデルに追加情報を導入し、モデルをより分かりやすく正確にすることで、多重共線性と冗長な予測変数を処理します。これらのアルゴリズムは通常、モデルの係数を最小化に追加したり、粗さのペナルティーを含んだりなど、複雑さに対するペナルティーを適用することで動作します。

 汎化では、利用可能なデータを3つのサブセットに分割し、交差検証(cross-validation)を行います。最初のサブセットは機械学習を行うための学習セット(training set)であり、2番目のサブセットは検証セット(validation set)です。検証セットの誤差は、学習プロセス中に監視され、モデルが正確になるまで微調整されます。3番目のサブセットはテストセット(test set)で、学習セットと検証セットを用いた機械学習を終えた後、モデルが学習セットと検証セットに対して過学習していないことを確認するためのものです。

 過学習を防ぐ交差検証の手法は幾つかありますが、ここでは以下の6つを紹介します。

  • k-分割(k-fold)
    • テストセットを分割した後、残りのデータをほぼ同じサイズのランダムに選ばれたk個の部分集合(または折り目)に分割します。部分集合の1部を学習セット、残りの部分集合を検証セットに用います。各学習セットに対して検証セットが確実に適用され、このプロセスはk回繰り返されます
  • ホールドアウト(holdout)
    • データを指定された比率で3つのサブセットに分割します
  • リーブワンアウト(leave-one-out)
    • データ件数が少ない場合に適した手法です。k-分割について、テストセットを除いたデータの件数分だけ部分集合への分割を行います
  • ランダム反復サブサンプリング(repeated random subsampling)
    • ランダムにデータを分離するモンテカルロ法の繰り返しを実行し、全ての実行にわたって結果を集約します
  • 層化(stratify)
    • 学習セットとテストセットの両方が、応答またはターゲットでほぼ同じクラスの割合を持つようにデータを分割します
  • 再代入(resubstitution)
    • 学習セットと検証セットを分離せずに、学習セットを検証に使用します。この方法は、パフォーマンスを過度に楽観的に見積もってしまうことが多く、十分なデータがある場合は避けなければなりません

 機械学習の初心者も熟練者も、分類モデルの選定と過学習の課題に直面します。機械学習を取り巻く課題は難しく感じるかもしれませんが、適切なツールを活用し、ここで取り上げた検証方法を活用することで、エンジニアや科学者が実世界のプロジェクトに機械学習をより簡単に適用できるようになります。

筆者プロフィール

photo

阿部 悟(あべ さとる) MathWorks Japan インダストリーマーケティング部 部長

1989年から、本田技術研究所 基礎研究所で超低エミッションエンジン、希薄燃焼エンジンなどの制御システム基礎研究、Formula-1、Indy Carレースの電装システム開発部門で開発をリーディング。2003年からはContinental、AVLなどサプライヤーサイドでエンジン、ボディー、シャシーなどの電装製品の開発に従事。2012年から現職。これまでの経験を生かして業界マーケティング活動を通してモデルベース開発の推進に尽力している。

MathWorks Japan https://jp.mathworks.com/

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.