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

 

Greedy 相互検証を使用して最適な機械学習モデルを迅速に特定する



Greedy 相互検証を使用して最適な機械学習モデルを迅速に特定する

皆さん、こんにちは。私は Soper 博士です。今日は私が開発している「Greedy Cross Validation」と呼ばれる手法についてお話したいと思います。この手法は、最適または最適に近い機械学習モデルを効率的に特定するための基盤として機能します。

まずは簡単な紹介と、この問題がなぜ非常に重要なのかを説明しましょう。機械学習ソリューションを開発するときは、さまざまなモデルをテストして、どのモデルが最も優れたパフォーマンスを発揮するかを判断するのが通例です。ここで、「モデル」という用語は、機械学習アルゴリズムとその調整可能なパラメーターに選択された値の特定の組み合わせを指します。

機械学習の実務者は、分析プロジェクトまたはデータ サイエンス プロジェクトの最終的な選択を決定する前に、数百、さらには数千のモデルをテストするという課題に直面することがよくあります。このプロセスには時間がかかり、計算量が多く、コストがかかる場合があります。高度な機械学習モデルの中には、トレーニングに数時間、場合によっては数日かかるものもあります。

多数のモデルをテストするというリソース集約型の性質を考慮して、研究者は、最高のパフォーマンスを発揮するモデルをできるだけ早く特定する方法を模索してきました。既存の手法には、ベイジアン アプローチ、勾配降下法、進化的アプローチ、母集団ベースのトレーニングなどが含まれます。これらの方法は通常、モデル パラメーターとパフォーマンス メトリックの間の関係を特定し、検索空間の有望な領域を探索できるようにすることを目的としています。

既存の方法とは対照的に、Greedy Cross Validation は、最高のパフォーマンスのモデルを迅速に特定するために独特のアプローチを採用しています。 Greedy Cross Validation は、検索空間内で有望な領域を見つけることに重点を置くのではなく、最適な機械学習モデルを迅速に特定するための基礎としてモデルのパフォーマンス自体を測定することに重点を置いています。

モデルは構造パラメータとアルゴリズム パラメータの両方で構成されており、これらを総称してハイパーパラメータと呼びます。構造パラメータにはニューラル ネットワークの隠れ層やノードの数などの要素が含まれますが、アルゴリズム パラメータはミニバッチ サイズや学習率などの学習プロセスを制御します。特定の機械学習問題に対してハイパーパラメーター設定の最適な組み合わせを見つけるタスクは、ハイパーパラメーターの最適化として知られています。

Greedy Cross Validation の概念を理解するために、ハイパーパラメーターの最適化を通じて最適なモデルを検索する簡単な例を考えてみましょう。この場合、横軸と縦軸に 2 つのハイパーパラメータが表示されます。オレンジ色の各四角形は、ハイパーパラメーター値の一意の組み合わせを持つ特定のモデルを表します。各モデルのパフォーマンスを評価することで最適なモデルを特定できます。この目的のための一般的なアプローチは「グリッド検索」として知られています。

では、モデルの実際のパフォーマンスをどのように推定すればよいでしょうか?最も一般的な解決策は、トレーニング中に遭遇しなかったデータを使用して各モデルをテストすることであり、これは「k 分割交差検証」として知られるプロセスです。仕組みは次のとおりです。

  1. トレーニング データを「フォールド」と呼ばれる k 個のサブセットにランダムに分割します。
  2. 1 つを除くすべての折り目を使用してモデルをトレーニングします。
  3. 残りの折り目を使用してモデルのパフォーマンスをテストします。
  4. モデルのパフォーマンスを評価するために各折り畳みが 1 回使用されるまで、手順 2 と 3 を繰り返します。

次に、モデルの全体的なパフォーマンスが、各フォールド評価から得られたパフォーマンス値の平均として計算されます。これにより、モデルのパフォーマンスの確実な推定が保証されます。

標準の相互検証がどのように機能するかを理解したので、ハイパーパラメータ最適化プロセス全体におけるその役割を調査できます。標準の相互検証を使用して複数の候補モデルを評価する場合、特定のモデルの各フォールドによってパフォーマンスの推定値が更新されます。モデルのすべてのフォールドを評価すると、その全体的なパフォーマンスの最終推定値が得られます。すべてのモデルに対してこのプロセスを繰り返すことで、最適な候補を特定できます。

対照的に、Greedy Cross Validation は異なるアプローチを採用しています。各モデルのすべてのフォールドを順番に評価するのではなく、異なるモデルのフォールドを繰り返し評価します。次に評価する特定のフォールドは、各候補モデルの現在の平均パフォーマンスに基づいて動的に選択されます。最初に、モデルごとに 1 つのフォールドが評価され、それまでに評価されたモデルのパフォーマンスに基づいて後続のフォールドが選択されます。

Greedy Cross Validation の背後にある重要なアイデアは、早期に有望性を示すモデルの評価を優先することです。そうすることで、パフォーマンスが良くなる可能性が高いモデルを迅速に特定し、より多くの計算リソースをそれらのモデルに割り当てることができます。このアプローチにより、単一モデルごとにすべてのフォールドを評価する必要がなくなり、時間と計算リソースが大幅に節約されます。

Greedy 相互検証を実装するには、次の手順に従います。

  1. トレーニング データをランダムに k 分割に分割します。
  2. 評価されたモデルの空のセットを初期化します。
  3. 候補モデルのセット内の各モデルについて、次の操作を行います。モデルのパフォーマンスを 1 つのフォールドで評価します。 b.評価されたフォールドを使用してモデルの平均パフォーマンスを計算します。
  4. すべての候補モデルが少なくとも 1 つのフォールドで評価されるまで、ステップ 3a と 3b を繰り返します。
  5. 各モデルの現在の平均パフォーマンスに基づいて、評価する次のフォールドを選択します。
  6. すべての候補モデルについてすべての折り目が評価されるまで、ステップ 3a ~ 5 を繰り返します。
  7. すべてのフォールドにわたる平均パフォーマンスに基づいて、最高のパフォーマンスのモデルを選択します。

Greedy Cross Validation は、モデルの現在の平均パフォーマンスに基づいて評価する次のフォールドを動的に選択することで、最高のパフォーマンスのモデルを迅速に特定できます。このアプローチにより、うまく機能する可能性が低いモデルを無視しながら、最も有望なモデルに計算リソースを集中させることができます。

Greedy Cross Validation の利点の 1 つは、多数の候補モデルを効率的に処理できることです。 Greedy Cross Validation は、すべてのフォールドですべてのモデルを徹底的に評価するのではなく、パフォーマンスに基づいてモデルを適応的に優先順位付けして評価し、全体的な計算要件を大幅に削減します。

Greedy Cross Validation は、絶対的に最適なモデルを見つけるための保証された方法ではないことに注意することが重要です。他のハイパーパラメータ最適化手法と同様に、これはヒューリスティックに依存しており、常に全体的な最適値を特定できるとは限りません。ただし、特に多数の候補を扱う場合に、高パフォーマンスのモデルを迅速に特定するための実用的で効率的なアプローチを提供します。

Greedy Cross Validation は、機械学習におけるハイパーパラメータの最適化を迅速に行うための手法です。パフォーマンスに基づいてモデルを適応的に選択および評価することで、最高のパフォーマンスを発揮するモデルを効率的に特定できます。絶対的に最適なモデルを見つけることは保証されませんが、ハイパーパラメーター検索空間を効率的にナビゲートするための実用的なソリューションを提供します。

Using Greedy Cross Validation to Quickly Identify Optimal Machine Learning Models
Using Greedy Cross Validation to Quickly Identify Optimal Machine Learning Models
  • 2021.12.01
  • www.youtube.com
Dr. Soper explains Greedy Cross Validation and shows how it can be used to quickly perform hyperparameter optimization and identify optimal machine learning ...
 

1.1 コース概要(L01:機械学習とは)


1.1 コース概要(L01:機械学習とは)

こんにちは、みんな!

新学期へようこそ。皆さんも素晴らしい夏休みを過ごされたと思います。このビデオでは、通常の対面セッションとは少し異なるため、コース教材を確認し、このコースでどのように協力していくかについて話し合いたいと思います。

