機械学習とニューラルネットワーク - ページ 70

 

7.1 アンサンブル手法の概要 (L07: アンサンブル手法)


7.1 アンサンブル手法の概要 (L07: アンサンブル手法)

今週の講義では、機械学習の重要な分野であるアンサンブル手法について詳しく説明します。これらの手法は、現実世界のアプリケーションで高いパフォーマンスを実現するために、応用機械学習研究で広く使用されています。実際に効果的であることが知られている確実な方法は、多くの場合最良の結果をもたらします。

この講義では、デシジョン ツリーについても再検討し、その関連性について Piazza で提起されたいくつかの質問に対処します。デシジョン ツリーは比較的古くて馴染みのあるアルゴリズムであるにもかかわらず、今日でも非常に関連性が高くなります。これらは解釈可能なだけでなく、アンサンブル手法で頻繁に使用され、優れたパフォーマンスを発揮します。講義ではこの点についても探求することを目的としています。

アンサンブルの手法を掘り下げる前に、今学期の立ち位置を要約することが重要です。現在、ツリーベースの手法に焦点を当てた第 3 部を終了しています。ただし、これらの手法の一部はデシジョン ツリーを超えて拡張され、ディープ ニューラル ネットワークに適用される確実な手法など、他の手法を包含することは注目に値します。デシジョン ツリーは、ほとんどのアンサンブル手法と密接に関連しているため、パート 3 に分類されています。

このセクションを完了したら、教師なし学習と、時間が許せばベイジアン学習について説明する前に、モデルの評価について詳しく説明します。当初の計画では、中間試験を早めに実施し、他の方法をカバーする予定でしたが、コースの進行に予想よりも時間がかかりました。それにもかかわらず、Python 環境のセットアップと全員 (特に Python に詳しくない人) に慣れるために追加の時間を費やしたことは有益でした。これにより、すべての参加者が同じ認識を持ち、今後の宿題に備えることができます。宿題には、scikit-learn などの事前に構築されたライブラリに依存せずに、CART (分類および回帰ツリー) デシジョン ツリーの実装が含まれます。

講義は7部構成となっております。最初の部分では、アンサンブル手法の紹介と概要を説明します。続いて、最も単純なタイプのアンサンブル手法である多数決から始めて、さまざまな内部手法を検討していきます。次に、トレーニング セットからのブートストラップ サンプリングを含む手法であるバギングについて詳しく説明します。この方法の有用性について説明する。弱い学習器 (短いデシジョン ツリーなど) を強力なモデルにブーストすることを含むブースティングについても説明します。特に、今日最も人気のあるアルゴリズムの 1 つであり、Kaggle コンテストでの成功で知られる勾配ブースティングについて説明します。もう 1 つの広く認識されているアンサンブル手法であるランダム フォレストが導入されます。これらのモデルは、大規模なハイパーパラメータ調整を行わなくても優れたパフォーマンスが得られることが多いため、使いやすいことで知られています。これらは、さまざまな科学分野で予測モデルを探している人、特に機械学習の専門知識が不足している人に推奨されます。

サポート ベクター マシン (SVM) についても、特に RBF (Radial Basis Function) カーネルでのパフォーマンスにより過去に人気があったことについても説明します。ただし、ランダム フォレストは多くの場合、大規模な調整を必要とせずに同等以上の結果を提供するため、実用的なアプリケーションに適しています。最後に、アプリケーションでよく使われるもう 1 つのテクニックであるスタッキングについて説明します。

アンサンブル法の重要性を説明するために、ランダム フォレストを含む例を示す図を示します。このモデルは分類タスクに限定されず、特徴の重要度を簡単に計算できます。たとえば、前述の例では、分子の活性を予測するための最も重要な特徴として硫黄原子が特定されました。このような洞察は実際に役立つ可能性があります。

さらに、ランダム フォレストや勾配ブースティングなどのアンサンブル手法は、深層学習以外の機械学習モデルの中で最も広く使用されています。ディープラーニングは注目を集めていますが、アンサンブルはその優れたパフォーマンスと実装の容易さにより、依然として重要性が高くなります。この記事では、機械学習アルゴリズムの「新しい女王」としての極度勾配ブースティング (XGBoost) の台頭について言及しています。これは、さまざまなアプリケーションにおけるツリーベースのモデル、特に勾配ブースティングの重要性を強調しています。

まとめると、今週の講義ではアンサンブルの手法を総合的に理解することができます。さまざまなタイプのアンサンブルテクニックとその応用について説明します。

7.1 Intro to ensemble methods (L07: Ensemble Methods)
7.1 Intro to ensemble methods (L07: Ensemble Methods)
  • 2020.10.19
  • www.youtube.com
In lecture 7, we are discussing ensemble methods, including majority voting, bagging, random forests, stacking, and gradient boosting -- those are some of th...
 

7.2 多数決投票 (L07: アンサンブル手法)


7.2 多数決投票 (L07: アンサンブル手法)

このビデオでは、多数決として知られるモデル アンサンブルの基本的なケースの 1 つを検討します。おもちゃの例を通じて、単一の分類器を単独で使用する場合と比較した多数決の利点を調べます。

まず、バイナリ分類の問題があるシナリオを考えてみましょう。いくつかの観測値で構成されるデータセットがあり、それぞれが一連の特徴と対応するクラス ラベルに関連付けられています。私たちの目標は、新しい未知のインスタンスのクラス ラベルを正確に予測できる分類器を構築することです。

多数決の概念を実証するために、データセット上で 3 つの個別の分類器をトレーニングすることから始めます。各分類子は、異なるアルゴリズムまたはモデルを利用して予測を行います。簡単にするために、これらの分類子がデシジョン ツリーであると仮定します。

3 つのデシジョン ツリー分類器をトレーニングしたら、新しいインスタンスに対して予測を行うことができるようになります。ただし、単一の分類子の予測に依存する代わりに、多数決の原理を採用します。多数決では、アンサンブル内の各分類器が予測されたクラス ラベルに投票します。最も多くの票を獲得したクラス ラベルが、アンサンブルの最終予測とみなされます。

ここで、単一の分類子を単独で使用するよりも多数決の方が効果的である理由を見てみましょう。データセット内の固有のノイズまたは変動により、個々の決定木分類器にある程度の誤差があるシナリオを考えてみましょう。これらのエラーは不正確な予測につながり、単一の分類器の全体的な精度が低下する可能性があります。

ただし、多数決を通じて複数の分類子の予測を組み合わせることで、個々のエラーの影響を軽減できる可能性があります。 1 つまたは 2 つのデシジョン ツリー分類器が誤った予測を行った場合でも、多数決プロセスによりこれらの誤差を補正できます。大多数の票を受け取ったクラス ラベルは正しい可能性が高く、単一の分類器を使用する場合と比較して精度が向上します。

これを説明するために、2 つの決定木分類器が正しいクラス ラベルを予測する一方で、1 つの分類器が誤った予測を行う状況を想像してみましょう。この場合、正しいクラス ラベルは 2 票を受け取りますが、誤った予測は 1 票しか受け取りません。その結果、アンサンブルの多数決プロセスは、最も多くの票を獲得したクラス ラベルを最終予測として正確に識別し、個々の分類器の不正確な予測をオーバーライドします。

この例では、アンサンブル手法、特に多数決が予測精度を向上させる能力を示しています。複数の分類子の予測を組み合わせることで、各分類子の長所を活用し、個々の分類子の弱点やエラーの影響を最小限に抑えることができます。

結論として、このビデオでは、モデル アンサンブルの基本形式としての多数決の重要性を強調しています。おもちゃの例を通じて、特に個々の分類子にエラーやばらつきがある場合に、単一の分類子のみを使用した場合に多数決がどのように優れたパフォーマンスを発揮できるかを確認しました。多数決などのアンサンブル手法は、予測精度を向上させる強力なアプローチを提供し、実際の機械学習アプリケーションで広く使用されています。

7.2 Majority Voting (L07: Ensemble Methods)
7.2 Majority Voting (L07: Ensemble Methods)
  • 2020.10.20
  • www.youtube.com
This video discusses one of the most basic case of model ensembles, majority voting. Using a toy example (making certain assumptions), we see why majority vo...
 

7.3 バギング (L07: アンサンブルメソッド)



7.3 バギング (L07: アンサンブルメソッド)

前回のビデオで多数決の概念について徹底的に説明した後、次のビデオでは、ブートストラップ集計の略であるバギングとして知られる別の基本的な方法について詳しく説明します。 「バギング」という用語は、イニシャル「B」と「ag G」の組み合わせに由来しており、ブートストラップの概念と密接に関連しています。この手法はもともと、決定木、特に分類回帰木 (CART) の分野の著名な人物である Leo Breiman によって提案されました。ランダム フォレストに焦点を当てた今後の講義で、ブライマンの貢献をさらに詳しく探っていきます。

まず、バギングのアルゴリズムの概要を説明します。一見複雑に見えますが、実際は非常にシンプルで、コードはわずか 6 行、空行を除くと 5 行で構成されています。アルゴリズムは次のように動作します。合計 n 個のブートストラップ サンプルまたはラウンドがあると仮定します。各ラウンド i について、トレーニング セットからサイズ m のブートストラップ サンプルを抽出します。ここで、m はトレーニング セットのサイズを表します。変数に 1 文字を使用するのは型破りに見えるかもしれませんが、文字の選択によって課せられる制限のために必要であったことに注意することが重要です。前のビデオでは、ブートストラップ サンプルの数を表すために n を使用しました。これは、説明したアンサンブル投票分類器の分類器の数に対応します。

ブートストラップ サンプルごとに、分類器をトレーニングし、多数決を適用します。このプロセスは、以前に説明したアンサンブル投票分類子と非常に似ていますが、唯一の違いは、トレーニング セット全体で各分類子をトレーニングするのではなく、トレーニング セットから抽出されたブートストラップ サンプルで各基本分類子をトレーニングすることです。

先に進む前に、ブートストラップ サンプリングの概念を簡単にまとめてみましょう。サイズが m のデータセットを考えてみましょう。このデータセットから抽出された各ブートストラップ サンプルも、前述のアルゴリズムに基づいてサイズが m になります。ブートストラップ サンプリングでは、置換を使用してデータセットからデータ ポイントをランダムに選択します。たとえば、1 から 10 までのラベルが付けられた 10 個のデータ ポイントがあり、置換を伴うサンプリングを実行すると、一部のデータ ポイントがブートストラップ データセット内で重複します。この重複が発生するのは、各位置がトレーニング セットから独立して抽出されるためです。その結果、一部のデータ ポイントが複数回表示されることもあれば、まったく表示されないデータ ポイントもあり、その結果、アウトオブバッグ (OOB) サンプルと呼ばれるものが生成されます。これらの OOB サンプルは、特定のラウンドのブートストラップ サンプルに含まれていないデータ ポイントです。

