1. 概要

このチュートリアルでは、学習曲線とは何か、機械学習モデルのトレーニングプロセス中にそれらが必要な理由を学習します。

また、さまざまなタイプの曲線、それらが何に使用されるか、および学習プロセスを最大限に活用するためにそれらをどのように解釈する必要があるかについても説明します。

記事の終わりまでに、実際の機械学習トレーニングで一般的な問題を回避するために必要な理論的および実践的な知識を身に付けることができます。 準備? さぁ、始めよう!

2. 学習曲線

2.1. 序章

人々がよく考えることとは反対に、機械学習は完全に自動化されているわけではありません。 それにはたくさんの「ベビーシッター」が必要です。 特にそれが新しいプロジェクトである場合は、監視、データ準備、および実験。 そのすべてのプロセスにおいて、学習曲線は基本的な役割を果たします。

学習曲線は、機械学習モデルのトレーニング中の学習に関連する特定のメトリックの経験の進捗状況を示す単なるプロットです。 これらは、学習プロセスを数学的に表したものにすぎません。

これによると、x軸に時間または進行状況の測定値があり、y軸にエラーまたはパフォーマンスの測定値があります。

これらのグラフを使用して、学習中のモデルの進化を監視し、問題を診断して予測パフォーマンスを最適化できるようにします。

2.2. シングルカーブ

学習曲線の最も一般的な例は、時間の経過に伴う損失です。 損失(またはコスト)は、モデルエラー、つまり「モデルのパフォーマンスの悪さ」を測定します。 したがって、今のところ、損失が少なくなるほど、モデルのパフォーマンスは向上します。

次の図では、学習プロセスの予想される動作を確認できます。

わずかな浮き沈みがあるにもかかわらず、長期的には損失は時間の経過とともに減少するため、モデルは学習中です。

非常に人気のある学習曲線の他の例は、精度精度、およびリコールです。 これらのキャプチャモデルのパフォーマンスはすべて、高いほどモデルが優れています。

時間の経過に伴う典型的な精度曲線の例を以下に示します。

モデルのパフォーマンスは時間の経過とともに成長しています。つまり、モデルは経験とともに向上しています(学習中です)。

また、最初は成長しますが、時間の経過とともにプラトーに達し、それ以上学習できなくなります。

2.3. 複数の曲線

最も広く使用されているメトリックの組み合わせの1つは、トレーニング損失+検証損失です。

トレーニング損失は、モデルがトレーニングデータにどの程度適合しているかを示し、検証損失は、モデルが新しいデータにどの程度適合しているかを示します。

この組み合わせについては後で説明しますが、今のところ、両方のメトリックを示す一般的なプロットを以下に示します。

もう1つの一般的な方法は、同じグラフに複数の指標を含めることと、異なるモデルの指標を含めることです。

2.4. 2つの主なタイプ

次の2種類の学習曲線がチャートに表示されることがよくあります。

  • 最適化学習曲線:損失や平均二乗誤差など、モデルのパラメーターが最適化されているメトリックに基づいて計算された学習曲線
  • パフォーマンス学習曲線:精度、適合率、再現率、F1スコアなど、モデルが評価および選択されるメトリックに基づいて計算された学習曲線

以下に、機械翻訳の例を示します。これは、2つの異なるモデル(オレンジと緑)の BLEU (パフォーマンススコア)と損失(最適化スコア)を示しています。

3. モデルの動作を検出する方法

学習曲線の進化を観察することで、モデルの動作の問題を検出できます。

次に、モデルの動作を検出するために見つけることができるさまざまなシナリオをそれぞれ見ていきます。

3.1. 高バイアス/アンダーフィッティング

これらの概念が何であるかを簡単に確認しましょう。

  • バイアス:学習アルゴリズムがすべての関連情報を考慮していない場合に高いバイアスが発生し、モデルの豊富さと複雑さをキャプチャできなくなります
  • Underfitting :アルゴリズムがトレーニングデータまたは新しいデータのいずれかをモデル化できない場合、時間の経過とともに減少しない高いエラー値を一貫して取得します

モデルにバイアスがかかるほど、データに適合しなくなるため、これらは密接に関連していることがわかります。

データが下の青い点であると想像してみましょう。回帰の目的で線形モデルを考え出します。

私たちが非常に怠惰な機械学習の実践者であり、このラインをモデルとして提案するとします。

明らかに、そのような直線は私たちの点のパターンを表していない。 与えられたデータの性質を説明するのは、いくらか複雑ではありません。 バイアスされたモデルが関連情報を考慮していないため、が不足していることがわかります。