このコースでは、講義を非同期で記録する予定です。これは、講義を事前に録画し、毎週の初めに共有することを意味します。こうすることで、いつでも都合の良いときにコンテンツを視聴できます。このアプローチにより、必要に応じてビデオを複数回視聴できる柔軟性が得られます。さらに、インターネット接続が遅い場合は、ビデオをコンピュータにダウンロードして、視聴中のストリーミングの問題を回避できます。

講義を理解しやすくするために、各講義をさまざまなトピックに基づいた複数のビデオに分割します。たとえば、講義 1 では、コース全般、機械学習の概要、機械学習のカテゴリ、表記法、機械学習のアプリケーションについて説明する個別のビデオを用意します。この内訳は、特定のトピックに焦点を当て、内容を簡単に確認するのに役立ちます。

非同期学習にはメリットがある一方で、講義中に質問できないなどのデメリットもあると理解しています。これに対処するために、リアルタイムでディスカッションできるライブオフィスアワーを主催します。オフィスアワーの詳細については、近日中にお知らせします。

さて、講義 1 から始めましょう。この講義では、授業の概要、シラバス、学期を通して取り上げるトピックについて説明します。スライドを見て、コースやその他の機械学習関連のトピックについて詳しく説明します。

コースの内容に関して言えば、学期を 7 つのパートまたはモジュールに分割しました。この分割は、学習行程を構造化するのに役立ちます。最初のパートでは、機械学習の概要から開始し、基本概念を説明し、K 最近傍法と呼ばれる機械学習アルゴリズムの簡単な例を示します。

入門の後、計算の基礎に進みます。これには、Python の簡単な紹介と機械学習との関連性が含まれます。 Python の事前の経験は必須ではありませんが、このコースでは Python を広範囲に使用するため、基本を理解していると有益です。線形代数用の NumPy や主要な機械学習ライブラリである scikit-learn などの特定のライブラリに焦点を当てます。

次のパートでは、ツリーベースの手法、モデル評価、次元削減、教師なし学習、ベイズ学習について説明します。これらのトピックは、さまざまな機械学習アルゴリズムとそのアプリケーションを理解する上で重要です。時間が許せば、ベイズの定理に基づく方法を含むベイズ学習について詳しく説明します。

学期の終わりに向けて、クラスでプロジェクトのプレゼンテーションを行います。学期が進むにつれて、クラスのプロジェクトについてさらに詳しい情報を提供します。

各講義とその内容の詳細については、Canvas 上に講義 Web サイトを作成しました。このプラットフォームには、講義ビデオ、スライド、講義ノート、課題などのすべてのリソースがあります。メモを取り、より効果的に資料に取り組むことができるように、ビデオを見る前にスライドをダウンロードすることをお勧めします。

コースを進めていくと、毎週のモジュールを Canvas に投稿して、講義、スライド、その他の関連リソースにアクセスできるようになります。さらに、コースに関する最新情報や重要な情報については、Canvas 上でお知らせします。お知らせの通知が有効になっていることを確認してください。最新の情報を入手するためにメールを定期的にチェックすることをお勧めします。

そのため、おそらくビデオを再アップロードして、正しく読み込まれるかどうかを確認する必要があります。ご不便をおかけして申し訳ございませんが、これらの技術的な問題に対処するため、今しばらくお待ちいただきますようお願いいたします。

講義動画以外にも、コード例や宿題などの補足資料もGitHub上で提供する予定です。これらのリソースへのリンクは、Canvas 上の対応する週のモジュールにあります。 GitHub は、コードの共有やプロジェクトでのコラボレーションのために機械学習コミュニティで広く使用されているため、このプラットフォームについてよく理解しておくと有益です。

Canvas 上のお知らせを定期的にチェックすることの重要性を強調したいと思います。重要な更新については電子メール通知を送信しますが、すべての情報を確実に受け取るためには、お知らせの通知を有効にすることが重要です。 Canvas アナウンス機能を使用して、コースに関連する変更、リマインダー、または追加リソースを伝えます。

それでは、コースの構成について詳しく説明していきます。前述したように、学期は 7 つのパートまたはモジュールに分かれており、それぞれが機械学習に関連する特定のトピックをカバーします。これらのモジュールは、以前の概念に基づいて構築され、新しい概念が導入され、進歩的な学習体験を提供するように設計されています。

最初の部分では、機械学習の概要から始まり、この分野の基礎を説明し、K 最近傍法と呼ばれる機械学習アルゴリズムの簡単な例を示します。これにより、機械学習がどのように機能するかを体験し、今後のモジュールの基礎を築くことができます。

2 番目のパートでは計算の基礎に焦点を当て、基本的な Python プログラミングと、線形代数用の NumPy や機械学習アルゴリズムの実装用の scikit-learn など、機械学習で使用される重要なライブラリについて説明します。 Python の事前経験は必須ではありませんが、必要に応じて、Canvas で提供する対話型の演習を完了して Python に慣れることをお勧めします。

後続のパートでは、機械学習内の特定のトピックを詳しく掘り下げていきます。パート 3 では、デシジョン ツリー、ランダム フォレスト、勾配ブースティングなどのツリーベースの手法について説明します。これらの手法はさまざまな機械学習アプリケーションで広く使用されており、予測モデルを構築するための貴重なツールを提供します。

第 4 部では、機械学習の重要な側面であるモデル評価を中心に説明します。さまざまな機械学習アルゴリズムとモデルを比較および評価するためのテクニックについて説明します。これにより、現実世界のシナリオでモデルを選択してデプロイする際に、情報に基づいた意思決定ができるようになります。

第 5 部では、次元削減と教師なし学習について検討します。 「教師なし学習」という言葉に怯える必要はありません。講義中に詳しく説明します。このパートでは、明示的なラベルを付けずにデータを分析してパターンを抽出する方法に焦点を当て、データの探索と分析の新たな可能性を開きます。

時間が許せば、パート 6 では、ベイズの定理に基づいた手法を含むベイズ学習について詳しく説明します。ベイジアン分類器、単純ベイズ分類器、および潜在的なベイジアン ネットワークについて説明します。ベイジアン学習は、機械学習における不確実性を理解し、モデル化するための確率的フレームワークを提供します。

最後に、学期末にはクラスプロジェクトの発表会を行います。学期が進むにつれて、クラスのプロジェクトに関する詳細情報を提供しますが、これは、関心のある特定の問題やデータセットに知識とスキルを適用する機会となります。コース教材の理解を示し、機械学習テクニックを実装する能力を実証する機会となります。

学期を通して、コースの教材や質問についてリアルタイムでディスカッションできるライブオフィスアワーを開催します。これらのオフィスアワーの詳細は追ってお知らせしますので、この機会を利用して私や他のクラスメートと交流することをお勧めします。

コミュニケーションとコラボレーションを促進するために、質問を投稿し、ディスカッションに参加し、私や同僚からタイムリーな回答を受け取ることができるオンライン プラットフォームである Piazza も利用します。 Piazza に積極的に参加することをお勧めします。これはあなたにとって有益であるだけでなく、クラスの共同学習体験にも貢献します。

結論として、コースの構造と利用できるさまざまなリソースの概要を説明しました。この概要で、学期を通して私たちがどのように進めていくかについて明確に理解していただければ幸いです。ご質問やご不明な点がございましたら、営業時間内にご連絡いただくか、Piazza に投稿してください。私は皆さんの学習の旅をサポートするためにここにいます。皆さんと一緒にこの機械学習の冒険に乗り出すことに興奮しています。

ありがとうございます。では、コースの概要とシラバスに関する講義 1 から始めましょう。