ブートストラップ サンプルで特定の項目が選択されないことに関連する確率をより深く理解するために、単一の位置に対して特定のデータ ポイントが選択されない確率を調べてみましょう。トレーニング セットには m 個の例があるため、特定の位置に対して特定のデータ ポイントが選択される確率は 1/m です。したがって、その特定のデータ ポイントが選択されない確率は 1 - 1/m です。選択肢が m 個あるため、ブートストラップ サンプル全体で特定の例が選択されない確率は (1 - 1/m)^n です。 m が十分に大きくなると、点の約 36.8% がブートストラップ サンプルに含まれなくなります。その結果、データ ポイントの 63.2% がブートストラップ サンプル内で一意となり、残りのポイントは重複します。

袋詰め手順内のブートストラップ サンプリングを視覚化すると、概念をさらに理解するのに役立ちます。複数ラウンドのブートストラップ サンプリングが実行され、それぞれのラウンドで新しいブートストラップ サンプルが生成されます。次に、分類器は各ブートストラップ サンプルに対して独立してトレーニングされます。このプロセスでは、ブートストラップ ラウンド間に依存関係がないため、モデルの並列処理が容易になります。その結果、各ラウンドを同時に実行できるため、並列処理の可能性が高まります。

バギング分類子のフローチャートは、関連するステップの概要を示しています。投票分類器と同様に、バギング分類器はトレーニング セットから始まります。ただし、バギングでは、トレーニング セットを再利用して複数のブートストラップ サンプルを作成します。各ブートストラップ サンプルは分類器のトレーニングに使用され、合計 m 個の分類器が生成されます。各分類子は予測を生成し、最終的な予測は多数決によって決定されます。このアプローチは、過剰適合を軽減し、モデルの安定性と一般化を向上させるのに役立ちます。

袋詰めにはいくつかの利点があります。

  • 分散の削減: 複数のブートストラップ サンプルを生成し、各サンプルで独立した分類器をトレーニングすることにより、バギングは予測の分散を効果的に削減します。この分散の減少は、基本分類器が過学習する傾向がある場合に特に有益です。
  • 安定性の向上: バギングには、異なるブートストラップ サンプルで複数の分類器をトレーニングすることが含まれるため、モデルに安定性がもたらされます。トレーニング セットの小さな変更は最終的な予測に大きな影響を与える可能性が低く、その結果、より堅牢なモデルが得られます。
  • 複雑なデータセットの処理: バギングは、高い分散とノイズを特徴とする複雑なデータセットを処理する場合に非常に効果的です。複数の分類子を利用し、それらの予測を集約することにより、バギングはさまざまなパターンを捕捉し、外れ値やノイズの多いデータの影響を軽減します。
  • 並列処理: バギングにより、ブートストラップ サンプルと分類器のトレーニングの並列処理が可能になります。各ブートストラップ サンプルは他のブートストラップ サンプルから独立しているため、計算リソースを効率的に利用できます。

袋詰めには利点があるにもかかわらず、いくつかの制限もあります。

  • 解釈可能性: バギングでは複数の分類器からの予測が結合されるため、最終的な予測に対する各分類器の個々の寄与を解釈するのは困難な場合があります。アンサンブル モデルは正確な予測を提供する可能性がありますが、その背後にある根本的な推論を理解することはより複雑になります。
  • 計算の複雑さ: 異なるブートストラップ サンプルで複数の分類器をトレーニングすると、バギング アルゴリズムの計算の複雑さが増加します。特に大規模なデータセットの場合、予測のトレーニングと集計に必要な時間とリソースが膨大になる可能性があります。
  • 潜在的な過学習: バギングは単一の分類子と比較して過学習のリスクを軽減しますが、過学習の影響を完全に受けないわけではありません。基本分類器がすでに過剰適合する傾向がある場合、バギングによって大幅な改善が得られない可能性があります。
  • 多様性の制限: バギングは、多様な分類子を取得するために多様なブートストラップ サンプルを作成することに依存しています。ただし、データセットが小さい場合や変動性が限られている場合には、ブートストラップ サンプルが十分に多様でない可能性があり、バギングの有効性が低下します。

このセクションでは、前に説明した概念をさらに詳しく掘り下げていきます。モデルからの予測が大幅な変動を示す場合、それは高い分散を示します。たとえば、オレンジ色のケースの複雑な決定木を考えてみましょう。このモデルの予測は、青色のモデルの予測とは大きく異なります。同様に、緑色のケースには、独自の異なる予測セットが含まれます。これらのさまざまな予測は、高い分散の概念を示しています。

高い分散の影響をより深く理解するために、これらのデータセットに適合した実際のデシジョン ツリーを調べてみましょう。ばらつきはあるものの、分散が高いケースでも良好な平均予測が得られます。ここでは平均予測を明示的に示していませんが、異なるトレーニング セットに適合した 3 つのモデル (モデル 1、2、および 3) からの予測を平均すると、真の関数に非常に近い予測が得られることに注意することが重要です。 。対照的に、高バイアス モデルは、前に示したように、線が真の関数と交差する特定の位置でのみ正確です。他のすべてのケースでは、バイアスが高いため、パフォーマンスが低下します。

ただし、高分散モデルを採用し、複数のモデルからの予測を平均することで、依然として正確な予測を達成できます。この概念はバギングの基礎を形成しており、これにはブートストラップ サンプリングによって生成されたさまざまなトレーニング セットの使用が含まれます。バギングでは、各ブートストラップ サンプルを使用してデシジョン ツリーを適合させ、その結果、複数の高分散モデルが生成されます。これらのモデルは、分類タスクでクラス ラベルを考慮するか、回帰タスクで回帰出力を考慮することにより、アンサンブル投票を使用して平均化されます。この平均化プロセスは、分散を低減することにより、高精度の予測を取得するのに役立ちます。

異なるトレーニング セットに適合した 3 つの決定木の予測を平均することにより、真の関数に非常に近い平均予測が得られます。この平均化はバギングの概念に似ており、各トレーニング セットがブートストラップ データ セットとして機能します。次に、デシジョン ツリーは値を補間できないことに注意することが重要です。予測できるのは、トレーニング セットに存在するターゲット値またはその平均のみです。したがって、図に示されている段階関数は、枝刈りされていない決定木の近似です。

結論として、バギングは、高分散モデルからの予測を平均することで分散を削減する効果的な手法です。並列化を採用することにより、バギングは複数の CPU を利用してモデルの適合を加速できます。ただし、一部の Windows コンピューターでは、Python でのマルチプロセスの問題が発生し、複数のジョブの使用が制限される場合があります。また、バギング分類子はバッグ外精度を計算できることにも言及する価値があります。これには、モデルのパフォーマンスを評価するためにブートストラップ サンプルに含まれていないデータ ポイントを使用することが含まれます。これは、モデルの汎化能力を評価するための有用な指標を提供します。 scikit-learn を使用したコード例では、アンサンブル サブモジュールからバギング分類子をインポートできます。

基本推定器 (この場合はデシジョン ツリー) は、枝刈りされていないデシジョン ツリーを作成するために、最大深度が [なし] に設定されて初期化されます。エスティメーターの数によってブートストラップ ラウンドの数が決まり、それに応じて n_jobs パラメーターを設定することで並列化を実現できます。さらに、oob_score パラメーターを使用すると、out-of-bag スコアの計算が可能になります。バギング分類器をトレーニングした後、out-of-bag スコアとテスト セットの精度を評価できます。

全体として、バギングは、複数の高分散モデルを組み合わせることで高分散を緩和し、予測精度を向上させる効果的なアプローチを提供します。要約すると、バギングは、異なるブートストラップ サンプルでトレーニングされた複数の分類器を組み合わせて予測精度を向上させ、分散を減らす強力なアンサンブル手法です。これは、複雑なデータセットを扱う場合に特に役立ち、モデルの安定性と一般化を強化できます。ただし、解釈可能性の低下や計算の複雑さの増加など、いくつかの制限もあります。

7.3 Bagging (L07: Ensemble Methods)
7.3 Bagging (L07: Ensemble Methods)
  • 2020.10.20
  • www.youtube.com
In this video, we look at bagging (bootstrap aggregating) and also introduce the bias-variance trade-off and decomposition in order to understand why bagging...
 

7.4 ブースティングと AdaBoost (L07: アンサンブル メソッド)


7.4 ブースティングと AdaBoost (L07: アンサンブル メソッド)

前回のビデオでは、特に枝刈りされていないデシジョン ツリーに焦点を当てて、高分散低バイアス モデルの概念について説明しました。また、バギングと呼ばれる手法についても学習しました。これは、平均化によって分散を削減することで、高分散モデルのパフォーマンスを向上させるのに役立ちます。

この講義では、その逆の動作であるブースティングに焦点を当てます。ブースティングには、単純なデシジョン ツリー スタンプなど、分散が低い高バイアス モデルを使用し、それらをブーストしてモデル全体のパフォーマンスを向上させることが含まれます。この最初のビデオでは、ブースティングの概念の概要を示し、ブースティング全般を紹介します。次のビデオでは、勾配ブースティングと呼ばれる一般的なタイプのブースティングについて詳しく説明します。

ブースティングは、適応ブースティング (adaboost など) と勾配ブースティングの 2 つの主なタイプに大別できます。歴史的には、勾配ブースティングは計算が複雑であるため、あまり広く使用されていませんでした。ただし、2016 年の XGBoost の導入など、最近の進歩により、勾配ブースティングのパフォーマンスが大幅に向上しました。最近では、LightGBM のようなさらに優れた亜種も登場しています。これについては、次のビデオで説明します。勾配ブースティングが人気を集めていますが、適応ブースティングによる一般的なブースティング手順を理解することが重要です。

