過学習とは?具体例と発生する原因・防ぐための対策方法をご紹介
最終更新日:2024/01/24
AIを用いた機械学習やデータ分析を学ぶ上で、避けて通れないのが「過学習」です。過学習が起こると、データ処理がうまく行われず、正確な予測結果が得られません。そのため、過学習の原因や対処法を知り、予防策を取り入れることが重要です。
本記事では、過学習が起きる原因や回避するための対策法などについて解説します。機械学習やAI技術システムを導入、運用する上でも大切な知識ですので、ぜひご覧ください。
機械学習について詳しく知りたい方は以下の記事もご覧ください。
機械学習とは何か?種類や仕組みをわかりやすく簡単に説明
過学習とは
過学習とは、機械学習に使う訓練(学習)データをコンピュータが学習しすぎた結果、訓練データと過剰に適合しすぎてしまい、分析するテストデータにて適合できなくなった状態です。データ分析で陥りやすいトラブルの1つで、「オーバーフィッティング(Overfitting)」や「過剰適合」などとも呼ばれます。
訓練データ上では正解率が高く、テストデータでは正解率が低いという状態です。あらかじめ用意された学習データでの正解率が高くても、実際の運用で使うテストデータにおける精度が出ないのであれば、役に立ちません。
言い換えると、過学習を起こさず、幅広いデータのインプットに対して正しい推測ができることが、AIなどの機械学習では重要です。
過学習の例
過学習について理解を深めるために、具体例を見てみましょう。ここで取り上げる例は、「学校のテストで、特定のクラスの点数分布から学年全体の点数分布を予測するモデル」です。
英語と数学のテストの結果をそれぞれ縦軸と横軸とし、実際の点数を記入して散布図を作成したものを用意します。コンピューター学習による予測パターンを、曲線として書き込む場合、適正な予測モデルでは全体の分布をバランスよく捉えた緩やかな曲線になるはずです。
しかし、過学習が置きていると過度にデータにフィットしすぎてしまうため、細かく湾曲する線ができてしまいます。この場合、前者の緩やかな曲線が求めたい適正な予測モデルであり、後者は過学習によって汎用性が失われている状態です。
過学習の問題点
過学習の問題点は、データ全体の傾向を正しく把握できず、新しい分析対象のデータへの対応力が失われている点にあります。過学習に陥っている予測モデルでは、個々のデータへフィットしすぎていることで、データ全体の傾向や特徴をつかむことが困難です。
データ一つひとつが持つ偏りに予測モデルが適合してしまうがゆえに、データ全体としての傾向があいまいな状態が生まれます。その結果、元の学習データにおける適合度と、テストデータを用いた際の予測精度に著しい差が生まれて、機械学習やデータ分析などの目的を果たせなくなってしまうのです。
予測モデルにおいて高い予測精度を発揮するためには、データ全体としてのパターンや規則性を的確に読み取る必要があります。
過学習が起きる要因
過学習が起きる主な要因としては、「学習データ不足」「学習データの偏り」「モデルの目的があいまい」といった項目が挙げられます。データ分析で陥りやすいトラブルである過学習に対する適切な予防対策を行うためには、原因を理解することが大切です。それぞれの項目について詳しく見ていきましょう。
データが不足している
過学習というと、データ過剰によって起こると思われがちですが、実際には学習データが足りないことが原因で起きやすいトラブルです。あらかじめ学習データを使ってコンピュータが学習し、それを基にテストデータを扱いますが、学習データが少ないと限られたデータからモデルを作るために結果に偏りが生まれてしまいます。
新しい仕事に対応するために、過去の経験や情報を使う、ということは人間の世界でもよくあることです。機械学習では、与えられた学習データがすべてであり、記憶できているモデル以外のデータを正しく扱うことは難しく、過学習の可能性が高まります。
偏ったデータを学習している
偏ったデータを学習させることでも、過学習は起こる可能性があります。機械学習では、与えられたデータからしか分析ができないため、フラットな分析を行うためには、多様かつ豊富なデータの学習が必要です。
例えば、売上予測の学習モデルを構築したい場合、一定期間の売り上げ動向データを読み込ませます。閑散期や世界情勢の影響を受けた売上低迷期のデータだけを学習させても、正しい予測結果を出すことは難しいです。
訓練用のデータが偏っていれば、当然モデルの適合範囲も限定的になり、偏った処理しかできないモデルが構築されてしまいます。こうした悪影響を避けるためには、データの量に加えて質の意識も重要です。
機械学習モデルの目的が不明確である
機械学習モデルで用いるアルゴリズムが、活用目的に合致していないと、過学習が起きる可能性があります。何を予測するためのモデルなのか不明確なままでは、不必要なデータや偏ったデータを学習に使うこととなり、結果的に過学習のリスクが増えることになります。
逆に、目的が明確になっていれば、予測に必要なデータを大量に収集し、学習させることが可能です。結果、得られたデータの精度も上がると考えられます。売上予測や来客増加率など、モデル構築の前段階として、どのようなモデルを構築するか、目的を明確にすることが大切です。
過学習の判断方法・見分け方
過学習が発生した場合、できる限り早い段階で気づき、モデルを改善する必要があります。過学習が置きていることに気づけないと、役に立たないモデルばかりが量産されるという悪循環に陥る可能性があります。ここでは、過学習に気づくために使える方法を紹介します。
訓練データ・検証データ・テストデータを区別する
モデルを構築する前に、あらかじめ「訓練データ」「検証データ」「テストデータ」に分けておきます。各データにはそれぞれ異なる役割があり、主な特徴は以下の通りです。
- 訓練データ:モデル構築に使う
- 検証データ:モデルの精度を検証し改善する
- テストデータ:予測モデルを最終的にテストする
まず、訓練データを使って予測モデルを作成します。次に、検証データを用いて、うまくいかない場合の原因究明や改善策の実践を行い、モデルの精度を高めていく段階です。最終段階として、訓練データと検証データによってできた予測モデルに対し、テストデータを使ってテストを行います。
検証とテストというダブルチェックにより、過学習を起こしている状態に気づきやすくなり、必要な改善を取り入れることが可能です。
ホールドアウト法で検証する
機械学習でのデータテスト手法の1つであるホールドアウト(hold-out)法も、過学習の発見に役立ちます。ホールドアウト法は、訓練データと検証データ、テストデータを分割し、モデルを作成するごとに検証を挟みながら分析する方法です。
また、この方法には以下のようなメリット・デメリットがあります。
メリット | デメリット |
・簡単に実装できる ・コンピューターが計算する負担を軽減できる |
・データに偏りが出る場合がある |
ホールドアウト法は実装が簡単で、コンピューターへの負担も少なくて済むため、モデルを評価するための最もスタンダードな手法として活用されています。基本的には2つのデータの平均値や中央値、標準偏差などを見て、両者が同じ傾向を持っているか確認することで、過学習かどうかに気づくことが可能です。
データをランダムに分割することで、未知のデータに対する汎化性を高められるため、過学習の起きにくいモデルの構築自体にも役立ちます。ただ、データ分割は1通りしかないため、分割がうまくいかないとデータの傾向に偏りが出る可能性があります。
なお、ホールドアウト法はコンピューターの性能が低く、データ数が10万以上にのぼる場合に適しています。
交差検証法で検証する
交差検証(cross-validation)法は、ホールドアウト法と同様に、訓練データと検証データ、テストデータを分割して使う手法の1つです。ホールドアウト法との違いはデータ分割の種類にあり、ホールドアウト法では1通りの分割だったところ、交差検証法では複数の分割方法を試して、全体の平均を取ります。
また、この方法には以下のようなメリット・デメリットがあります。
メリット | デメリット |
・データセットの重複がない ・ホールドアウト法より信頼性が高い |
・元データ量が多いと時間や計算の負荷が大きくなる |
データの分け方を複数作ることで、訓練データと検証データの傾向の違いから生じる過学習を最小化することが可能です。交差検証の中で最もよく使われる手法に「K-分割交差検証」があります。K-分割交差検証法は、元データをk個のデータセットに分割し、1つはテストデータ、残りを訓練データとしてモデルを構築する方法です。
検証するデータセットには重複がなく、ホールドアウト法を繰り返すよりも信頼性の高い評価が得られます。ただ、元データの量が膨大な場合、k通りの検証には時間や計算負荷がかかってしまうため、ホールドアウト法の検討も必要です。
学習曲線を確認する
訓練データへの精度と検証データへの精度を表す「学習曲線」を確認し、過学習が起きていないか判断する方法も有用です。この方法には、以下のようなメリット・デメリットがあります。
メリット | デメリット |
・サンプル数の不足を確認できる ・モデルの過学習状態を確認できる |
・特になし |
学習曲線を見ることで過学習が起きていないか、サンプル数が不足していないかという2点が判断できます。
訓練データでは高い精度を発揮していて、検証データの曲線とのギャップが大きい場合、過学習が起きている可能性が高いと考えられます。訓練データの曲線と検証データの曲線の差に注目し、ギャップが大きければ予測モデルとして使えないことを意味します。
過学習を回避するための対策
過学習を回避するための対策方法は複数あります。過学習が起きる前に学習や処理を止めてしまうという方法もありますが、その時点で精度が不十分な場合には学習を続けなければなりません。そのため、他の対策方法も検討する余地があります。機械学習における過学習を予防するために、ぜひ参考にしてください。
正則化
正則化(Min-Max Normalization)とは、複雑化してしまったモデルを単純なモデルへと戻していく手法です。具体的には、データの傾向を見つける際に、複雑さに対してペナルティを設け、誤差を踏まえた学習モデルを作ります。回帰や分類といったデータ分析でも使える汎用性の高い過学習対策の1つです。
正規化には主に「L1正規化」と「L2正規化」があります。それぞれの手法は以下の通りです。
種類 | 手法 |
L1正則化 | 余分な説明変数を減らして過学習を防ぐ手法 |
L2正則化 | 複雑化させている要素を抑えて過学習を防ぐ手法 |
L1正則化は、データ数や説明変数が多い場合に余分な説明変数を減らし、過学習を防ぐ手法です。本当に必要な変数だけをモデルに利用したい時に役立ちます。L2正則化は、データ数や説明変数が多くない場合に複雑化させている要素を抑えて過学習を防ぐために用いられます。L1正則化を使ったモデルと比べて予測精度が高くなる傾向があるのが特徴です。
ドロップアウト
ドロップアウト(Drop Out)とは、繰り返し学習によるモデルの複雑化を解消し、シンプルにする手法です。すべてのデータを学習するのではなく、データの一部を隠し部分的に抽出して学習させることで、過学習を回避します。
『通常のニュートラルネットワークのモデルの画像とドロップアウトしたニュートラルネットワークのモデルの画像を作成』
モデルは解決したい問題の複雑さに合わせて作られているため、簡単に変更できないことがほとんどです。そこで、確率的に必要なネットワークを選別し、選んだもの以外を無効化することで、重み付けの数といったネットワークの自由度を減らすことで、モデルの簡素化と同様の効果が得られます。
ドロップアウトは、訓練時にランダムでニューロンを選んでいくだけなので、計算コストを抑え、手軽にアンサンブル学習を行いたい時に向いています。
ハイパーパラメータチューニング
ハイパーパラメータ(Hyperparameter)とは、一言で説明すると機械学習アルゴリズムの設定のことです。ハイパーパラメータの値によって、モデルの精度やパフォーマンスが大きく変わります。
ハイパーパラメータチューニング(Hyperparameter Tuning)とは、分析手法にて予測モデルの自由度を決める設定の最適化のことです。グリッドサーチやランダムサーチなどの種類があります。
例えば、樹形図によってデータを分析する決定木分析においては、木が深いほどモデルが複雑化する傾向が見られますが、木の深さというハイパーパラメータを適切に設定することで過学習を防ぐという考え方です。
そのため、ハイパーパラメータチューニングはハイパーパラメータを正しい値になるよう調節し、実践でも十分に使える学習モデルの構築を叶えたい場合に用いられます。
アンサンブルモデル
アンサンブルモデルとは、重回帰分析や決定木分析といったいくつかの基本的な予測モデルを組み合わせ、それぞれの予測結果に対して多数決的に最終予測結果を出す手法です。過学習を避けつつモデルの精度向上に貢献します。
アンサンブルモデルに使われる主な手法としては、下記3つです。
- バギング:データを複数に分割し、それぞれを異なる手法で予測、モデルの平均や多数決をとる手法(ランダムフォレストなど)
- ブースティング:複数のデータを用いて、前の学習結果を次の学習に影響させる手法(LightGBM、XGboostなど)
- スタッキング:1段目のモデル予測値を2段目のモデルで予測に使う、といったように複数のモデルを積み上げていく手法
アンサンブルモデルは、複数のモデルを使うことによって、効率的に未学習データの予測能力を上げたい場合に適しています。
過学習の原因を知り対策を行おう
機械学習を活用する上で、過学習は起こりやすいトラブルの1つです。過学習に気づかないまま、同じモデルを繰り返していても、適切な予測結果が得られないため、できるだけ早く発見し改善する必要があります。
AI技術の浸透とともに、機械学習やデータ分析を用いるシーンが増えつつあります。今回紹介した手法を参考に、過学習について理解を深め、必要な対策方法を実践していきましょう。
AIについて詳しく知りたい方は以下の記事もご覧ください。
AI・人工知能とは?定義・歴史・種類・仕組みから事例まで徹底解説
- AIサービス
- 機械学習
業務の課題解決に繋がる最新DX・情報をお届けいたします。
メールマガジンの配信をご希望の方は、下記フォームよりご登録ください。登録無料です。
AI・人工知能記事カテゴリ一覧
AI・人工知能サービス
- 生成AI
- 画像生成AI
- ChatGPT
- AI研究開発
- LLM
- DX推進
- おすすめAI企業
- チャットボット
- ボイスボット
- 音声認識・翻訳・通訳
- 画像認識・画像解析
- 顔認証
- AI-OCR
- 外観検査
- 異常検知・予知保全
- 自然言語処理-NLP-
- 検索システム
- 感情認識・感情解析
- AIモデル作成
- 需要予測・ダイナミックプライシング
- AI人材育成・教育
- アノテーション
- AI学習データ作成
- エッジAI
- IoT
- JDLA
- G検定
- E資格
- PoC検証
- RPAツール
- Salesforce Einstein
- Watson(ワトソン)
- Web接客ツール
- サプライチェーン
- メタバース
- AR・VR・デジタルツイン
- MI
- スマートファクトリー
- データ活用・分析
- 機械学習
- ディープラーニング
- 強化学習
- テレワーク・リモートワーク
- マーケテイングオートメーション・MAツール
- マッチング
- レコメンド
- ロボット
- 予測
- 広告・クリエイティブ
- 営業支援・インサイドセールス
- 省人化
- 議事録自動作成
- 配送ルート最適化
- 非接触AI
業態業種別AI導入活用事例
今注目のカテゴリー
AI製品・ソリューションの掲載を
希望される企業様はこちら