1.1 Course overview (L01: What is Machine Learning)
1.1 Course overview (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
Course overview for my Introduction to Machine Learning course. This video goes over the course contents and syllabus available at https://sebastianraschka.c...
 

1.2 機械学習とは(L01:機械学習とは)



1.2 機械学習とは(L01:機械学習とは)

新学期のスタートにあたり、皆様のお越しを心より歓迎いたします。皆さんも素晴らしい夏休みを過ごされたと思います。

このビデオでは、コースのいくつかの重要な側面と、私たちがどのように協力していくかについてお話したいと思います。このコースは、対面でセッションを行う従来の形式とは少し異なります。非同期学習を活用します。つまり、講義を事前に録画し、毎週の初めに共有します。これにより、いつでも都合の良いときにコンテンツを視聴することができます。さらに、必要に応じてビデオを何度も視聴できます。また、インターネット接続が遅い場合は、ビデオをダウンロードしてオフラインで視聴することもできます。

講義を理解しやすくするために、各講義をさまざまなトピックに基づいた複数のビデオに分割します。たとえば、最初の講義では、コースの概要、シラバス、機械学習のさまざまなカテゴリなど、さまざまなトピックを取り上げます。この講義は 6 つのビデオに分かれています。

非同期学習の欠点の 1 つは、講義中に質問できないことですが、ライブ オフィス アワーを主催して、質問や懸念事項について話し合うことができます。オフィスアワーについては後ほど詳しくご案内させていただきます。

それでは、コースの内容に入っていきましょう。学期は 7 つのパートまたはモジュールに分かれています。最初の部分では、機械学習の概要と、K 最近傍法と呼ばれる機械学習アルゴリズムの簡単な例から始めます。続いて、Python の簡単な紹介、線形代数、主要な機械学習ライブラリである scikit-learn など、計算の基礎について説明します。 Python の経験がなくても、心配する必要はありません。学ぶのは簡単です。すぐに理解できるよう、オプションで Canvas 上で対話型の演習を提供します。

計算の基礎の後に、デシジョン ツリー、ランダム フォレスト、勾配ブースティングなどのツリーベースの手法を検討します。次に、さまざまな機械学習アルゴリズムとモデルを比較できるようにする重要なトピックであるモデル評価について詳しく説明します。コースのこの部分では、実際のアプリケーションに最適なモデルを評価して選択するスキルを身に付けます。

次に、次元削減と教師なし学習について説明します。次元削減手法は複雑なデータセットを処理するために不可欠であり、教師なし学習では、モデルをトレーニングするためのラベル付きデータがない方法が導入されます。

時間が許せば、ナイーブ ベイズ分類器やベイジアン ネットワークなどの手法を含むベイジアン学習についても触れます。このトピックでは、ベイズの定理に基づいた分類方法について説明します。

学期の終わりにはクラスプロジェクトのプレゼンテーションを行います。授業のプロジェクトについては、学期後半に詳しくお知らせします。追加の詳細とリソースは、私が Canvas にアップロードしたコース Web サイトで見つけることができます。ぜひウェブサイトを閲覧し、提供されている情報を読んでみてください。

コミュニケーションとリソースに関しては、コース関連のすべてのアクティビティに主に Canvas を使用します。講義ビデオ、スライド、追加資料は Canvas で利用できます。また、Canvas のお知らせを使用して、重要な更新情報や情報を共有します。これらのお知らせを電子メールで受信できるように、通知設定が有効になっていることを確認してください。

学習体験を向上させるために、ビデオを見る前にスライドをダウンロードして、スライドに直接メモを取れるようにすることをお勧めします。メモをとることは、内容をよりよく理解し、記憶に留めておくのに役立ちます。

コース教材にアクセスするときに技術的な問題が発生した場合は、Canvas で最もよく動作する傾向にある Firefox または Chrome をブラウザとして使用することをお勧めします。

1.2 What is Machine Learning (L01: What is Machine Learning)
1.2 What is Machine Learning (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are goin over the definition of machine learning and how machine learning is related to programming.-------This video is part of my Introdu...
 

1.3 機械学習のカテゴリ (L01: 機械学習とは)



1.3 機械学習のカテゴリ (L01: 機械学習とは)

機械学習のさまざまなカテゴリまたはタイプをさらに詳しく見てみましょう。最も広範なカテゴリは教師あり学習で、ラベル付きデータを扱います。教師あり学習では、与えられた入力データに基づいて出力を予測することを目的としています。たとえば、電子メールのスパム分類では、ラベルは「スパム」と「非スパム」になります。目標は、今後の電子メールがスパムであるかどうかを予測することです。このカテゴリにはフィードバック ループが含まれており、正しい予測または不正確な予測を使用してアルゴリズムを改善し、分類精度を高めます。

教師あり学習内の 1 つのサブカテゴリは分類です。分類では、スパムか非スパムなどのクラス ラベルの割り当てに重点が置かれます。たとえば、X1 と X2 で表される入力情報に基づいてこれら 2 つのクラスを区別することを目的として、「マイナス」と「プラス」のようなクラス ラベルを付けることができます。機械学習アルゴリズムは測定値を調べて予測を行い、正しいラベルを割り当てるように継続的に学習します。多数の例を使用してデータセットでアルゴリズムをトレーニングすることにより、クラスを分ける境界線である決定境界線の引き方を学習できます。決定境界の片側に該当する新しいデータ ポイントは、特定のクラスとして分類される可能性があります。

教師あり学習の別のタイプは回帰です。これは、連続的なターゲット値または出力値の割り当てを処理します。回帰分析は、入力特徴に基づいて継続的な結果を予測することに重点を置いています。たとえば、線形回帰は 1 つの入力変数を持つ単純なモデルであり、誤差を最小限に抑えるためにデータ ポイントを通る直線をフィッティングすることによって出力値 (Y) を予測することを目的としています。

教師なし学習に進むと、このカテゴリには、ラベルのないデータを分析して隠れたパターンや構造を発見することが含まれます。ラベルやフィードバックを使用しない教師なし学習は、データセット内で有意義な洞察を見つけることを目的としています。クラスタリングは教師なし学習の一例で、パターンや密度に基づいて類似のデータ ポイントがグループ化されます。 K-means、DBSCAN、階層的クラスタリングなどのさまざまなクラスタリング アルゴリズムを利用して、類似したデータ ポイントを識別してグループ化できます。

次元削減は、教師なし学習のもう 1 つの例です。これには、データセット内のフィーチャまたはディメンションの数を減らすことが含まれます。特徴抽出と特徴選択は、次元削減で使用される一般的な手法です。これらの方法は、特徴を圧縮または変換して、複雑さを軽減しながら最も関連性の高い情報を取得するのに役立ちます。

機械学習の最後のカテゴリは強化学習です。強化学習では、エージェントは特定の目標を達成するため、または特定の環境で報酬を最大化するための一連のアクションを学習します。このタイプの学習には、エージェントがアクションの結果に基づいてフィードバックを受け取る報酬システムが含まれます。試行錯誤により、エージェントはより適切な意思決定を行い、パフォーマンスを最適化する方法を学習します。強化学習は、ロボット工学、ゲーム、複雑な意思決定のシナリオに一般的に適用されます。

強化学習は重要なトピックではありますが、このコースでは広く扱われないことに注意することが重要です。ただし、強化学習をさらに詳しく調べることに興味がある人のために、専用のリソースが用意されています。

これらのさまざまなカテゴリの機械学習は、さまざまな種類の問題を解決するためのさまざまな技術やアルゴリズムを理解し、適用するための広範なフレームワークを提供します。

ここで、半教師あり学習と呼ばれる機械学習の別の側面を詳しく掘り下げてみましょう。名前が示すように、教師あり学習と教師なし学習の間に位置します。半教師あり学習では、ラベル付きデータとラベルなしデータが混在します。ラベル付きデータは、教師あり学習で説明したものと似ており、入力と対応するクラス ラベルがあります。ただし、半教師あり学習では、クラスラベルのない大量のラベルなしデータも存在します。

半教師あり学習の目標は、追加のラベルなしデータを活用して学習プロセスを改善することです。ラベル付きデータとラベルなしデータを組み合わせることで、アルゴリズムは、ラベル付きデータだけでは明らかではなかったデータ内のパターンや関係を発見できます。これにより、より正確な予測とより適切な一般化が可能になります。

半教師あり学習は、ラベル付きデータの取得に費用や時間がかかるシナリオで特に役立ちます。大量のデータに手動でラベルを付ける代わりに、より小規模なラベル付きデータのセットとより大きなラベルなしデータのセットを使用することで、良好な結果を得ることができます。

半教師あり学習へのアプローチの 1 つは、自己トレーニングや共同トレーニングなどの手法を使用することです。自己トレーニングでは、アルゴリズムは最初にラベル付きデータでトレーニングし、次にその予測を使用してラベルなしデータの疑似ラベルを生成します。これらの疑似ラベルは、元のラベル付きデータと結合されて、モデルが再トレーニングされます。このプロセスは複数回繰り返され、モデルの予測が改良され、ラベルのないデータが活用されてパフォーマンスが向上します。

共同トレーニングでは、アルゴリズムはデータの複数のビューから学習します。複数の分類子は、特徴の異なるサブセットまたはデータの異なる表現でトレーニングされます。最初に、各分類器はラベル付きデータでトレーニングされます。次に、ラベルのないデータに関する予測を交換し、各分類器が他の分類器の予測から学習できるようにします。この反復プロセスは継続し、各分類器が他の分類器のコンセンサスに基づいて予測を洗練します。

半教師あり学習は成長している研究分野であり、ラベルなしデータを効果的に活用するという課題に取り組むために利用できるさまざまなアルゴリズムや技術があります。これは、ラベル付きデータが限られている場合に機械学習のパフォーマンスを向上させる有望な機会を提供する刺激的な分野です。

教師あり学習、教師なし学習、強化学習、半教師あり学習など、機械学習のさまざまなカテゴリについて説明しました。各カテゴリーには独自の特徴と用途があります。教師あり学習はラベル付きデータを扱い、予測の作成またはクラス ラベルの割り当てに焦点を当てます。教師なし学習の目的は、ラベルなしデータ内の隠れた構造またはパターンを見つけることです。強化学習には、報酬システムを通じて一連の行動を学習することが含まれます。最後に、半教師あり学習では、ラベル付きデータとラベルなしデータを組み合わせて学習パフォーマンスを向上させます。

1.3 Categories of Machine Learning (L01: What is Machine Learning)
1.3 Categories of Machine Learning (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are discussing the three broad categories of machine learning: supervised learning, unsupervised learning, and reinforcement learning.-----...
 

1.4 表記法 (L01: 機械学習とは)



1.4 表記法 (L01: 機械学習とは)

機械学習の概念と機械学習の主要なカテゴリについて説明したので、教師あり学習についてさらに詳しく見ていきましょう。前述したように、教師あり学習は機械学習の最大のカテゴリです。このセクションでは、教師あり学習に関連する表記、用語、概念について説明します。

教師あり学習は特定のワークフローに従います。まず、入力フィーチャとそれに対応するターゲット情報またはラベルの例を含むトレーニング データセットから始めます。入力特徴は観測値と呼ばれることもあります。次に、データセットは機械学習アルゴリズムに提供されます。機械学習アルゴリズムにはさまざまな種類がありますが、これについてはこのコースの後半で説明します。アルゴリズムはトレーニング データから学習し、予測モデルを生成します。

モデルはトレーニング データから学習した知識を表し、新しいまだ見たことのないデータを予測するために使用できます。新しいデータがトレーニング データと同じ形式であり、同じ特徴を含む場合、トレーニングされたモデルを使用して予測を行うことができます。これが教師あり学習の主なワークフローです。

ここで、教師あり学習の表記法の形式的な側面を詳しく掘り下げてみましょう。トレーニング データセットを D と呼びます。これは N 個のトレーニング サンプルで構成されます。各トレーニング例には、特徴ベクトル (X) と対応するラベル (Y) が含まれています。上付き文字「i」はトレーニング ポイントのインデックスを表し、データセット内の位置を示します。ここで上付き文字を使用するのは、後で紹介する下付き文字と区別するためです。

トレーニング データセットは、フィーチャにラベルを割り当てる、基礎となる未知の関数に基づいて生成されます。この関数は通常、明示的に定義されておらず、自然現象または人間によるラベル付けプロセスである可能性があります。機械学習の目標は、モデルまたは仮説を使用してこの関数 (F(X)) を近似することです。モデルは、未知の関数と同様の方法で、入力フィーチャ (X) とラベル (Y) の間のマッピングをキャプチャする必要があります。

従来、機械学習アルゴリズムによって学習された仮説またはモデルは H と呼ばれます。モデルは特徴ベクトル (X) を取り込み、予測ラベル (Y ハット) を生成します。回帰問題では、予測ラベルは連続値ですが、分類問題では、予測ラベルは可能な値のセットに属します。分類では、可能なラベルのセットは通常、整数を使用して表されますが、他の記号や文字を使用して表すこともできます。

モデルの評価中、別のデータセットを使用してモデルのパフォーマンスを評価します。モデルによって行われた予測は、モデルの精度を測定するために真のラベルと比較されます。回帰では、予測と真のラベルの近さが評価され、分類では、予測されたラベルと真のラベルの間の一致が検査されます。

これらの概念を説明するために、実際のデータセットの例である Iris データセットを考えてみましょう。このデータセットは、がく片や花弁の寸法など、アイリスの花のさまざまな特徴の測定値で構成されています。目標は、これらの測定値に基づいて花の種類を予測することです。 setosa、versicolor、virginicaの3種があります。

アヤメのデータセットでは、各トレーニング サンプルは花の測定値に対応し、特徴量は寸法を表し、ラベルは花の種類を表します。データセットには、N=150 で示される 150 のトレーニング サンプルと、M=4 で示される 4 つの特徴が含まれています。

教師あり学習には、トレーニング データセットを使用して、未知の基礎関数を近似するモデルを学習することが含まれます。モデルは入力特徴を受け取り、予測を生成します。モデルの精度は別のデータを使用して評価されます。このセクションで説明する表記と用語は、教師あり学習アルゴリズムを理解し、使用するための基礎を提供します。

1.4 Notation (L01: What is Machine Learning)
1.4 Notation (L01: What is Machine Learning)
  • 2020.09.02
  • www.youtube.com
In this video, we are going over some of the machine learning formalities and notation that we will be using in this course.-------This video is part of my I...
 

1.5 ML アプリケーション (L01: 機械学習とは)



1.5 ML アプリケーション (L01: 機械学習とは)

教師あり学習を取り巻く表記法と形式主義について説明した後、教師あり学習パイプラインを再検討し、実際に機械学習の問題にどのようにアプローチするかを検討してみましょう。また、プロセス中に通常考慮される個々のコンポーネントについても検討します。

以前に検討した簡略化された図は、教師あり学習のワークフローを示しています。このワークフローでは、特徴のラベルが設定されているラベル付きトレーニング データセットから開始します。次に、モデルをトレーニング データに適合させることを学習する機械学習アルゴリズムを適用します。結果として得られるモデルを使用して、新しい未知のデータを予測できます。このプロセスでは、新しいデータがトレーニング データと同じ分布から得られることを前提としていることに注意することが重要です。

ここで、実際の機械学習に含まれるさまざまなコンポーネントを示すフローチャートをさらに詳しく見てみましょう。基本的なコンポーネントは前の図と同じで、トレーニング データセット、学習アルゴリズム、結果のモデルです。ただし、考慮すべき追加の詳細があります。

実際には、トレーニング データを取得する前に、通常、いくつかの前処理ステップを実行します。事前に準備されたデータセットを取得しない限り、データから抽出する特徴を決定する必要があります。これは、従来の機械学習において特に重要です。たとえば、測定値に基づいてアヤメの花を分類する場合、現実世界のシナリオからの画像データまたは観察データが存在する可能性があります。いずれの場合も、関連する特徴を抽出して機械学習アルゴリズムに提供する必要があります。多くの場合、画像の生のピクセルを使用する代わりに、前処理または抽出された特徴を使用する方が効果的です。アイリスの花の例では、これらの特徴にはがく片の長さ、がく片の幅などが含まれる場合があります。花を分類する場合には植物学者など、問題に関する知識を持つ分野の専門家が関与するのが一般的です。彼らの専門知識は、分類に役立つ特徴の選択に役立ちます。

生データから特徴を抽出したと仮定すると、サンプルの長さ、サンプルの幅、花びらの長さ、および花びらの幅で構成されるトレーニング セットが得られます。特徴のスケーリング、特徴の選択 (含める特徴の選択)、次元削減など、追加の前処理ステップが必要になる場合があります。これらの前処理ステップには、特にデータセットのサブサンプリングも含まれる場合があります。このコース全体を通じて、これらの前処理ステップの選択についてさらに詳しく説明します。

前処理が完了したら、学習アルゴリズムにデータを提供し、モデルを適合させます。ただし、新しいデータでモデルを使用する前に、データセットをトレーニング セットとテスト セットの 2 つの部分に分割するのが一般的です。トレーニング セットはアルゴリズムをトレーニングしてモデルを取得するために使用され、テスト セットはモデルのパフォーマンスを評価するための独立したデータセットとして機能します。この評価ステップは、現実世界の目に見えないデータにモデルを適用する前に、モデルがどの程度うまく機能するかを評価するのに役立ちます。トレーニング プロセス中には、モデルの選択や相互検証など、ハイパーパラメーターの調整に役立つ評価ステップも含まれることに注意することが重要です。このコースではこれらのトピックを幅広く取り上げます。

最終モデルを入手したら、テストセットを使用してその性能を評価します。この評価には、モデルを使用してテスト セットのラベルを予測し、これらの予測を真のラベルと比較することが含まれます。分類の例では、評価は多くの場合、正しく分類されたインスタンスの割合を示す分類の精度または誤差を中心に行われます。たとえば、花を正しく分類する際に 95% の精度を達成できるかもしれません。モデルが評価されると、それを新しいデータに使用して、現実世界のアプリケーションで予測を行うことができます。

このスライドは提示される情報量が多すぎて圧倒されるように見えるかもしれませんが、このコース全体でこれらの各ステップをさらに詳しく掘り下げていきますので、ご安心ください。

実際に機械学習アプリケーションを開発する場合、通常は 5 つの主要な手順が必要になります。まず、解決したい問題を定義する必要があります。

解決したい問題を定義したら、次のステップはデータを収集して準備することです。これには、解決しようとしている問題の例を含むデータセットを取得することが含まれます。データセットには、入力フィーチャとそれに対応するラベルの両方が含まれている必要があります。

データセットを取得したら、次のステップはデータを前処理してクリーンアップすることです。これには、欠損値の処理、外れ値の処理、特徴の正規化またはスケーリング、および必要な変換またはエンコードの実行が含まれる場合があります。データの前処理は、データセットの品質と信頼性を確保し、学習アルゴリズムに備えて準備するために不可欠です。

データを前処理した後、適切な機械学習アルゴリズムを選択する 3 番目のステップに進みます。アルゴリズムの選択は、問題の性質、データの種類、利用可能なリソースによって異なります。デシジョン ツリー、サポート ベクター マシン、ニューラル ネットワークなど、さまざまな種類のアルゴリズムから選択できます。各アルゴリズムには独自の長所と短所があり、当面の問題に最適なものを選択することが重要です。

アルゴリズムを選択したら、次のステップは、準備されたデータセットを使用してモデルをトレーニングすることです。トレーニング プロセス中に、モデルは入力データとそれに対応するラベルから一般化することを学習します。これには、予測誤差を最小限に抑えるためにモデルの内部パラメーターを調整することが含まれます。通常、トレーニング プロセスには、観察されたエラーに基づいてモデル パラメーターを繰り返し更新する勾配降下法などの最適化アルゴリズムが含まれます。

モデルがトレーニングされた後の次のステップは、そのパフォーマンスを評価することです。これは、検証セットまたはホールドアウト セットと呼ばれることが多い別の評価データセットを使用して行われます。使用される評価指標は問題の種類によって異なります。分類タスクでは、精度、適合率、再現率、F1 スコアなどの指標が一般的に使用されます。回帰タスクでは、平均二乗誤差 (MSE) や平均絶対誤差 (MAE) などのメトリクスが使用されます。この評価は、モデルが目に見えないデータに対してどの程度一般化されているかを評価するのに役立ち、モデルの長所と短所についての洞察が得られます。

モデルのパフォーマンスが満足のいくものである場合、最後のステップはモデルをデプロイし、それを使用して新しいまだ見たことのないデータを予測することです。これには、モデルをより大きなシステムやアプリケーションに統合して、意思決定を自動化したり、当面の問題の解決を支援したりすることが含まれる場合があります。

機械学習プロセスは反復的であり、多くの場合、ステップ間を行ったり来たりする必要があることに注意してください。たとえば、モデルのパフォーマンスが満足のいくものでない場合、モデルのパフォーマンスを向上させるために、データの前処理ステップを再検討したり、さまざまなアルゴリズムを試したり、ハイパーパラメーターを調整したり、より多くのデータを収集したりする必要がある場合があります。

この概要では、実際の機械学習に含まれる一般的な手順の概要を説明します。このコースを進めるにつれて、各ステップをさらに深く掘り下げ、さまざまなアルゴリズムとテクニックを探索し、現実世界の問題に機械学習を適用する実践的な経験を積みます。

1.5 ML application (L01: What is Machine Learning)
1.5 ML application (L01: What is Machine Learning)
  • 2020.09.06
  • www.youtube.com
This video is about the main steps for approaching a machine learning application along with a categorization with the different aspects of machine learning ...
 

1.6 ML モチベーション (L01: 機械学習とは)



1.6 ML モチベーション (L01: 機械学習とは)

以前、機械学習の問題を解決するアプローチについて説明しました。このプロセスには、当面の問題を定義することから始まるいくつかのステップが含まれていました。私たちは、作業に適したデータセットを収集または見つけることの重要性を強調しました。データセットを取得したら、問題に取り組むためのアルゴリズムまたはアルゴリズム クラスを選択します。次に、モデルを効果的にトレーニングするための最適化メトリクスを定義する必要がありました。トレーニング後、評価メトリクスを使用してモデルのパフォーマンスを評価します。

次に、さまざまな機械学習のアプローチと機械学習の使用の背後にある動機について簡単に調査しました。ワシントン大学のペドロ・ドミンゴス教授は、これらのアプローチを象徴主義者、コネクショニスト、進化論者、ベイジアン、アナロライザーの 5 つの部族に分類しました。各トライブは、モデル、評価部分 (目的関数)、および最適化アプローチに対して選択された異なる表現を表します。

たとえば、コネクショニスト族は、選択したモデル表現としてニューラル ネットワークを使用します。二乗誤差またはクロスエントロピーを目的関数として最適化し、最適化アプローチとして勾配降下法または逆伝播法を採用します。同様に、進化族は、遺伝的プログラムをモデル表現として使用し、最適化のために遺伝的検索を利用します。ベイジアン族は、事後確率を最大化するためにグラフィカル モデルと確率的推論を採用します。

これらの例では、機械学習へのさまざまなアプローチの概要を示します。これらのカテゴリはすべてを網羅しているわけではなく、各部族のほんの数例を示しているだけであることに注意することが重要です。

機械学習の動機に関する別の視点は、デシジョン ツリーとランダム フォレストに関する研究で知られる影響力のある統計学者、レオ ブライマンによって提示されています。彼は、予測と情報という 2 つの文化の考え方を導入しました。予測文化は、入力変数と出力変数の間の基礎的な関係を必ずしも理解することなく、機械学習を使用して正確な予測を行うことに重点を置いています。一方、情報文化は知識を抽出し、変数間の関係の性質を理解することを目的としています。

ブライマン氏は、すべてのモデルは間違っているが、いくつかのモデルは有用であると述べました。これは、モデルの解釈可能性とパフォーマンスの間のトレードオフを浮き彫りにします。単純なモデルは解釈が容易ですが、高いパフォーマンスを達成できない可能性があります。一方、より複雑なモデルはパフォーマンスが向上する可能性がありますが、解釈が難しくなります。

さらに、機械学習を勉強するにはさまざまな動機があります。エンジニアは多くの場合、現実世界の問題を解決するために機械学習を適用することに重点を置きますが、数学者、コンピューター科学者、統計学者は機械学習理論の開発により興味を持っている場合があります。神経科学者は人間の脳をより深く理解し、その機能にヒントを得たアルゴリズムを開発するために機械学習を研究するかもしれません。

さらに、AI、機械学習、ディープラーニングの関係についても議論しました。機械学習は AI の一分野として登場し、ディープラーニングは機械学習の一分野です。ディープラーニングは特に多層ニューラルネットワークに焦点を当てており、それを超えて拡張されています。ディープ ラーニングは、ニューラル ネットワークのブランド変更と考えることができます。 AI システムは、自動運転車やチェスのプログラムなど、ルールを通じて知能を発揮する非生物学的なシステムです。 AI システムは機械学習技術を使用せずに開発できるため、機械学習は AI の要件ではありません。

最後に、このコースでは主に機械学習を取り上げますが、AI とディープ ラーニングは異なるコンテキストに分類され、他のコースで検討される可能性があると述べました。

機械学習の分野では、機械学習モデルの実装と操作に広く使用されている人気のあるプログラミング言語とライブラリがいくつかあります。これらのツールはさまざまな機能を提供し、研究者や実務者が機械学習モデルを開発、トレーニング、評価しやすくするように設計されています。

機械学習の分野で最もよく使用されるプログラミング言語の 1 つは Python です。 Python は、機械学習に特化したライブラリの豊富なエコシステムを提供する、多用途で習得が簡単な言語です。これらのライブラリは、さまざまな機械学習アルゴリズムの効率的な実装に加え、データ操作、視覚化、評価のためのツールを提供します。

機械学習用の人気のある Python ライブラリには次のようなものがあります。

  1. NumPy: NumPy は、Python の科学計算用の基本ライブラリです。これは、大規模な多次元配列と行列のサポートと、これらの配列を効率的に操作するための数学関数のコレクションを提供します。 NumPy は、他の多くの機械学習ライブラリの基盤です。

  2. Pandas: Pandas は、強力なデータ操作および分析ライブラリです。表形式データなどの構造化データを効率的に処理するためのデータ構造と関数を提供します。 Pandas は、データを機械学習モデルに入力する前に前処理およびクリーニングする場合に特に役立ちます。

  3. Scikit-learn: Scikit-learn は、分類、回帰、クラスタリング、次元削減などのための幅広いアルゴリズムとツールを提供する包括的な機械学習ライブラリです。統一されたインターフェイスを提供し、一貫した API に従っているため、さまざまなアルゴリズムを試してパフォーマンスを比較することが簡単になります。

  4. TensorFlow: TensorFlow は、数値計算と機械学習のために Google によって開発されたオープンソース ライブラリです。特に深層学習に焦点を当てた、さまざまなタイプの機械学習モデルを構築およびトレーニングするための柔軟なアーキテクチャを提供します。 TensorFlow は、ニューラル ネットワークの構築とトレーニングのプロセスを簡素化する Keras と呼ばれる高レベル API を提供します。

  5. PyTorch: PyTorch は、動的な計算グラフと Python とのシームレスな統合を提供する、もう 1 つの人気のある深層学習ライブラリです。柔軟性と使いやすさで知られており、深層学習プロジェクトに取り組む研究者や実践者にとって好ましい選択肢となっています。 PyTorch は、事前トレーニングされたモデルとモデル展開用のツールの豊富なエコシステムも提供します。

これらは、Python での機械学習に利用できる多くのツールのほんの一例です。プロジェクトの特定の要件に応じて、ニーズを満たす他のライブラリやフレームワークを検討することもできます。この分野の最新の開発情報を常に最新の状態に保ち、目的や好みに最も適したツールを選択することが重要です。

Python に加えて、R や Julia などの他のプログラミング言語にも専用の機械学習ライブラリとエコシステムがあります。特に R は統計分析に広く使用されており、機械学習用のパッケージが豊富に揃っています。一方、Julia は数値計算用に特別に設計された言語であり、機械学習用の高性能ライブラリを提供します。

このコース全体を通じて、主に Python とその関連ライブラリの使用に焦点を当てます。これらのライブラリは、機械学習アルゴリズムを探索および実装するための強力で柔軟な環境を提供します。ただし、このコースで説明する概念と原則は、他のプログラミング言語やツールにも適用できます。

これにより、私たちが使用するツールと、機械学習の分野におけるそれらの重要性の概要が理解できれば幸いです。さらにご質問や説明が必要な場合は、お気軽にお問い合わせください。

1.6 ML motivation (L01: What is Machine Learning)
1.6 ML motivation (L01: What is Machine Learning)
  • 2020.09.06
  • www.youtube.com
This video is mainly about the different perspectives and motivations regarding studying machine learning.-------This video is part of my Introduction of Mac...
 

2.1 NN の概要 (L02: 最近傍法)



2.1 NN の概要 (L02: 最近傍法)

皆さんこんにちは、そしておかえりなさい!最初の一週間が素晴らしいものだったことを願っています。これまで説明した内容を簡単にまとめてみましょう。講義 1 では、機械学習の概念を紹介し、最も一般的な質問であるクラス プロジェクトについて話し合いました。プロジェクトについては近日中に別途お知らせいたします。 1 つ言及しておきたいのは、Piazza でプロジェクトのチーム メンバーを検索できる機能を有効にしたことです。詳細については、別途お知らせいたします。

さて、講義 2 に進みましょう。今日は主に、古典的な機械学習アルゴリズムであり、現在でも広く使用されている k 近傍 (KNN) アルゴリズムに焦点を当てます。機械学習アルゴリズムの仕組みを理解できるため、これは機械学習への最も穏やかで簡単な入門書であると考えています。 KNN はもはや最も人気のあるアルゴリズムではないかもしれませんが、プロジェクトに組み込むことを強くお勧めします。これは、分類タスクのパフォーマンス ベンチマークとして機能し、さらには連続出力の予測にも役立ちます。 KNN は、予測精度と計算効率に関する洞察を提供します。

計算面について言えば、KNN がどのように機能するかを説明するとともに、Big O 記法の概念についても触れます。この表記法は、コンピューター サイエンスでさまざまなアルゴリズムの効率を分析するためによく使用されます。専門的に聞こえるかもしれませんが、Big O 記法を理解することは、機械学習だけでなく一般的なプログラミングにも役立ちます。

この講義の終わりに向けて、Python での例をいくつか示し、KNN の利用方法を示します。ただし、これは概要であり、インストールや、NumPy や scikit-learn などの主要なライブラリを含む Python については、講義 3 でさらに詳しく説明します。

それでは、講義2を始めましょう! KNN の紹介も含め、主に最近傍法に焦点を当てます。より親しみやすいものにするために、講義を 6 つの部分に分けて構成しました。

  1. 最近傍法の応用: Web 使用状況データ マイニング、生体認証、画像分類、タンパク質分析など、KNN の現実世界への応用を検討します。これらの例は、トピックの動機付けに役立ちます。

  2. 1 つの最近傍法: KNN について説明する前に、最も単純なケースである 1 つの最近傍法について説明します。この方法には、クエリ ポイントに最も類似したデータ ポイントを見つけて、そのラベルを予測として使用することが含まれます。

  3. 最近傍法の決定境界: 最近傍法がどのように決定境界を決定するかを検討し、その内部動作をより深く理解できるようにします。

  4. K 最近傍法の紹介: KNN に移行します。KNN では、1 つだけではなく複数の最近傍を考慮します。 K 最近傍分類器とリグレッサーについて説明します。

  5. K 最近傍アルゴリズムの Big O 実行時の複雑さ: Big O 表記を使用して KNN の計算効率を調査します。このトピックは、アルゴリズムのパフォーマンスを分析するために重要です。

  6. K 最近傍アルゴリズムの改善: このパートでは、KNN のパフォーマンスを向上させるためのアイデアとコツを紹介します。このセクションでは、アルゴリズムの最適化に焦点を当てます。

これらの概念的な部分を説明した後、Python での KNN のアプリケーションに進みます。これが最も楽しい部分である人もいるかもしれませんが、実際の実装に入る前に、まず概念を理解することが重要です。

次の講義である講義 3 では、Python のインストールについて詳しく説明し、NumPy や scikit-learn などの主要なライブラリについて説明します。ぜひご期待ください!講義 2 を始めましょう。ここでは最近傍法と K 最近傍アルゴリズムを検討し、トレーニング セット内のすべてのデータ ポイントに対してこのプロセスを続けます。ループの終わりまでに、クエリ ポイントに最も近いデータ ポイントが特定されます。

最も近い点を見つけた後、そのラベルをクエリ ポイントの予測ラベルとして使用します。分類問題では、ラベルはクラスまたはカテゴリを表すカテゴリ値であることがよくあります。回帰問題では、ラベルは連続値です。

最近傍アルゴリズムの予測ステップを要約すると、次のようになります。

  1. 最も近い距離を無限大として初期化し、最も近い点をなしとして初期化します。
  2. トレーニング セット内の各データ ポイントについて:
    • 現在のデータ ポイントとクエリ ポイントの間の距離を計算します。
    • 距離が最も近い距離より小さい場合:
      • 現在の距離で最も近い距離を更新します。
      • 最も近いポイントを現在のデータ ポイントとして設定します。
  3. 最も近い点のラベルをクエリ ポイントの予測ラベルとして使用します。

1 つの最近傍メソッドについて説明したので、k 個の最近傍メソッドのより一般的なケースに移りましょう。 k 最近傍アルゴリズムは、最も近いデータ ポイントを見つけるという概念を、k 個の最も近いデータ ポイントを見つけるまで拡張します。最近傍のみを考慮するのではなく、クエリ ポイントに最も近いトレーニング セット内の k データ ポイントを考慮します。

分類の場合、予測ラベルは k 個の最近傍間の多数決によって決定されます。各近隣の投票は均等に重み付けされ、投票数が最も高いクラスが予測ラベルになります。

回帰問題の場合、予測されるラベルは、多くの場合、k 個の最近傍のラベルの平均または中央値になります。ラベルを組み合わせる具体的な方法は、問題の性質と望ましい結果によって異なります。

最近傍法の決定境界を説明するために、2 次元の特徴空間を考えてみましょう。クラス 0 とクラス 1 の 2 つのクラスがあり、それぞれ異なる記号 (三角形や四角形など) で表されます。決定境界は、異なるクラスの領域を分離する線または曲線です。

1 つの最近傍法の場合、決定境界はトレーニング データ ポイントの輪郭に従います。特徴空間内の各ポイントは、最も近いトレーニング データ ポイントのラベルに基づいて分類されます。決定境界は滑らかな曲線ではなく、各トレーニング ポイントの周囲の小さな領域の集合です。

k が 1 より大きい場合に k 最近傍法を使用すると、決定境界がより滑らかになります。より多くの隣接点を考慮すると、個々のトレーニング データ ポイントの影響が減少し、より一般化された境界が得られます。決定境界は、k 個の最近傍の多数決によって決定され、クラス間のよりスムーズで連続的な分離につながります。

決定境界の概念を理解することは、k 最近傍アルゴリズムのパフォーマンスと制限を評価する際に重要です。決定境界の形状と複雑さは、新しいデータ ポイントを正確に分類または予測するアルゴリズムの能力に影響を与える可能性があります。

k 最近傍アルゴリズムについて説明することに加えて、アルゴリズムの効率性についても触れます。 Big O 表記は、さまざまなアルゴリズムの効率を分析および比較するための一般的な方法です。これはアルゴリズムの時間計算量の尺度を提供し、入力サイズの増加に伴って実行時間がどのように増加するかを示します。

k 最近傍アルゴリズムの実行時の複雑さを分析すると、その計算効率を理解するのに役立ちます。このトピックについて簡単に説明し、アルゴリズムの効率が大規模なデータセットのパフォーマンスにどのような影響を与えるかについて説明します。

この講義の終わりに向けて、Python を使用して k 最近傍アルゴリズムを実装する実践例について詳しく説明します。分類タスクと回帰タスクにアルゴリズムを使用する方法を示し、実際のシナリオでのアプリケーションを紹介します。ただし、実装に取り掛かる前に、k 最近傍の基礎となる概念と原則を理解することが重要です。

要約すると、講義 2 では、最近傍アルゴリズムの単純なケースとして 1 つの最近傍法を取り上げました。アルゴリズムがクエリ ポイントに最も近いデータ ポイントを決定する方法と、最も近いポイントのラベルを予測に使用する方法を調査しました。また、最近傍法における決定境界とその形状の概念も導入しました。さらに、1 つだけではなく複数の最近傍を考慮する k 最近傍アルゴリズムについても説明しました。分類問題では多数決によって、回帰問題では平均値または中央値によって予測ラベルがどのように決定されるかについて説明しました。さらに、Big O 表記法と、k 最近傍アルゴリズムなどのアルゴリズムの効率を分析する際のその応用についても簡単に触れました。

次回の講義 3 では、Python を使用した k 最近傍アルゴリズムの実装について詳しく説明します。このアルゴリズムを効果的に利用するために必要な手順、ライブラリ、およびテクニックについて説明します。それでは、次回の講義にもぜひご参加ください。

2.1 Introduction to NN (L02: Nearest Neighbor Methods)
2.1 Introduction to NN (L02: Nearest Neighbor Methods)
  • 2020.09.08
  • www.youtube.com
This first video of lecture 2 introduces nearest neighbor methods, going over some applications of nearest neighbors and covering the 1-nearest neighbor algo...
 

2.2 最近傍決定境界 (L02:最近傍法)



2.2 最近傍決定境界 (L02:最近傍法)

この 2 番目のビデオでは、特に 1 つの最近傍分類子に焦点を当てて、最近傍アルゴリズムの決定境界を調べます。人間にとって視覚化しやすいため、説明のために 2 次元のデータセットを使用します。

データセットは、青い点で表される 5 つのデータ ポイントで構成されます。点 A と B を拡大して、それらの間の決定境界を調べてみましょう。決定境界は、点 A と B を分ける線または境界です。1 つの最近傍モデルをデータセットに適合させると、この決定境界はどのように見えるでしょうか?

この質問に答えるには、等距離の概念を理解する必要があります。決定境界上にある点は、点 A と B から等距離にある必要があります。少しビデオを一時停止して、決定境界がどのようになるかを考えてください。点 A と B の決定境界は、ユークリッド距離計量を使用して描かれた線になります。この直線上の点は点 A および B から等距離にあります。つまり、直線上の点と点 A および B の間の距離は直線上のどこでも同じです。次に、点 A と C に進み、それらの決定境界を決定しましょう。点 A と C の決定境界は、A と C を結ぶ線に垂直な線になります。この線上のすべての点は、点 A と C から等距離にあります。

C と D など、データセット内のすべての点のペアに対してこの演習を継続して、それぞれの決定境界を決定できます。点のペアごとにこれらすべての決定境界を組み立てることにより、右下隅に示すように、1 つの最近傍分類器の決定境界が得られます。

この図をよく見ると、ボロノイ図またはボロノイ テッセレーションに似ていることに気づくかもしれません。この図はデータセットを領域に分割しており、各領域は点のペア間の決定境界に対応しています。境界線上の各点は、隣接する 2 つの点から等距離にあります。

しかし、まだ終わっていません。前のスライドでは、実際のクラス ラベルを考慮せずに、決定領域のみを示しました。次に、クラス ラベルをデータセットに再導入しましょう。三角形はクラス 1 を表し、四角形はクラス 0 を表します。

1 最近傍アルゴリズムが分類に使用する決定領域を取得するには、同じクラス ラベルに属する領域の結合を取得する必要があります。たとえば、赤い三角形には、赤い三角形の最近接点に対応する境界によって囲まれた決定領域があります。同様に、青い四角には独自の決定領域があります。これらの領域をそれぞれの色で塗りつぶすことにより、1 つの最近傍分類器の決定境界が得られます。

理解度をテストするために、簡単な質問をしてみましょう。データセット内に 5 つのデータ ポイントがあるとすると、疑問符のポイントに最も近いポイントはどれですか?少しビデオを一時停止して、答えを考えてください。この質問に答えるには、近さを判断するために使用される距離の尺度についての知識が必要です。この場合、ユークリッド距離を使用していますが、他の距離尺度も使用できます。選択した距離測定値に応じて、疑問符の点に最も近い点が異なる場合があります。

ビデオでは、ユークリッド距離とマンハッタン距離という 2 つの距離測定が示されています。ユークリッド距離は 2 点間の直線距離を測定し、マンハッタン距離は座標間の絶対差を合計することによって距離を測定します。

さらに、ビデオでは、特徴の分布を考慮したマハラノビス距離について簡単に言及しています。データ ポイントからその分布までの距離を標準偏差の観点から考慮します。 2 つのベクトル間の角度を測定するコサイン類似度も距離の尺度として言及されています。

実際には、距離測定の選択は、特定の問題とデータセットの特性によって異なります。これは、目前の問題に基づいて慎重に選択する必要がある最近傍アルゴリズムのハイパーパラメーターと考えることができます。

次に、1 最近傍アルゴリズムの拡張である k 最近傍アルゴリズムについて説明します。 k 最近傍アルゴリズムでは、最も近い点だけを考慮するのではなく、クエリ点に最も近い k 個の点を考慮します。 k 最近傍アルゴリズムの決定境界は、投票メカニズムによって決定されます。特定のクラスの決定領域内の各ポイントは、そのクラスの投票に寄与します。 k 個の最近傍クラスの中で最も投票数が多いクラスが、クエリ ポイントの予測クラスとして割り当てられます。

たとえば、緑色の星で表されるクエリ ポイントがあるとします。 3 最近傍アルゴリズムを使用する場合は、クエリ ポイントに最も近い 3 つの点を調べます。これらの点のうち 2 つがクラス 0 に属し、1 つがクラス 1 に属している場合、多数決によりクエリ ポイントがクラス 0 に割り当てられます。同様に、k の値を 5 に増やすと、クエリに最も近い 5 つの点が考慮されます。点。これらのポイントのうち 3 つがクラス 1 に属し、2 つがクラス 0 に属する場合、多数決によりクエリ ポイントがクラス 1 に割り当てられます。

k の値の選択は、k 最近傍アルゴリズムにおいて重要な考慮事項です。 k の値が小さいと、アルゴリズムがデータの局所的な変動に敏感になりすぎるオーバーフィッティングにつながる可能性があります。一方、k の値が大きいとアンダーフィッティングが発生する可能性があり、決定境界が滑らかになりすぎて詳細を捕捉できなくなります。他のアルゴリズムと同様に、トレードオフがあり、k の選択はデータセットと当面の問題によって異なります。 k のさまざまな値を実験し、交差検証などの手法を使用して最適な値を見つけるのが一般的です。

k 最近傍アルゴリズムは、k 個の最近傍点を考慮することによって 1 最近傍アルゴリズムを拡張します。決定境界は、k 個の最近傍のクラス ラベルに基づく投票メカニズムによって決定されます。 k の選択は、過学習と過小学習のバランスをとるために慎重に選択する必要があるハイパーパラメーターです。

2.2 Nearest neighbor decision boundary (L02: Nearest Neighbor Methods)
2.2 Nearest neighbor decision boundary (L02: Nearest Neighbor Methods)
  • 2020.09.08
  • www.youtube.com
This second video covers the intuition behind the 1-nearest neighbor's decision boundary. Also, it lists some of the common distance measures.-------This vid...
 

2.3 K 最近傍法 (L02:最近傍法)



2.3 K 最近傍法 (L02:最近傍法)

前回のビデオで、これまでに説明したすべての距離測定が指標であるわけではないことを述べました。たとえば、コサイン類似度は三角不等式を満たさないため、適切な指標とは見なされません。三角不等式は、A と C で示される 2 つのデータ ポイント間の距離が、A と B、および B と C の間の距離の合計以下でなければならないことを示しています。ただし、コサインは適切な測定基準ではありませんが、類似性は、特定の状況において実際に依然として非常に役立ちます。

ここで、k 最近傍法 (k-NN) アプローチを詳しく見てみましょう。これは、以前に説明した 1 最近傍法を拡張したものです。 k-NN モデルは、1 つだけではなく複数の最近傍を考慮することで 1 つの最近傍法を一般化するため、比較的単純です。

このビデオでは、k-NN モデルの例を紹介します。 x1 と x2 という 2 つのフィーチャと、十字、円、三角形で表されるさまざまなクラスを持つおもちゃのデータセットがあります。私たちの目標は、中央の疑問符で示されたデータ ポイントを分類することです。予測を行うには、ユークリッド距離測定を使用して、疑問符の周囲の特定の半径内のデータ ポイントを考慮します。

さて、問題は、与えられた例に対するこの k-NN アプローチの k の値は何になるでしょうか?少し考えてみると、分類したい点に最も近い 5 つのデータ ポイントを考慮しているため、k は 5 であることがわかります。

5 つの最近傍を考慮して、各クラスの出現をカウントします。たとえば、三角形が 1 つ、円が 1 つ、十字が 3 つ見つかった場合、多数決により、予測されたクラス ラベルがクエリ ポイントに割り当てられます。この場合、5 つの最近傍の中で最も多く出現するため、予測されるクラス ラベルは三角形になります。

k-NN では厳密には「複数投票」と呼ばれますが、実際には一般に「多数決」と呼ばれます。投票プロセスで同数の場合、つまり複数のクラスが同じカウントを持つ場合、ソフトウェア パッケージは通常、ランダムに 1 つのラベルを選択するか、より低いクラス ラベル インデックスを持つラベルを選択します。

多数決のより正式な定義を提供するために、k 個の最近傍を表すサブセット D sub k を考えてみましょう。多数決をデルタ関数の合計を最大化するクラス ラベル (y) として定義します。デルタ関数は、a が b (ラベルと一致) に等しい場合は 1 を返し、それ以外の場合は 0 を返します。各近傍のデルタ値を合計することで、最も頻繁に発生するクラス ラベルを見つけることができます。

k-NN を使用した回帰分析の場合、プロセスはより簡単です。クラスラベルの代わりに、連続的な目標値を扱います。 k-NN 回帰の予測 (h) は、k 個の最近傍のターゲット値の平均です。

次のビデオでは、k 最近傍アルゴリズムの実行時の複雑さの分析を含む Big O 分析のトピックについて詳しく説明します。アルゴリズムの効率を理解することは、そのパフォーマンスとスケーラビリティを評価するために重要です。 Big O 分析は、入力サイズの増加に伴ってアルゴリズムの実行時間がどのように増加するかを推定する方法を提供します。この分析は、アルゴリズムの選択と最適化について情報に基づいた意思決定を行うのに役立ちます。

k 最近傍アルゴリズムで Big O 分析を実行するには、トレーニング インスタンスの数 (n) と特徴の数 (d) という 2 つの主な要素を考慮する必要があります。これらの要因により、特定のクエリ ポイントの k 個の最近傍を見つけるための計算コストが決まります。

k 最近傍の最も単純な実装では、クエリ ポイントとすべてのトレーニング インスタンスの間の距離を計算し、時間計算量は O(nd) になります。これは、アルゴリズムの実行時間がトレーニング インスタンスの数と機能の数に応じて直線的に増加することを意味します。

ただし、k 最近傍アルゴリズムを最適化し、計算コストを削減する方法はあります。一般的なアプローチの 1 つは、kd ツリーやボール ツリーなどの最近傍検索を高速化するデータ構造を使用することです。これらのデータ構造はトレーニング インスタンスを階層的に分割し、より効率的な近傍検索を可能にします。

これらのデータ構造を使用すると、検索時間を O(log n)、場合によっては O(1) まで短縮することができます。この改善により、特に大規模なデータセットの場合、アルゴリズムが大幅に高速化されます。

距離メトリックの選択はアルゴリズムの実行時の複雑さにも影響することに注意することが重要です。ユークリッド距離などの一部の距離メトリックは効率的に計算できますが、マンハッタン距離などの他の距離メトリックはより多くの計算リソースを必要とする場合があります。

時間計算量に加えて、k 最近傍アルゴリズムの空間計算量も考慮する必要があります。空間複雑度は、トレーニング インスタンスと効率的な近傍検索に使用される追加のデータ構造を保存するために必要なメモリの量を指します。空間複雑さは、最適化された実装では通常 O(nd) または O(n) です。

全体として、k 最近傍アルゴリズムの実行時間と空間の複雑さを理解することは、大規模なデータセットやリアルタイム アプリケーションを扱うときにそのスケーラビリティを評価し、情報に基づいた意思決定を行うのに役立ちます。

次のビデオでは、これらの概念をさらに検討し、アルゴリズムの効率のより詳細な分析を提供します。 k 最近傍の Big O 解析に関する詳細な議論にご期待ください。

2.3 K-nearest neighbors (L02: Nearest Neighbor Methods)
2.3 K-nearest neighbors (L02: Nearest Neighbor Methods)
  • 2020.09.08
  • www.youtube.com
This third video extends the 1-nearest neighbor concepts to the k-nearest neighbors method for classification and regression.-------This video is part of my ...