ブースティング手順は、バギング手順とは異なる特定の概要に従います。注目すべき違いの 1 つは、ラウンド間に依存関係が存在することです。ブースティング手順には、分類子 1、分類子 2 などとして分類子 M まで示される複数の分類子が含まれます。最初に、通常のトレーニング データセットから開始し、分類子 1 を適合させます。分類器 1 の予測に基づいて、特定の重み付け方法を使用してトレーニング サンプルに重み付けを行います。これについては後で詳しく説明します。次に、2 番目の分類器がこの重み付けされたトレーニング データセットを使用し、プロセスが続行されます。重み付けは前の分類器の予測に依存するため、ブースティングを並列化することが困難になります。分類器を同時にトレーニングできるバギングとは異なり、ブースティングでは、前の分類器が予測を行うまで待機してから、次の分類器のデータセットを更新する必要があります。最終的な予測を行う場合、ブースティングでは、バギングで使用されるアンサンブル投票や平均とは異なり、分類子の重み付けされた組み合わせが使用されます。重み付けされた組み合わせは、各分類子の予測に重みを割り当てる符号関数に基づいて決定されます。バイナリ分類の場合、sign 関数は肯定的な結果の場合は 1 を返し、否定的な結果の場合は -1 を返します。この重み付けされた予測の結果、最終予測は -1 または 1 になります。このプロセスは、インジケーター関数を使用して任意の数のクラスを処理するように拡張できます。

一般的なブースト手順をさらに理解するために、関連する手順の概要を説明します。まず、各トレーニング例に対して均一な重みを使用して重みベクトルを初期化します。これらの重みは、各トレーニング サンプルの重要性を表します。次に、ブースティング手順のさまざまな分類子またはラウンドを反復するループに入ります。各ラウンドで、ランダムな推測よりわずかに優れた分類器である弱学習器を重み付きトレーニング例に適用します。特定の例により高い重みを割り当てたり、重み付けされた確率を使用してブートストラップ サンプルを描画したりできます。弱学習器をトレーニングした後、誤分類された例の重みを増やし、次の分類器がこれらの誤分類された例に焦点を当てられるようにします。このループは複数回繰り返され、最後に、トレーニングされた分類子に対して加重多数決が実行され、最終的な予測が得られます。

ここで、adaboost アルゴリズムに焦点を当てましょう。これは、前に説明した一般的なブースティング手順と密接に一致しています。 Adaboost は一般的なブースティング アウトラインに似ており、分類器が重み付けされたトレーニング サンプルに適合します。アルゴリズムは、各トレーニング データ ポイントの重みを初期化することから始まります。次に、adaboost ラウンドで構成されるメインの for ループが開始されます。各ラウンドでは、重みが正規化されて合計が 1 になるようにします。次に、重み付けされたトレーニング セットで弱学習器がトレーニングされ、重み付けされた予測誤差が計算されます。予測誤差はトレーニング セットの重みによって重み付けされ、誤分類を示します。次に、予測誤差を使用して、最終予測に対する弱学習器の寄与が計算されます。寄与度は弱い学習器の精度によって決まり、より正確な学習器ほど寄与度が高くなります。次に、その寄与はトレーニング サンプルの重みを更新するために使用されます。誤って分類された例の重みは増加し、正しく分類された例の重みは減少します。この調整により、後続のラウンドで誤って分類された例の重要性が強調されます。

重みを更新した後、プロセスは次のラウンドに進み、更新された重み付きトレーニング セットで弱学習器がトレーニングされます。この反復プロセスは、指定されたラウンド数の間、または特定の基準が満たされるまで継続されます。すべてのラウンドが完了すると、すべての弱学習器の予測を組み合わせて最終予測が行われます。各弱学習者の予測の重みは、トレーニング中の全体的な精度への寄与によって決まります。

adaboost アルゴリズムは、弱い学習者の予測を効果的に組み合わせて、強力なアンサンブル モデルを作成します。各弱学習者の予測に割り当てられた重みは、トレーニング サンプルの分類におけるパフォーマンスを反映します。重みを繰り返し調整し、誤って分類された例に焦点を当てることで、adaboost は時間の経過とともにモデルの精度を向上させることができます。

adaboost はデータ内の外れ値やノイズの影響を受けやすいことに注意することが重要です。外れ値は重みの更新に大きな影響を与える可能性があり、過剰適合につながる可能性があります。したがって、外れ値やノイズの多いサンプルを処理するためにデータを前処理することをお勧めします。さらに、弱学習器が複雑すぎる場合、またはラウンド数が多すぎる場合、adaboost は過学習になる傾向があります。デシジョン ツリーの深さを制限したり、早期停止を使用したりするなどの正則化手法は、過剰適合を軽減するのに役立ちます。

概念を大まかにスケッチすると、次のようになります。X 軸にはアルファ値を表す矢印があります。アルファ値は、最終的な予測における各分類子の重要性を決定します。アルファ値を使用して推定と予測に重みを付けると、分類器に大きな誤差がある場合、アルファ値が比較的小さくなることがわかります。これは、誤差が大きい分類器は最終的な予測にとってそれほど重要ではないことを意味します。一方、誤差が小さい分類器は、多数決を計算する際により信頼できるため、重みが高くなります。

アルファ値は 2 つの方法で使用します。1 つは推定と予測に重みを付けるために使用し、2 番目は次のラウンドの重みを更新するために使用します。予測が正しければ、そのトレーニング サンプルに割り当てられる重みは小さくなります。これは、正しい予測を行った場合、次のラウンドではそのトレーニング例にあまり注意を払わないことを意味します。わかりやすい例として考えられます。逆に、間違えると、その例に割り当てられる重みが大きくなります。これは、次のラウンドで誤って分類された例により多くの注意を払うことを意味します。アルファ値が小さいほど、誤分類された例に割り当てられる重みが大きくなります。

この概念を説明するために、2 次元の場合を考えてみましょう。 x1 と x2 という 2 つの機能を備えたおもちゃの例があります。決定木スタンプ (分割が 1 つだけある決定木) を当てはめます。デシジョン ツリー スタンプはいくつかの点を正しく分類しますが、他の点では間違いを犯します。 AdaBoost の最初のラウンドでは、誤って分類された例にはより高い重みを与え、正しく分類された例にはより低い重みを与えます。次に、前のラウンドで誤って分類された例に焦点を当てて、別の決定木の切り株を当てはめます。このプロセスは継続し、新しい分類器がそれぞれ前の分類器の間違いから学習し、誤って分類された例により注意を払います。最後に、多数決を使用してすべての分類器を組み合わせると、すべての例を正しく分類する分類器が得られる可能性があります。

AdaBoost は理解するのが少し複雑ですが、役立つリソースが用意されています。 AdaBoost に関するオリジナルの論文には詳細な説明が記載されていますが、より分かりやすく紹介するには、Manwani によるチュートリアル 論文をお勧めします。コード例に進む前に、AdaBoost.M2 または SAMME と呼ばれる、マルチクラス分類のための AdaBoost アルゴリズムの修正について言及する価値があります。複数のクラスを処理するために、元のアルゴリズムに小さな変更が加えられています。 SAMME.R という実数バージョンもあります。興味があれば、それぞれの論文でこれらのバリエーションを調べることができます。

scikit-learn では、AdaBoost がブースティング分類器として実装されています。弱分類器としてデシジョン ツリー スタンプを使用し、分類結果に基づいてトレーニング サンプルの重みを調整します。これらの弱分類器を強化することにより、AdaBoost は全体的なパフォーマンスを向上させます。アヤメ データセット上の枝刈りされていないデシジョン ツリーとデシジョン ツリー スタンプの精度を比較すると、デシジョン ツリー スタンプを使用した AdaBoost の方が高い精度を実現します。トレーニング プロセスにはサンプルの重みの更新が含まれるため、バギングのような並列化オプションはありません。 scikit-learn の AdaBoost は、弱分類器を強化し、より良い分類結果を達成する効果的な方法を提供します。

次に、ブースティングのもう 1 つの一般的なバリエーションである勾配ブースティングについて詳しく説明します。勾配ブースティングは AdaBoost の概念に基づいて構築されていますが、追加の機能強化が導入されています。

勾配ブースティングはブースティング アルゴリズムの一般的なバリエーションであり、弱分類器の弱点を繰り返し改善することで弱分類器のパフォーマンスをさらに強化することを目的としています。これは、最適化問題で一般的に使用される勾配降下の概念に基づいています。勾配ブースティングでは、弱分類器が順番にトレーニングされ、結合されて強分類器が作成されます。

勾配ブースティングの背後にある基本的な考え方は、弱分類器を繰り返しトレーニングし、分類器のアンサンブルによって発生したエラーに基づいてトレーニング例の重みを調整することです。この調整は、アンサンブルの予測に対する損失関数の勾配を計算することによって行われます。損失関数を最小限に抑えることで、アンサンブルのパフォーマンスが徐々に向上します。

概念を説明するために、簡単な例を考えてみましょう。データポイントを正または負のいずれかに分類したい二項分類問題があるとします。まず、トレーニング データ上で決定木スタンプなどの初期弱分類器をトレーニングします。この分類子はいくつかの間違いを犯すため、その予測をトレーニング例の真のラベルと比較することによって誤差または残差を計算します。

次の反復では、前の分類器の残差を予測するために新しい弱分類器をトレーニングします。この新しい分類子は、以前の分類子によって生じたエラーを修正することに重点を置いています。真の残差から予測値を減算して残差を計算します。繰り返しますが、この新しい分類器はいくつかの間違いを犯すため、残差を計算します。

このプロセスを繰り返し、アンサンブルの残差を予測するために新しい弱分類器を順次トレーニングし、現在のアンサンブルによって生じたエラーに基づいて残差を更新します。各弱分類器は、現在の残差に関して損失関数を最小化するようにトレーニングされます。最終的なアンサンブルは、すべての弱分類器を結合することによって取得され、各分類器はそのパフォーマンスに基づいて重み付けされた投票に寄与します。

弱分類器の重みは学習率によって決定され、最終予測に対する各分類器の寄与が制御されます。学習率が小さいと収束が遅くなりますが、一般化が向上する可能性があります。学習率が大きいほど収束は速くなりますが、過学習につながる可能性もあります。

勾配ブースティングは、回帰、分類、ランク付け問題など、幅広い機械学習タスクにとって強力な手法であることが証明されています。コンピュータービジョン、自然言語処理、バイオインフォマティクスなど、さまざまな分野での応用に成功しています。

実際には、XGBoost、LightGBM、CatBoost など、勾配ブースティングの効率的で最適化されたアルゴリズムを提供する、勾配ブースティングの実装がいくつか利用可能です。これらの実装は、並列化、正則化手法、欠損値の処理などの追加機能を提供し、勾配ブースティング モデルのパフォーマンスと柔軟性をさらに向上させます。

これでブースティングの概要と adaboost アルゴリズムの概要は終わりです。次のビデオでは、勾配降下法の概念、損失関数、勾配ブースティング プロセスを強化するために開発された特定のアルゴリズムなど、勾配ブースティングについてさらに詳しく説明します。