すでにトレーニングデータでひどい仕事をしているので、新しい例のパフォーマンスはどうなるでしょうか?

新しい例では、トレーニングデータの場合と同じようにパフォーマンスが低下することは明らかです。

では、学習曲線を使用して、モデルが適切でないことを検出するにはどうすればよいでしょうか。 検証とトレーニングのコスト(損失)曲線を示す例を参照してください。

  • コスト(損失)関数は高く、検証曲線とトレーニング曲線の両方で反復回数に応じて減少しません
  • 実際にはトレーニング曲線だけを使用して、損失が高く、減少しないことを確認して、それが不十分であることを確認することができます

3.2. 高分散/過剰適合

これらの2つの概念を簡単に確認しましょう。

  • Variance :モデルが複雑すぎて、データに存在するより単純な実際のパターンを表していない場合、高い分散が発生します
  • 過剰適合:アルゴリズムはトレーニングデータを適切にキャプチャしますが、新しいデータではパフォーマンスが低いため、一般化できません

これらも直接関連する概念です。モデルの分散が大きいほど、トレーニングデータに適合しすぎます。

前と同じ例を見てみましょう。線形モデルでこれらの青い点を近似する必要があります。

さて、もう一方の極端な例として、私たちが非常に完璧主義の機械学習の実践者であり、次のようにデータを完全に説明する線形モデルを提案するとします。

まあ、私たちはこの線も私たちが望んでいたものではないことを直感的に理解しています。 確かに、それはデータに適合しますが、その中の実際のパターンを表すものではありません。 新しい例が現れると、それをモデル化するのに苦労します。 新しい例(オレンジ色)を参照してください。

過剰適合モデルを使用すると、新しい例を十分に予測できません。

モデルが過剰適合していることを検出するために、学習曲線をどのように使用できますか? 検証とトレーニングの両方の損失曲線が必要になります。

  • トレーニング損失は時間の経過とともに減少し、低いエラー値を達成します
  • The 検証損失はターニングポイントが見つかるまで減少し、そこで再び増加し始めます。 その点は、過剰適合の始まりを表しています

3.3. 適切なバイアス/分散のトレードオフを見つける

偏りと分散の問題の解決策は、それらの間のスイートスポットを見つけることです。

上記の例では、次のようになります。

データの適切な線形モデルは、次のような線になります。

したがって、新しい例が表示された場合:

より良い予測を行います:

検証とトレーニングの損失曲線を使用して、適切なバイアス/分散のトレードオフを見つけることができます。

  • 検証エラーの傾向が降順から昇順に変化した場合は、トレーニングプロセスを停止する必要があります
  • その時点より前にプロセスを停止すると、モデルは適合しなくなります
  • その時点以降にプロセスを停止すると、モデルは過剰適合します

4. 代表性を検出する方法

4.1. 代表性の意味

代表的なデータセットは、同じドメインの別のデータセットの統計的特性を比例的に反映しています。

トレーニングデータセットは検証データセットに関連して代表的ではなく、その逆も同様であることがわかりました。

4.2. 代表的でないトレーニングデータセット

これは、検証データセットと比較して、トレーニング中に利用可能なデータがモデルをキャプチャするのに十分でない場合に発生します。

この問題は、トレーニング用と検証用の1つの損失曲線を示すことで特定できます。

トレイン曲線と検証曲線は改善されていますが、それらの間には大きなギャップがあります。つまり、異なる分布のデータセットのように動作します。

4.3. 代表的でない検証データセット

これは、検証データセットがモデルの一般化能力を評価するのに十分な情報を提供しない場合に発生します。

最初のシナリオは次のとおりです。

ご覧のとおり、トレーニングカーブは問題ないように見えますが、検証関数はトレーニングカーブの周りを騒々しく動きます。

検証データが不足していて、トレーニングデータをあまり表していない場合があるため、モデルはこれらの例をモデル化するのに苦労しています。

2番目のシナリオは次のとおりです。

ここで、検証損失はトレーニングデータセットよりもはるかに優れていることがわかります。これは、検証データセットがトレーニングデータセットよりも予測しやすいことを反映しています。

説明は、検証データが不足しているが、トレーニングデータセットによって広く表されているため、モデルはこれらのいくつかの例で非常にうまく機能している可能性があります。

とにかく、これは検証データセットがトレーニングデータセットを表していないことを意味するため、代表性に問題があります。

5. 結論

このチュートリアルでは、学習曲線の背後にある概念とその使用方法を理解するために必要ないくつかの基本的な概念を確認しました。

次に、学習曲線を解釈する方法と、それらを使用して、過適合、過剰適合、非代表性などの一般的な学習問題を回避する方法を学びました。