
機械学習において、教師あり学習(SL )は、入力データを特定の出力にマッピングすることをアルゴリズムが学習するタイプの機械学習パラダイムであり、入力と出力の例のペアに基づいて学習します。このプロセスでは、ラベル付きデータを使用して統計モデルをトレーニングします。つまり、各入力データには正しい出力が提供されます。「教師あり」という用語は、このトレーニングデータを提供し、アルゴリズムを正しい予測に導く教師または監督者の役割を指します。[ 1 ]たとえば、モデルに画像内の猫を識別させたい場合、教師あり学習では、明示的に「猫」とラベル付けされた(出力)猫の画像(入力)を多数モデルに与えます。
教師あり学習の目標は、訓練されたモデルが新しい未知のデータに対して出力を正確に予測することです。[ 2 ]そのためには、アルゴリズムが訓練例から効果的に一般化する必要があります。この品質は、一般化誤差によって測定されます。教師あり学習は、分類(スパムかスパムでないかなどのカテゴリを予測する)や回帰(住宅価格などの連続値を予測する)などのタスクによく使用されます。
教師あり学習の特定の問題を解決するには、以下の手順を実行する必要があります。
教師あり学習アルゴリズムには様々な種類があり、それぞれに長所と短所があります。すべての教師あり学習問題に最適な単一の学習アルゴリズムは存在しません(「無料のランチはない」定理を参照)。
指導付き学習において考慮すべき主要な問題は4つあります。
最初の問題は、バイアスとバリアンスのトレードオフです。[ 3 ]複数の異なる、しかし同等に優れたトレーニングデータセットが利用可能であると想像してください。学習アルゴリズムは、特定の入力に対してバイアスがかかっています。これらのデータセットのそれぞれでトレーニングした場合、正しい出力を予測する際に体系的に誤りがある場合学習アルゴリズムは、特定の入力に対して高い分散を示す。異なるトレーニング セットでトレーニングした場合に異なる出力値を予測する場合。学習済み分類器の予測誤差は、学習アルゴリズムのバイアスと分散の合計に関連しています。[ 4 ]一般的に、バイアスと分散の間にはトレードオフがあります。バイアスが低い学習アルゴリズムは、データにうまく適合できるように「柔軟」である必要があります。しかし、学習アルゴリズムが柔軟すぎると、各トレーニング データ セットに異なる方法で適合し、分散が高くなります。多くの教師あり学習方法の重要な側面は、バイアスと分散の間のこのトレードオフを調整できることです (自動的に、またはユーザーが調整できるバイアス / 分散パラメータを提供することによって)。
2つ目の問題は、「真の」関数(分類器または回帰関数)の複雑さに対して、利用可能な訓練データの量です。真の関数が単純な場合、バイアスが高く分散が低い「柔軟性のない」学習アルゴリズムでも、少量のデータから学習できます。しかし、真の関数が非常に複雑な場合(例えば、多くの異なる入力特徴間の複雑な相互作用を含み、入力空間の異なる部分で異なる挙動を示す場合)、その関数は、バイアスが低く分散が高い「柔軟な」学習アルゴリズムと大量の訓練データを組み合わせた場合にのみ学習できます。
3つ目の問題は、入力空間の次元です。入力特徴ベクトルの次元が大きい場合、真の関数がそれらの特徴のごく一部にしか依存していなくても、関数の学習は困難になる可能性があります。これは、多くの「余分な」次元が学習アルゴリズムを混乱させ、高い分散を引き起こす可能性があるためです。したがって、次元が大きい入力データの場合、通常は分類器を低分散かつ高バイアスになるように調整する必要があります。実際には、エンジニアが入力データから無関係な特徴を手動で削除できれば、学習された関数の精度が向上する可能性が高くなります。さらに、関連する特徴を特定し、無関係な特徴を破棄しようとする特徴選択アルゴリズムが多数存在します。これは、教師あり学習アルゴリズムを実行する前に、入力データを低次元空間にマッピングしようとする、より一般的な次元削減戦略の一例です。
4つ目の問題は、目標出力値(監視対象変数)のノイズの程度です。目標出力値が(人的ミスやセンサーのエラーなどにより)頻繁に誤っている場合、学習アルゴリズムは訓練例と完全に一致する関数を見つけようとすべきではありません。データを過度に慎重に適合させようとすると、過学習につながります。学習しようとしている関数が学習モデルにとって複雑すぎる場合、測定誤差(確率的ノイズ)がない場合でも過学習が発生する可能性があります。このような状況では、モデル化できない目標関数の部分が訓練データを「汚染」します。この現象は決定論的ノイズと呼ばれています。どちらのタイプのノイズが存在する場合でも、バイアスが高く分散が低い推定器を使用する方が良いでしょう。
実際には、過学習を防ぐための早期停止や、教師あり学習アルゴリズムのトレーニング前にノイズの多いトレーニング例を検出して除去するなど、出力値のノイズを軽減するためのいくつかの方法があります。ノイズの多いトレーニング例を識別するアルゴリズムはいくつかあり、トレーニング前に疑わしいノイズの多いトレーニング例を除去すると、統計的に有意な汎化誤差が減少します。[ 5 ] [ 6 ]
学習アルゴリズムを選択および適用する際に考慮すべきその他の要素は以下のとおりです。
新しいアプリケーションを検討する際、エンジニアは複数の学習アルゴリズムを比較し、どのアルゴリズムが対象となる問題に最適かを実験的に判断することができます(交差検証を参照)。学習アルゴリズムの性能調整は非常に時間がかかる場合があります。限られたリソースの中で、学習アルゴリズムの調整に時間を費やすよりも、追加のトレーニングデータやより有益な特徴量の収集に時間を費やす方が、多くの場合賢明です。
最も広く使われている学習アルゴリズムは以下のとおりです。
与えられたセットトレーニング例そのためは、-例とはラベル(つまりクラス)であり、学習アルゴリズムは関数を探索します、 どこ入力空間であり、は出力空間です。関数可能な関数の空間の要素である通常は仮説空間と呼ばれる。スコアリング関数を使用するそのためは、最高得点となる値:。 させてスコアリング関数の空間を表す。
それでもそしては任意の関数空間であり、多くの学習アルゴリズムは確率モデルである。条件付き確率モデルの形をとる、 または結合確率モデルの形をとる例えば、ナイーブベイズと線形判別分析は同時確率モデルであるのに対し、ロジスティック回帰は条件付き確率モデルである。
選択には2つの基本的なアプローチがありますまたは:経験的リスク最小化と構造的リスク最小化。[ 7 ]経験的リスク最小化は、トレーニングデータに最もよく適合する関数を求めます。構造的リスク最小化には、バイアス/バリアンスのトレードオフを制御するペナルティ関数が含まれます。
どちらの場合も、トレーニングセットは独立かつ同一の分布に従うペアのサンプルで構成されていると想定されます。関数がトレーニングデータにどれだけ適合しているかを測定するために、損失関数定義されています。トレーニング例値の予測の損失は。
リスク関数のは、期待損失として定義される。これはトレーニングデータから次のように推定できます。
経験的リスク最小化において、教師あり学習アルゴリズムは関数を探索する。最小限に抑えるしたがって、最適化アルゴリズムを適用して、教師あり学習アルゴリズムを構築することができます。。
いつ条件付き確率分布そして損失関数は負の対数尤度である。すると、経験的リスク最小化は最尤推定と同等になります。
いつ候補関数が多数含まれている場合、または訓練データセットが十分に大きくない場合、経験的リスク最小化によって分散が大きくなり、汎化性能が低下します。学習アルゴリズムは訓練例を記憶することはできますが、汎化性能は低くなります(過学習)。
構造的リスク最小化は、最適化に正則化ペナルティを組み込むことで過学習を防ぐことを目的としている。正則化ペナルティは、より複雑な関数よりもより単純な関数を優先する、オッカムの剃刀の一種と考えることができる。
複雑さのさまざまな定義に対応する、多種多様なペナルティが採用されてきた。たとえば、関数がは、次の形式の線形関数です。
一般的な正則化ペナルティはこれは重みのユークリッドノルムの二乗であり、規範。その他の規範には、標準、、そして「ノルム」とは、ゼロでない要素の数のことです。s. ペナルティは次のように表されます。。
教師あり学習最適化問題は、関数を見つけることである。最小限に抑える
パラメータバイアス・バリアンスのトレードオフを制御します。これにより、バイアスが低く分散が高い経験的リスク最小化が得られます。が大きい場合、学習アルゴリズムはバイアスが高く分散が低くなります。交差検証によって経験的に選択することができる。
複雑性ペナルティは、負の対数事前確率としてベイズ的に解釈される。、その場合事後確率は。
上述のトレーニング方法は、関数を見つけようとするため、識別トレーニング方法である。異なる出力値を適切に区別する(識別モデルを参照)。特別な場合、は同時確率分布であり、損失関数は負の対数尤度である。リスク最小化アルゴリズムは生成学習を実行すると言われている。なぜならこれは、データがどのように生成されたかを説明する生成モデルとみなすことができます。生成学習アルゴリズムは、識別学習アルゴリズムよりも単純で計算効率が高い場合が多いです。場合によっては、ナイーブベイズや線形判別分析のように、解を閉じた形式で計算できます。

標準的な教師あり学習問題を一般化する方法はいくつかあります。