7.4 Boosting and AdaBoost (L07: Ensemble Methods)
7.4 Boosting and AdaBoost (L07: Ensemble Methods)
  • 2020.10.21
  • www.youtube.com
This video discusses the general concept behind boosting -- one of the model ensembling approaches in machine learning. Then, it goes over an early boosting ...
 

7.5 勾配ブースティング (L07: アンサンブル法)


7.5 勾配ブースティング (L07: アンサンブル法)

勾配ブースティングの概念は、決定木と微分可能な損失関数を利用するブースティングの最新バージョンとして導入されています。勾配ブースティングは AdaBoost に似ていますが、デシジョン ツリーの適合方法が異なります。勾配ブースティングでは、より深いツリーが使用され、トレーニング例や分類器に重みが割り当てられません。勾配ブースティングの背後にある重要なアイデアは、損失関数からの勾配を使用してモデルを改善し、結果として表形式データセットのパフォーマンスを向上させることです。このアルゴリズムは、特に機械学習コンテストで人気を集めています。

回帰のコンテキストでは、勾配ブースティングはベース ツリーの構築から始まります。たとえば、住宅価格の予測問題では、初期のベース ツリーはルート ノードのみで構成されます。ターゲットは、そのノードの平均値に基づいて予測されます。この場合、これはトレーニング セット内の 4 軒の住宅の平均価格です。次に、前のツリーの予測誤差に基づいて次のツリーが構築されます。この予測誤差は、新しいツリーを適合させるために使用されます。最初のステップと 2 番目のステップのツリーが結合され、このプロセスが複数回繰り返され、後続の各ツリーが前のツリーのエラーに適合します。単純な決定木と残差に基づく新しい決定木を組み合わせることで、モデルはより適切で正確な予測を行うことができます。

加法モデルとしての勾配ブースティングの概念について説明します。この概念では、すべてのツリーの予測が加算されることで連続的に結合されます。学習率またはステップ サイズも導入され、最終的な予測に対する各ツリーの重みまたは寄与が決まります。勾配ブースティングは、前の予測の誤差にツリーを当てはめるプロセスを繰り返し、過学習を防ぐために小さなステップ サイズでモデルを徐々に構築することによって実行されます。このプロセスは、ハイパーパラメータ設定に基づいて、所定の数のツリーが完了するまで継続されます。

講演者は、回帰問題と分類問題の両方に使用される勾配ブースティング アルゴリズムについて説明します。このアルゴリズムには、モデルをルート ノードとして初期化し、次に複数のツリーを当てはめて終端ノードを作成することが含まれます。予測は各ノードで行われ、損失が計算されます。このアルゴリズムは、損失を最小限に抑えるという全体的な目標を持って、必要なツリー数に達するまで繰り返すことができます。

現在のモデルを計算するには、以前のモデルと新しい予測ステップを結合し、学習率またはステップ サイズで重み付けして、更新されたモデルを決定します。このプロセスは、T で示されるツリーの必要な数に達するまで繰り返されます。擬似残差が計算され、その後、真のラベルと前のラウンドのモデルの予測に基づいて損失の導関数が計算されます。次に残差が計算され、特定のノードでの損失を最小化する予測値が決定されます。それに応じてモデルが更新され、T 個のモデルに達するまでこのプロセスが繰り返されます。負の対数尤度損失などの微分可能な損失関数を分類に使用できますが、このクラスでは和二乗誤差または平均二乗誤差に焦点を当てています。

このビデオでは、勾配ブースティングに含まれる手順とその実際の応用について説明します。最初のステップでは、式を最小化する予測を見つけることによって、特定のノードでのすべてのトレーニング例の損失を最小限に抑えます。 2 番目のステップでは、T ツリーに対してループが使用され、各リーフ ノードでの予測が、そのノードでの例を平均することによって計算されます。平均予測が前のモデルと結合され、各ツリーの予測が合計されます。学習率は、擬似残差を減らし、過学習を防ぐために使用されます。このビデオでは、実際に使用される勾配ブースティングの他の興味深い側面についても簡単に触れています。

このビデオでは、複数のプロセスやコンピューティング ノードを完全に活用できないため、逐次アルゴリズムとしてのブースティングの潜在的な欠点を強調しています。ただし、勾配ブースティング プロセスをより効率的にするためのいくつかのトリックを組み込んだ xgBoost と呼ばれる実装があります。実際、2015 年から 2017 年にかけて Kaggle で公開された 29 件のチャレンジを勝ち取るソリューションのうち、17 件で xgBoost が使用されていました。これらのソリューションのうち 8 つはモデルのトレーニングに xgBoost のみに依存していましたが、他のソリューションは xgBoost とニューラル ネットワークを組み合わせたり、一般的なアンサンブル投票手法であるスタッキングを利用したりしていました。このビデオでは、さまざまなブースティングの実装を比較する論文からの 2 つの表を紹介し、その有効性に寄与する xgBoost の独自の機能を示しています。

このビデオでは、近似グローバル学習、コア外学習、スパース性認識、並列処理など、いくつかの利点を提供する勾配ブースティングの変形であるエクストラ ブーストについて説明します。 Extra Boost には、分散データ サブセットの概要統計を利用して最適な分割を見つけるための近似手法が組み込まれています。このビデオでは、エクストラ ブーストのパフォーマンスを、正確な貪欲法を使用した他の勾配ブースティング実装と比較し、エクストラ ブーストが 1 つの実装と同等のパフォーマンスを達成しながら、ツリーごとの時間が大幅に短縮され、ハイパーパラメータ調整にとってより魅力的なものになることを示しています。

さらに、ビデオでは、正則化手法、補完による欠落特徴の処理、キャッシュなど、Extra Boost によって提供されるさまざまな改善点について説明しています。これらの改善により、過剰適合が軽減され、Extra Boost の全体的なパフォーマンスが向上します。さらに、エクストラ ブーストは列および行ベースのサブサンプリングを利用し、特徴とトレーニング例のサブセットをランダムに選択し、計算効率と過学習の削減の両方を強化します。ビデオでは、エクストラ ブーストのテクニックの詳細な説明については、エクストラ ブーストに関する論文を参照することを提案しています。

このビデオでは、勾配ブースティング マシンの新しい実装である Extra Boost の概要を説明します。 Extra Boost は、過剰適合を軽減し、予測精度を向上させることを目的としています。このビデオでは、正確な貪欲アルゴリズムやヒストグラムベースの分割検索など、分割を見つけるためのさまざまなテクニックについて説明します。後者のアプローチでは、連続特徴を離散ヒストグラムにビン化することが含まれます。これにより、トレーニング速度が向上し、メモリ使用量が削減されます。このビデオでは、エクストラ ブーストと、さらに高速で正確な別の実装であるライト GBM も比較しています。 Light GBM はヒストグラムベースの分割検出を利用し、Extra Boost と比較してメモリ使用量が少なく、予測精度が高くなります。

このビデオでは、scikit-learn での勾配ブースティング分類器の実装について説明し、ライブラリの最近のバージョンに追加された新しい勾配ブースティング分類器を紹介します。新しい分類子は、LightGBM からインスピレーションを得たヒストグラムベースの分割を利用しており、以前の分類子よりも高速になっています。ビデオでは、両方の勾配ブースティング分類器を使用し、それらを XGBoost と比較して、どちらが最も優れたパフォーマンスを発揮するかを判断することを提案しています。コード例は、scikit-learn での勾配ブースティング分類器の実装や新しいヒストグラム勾配ブースティング分類器の利用など、クラス プロジェクトまたは一般的な使用のテンプレートとして機能するために提供されています。

発表者は、XGBoost ライブラリと LightGBM ライブラリを使用した勾配ブースティングについて説明します。 XGBoost ライブラリも似ていますが、scikit-learn よりも少し複雑です。 NumPy 配列を DMatrix 形式に変換する必要があり、fit メソッドを使用する代わりに train メソッドを使用してモデルをトレーニングします。予測は、predict メソッドを呼び出してクラス メンバーシップの確率を取得することによって行うことができます。一方、Microsoft LightGBM ライブラリには、scikit-learn に似た API があります。勾配ブースティング マシンをフィッティングする前にハイパーパラメーターを設定する必要があり、スコア法を使用して精度を計算できます。このケースでは、モデルはハイパーパラメーターを調整しなくても 100% のトレーニング精度を示します。

このビデオの最後では、特に XGBoost や LightGBM などのライブラリの利用による勾配ブースティング技術の有効性を強調しています。これらのライブラリは、勾配ブースティング モデルを実装するための強力なツールを提供し、パフォーマンスと精度を向上させるさまざまな最適化を提供します。

さらに、発表者は、勾配ブースティングにおけるハイパーパラメータ調整の重要性を認めています。学習率、ツリーの数、ツリーの深さなどのさまざまなハイパーパラメーターは、モデルのパフォーマンスに大きな影響を与える可能性があります。したがって、特定の問題に対して最適な設定を見つけるために、さまざまなハイパーパラメーター構成を試してみることをお勧めします。

ビデオでは、勾配ブースティングをさらに詳しく調べるために、XGBoost、LightGBM、およびその他の関連実装に関する研究論文やドキュメントを参照することを提案しています。これらのリソースでは、勾配ブースティングのアルゴリズム、テクニック、高度な機能について詳しく説明しています。

要約すると、このビデオでは、勾配ブースティング、その概念、および XGBoost や LightGBM などのライブラリを使用した実際の実装の包括的な概要を提供します。これは、複雑な表形式のデータセットを処理できる能力、競技会での有効性、予測精度を向上させる可能性など、勾配ブースティングの利点を強調しています。勾配ブースティングの背後にある原理と手法を理解することで、実務者はこの強力なアルゴリズムを活用して、さまざまな回帰および分類の問題に取り組むことができます。

  • 00:00:00勾配ブースティングの概念は、決定木と微分可能な損失関数を使用するブースティングの最新バージョンとして導入されています。 AdaBoost と同様に、勾配ブースティングは、弱い学習者を強力なモデルにブーストする一連のプロセスです。ただし、この 2 つの主な違いは、決定ツリーの適合方法にあり、勾配ブースティングではより深いツリーが使用され、トレーニング例や分類器に重みは使用されません。勾配ブースティングの重要なアイデアは、損失関数からの勾配を使用してモデルを改善することであり、これにより表形式のデータセットのパフォーマンスが向上し、競技会で人気のアルゴリズムになります。このセクションでは、ベース ツリーの構築から始まる 3 つの基本的な手順で勾配ブースティングの概念的な概要を説明します。

  • 00:05:00回帰のコンテキストで勾配ブースティングについて学びます。まず、ルート ノードのみで構成されるベース ツリーから開始します。この例では、住宅価格の予測問題です。そのノードの平均に基づいてターゲットを予測します。この場合、トレーニング セット内の 4 つの住宅の価格の平均です。次に、前のツリーの予測誤差に基づいて次のツリーを構築し、この予測誤差を使用して新しいツリーを当てはめます。ステップ 1 とステップ 2 のツリーを結合し、このプロセスを複数回繰り返し、結果として生じるラウンドのエラーにツリーを当てはめます。予測は常に前のツリーの予測の組み合わせであり、異なる損失関数を使用することによる分類にも同じ概念が適用されます。

  • 00:10:00インストラクターは、より適切な予測を行うために勾配ブースティングを使用する方法を説明します。このプロセスには、最初の予測を行うための決定ツリーの構築、前のツリーの誤差についてより適切な予測を行うための擬似残差の計算、ステップ 1 のツリーとステップ 2 のツリーの結合が含まれます。インストラクターは、このプロセスを住宅価格に関する簡単な例にどのように適用できるかを説明し、デシジョン ツリーがどのように見えるかを示します。単純な決定木と残差に基づく新しい決定木を組み合わせることで、モデルはより適切で正確な予測を行うことができます。

  • 00:15:00加法モデルとしての勾配ブースティングの概念について説明します。ここでは、すべてのツリーの予測を合計することによって連続的に結合します。この方法には、学習率またはステップ サイズとして使用されるアルファ値も含まれています。勾配ブースティングは、ステップ 2 を複数回繰り返し、過学習を防ぐために小さなステップ サイズでゆっくりと増加することによって実行されます。したがって、新しいツリーが継続的に前の予測の誤差に適合し、予測用の別の列が生成されます。このプロセスは、ハイパーパラメーターの設定に基づいて、設定された数のツリーが完了するまで続行されます。

  • 00:20:00講演者は、回帰と分類の両方に使用される勾配ブースティング アルゴリズムについて説明します。このアルゴリズムは、トレーニング データ セットの入力データ セットが微分可能な損失関数とともに使用される一般的な手順に従います。最初のステップでは、モデルがルート ノードとして初期化され、次に 2 番目のステップで、アルゴリズムが複数のツリーに適合し、終端ノードを作成します。次に、講演者は各ノードでの予測と損失の計算についてさらに詳しく説明します。このアルゴリズムは、必要なツリー数に達するまで繰り返すことができ、全体的な目標は損失を最小限に抑えることです。

  • 00:25:00講演者は、以前のモデルと学習率またはステップ サイズで重み付けされた新しい予測ステップを組み合わせて現在のモデルを計算し、T 回に達するまで更新されたモデルを決定する方法を説明します。まず、擬似残差が計算され、次に真のラベルと前のラウンドのモデル予測に基づいて損失の導関数が計算されます。その後、残差が計算され、特定のノードに基づいて損失を最小化する予測値が決定され、モデルが再度更新されます。このプロセスは、T 個のモデルに到達するまで繰り返されます。講演者は分類に使用できる負の対数尤度損失などの微分可能な損失関数について言及していますが、このクラスでは和二乗誤差または平均二乗誤差に焦点を当てています。

  • 00:30:00講演者は、勾配ブースティングに含まれる手順とそれが実際にどのように使用されるかについて説明します。最初のステップでは、式を最小化する予測を見つけることによって、特定のノードでのすべてのトレーニング例の損失を最小限に抑えます。 2 番目のステップでは、T ツリーのループを使用し、各ノードでの例を平均することによって各リーフ ノードでの予測を計算します。新しい項が平均予測に追加されます。これには前のモデルが含まれます。各ツリーの学習率は通常同じであり、各ツリーの予測は合計されます。学習率の目標は、過学習を避けるために擬似残差を減らすことです。最後に、講演者は、実際に使用される勾配ブースティングのさらに興味深い側面について簡単に触れます。

  • 00:35:00講演者は、複数のプロセスやコンピューティング ノードを活用できないため、効率が制限される可能性がある、逐次アルゴリズムとしてのブースティングの潜在的な欠点について説明します。ただし、勾配ブースティング プロセスをより効率的にするためにいくつかのトリックを使用する xgBoost と呼ばれるブースティングの実装があります。実際、2015 年から 2017 年にかけて Kaggle で公開された 29 件のチャレンジを勝ち取るソリューションのうち、17 件で xgBoost が使用されていました。 8 社はモデルのトレーニングに xgBoost のみを使用しましたが、他のほとんどは xgBoost とニューラル ネットワークを組み合わせたり、アンサンブル投票の一般的な手法であるスタッキングを使用したりしました。次に講演者は、さまざまなブースティング実装を比較する論文からの 2 つの表を提供します。xgBoost には、その有効性に貢献する独自の機能があることが示されています。

  • 00:40:00講演者は、近似グローバル、コア外学習、スパース性認識、並列処理などのいくつかの利点を提供する勾配ブースティングの変形であるエクストラ ブーストの機能について説明します。 Extra Boost は、分散データのサブセットの概要統計に基づいて最適な分割を見つけるための近似メソッドを実装します。講演者は、エクストラ ブーストと他の勾配ブースティング実装のパフォーマンスを厳密な貪欲法で比較し、エクストラ ブーストのパフォーマンスは 1 つの実装と同じですが、ツリーあたりの時間が大幅に短縮され、ハイパーパラメータ調整にとってより魅力的であることを示しました。

  • 00:45:00ビデオでは、エクストラ ブーストについて説明しています。エクストラ ブーストは、基本的に、大規模なデータセットで適切に機能する勾配ブースティングのスケーラブルな実装です。このビデオでは、正則化、欠落特徴の代入技術、キャッシュなど、通常の勾配ブースティング技術に対する Extra Boost のさまざまな改善点について説明しています。これらの改善により、過剰適合の軽減に役立ち、Extra Boost の全体的なパフォーマンスを向上させることができます。さらに、エクストラ ブーストは列および行ベースのサブサンプリングを使用して、特徴とトレーニング サンプルのサブセットをランダムに選択します。これは、過剰適合と計算効率の削減に役立ちます。このビデオでは、エクストラ ブーストの技術について詳しく説明するために、エクストラ ブーストに関する論文を読むことを推奨しています。

  • 00:50:00講演者は、過剰適合を軽減し、予測精度を向上させることができる勾配ブースティング マシンの新しい実装である Extra Boost の概要を説明します。講演者は、正確な貪欲アルゴリズムやヒストグラムベースの分割検索など、分割を見つけるためのさまざまなテクニックについて説明します。後者のアプローチには、連続特徴を離散ヒストグラムにビン化することが含まれます。これにより、トレーニング速度が向上し、メモリ使用量が削減されます。スピーカーはまた、エクストラ ブーストを、さらに高速で正確な別の実装であるライト GBM と比較します。 Light GBM はヒストグラムベースの分割検出を使用し、エクストラ ブーストと比較してメモリ使用量が少なく、予測精度が高くなります。

  • 00:55:00講演者は、scikit-learn での勾配ブースティング分類器の実装について説明し、scikit-learn の最新バージョンに追加された新しい勾配ブースティング分類器を紹介します。新しい分類子は、LightGBM からインスピレーションを得たヒストグラムベースの分割を使用しており、以前の分類子よりも高速になっています。講演者は、両方の勾配ブースティング分類器を使用し、それらを XGBoost と比較して、どちらが最も優れたパフォーマンスを発揮するかを判断することを提案しています。講演者は、クラス プロジェクトや一般的な用途のテンプレートとして使用できるコード例も視聴者に提供します。例には、scikit-learn での勾配ブースティング分類器の実装と、新しいヒストグラム勾配ブースティング分類器の使用が含まれます。

  • 01:00:00プレゼンターは、XGBoost ライブラリと LightGBM ライブラリを使用した勾配ブースティングについて説明します。 XGBoost ライブラリは似ていますが、scikit-learn よりも少し複雑で、NumPy 配列を D 行列形式に変換する必要があります。プレゼンターは任意のパラメーターを設定し、モデルをトレーニングするためにフィットではなくドット トレインを使用します。その後、モデルは、predict を呼び出して、クラス メンバーシップの確率を予測できます。 Microsoft LightGBM ライブラリには scikit-learn に似た API があり、勾配ブースティング マシンをフィッティングし、スコア法を使用して精度を計算する前にハイパーパラメーターを設定する必要があります。この場合、モデルはハイパーパラメーターを調整しなくても 100% のトレーニング精度を示します。
7.5 Gradient Boosting (L07: Ensemble Methods)
7.5 Gradient Boosting (L07: Ensemble Methods)
  • 2020.10.27
  • www.youtube.com
In this video, we will take the concept of boosting a step further and talk about gradient boosting. Where AdaBoost uses weights for training examples to boo...
 

7.6 ランダムフォレスト (L07: アンサンブル手法)



7.6 ランダムフォレスト (L07: アンサンブル手法)

素晴らしい!ついに講義 5 の最後の部分に到達しました。これはたまたま最も興味深い部分である神聖な学習パイプラインです。神聖な学習パイプラインは、さまざまなデータ処理と予測ステップを組み合わせたオブジェクトまたはクラスであり、現実世界のアプリケーションで非常に役立ちます。パイプラインがどのように機能するかを理解するために、概要のフローチャートを見てみましょう。今はすべての複雑な点を詳しく説明するつもりはありませんが、パイプラインの例を示した後ですぐに再検討します。

本質的に、パイプラインは推定および変換 API として考えることができます。推定器と同様に、パイプラインにはトレーニング セットで使用できる適合メソッドがあります。内部的には、複数のフィットおよび変換ステップが実行され、その後に最終的なフィット ステップが実行されます。パイプラインに含まれるコンポーネントに応じて、データ スケーリング (標準化や最小最大スケーリングなど) や次元削減などの一連の操作を定義し、その後に学習アルゴリズムをトレーニングできます。その後、パイプラインはテスト セットで使用できる予測モデルを返します。

予測フェーズ中に、テスト セットで予測メソッドを呼び出すと、パイプラインは内部で変換を使用して、トレーニング セットで実行されたのと同じスケーリングを適用します。また、分類子の場合にクラス ラベルを返すなど、最終的な予測ステップも適用されます。この概念を説明するために、パイプラインの簡単なコード例を見てみましょう。

ここでは、神聖な学習の scikit-learn.dot.pipeline サブモジュールの make_pipeline 関数を使用してパイプラインを作成しています。パイプラインを作成するにはさまざまな方法がありますが、この方法は非常に便利です。この例では、分類子と標準スケーラーで構成される単純なパイプラインを構築しています。前のビデオで説明したように、標準スケーラーは、平均と単位分散がゼロになるようにデータを標準化します。パイプラインを作成した後、fit メソッドを使用してトレーニング データに基づいてパイプラインをトレーニングできます。次に、predict メソッドを使用して、テスト セットに対して予測を行うことができます。

ここで、パイプライン内で Fit メソッドがどのように機能するかを詳しく見てみましょう。 Fit が呼び出されると、標準のスケーラーが最初に適用されます。トレーニング データから平均と標準偏差を学習し、それらを使用してデータをスケールします。このプロセスには、フィットと変換のステップが含まれており、標準スケーラーがスケーリングされたデータを計算して次のステップに渡します。この場合、次のステップは K 最近傍分類器です。 K 最近傍分類器は標準化されたデータを受け取り、これら 4 つのステップを効果的に 1 つに組み合わせます。 Pipe.fit を呼び出すと、これらすべての手順が自動的に実行されるため、個別に実行する手間が省けます。

予測フェーズでは、フィット ステップがないことを除いて、同じプロセスが発生します。代わりに、パイプラインはトレーニング セットのパラメーターを再利用してテスト データをスケールし、一貫性を確保します。次に、スケーリングされたテスト データを予測のために分類器に渡します。

このプロセスをよりわかりやすく視覚化するために、フローチャートをもう一度見てみましょう。ユーザーは、fit メソッドと予測メソッドのみを使用する必要があります。 Fit を呼び出すと、パイプラインは自動的に変換ステップを呼び出します。パイプラインの規則では、最後のステップが分類子となることに注意することが重要です。最後のステップのみが Fit を呼び出しますが、それ以前のすべてのステップは Fit とTransform を呼び出します。したがって、パイプラインには、標準のスケーラーや、主成分分析 (PCA) などの次元削減技術などの複数のトランスフォーマーを含めることができます。ただし、最後のステップとして使用できる分類子は 1 つだけです。この設計により、パイプラインの互換性と機能が保証されます。

実際のパイプラインを説明するために、ホールドアウト法を使用した単純なモデル選択シナリオを検討してみましょう。これは単なる基本的なデモンストレーションであり、K 分割相互検証などのより高度なモデル選択方法については後の講義で説明することに注意してください。

ホールドアウト法では、データをトレーニング セットと検証セットの 2 つのサブセットに分割します。トレーニング セットはパイプラインのトレーニングに使用され、検証セットはパフォーマンスを評価して最適なモデルを選択するために使用されます。

以下は、パイプラインを使用してホールドアウト メソッドを実装する方法の例です。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.metrics import accuracy_score

# Load the iris dataset
data = load_iris()
X = data.data
y = data.target

# Split the data into training and validation sets
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size= 0.2 , random_state= 42 )

# Create a pipeline
pipeline = make_pipeline(
    StandardScaler(),
    KNeighborsClassifier(n_neighbors= 3 )
)

# Train the pipeline
pipeline.fit(X_train, y_train)

# Make predictions on the validation set
y_pred = pipeline.predict(X_val)

# Evaluate the pipeline's accuracy
accuracy = accuracy_score(y_val, y_pred)
print(f "Validation accuracy: {accuracy}" )
この例では、最初に iris データセットを読み込みます。次に、train_test_split 関数を使用して、データをトレーニング セット (X_train と y_train) と検証セット (X_val と y_val) に分割します。

次に、make_pipeline を使用してパイプラインを作成し、必要なステップを渡します。この場合、データを標準化する StandardScaler と、分類子として n_neighbors=3 を持つ KNeighborsClassifier を含めます。

トレーニング データ (X_train および y_train) に対して fit メソッドを呼び出してパイプラインをトレーニングします。

トレーニング後、パイプラインを使用して、predict メソッドを呼び出して検証セット (X_val) に対して予測を行います。

最後に、accuracy_score 関数を使用して、予測ラベル (y_pred) と真のラベル (y_val) を比較することで、パイプラインの精度を評価します。

これは、モデル選択にホールドアウト法でパイプラインを使用する基本的な例です。パイプライン パフォーマンスのより堅牢な評価を提供できる、相互検証などのより高度な手法があることに留意してください。

7.6 Random Forests (L07: Ensemble Methods)
7.6 Random Forests (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video discusses random forests, how random forests are related to bagging, and why random forests might perform better than bagging in practice.-------T...
 

7.7 スタッキング (L07: アンサンブルメソッド)



7.7 スタッキング (L07: アンサンブルメソッド)

はい、長い長い第七講義でした。そしてついに、スタッキングについて説明する最後のビデオに到着しました。

この講義を通じて、私たちは多くのことを学びました。ブートストラップ サンプルにデシジョン ツリーを当てはめる多数決とバギングについて説明しました。また、前の学習者の間違いやエラーに基づいて深層学習を適合させるブースティングや、残差と勾配ブースティングについても説明しました。さらに、各ノードでランダムな特徴サブセットを使用することにより、通常のバギングよりもパフォーマンスが向上するランダム フォレストについても調査しました。さて、いよいよスタッキングについてお話します。

スタッキングは多数決に似ていますが、単に多数決を行うのではなく、メタ分類子が他の分類子の予測を組み合わせます。スタッキングの詳細を見てみましょう。

先に進む前に、このビデオのトピックであるスタッキングについて思い出してください。不要なスライドで申し訳ありませんが、David H. Wolpert が 1992 年に出版した「Stacked Generalization」というタイトルの論文で提案したスタッキング アルゴリズムの基本に焦点を当てましょう。これは古い論文ですが、より最近の本で使用されている表記法は、を参照すると理解しやすくなります。それでは、この基本バージョンのスタッキングから始めましょう。

このアルゴリズムでは、問題を引き起こす入力と出力を定義します。サイズ「n」のトレーニング データセットを使用しています。 「x_i」として示される各特徴ベクトルは、「m」次元のベクトルです。同様に、トレーニング例に対応するクラス ラベルは「y_i」として示されます。このアルゴリズムの出力はアンサンブル分類器であり、これを 2 番目の分類器と呼びます。

ここで、スタッキングに関連する手順に焦点を当ててみましょう。ステップ 1 は、第 1 レベルの分類器を学習することです。これらの分類子を適合させるために、1 から 't' までのループを使用します。したがって、「h_1」から「h_t」で示される分類器のコレクションがあり、入力データ「X」とクラスラベル「Y」でトレーニングされています。

ステップ 2 に進み、トレーニング セットから新しいデータセットを構築します。トレーニング例「x_i」ごとに、変更された特徴ベクトル「x_i prime」を含む新しいデータセットを作成します。変更された特徴ベクトル「x_i prime」には、第 1 レベルの分類器の予測が含まれています。これらの予測は、クラス ラベル、またはクラス メンバーシップの確率である場合もあります。これらの予測を使用することで、前に説明したのと同様に多数決を実行できます。しかし、それだけではありません。ステップ 3 に進みます。

ステップ 3 では、多数決を実行する代わりに、第 1 レベルの分類器からの予測に基づいて第 2 レベルの分類器を学習します。 「x_i prime」は変更された計画行列を表し、各列には分類器「h_1」から「h_t」の予測が含まれます。クラス ラベルまたはクラス メンバーシップ確率を考慮して、これらの予測に分類子を当てはめることができます。この第 2 レベルの分類器は、これらの予測に基づいてトレーニングされます。

基本的なスタッキング手順の弱点の 1 つは、オーバーフィッティングの影響を受けやすいことです。第 1 レベルの分類子のいずれかがトレーニング セットに過剰適合した場合、メタ分類子のパフォーマンスに悪影響を及ぼし、システム全体の過剰適合につながる可能性があります。これに対処するには、相互検証を組み込むことでスタッキング手順を改善できます。

相互検証は、データセットを複数のサブセットに分割し、これらのサブセットのさまざまな組み合わせでモデルをトレーニングする手法です。これは、過剰適合を軽減し、より信頼性の高いパフォーマンス推定値を取得するのに役立ちます。一般的に使用されるバリアントの 1 つは、データセットが「k」個のサブセットまたは分割に分割される k 分割交差検証です。 「k-1」フォールドでモデルをトレーニングし、残りのフォールドでのパフォーマンスを評価します。このプロセスは、検証セットとして異なるフォールドを使用して、「k」回繰り返されます。次に、各フォールドからのパフォーマンス結果を平均して、モデルのパフォーマンスのより確実な推定値を取得できます。

スタッキングのコンテキストでは、相互検証を使用して、第 1 レベルの分類器のトレーニングを改善できます。トレーニング セット全体でトレーニングするのではなく、データを「k」個のフォールドに分割します。フォールドごとに、残りの「k-1」フォールドで第 1 レベルの分類器をトレーニングし、それらを使用して除外されたフォールドで予測を行います。このプロセスはフォールドごとに繰り返され、トレーニング セット全体の予測が得られます。

トレーニング セット全体の第 1 レベルの分類器からの予測が得られたら、スタッキング アルゴリズムのステップ 3 に進み、これらの予測に基づいて第 2 レベルの分類器をトレーニングします。相互検証を組み込むことで、第 2 レベルの分類器が第 1 レベルの分類器からの多様で信頼性の高い予測に基づいてトレーニングされるようになり、過剰適合のリスクが軽減されます。

第 2 レベルの分類器をトレーニングした後、それを使用して、新しいまだ見たことのないデータを予測できます。通常、予測は、第 1 レベルの分類器に入力を供給して予測を取得し、これらの予測を第 2 レベルの分類器の入力として使用することによって取得されます。第 2 レベルの分類器の出力は、スタッキング アンサンブルの最終予測を表します。

スタッキングは、複数の分類子の強みを活用して全体的なパフォーマンスを向上させる強力なアンサンブル学習手法です。複数の分類子の予測を組み合わせることで、スタッキングによりデータのさまざまな側面をキャプチャし、より正確な予測を行うことができます。これは、さまざまな問題領域や分類子の種類に適応できる、柔軟で汎用性の高い手法です。

結論として、スタッキングは単純な多数決を超えたアンサンブル学習方法です。第 2 レベルのメタ分類子を通じて複数の分類子の予測を組み合わせ、より高度な意思決定を可能にします。相互検証を組み込むことで、スタッキング アルゴリズムの堅牢性と一般化能力を強化できます。スタッキングは機械学習における貴重なツールであり、予測パフォーマンスを向上させるためにさまざまなアプリケーションで広く使用されています。

7.7 Stacking (L07: Ensemble Methods)
7.7 Stacking (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video explains Wolpert's stacking algorithm (stacked generalization) and shows how to use stacking classifiers in mlxtend and scikit-learn.-------This v...
 

8.1 過学習と過小学習の概要 (L08: モデル評価パート 1)



8.1 過学習と過小学習の概要 (L08: モデル評価パート 1)

みなさん、良い一日を!皆さんがお元気でいることを願っています。今日は皆さんと共有したいエキサイティングなニュースがありますので、早速見ていきましょう。

何よりもまず、私はあなたのプロジェクト提案書の採点を終えました。そして、私が見たアイデアや計画に本当に満足していると言わざるを得ません。皆さん一人ひとりが自分のプロジェクトに熱心に取り組み、12 月中旬に予定されているプロジェクトのプレゼンテーションとレポートまでの今後数週間について明確なビジョンを持っていることは明らかです。あなたの提案に込められた詳細のレベルと思慮深さに本当に感銘を受けました。

ただし、追加のフィードバックや説明が必要だと感じた場合、または追加のテクニックを探索するためのガイダンスが必要な場合は、遠慮なく私までご連絡ください。できる限りのさらなる支援とサポートを提供させていただきます。メールを送っていただくか、会議のスケジュールを立てていただければ、すぐにお手伝いさせていただきます。

さらに良いニュースとして、アンサンブル手法の講義が無事に終了しました。これは、新しくエキサイティングなトピックに着手するときが来たことを意味します。今後の一連の講義では、モデルの評価に焦点を当てます。さまざまな機械学習分類器とアルゴリズムを紹介した前回の講義とは異なり、今回はこれらのアルゴリズムのパフォーマンスを公平に評価する方法を検討します。

この新しいシリーズでは、さまざまなトピックを取り上げます。まず、不足適合と過適合の概念と、それらが損失関数のバイアスと分散分解にどのように関連するかを理解することから始めます。次に、モデルを効果的に比較できる相互検証方法について詳しく説明します。さらに、さまざまな機械学習アルゴリズムを比較して、特定のデータセットでのパフォーマンスを判断する手法についても説明します。モデルの選択とアルゴリズムの選択を区別することが重要です。この区別についてはさらに詳しく説明します。

早速、モデル評価の概要から始めて、過学習と過小学習の世界を深く掘り下げてみましょう。この講義 (講義 8) では、バイアスと分散の分解と、それと過学習および過小学習との関係について説明します。これらの概念を包括的に理解するために、二乗誤差損失 (回帰に関連) と 01 損失 (分類に関連) の両方のバイアスと分散の分解を分析します。さらに、分解でカバーされる統計的バイアスを超えて、機械学習におけるさまざまな種類のバイアスについても触れます。

講義内容を詳しく説明する前に、一歩下がって、コースのどこにいるのかを簡単にまとめてみましょう。 Python、NumPy、scikit-learn などの概要、計算面、およびツリーベースの手法について説明しました。また、ツリーベースの手法の関連性と、業界におけるアンサンブル手法、特にブースティング フォレストとランダム フォレストの人気についても説明しました。ここでは、モデルの評価に焦点を当てて、信頼区間、相互検証、モデルの選択、アルゴリズムの選択、パフォーマンス メトリックなどのさまざまなサブトピックを検討します。最後の方では、次元削減と教師なし学習について触れます。

この講義は比較的簡潔であるため、アンサンブル手法に関する前回の講義よりも短いことをお約束します。それにもかかわらず、モデル評価をより深く理解するのに役立つ重要な概念がカバーされています。それでは、講義 8 を構成する 6 つのサブトピック、つまり過学習、過小学習、バイアスと分散の分解、過学習と過小学習との関係、01 損失のバイアスと分散の分解、および機械学習におけるさまざまな種類のバイアスの概要について詳しく見ていきましょう。

この講義全体を通して、クイズを超えて、私が提起する質問について立ち止まって熟考することをお勧めします。この問題についての私の見解を検討する前に、立ち止まって自分の考えをまとめることが常に役に立ちます。このように教材に取り組むことで、学習体験が向上します。

  1. 過学習と過学習: 機械学習では、モデルがトレーニング データでは非常にうまく機能するが、新しい未知のデータに一般化できない場合に過学習が発生します。一方、モデルが単純すぎて、データ内の基礎となるパターンを捉えることができない場合、アンダーフィッティングが発生します。

過学習は、モデルが複雑すぎて、使用可能なトレーニング データの量に対してパラメーターが多すぎることが原因で発生する可能性があります。これにより、モデルは、実際の基礎となるパターンではなく、トレーニング データ内のノイズに適合することになります。一方、アンダーフィッティングは、モデルがデータ内のパターンを捕捉できるほど複雑ではない場合に発生します。

  1. バイアスと分散の分解: バイアスと分散は、機械学習モデルにおける 2 つの誤差の原因です。バイアスは、モデルが異なるトレーニング セットでトレーニングされた場合に、平均して予測が真の値からどれだけ離れているかを測定します。一方、分散は、モデルが異なるトレーニング セットでトレーニングされたときに、特定の入力の予測がどの程度変動するかを測定します。

バイアスと分散は数学的に分解できます。モデルの期待二乗誤差は、二乗バイアス、分散、既約誤差に分解できます。二乗バイアスは、モデルの予測と真の値の間の平均差を測定します。分散は、特定の入力に対するモデルの予測の変動性を測定します。削減不可能な誤差は、どのモデルでも削減できないデータ固有のノイズを表します。

  1. 過学習と過小学習との関係: バイアスと分散のトレードオフは、過学習と過小学習に密接に関係しています。過学習は、多くの場合、低いバイアスと高い分散を伴います。モデルはトレーニング データに非常によく適合しますが、トレーニング セット内の小さな変動に敏感すぎるため、新しいデータに一般化できません。

一方、アンダーフィッティングは、高いバイアスと低い分散に関連しています。モデルが単純すぎるため、データ内の基礎となるパターンを捉えることができず、トレーニング データとテスト データの両方でパフォーマンスが低下します。

  1. 01 損失のバイアスと分散の分解: これまで、回帰問題で一般的に使用される二乗誤差損失を使用したバイアスと分散の分解について説明してきました。ただし、分類問題では通常、誤って分類されたインスタンスの割合を測定する 01 損失を使用します。

01 損失のバイアス分散分解は二乗誤差損失の分解と似ていますが、より複雑な数学が必要になります。二乗バイアスは、モデルの予測と真のラベルの間の誤分類率の予想される差を測定します。分散は、特定の入力に対する誤分類率の変動を測定します。

  1. 機械学習におけるさまざまな種類のバイアスの概要: バイアス分散分解で説明した統計的バイアス以外にも、機械学習には他の種類のバイアスがあります。
  • サンプリング バイアス: トレーニング データが真の母集団を代表していない場合、または分布が歪んでいる場合に発生します。これにより、トレーニング データでは良好に機能するモデルが、より広範な母集団に一般化できない可能性があります。
  • アルゴリズム バイアス: アルゴリズム自体から生じる可能性のあるバイアスを指します。たとえば、特定のアルゴリズムは、公開されるトレーニング データや考慮される特徴に基づいてバイアスを受けやすい可能性があります。
  • 認知バイアス: データのラベル付けや特徴の選択における主観的な判断や無意識のバイアスなど、人間の意思決定プロセスから生じる可能性のあるバイアスを指します。

これらのさまざまなタイプのバイアスを理解することは、公平で信頼性の高い機械学習モデルを構築するために重要です。

これで、講義 8 で取り上げた主なトピックが終わりました。ご覧のとおり、過学習、過小学習、バイアス、分散は相互に関連した概念であり、モデルの評価において重要な役割を果たします。モデルの過剰適合または過小適合を避けるために、複雑さと一般化可能性のバランスを取ることが重要です。さらに、さまざまな種類のバイアスを認識することは、機械学習における公平性と倫理的考慮事項に対処するのに役立ちます。

8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
  • 2020.11.03
  • www.youtube.com
This video gives a brief overview of the topics to be covered in the model evaluation lectures. It will then start by giving a brief introduction to overfitt...
 

8.2 バイアスと分散の背後にある直観 (L08: モデル評価パート 1)



8.2 バイアスと分散の背後にある直観 (L08: モデル評価パート 1)

こんにちは、みんな!あなたが元気だと嬉しいです。みなさんにお伝えしたい、エキサイティングなニュースがあります。まず、私はあなたのプロジェクト提案を採点する仕事を完了しました。残りの学期に向けて、皆さんのすばらしいアイデアや計画を読んでうれしく思います。皆さん一人ひとりが、プロジェクトのプレゼンテーションやレポートに至るまでの今後数週間の明確なロードマップを持っているのを見るのは、本当に感心します。

追加のフィードバックが必要だと感じた場合、または何らかの側面について説明が必要な場合は、遠慮なく電子メールまたはその他の手段で私にご連絡ください。あなたのプロジェクトに関連する可能性のある追加のテクニックへのさらなるガイダンスとヒントを喜んで提供させていただきます。

さて、次の良いニュースに移りましょう。アンサンブルメソッドの講義は無事終了し、新しくてエキサイティングなトピックに移りましょう。今後の一連の講義では、モデル評価の主題を検討します。さまざまな機械学習分類器とアルゴリズムを紹介した前回の講義とは異なり、今回はそれらのアルゴリズムを公平に評価することに焦点を当てます。

モデル評価に関する講義では、いくつかの側面を取り上げます。まず、過小適合と過適合の概念、および損失関数におけるバイアスと分散分解との関係を理解することから始めます。次に、モデルを効果的に比較できる相互検証方法を検討します。後で、さまざまな機械学習アルゴリズムと特定のデータセットでのパフォーマンスを比較する手法について説明します。

適切に適合したアルゴリズムの選択を含むモデルの選択についても詳しく説明することに注意してください。モデル評価とどう違うのかを検討していきます。したがって、モデル評価の概要から旅を開始し、そこから知識を構築していきましょう。

新しいトピックを掘り下げる前に、このコースの進捗状況を振り返ってみましょう。概要から始まり、Python、NumPy、scikit-learn などの重要な計算側面について説明しました。また、ツリーベースの手法についても調査し、業界におけるその関連性について興味深い議論を引き起こしました。

ここでモデルの評価フェーズに入り、過小適合と過適合に関連するいくつかのサブトピックを検討します。この特別な講義 (講義 8) では、バイアスと分散の分解と、それと過学習と過小学習との関係に焦点を当てます。バイアス成分と分散成分がモデルの汎化パフォーマンスにどのような影響を与えるかを調べます。

さらに、分類問題により関連する、0-1 損失のバイアスと分散の分解を調査します。この分析により、分類タスクのコンテキストにおける過学習と過小学習についてのより深い理解が得られます。

この講義の締めくくりとして、前に説明した統計的バイアス以外にも、機械学習におけるさまざまなタイプのバイアスについて簡単に触れます。

ここで、過学習と過小学習の主な概念に注目してみましょう。機械学習における最終的な目標は、優れた汎化パフォーマンスを示すモデル (回帰または分類) を開発することです。これは、モデルが、通常はテスト セットから取得される、目に見えないデータに対して良好なパフォーマンスを発揮する必要があることを意味します。テスト セットでのパフォーマンスも考慮しますが、これは目に見えないデータでの汎化パフォーマンスの推定値として機能します。

モデルのフィッティングやトレーニングが行われていない場合、トレーニング エラーはテスト エラーと同様になることが予想されます。ただし、モデルをトレーニング セットに適合させると、トレーニング誤差がテスト誤差よりも低いことがよく観察されます。これは過学習の結果であり、モデルがノイズを含むトレーニング データに合わせて調整されすぎて、パフォーマンスが楽観的に推定されてしまいます。

逆に、モデルがデータ内の基礎となるパターンを捕捉できなかった場合、アンダーフィッティングが発生し、トレーニング エラーとテスト エラーの両方が高くなります。この場合、モデルが欠落しています。

特徴とターゲット変数の間の真の関係を表すのに十分な複雑さ。

過学習と過小学習をよりよく理解するために、バイアスと分散のトレードオフを考えてみましょう。バイアスとは、現実世界の問題を単純化されたモデルで近似することによって生じる誤差を指します。バイアスの高いモデルは、データ内の基礎となるパターンを過度に単純化する傾向があり、アンダーフィッティングが発生する可能性があります。一方、分散とは、トレーニング データの変動に対するモデルの感度によってもたらされる誤差を指します。高分散モデルはトレーニング データ内のノイズとランダムな変動を捕捉し、過剰適合につながります。

バイアスと分散のトレードオフは、予想されるテスト誤差を 3 つの要素 (既約誤差、バイアス項、分散項) に分解することで説明できます。削減不可能な誤差は、どのモデルでも削減できないデータ固有のノイズを表します。バイアス項は、現実世界の問題を単純化されたモデルで近似することによって導入される誤差を測定し、分散項はトレーニング データの変動に対するモデルの感度によって引き起こされる誤差を測定します。

数学的には、予想されるテスト エラーは次のように表現できます。

予想されるテスト誤差 = 既約誤差 + バイアス^2 + 分散

理想的には、予想されるテスト誤差を最小限に抑えるバイアスと分散の間のバランスを見つけたいと考えています。ただし、一方の成分を減らすと、もう一方の成分が増加することがよくあります。このトレードオフは、モデルの選択と評価において重要です。

分類問題のコンテキストでは、分類タスクで使用される一般的な損失関数である 0-1 損失のバイアス分散分解を調べることもできます。 0-1 損失は、誤って分類されたインスタンスの割合として誤差を測定します。 0-1 損失のバイアス分散分解により、分類モデルの誤差の原因についての洞察が得られます。

統計的なバイアス以外にも、機械学習モデルに影響を与える可能性のある他の種類のバイアスがあります。これらのバイアスは、サンプリング バイアス、測定バイアス、アルゴリズム バイアスなど、さまざまな原因から発生する可能性があります。これらのバイアスを理解することは、公平で信頼性の高い機械学習システムを構築するために不可欠です。

次の講義では、モデルの汎化パフォーマンスを推定するための強力な手法である相互検証についてさらに詳しく説明します。相互検証を使用すると、データのさまざまなサブセットに対するトレーニングとテストのプロセスをシミュレートすることで、未確認のデータに対してモデルがどの程度うまく機能するかを評価できます。 k 分割相互検証や層別相互検証など、さまざまな種類の相互検証方法を検討し、その利点と制限について説明します。

今日の講義はここまでです。説明した内容を確認し、次回のセッションに向けて質問があれば準備しておくことをお勧めします。ありがとう、素晴らしい一日を!

8.2 Intuition behind bias and variance (L08: Model Evaluation Part 1)
8.2 Intuition behind bias and variance (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
This video provides some intuition behind the terms bias and variance in the context of bias-variance decomposition and machine learning.-------This video is...
 

8.3 二乗誤差のバイアス分散分解 (L08: モデル評価パート 1)



8.3 二乗誤差のバイアス分散分解 (L08: モデル評価パート 1)

前回の講義では、バイアスと分散についてある程度の直観を得て、損失関数のバイアスと分散の分解について簡単に触れました。さて、この講義では、二乗誤差損失に焦点を当てて、バイアス分散分解をさらに深く掘り下げていきます。二乗誤差損失から始めると、過学習と過小学習との関係を調べる前に、それがより簡単かつ直感的になります。さらに、0 対 1 損失のバイアス分散分解について簡単に説明します。これは、これに特化した最近の研究でより物議を醸しているトピックです。ただし、二乗誤差の場合をより簡単に理解できるため、最初に二乗誤差の場合を検討します。

簡単に要約すると、バイアスと分散については前のビデオで詳しく説明しましたが、少し時間をかけて設定を要約することは有益です。ここでは、点推定量から予測を引いた値を見ています。これは、特定のモデルと特定のトレーニング セットの予測ターゲットを表します。期待値は、同じ分布または母集団から抽出されたさまざまなトレーニング セットに引き継がれます。この期待値は、テスト セット内の特定のデータ ポイントの平均予測を表します。

バイアスは、平均予測が真の目標値からどの程度離れているかを測定し、分散は、個々の予測が平均予測からどれだけ乖離しているかを定量化します。分散項は符号を無視して二乗され、平均付近の予測の全体的な広がりに焦点が当てられます。

二乗誤差損失は、(シータ - シータ ハット)^2 として表すことができます。ここで、シータは真の値、シータ ハットは特定のデータ ポイントの予測値です。この講義では、バイアス項と分散項のみを考慮し、ノイズ項を無視して、二乗誤差損失のバイアス分散分解に焦点を当てます。

バイアス分散分解を進めるために、シナリオにいくつかの表記法と設定を導入します。ラベル (y) を生成する真の関数を考慮し、モデルとして真のデータ生成関数を近似する仮説 (h) を持ちます。予測を表すために y ハットを使用します。これらの項を使用すると、二乗誤差損失を (y - y hat)^2 として表すことができます。期待値記号 (E) との混同を避けるため、二乗誤差を (s) と表します。

ここで、二乗誤差をバイアス成分と分散成分に分解してみましょう。これを達成するために、予測の期待値を挿入および減算する数学的トリックを使用します。これを行うことで、二次式を拡張し、(y^2, -2yy hat, y hat^2) の 3 つの項に分割します。

次に、方程式の両辺に期待値を適用します。最初の項に期待値を適用すると y^2 が得られますが、y は定数であるため変化しません。第 2 項の期待値、-2yy ハットは、それ自体から同じ値 (y ハットの期待値) を繰り返し減算しているため、ゼロになります。第 3 項に関しては、y hat^2 の期待値は予測値の平均値を表します。

期待値を適用すると、二乗バイアスと分散という 2 つの項が残ります。二乗バイアスは (y - E[y hat])^2 で、真のラベルと平均予測の差を測定します。分散は E[(y hat - E[y hat])^2] で、平均予測からの個々の予測の平均二乗偏差を定量化します。

期待値を適用する際に -2yy ハットという項が削除されることを示すために、手順を詳しく説明します。期待値を -2yy hat に適用すると、2E[yy hat] になります。式をさらに拡張すると、y は定数であるため、yy hat の期待値は E[y]E[y hat] に等しいことがわかります。その結果、-2yy ハットの期待値は -2E[y]E[y hat] に単純化されます。

二乗誤差からこの項を引くと、次のようになります。

s = y^2 - 2yy ハット + y ハット ^2 = y^2 - 2yy ハット + y ハット ^2 - 2E[y]E[y ハット] + 2E[y]E[y ハット]

ここで、用語を並べ替えてみましょう。

s = (y - E[y ハット])^2 + 2(E[y]E[y ハット] - yy ハット)

E[y]E[y hat] が c で示される定数値であることを認識することで、式をさらに単純化できます。したがって、次のようになります。

s = (y - E[y ハット])^2 + 2(c - yy ハット)

最後に、第 2 項 2(c - yy hat) に注目してみましょう。この用語は次のように分解できます。

2(c - yy ハット) = 2c - 2yy ハット

最初の項 2c は定数であり、予測 y ハットには依存しません。 2 番目の項 -2yy ハットは、真のラベル y と予測 y ハットの間の交互作用を表します。

ここで、二乗誤差損失のバイアス分散分解を次のように要約できます。

s = (y - E[y ハット])^2 + 2c - 2yy ハット

最初の項 (y - E[y hat])^2 は、二乗バイアスに対応します。これは、真のラベル y と平均予測 E[y hat] の間の差異を測定します。

2 番目の項 2c は定数で、二乗バイアスを表します。予測Yハットの選択には影響されません。

3 番目の項 -2yy ハットは分散を表します。これは、平均 E[y hat] を中心とした個々の予測 y hat の変動を捕捉します。それは、予測の選択によって直接影響されます。

したがって、二乗誤差損失は二乗バイアス項、定数二乗バイアス項、および分散項に分解できると結論付けることができます。

バイアス分散分解を理解することは、モデルの動作についての洞察を得るのに役立ちます。高いバイアスは、モデルがデータ内の基礎となるパターンを捕捉できないアンダーフィッティングを示します。高い分散は、モデルがトレーニング データに対して敏感すぎて、目に見えないデータまで十分に一般化できない過剰適合を示します。

バイアスと分散の成分を分析することで、モデルの複雑さ、正則化手法、データ収集戦略について情報に基づいた意思決定を行い、モデルのパフォーマンスを最適化できます。

次の講義では、バイアス分散分解を 0-1 損失まで拡張し、その意味について説明します。

8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
In this video, we decompose the squared error loss into its bias and variance components.-------This video is part of my Introduction of Machine Learning cou...