ホームページ > バックエンド開発 > Python チュートリアル > 機械学習とその先の詳細: 機械学習 A-Z

機械学習とその先の詳細: 機械学習 A-Z

王林
リリース: 2024-07-26 17:42:34
オリジナル
701 人が閲覧しました

onths of Machine Learning and beyond: Machine Learning A-Z

導入

去年の夏に機械学習をきちんと勉強し始める前に、すでにいくつかの機械学習コースを Udemy で購入しました。そのコースの中で最も基本的なのが機械学習 A-Z: AI、Python & R でした。これが私の出発点となりました。このコースは、この分野への完璧な入門として機能し、古典的な機械学習テクニックといくつかの深層学習を幅広くカバーしました。

コースの感想

通常、私たちはプログラマーとして、構造化データを扱います。しかし、世界は本質的に乱雑です。機械学習は、非構造化情報を扱うための非常に貴重なツールであることが証明されています。このコースには、まるでスーパーパワーを手に入れたかのようなまったく新しいアプローチの世界が紹介されていたので、とても感銘を受けました。

コース内容

このコースでは、機械学習のプロセスを段階的に説明します。プロセスの最初の重要な段階はデータの前処理であり、アルゴリズムが適用される前に行われます。

データの前処理

前処理の最初は データ分割です。データセットを トレーニング検証、および テスト セットの 3 つの部分に分割するのが一般的です。 トレーニング セットはモデルのトレーニングに使用され、検証セットはトレーニング中の過学習の評価に役立ち、テスト セットはトレーニング後のモデルのパフォーマンスを評価するために使用されます。トレーニング。

欠損データの処理も重要な側面です。状況と欠落しているデータの量に応じて、主に 2 つのオプションがあります:

  • 他のデータポイントに基づいて欠損値を代入する
  • データが欠落している行を完全に削除する

さらに、一部の機械学習アルゴリズムは入力データのスケールに敏感であるため、特徴スケーリングを実行することが多くの場合重要です。たとえば、K 最近傍 (K-NN) などのデータ ポイント間の距離を計算するアルゴリズムは、これを補償するようにデータが調整されていない場合、より大きなスケールの変数に偏ることになります。特徴スケーリングは、独立変数の範囲が分析に均等に寄与するようにするのに役立ちます。これは、正規化や標準化などの方法を通じて行うことができます。正規化では、特徴量が固定範囲 (通常は 0 から 1) に再スケーリングされます。標準化では、すべての特徴量が平均 0、標準偏差 1 になるように調整されます。

これらの前処理ステップは、現実世界のシナリオで適切に機能する堅牢な機械学習モデルを作成するために必要です。

古典的な機械学習モデル

回帰

回帰モデルは、1 つ以上の入力変数に基づいて連続的な結果を予測するために使用される統計ツールの一種です。これらは、変数間の関係の強さを予測および決定するための基礎となります。これらのモデルは、観察されたデータに最も適合する方程式を作成することによって機能します。私は何年も前に受講した統計コースで、回帰モデル、特に 線形回帰 についてすでにいくつかの経験がありました。

多項式回帰 は、1 より大きいべき乗の項を追加することで線形回帰を拡張します。これにより、モデルはより広範囲のデータ形状に適合し、変数間のより複雑な関係を捉えることができます。ただし、多項式の次数が高くなると、モデルがトレーニング データに近づきすぎて、目に見えないデータのパフォーマンスが低下する過学習が発生する可能性があります。これは、モデルがトレーニング データからノイズを学習し、それを実際の関係性と誤認するために発生します。

次に、このコースでは、サポート ベクトル回帰 (SVR) を紹介します。これは、過剰適合のリスクが低い非線形関係をカプセル化し、指数関数的な関係をモデル化できる強力なモデルです。 SVR の主な目的は、ほとんどのデータ ポイントにできるだけ適合する予測線を作成し、同時に線を可能な限り滑らかで平坦に保つことです。言い換えれば、SVR は、トレーニング データを厳密に追跡することと、新しい未知のデータではうまく機能しない可能性がある過度に複雑なモデルを回避することとの間でバランスを取ろうとします。これは、偏差が許容される範囲内で、わずかな誤差を許容することによって行われます。これにより、SVR は、特にデータが複雑であるか変動性が大きい場合に、連続値を予測するための強力な選択肢となります。

その後、ディシジョンツリーランダムフォレストが導入されます。これらの手法は通常、分類で知られていますが、回帰設定にも適用できます。このコースでは、データ特徴から推論された決定ルールに基づいて、これらのモデルがどのように出力を予測できるかについて説明します。 デシジョン ツリーランダム フォレスト は、データセット内の特徴からの一連の二分決定に基づいてモデルを作成します。このアプローチでは、トレーニング データにはうまく適合するモデルが得られる可能性がありますが、意思決定プロセスは恣意的であり、必ずしも変数間の基礎的な数学的関係を捉えているわけではないため、新しいデータに一般化できない可能性があります。

一方、SVR多項式回帰 などの手法は、データに固有の数学的関係を特定することを目的としています。たとえば、SVR は、一定の誤差範囲内で可能な限り最良の曲線を当てはめようとし、多項式回帰では、多項式に従う関係をモデル化できます。変数間の真の関係が数学的である場合、これらの方法は、過学習のリスクが少なく、パフォーマンスが向上する可能性があります。数学的関係を明らかにして活用するこの機能により、基礎となるデータの関係が強力かつ明確な場合、SVR線形、および 多項式回帰 が結果を予測するための堅牢性が高まります。

回帰におけるモデルの選択

回帰に関するセクションは、最適なモデルを選択するための戦略で終わります。真に最適なモデルを選択するには実験が唯一の方法であるため、さまざまなアプローチを実験し、テスト データでそのパフォーマンスを評価することをお勧めします。

分類

分類には、入力変数に基づいてカテゴリカル応答を予測することが含まれます。

ロジスティック回帰 は、その名前とは異なり、基本的な分類手法であり、二項分類問題に最適です。これは、はい/いいえ、真/偽など、2 つの可能な状態を持つ結果を予測するために使用されます。これは、入力特徴の関数として、通常 1 とラベル付けされるデフォルト クラスの確率をモデル化することによって機能します。 ロジスティック回帰 は、ロジスティック関数を線形方程式の出力に適用し、0 と 1 の間の確率スコアを生成します。このモデルは、二値分類問題に対して堅牢かつ単純で効率的です。

コースの次のモデルは K-Nearest Neighbors (K-NN) です。これは、近隣データの分類方法に基づいてデータ ポイントを分類し、マルチクラスの問題やより複雑な決定境界を処理できます。

このコースでは、分類のための サポート ベクター マシン (SVM) も取り上げ、線形分類と非線形分類を処理するためのさまざまなカーネルの使用について説明します。 サポート ベクター マシン は、多次元空間に超平面を構築して、異なるクラスを分離します。 SVM は高次元空間で優れたパフォーマンスを発揮します。超平面をデータにより適応させるためにさまざまなカーネル関数を使用できるため、多用途です。たとえば、線形カーネルは線形分離可能なデータに最適ですが、動径基底関数 (RBF) カーネルは非線形関係をマッピングできます。

クラスタリング

分類とクラスタリングはどちらもデータを整理する方法ですが、目的が異なります。分類は、ラベル付きデータでモデルをトレーニングする教師あり学習アプローチです。これは、モデルがすでにカテゴリまたはクラスが割り当てられている例から学習することを意味します。そのタスクは、学習した内容に基づいて新しいデータのカテゴリを予測することです。たとえば、分類モデルは、それに応じてラベル付けされた電子メールのデータセットを使用したトレーニングに基づいて、電子メールがスパムであるかどうかを判断する可能性があります。

一方、

クラスタリングは教師なし学習手法であり、同じグループ内のオブジェクトが他のグループのオブジェクトよりも互いに類似するようにオブジェクトのセットをグループ化することが含まれます。 。データに事前定義されたラベルがない場合に使用されます。モデル自体がデータ内の固有のグループ化を検出します。クラスタリングの例としては、さまざまな顧客タイプに関する事前知識がなくても、購買行動に基づいて顧客をグループに分類することが考えられます。

どちらの方法もデータ分析の基本です:

  • 分類では、予測モデリングにラベル付きデータが使用されます。
  • クラスタリングは、データ内の隠れたパターンを発見するのに役立ちます。

クラスタリング手法

K-Means は、特徴に基づいてデータを K 個の重複しないクラスターに分割する一般的なクラスタリング手法です。このプロセスには、K 点をクラスター中心としてランダムに初期化し、ユークリッド距離に基づいて各データ ポイントを最も近いクラスターに割り当てることが含まれます。次に、クラスターの中心が割り当てられた点の平均として再計算され、重心が安定して大きく動かなくなるまでこのプロセスが繰り返されます。この方法は大規模なデータセットに特に効果的であり、そのシンプルさと効率性により広く使用されています。 K-Means は、クラスターが球形でサイズが均一であるデータで最も効果的に機能しますが、複雑なクラスター形状では効果が低くなります。

階層クラスタリングは、K-Meansとは異なり、クラスターの数を事前に指定する必要はありません。分割的方法または凝集的方法のいずれかによってクラスターの階層を構築します。

集合的アプローチでは、各データ ポイントは独自のクラスターとして開始され、階層が上に進むにつれてクラスターのペアがマージされます。このプロセスは、すべてのポイントが階層の最上位にある単一のクラスターにマージされるまで続きます。この方法は、データ ポイント間の類似性レベルを識別するのに有益であり、樹状図を使用して視覚的に表現されます。樹状図を適切なレベルで切断することでクラスターの数を決定するのに役立ちます。

階層型クラスタリングの分割法は、トップダウン クラスタリングとも呼ばれ、単一のクラスタ内のすべての観測値から開始し、徐々にクラスタを小さなクラスタに分割します。このアプローチは、階層の最上位から始まり、下に向かっていくため、概念的に簡単になります。すべての分割は、分割の各レベルで可能な限り最も明確で一貫したクラスターを作成するように設計されています。

実際には、分割法には、各ステップでクラスターを検査し、それを分割するのに最適な点を選択することが含まれます。これには、クラスター内の観測値間の距離を測定し、最大距離を分割点として特定することが含まれます。このプロセスは再帰的に続行され、各観測値が独自のクラスターになるまで、または指定されたクラスター数に達するまで、後続の各クラスターが分割されます。これは、分割ごとにデータの全体的なビューを必要とするため、一般に集合的アプローチよりも計算集約的であり、非常に大規模なデータセットではあまり使用されません。

階層的クラスタリングは、小規模なデータセットの場合や、生物科学や履歴データのクラスタリングなど、データ ポイント間の関係を詳しく調べる必要がある場合に特に役立ちます。

深層学習モデル

ディープ ラーニングは、多くの層を持つニューラル ネットワークを使用する機械学習のサブセットです。これは、古典的な機械学習手法とは大きく異なります。従来の機械学習は、多くの場合手動で選択および設計される特徴に焦点を当てていますが、ディープ ラーニングは、ニューラル ネットワークをトレーニングして特徴を学習することを目的としています。このモデルは、単純なパターンから複雑なパターンを構築することで、特徴抽出を自動化します。これにより、ディープ ラーニングは、入力データが高次元でデータ内の関係が複雑な画像認識や音声認識などのタスクに対して非常に強力になります。ただし、深層学習モデルをトレーニングするには膨大な量の情報が必要です。

人工ニューラルネットワーク

深層学習の基本要素は、前方高密度接続ニューラル ネットワーク、つまり人工ニューラル ネットワーク (ANN)です。これらのネットワークでは、ニューロンが層状に配置され、最初の層が入力データを受け取り、最後の層が出力を生成します。ある層の各ニューロンは次の層のすべてのニューロンに接続し、ネットワークを「密に接続」します。これらのニューロンには、トレーニング プロセス中にネットワークがデータから学習するときに調整される重みとバイアスがあります。各ニューロンの出力は、データ内の非線形関係をキャプチャする機能を導入する非線形活性化関数によって計算されます。

ANNニューロンの層は、重みとバイアスから構成されるベクトルで表すことができます。データは、行列乗算を使用してこれらの層を介して前方に伝播されます。各層の出力は、入力データに重み行列を乗算し、バイアス項を追加することによって計算されます。この出力は、次の層に送信される前にアクティベーション関数を通過します。

活性化関数はモデルに非線形性を導入し、ネットワークがデータ内の複雑な非線形関係を学習してモデル化できるようにするため、非常に重要です。非線形活性化関数がなければ、ネットワークはその深さに関係なく、線形境界しか学習できない単層パーセプトロンと同様に動作します。

畳み込みニューラル ネットワーク

基本的な ANN の代替手段は、畳み込みニューラル ネットワーク (CNN) です。すべての入力が各ニューロンに接続される密に接続されたネットワークとは異なり、CNN は大量のピクセルに対して動作し、フィルターを使用して、画像内のエッジなど、入力内で検出された特徴の存在を要約する特徴マップを作成します。これにより、CNN は、必要なパラメーターの数が減り、計算負荷が軽減されるため、空間階層を含むタスクに対して非常に効率的になります。

畳み込みニューラル ネットワーク は、画像などのグリッド状のトポロジーを持つデータを処理するための特殊な種類のニューラル ネットワークです。 CNN は、フィルターが入力上でスライドするときに畳み込み演算を実行するフィルターを使用して、入力内で検出された特徴の存在を要約する特徴マップを作成します。これにより、画像関連のタスクが非常に効率的になります。

CNN は、デジタル信号処理の基本技術である畳み込みの数学的演算を利用します。 DSP のコンテキストでは、畳み込みはフィルターによって信号を変更し、重要な特徴を抽出するために使用されます。同様に、CNN では、畳み込みには、画像にフィルターを適用して特徴マップを生成することが含まれます。このプロセスにより、ネットワークはフィルターに対応する画像内の類似点や特定の特徴を効果的に検出できるようになります。たとえば、フィルターはエッジや特定の形状を検出することを学習できます。

入力画像が連続した畳み込み層を通じて処理されると、CNN は各層で複数のフィルターを使用して、ますます複雑なパターンを検索します。最初のレイヤーは単純なエッジやテクスチャを検出できますが、より深いレイヤーはオブジェクトの一部やオブジェクト全体などのより複雑な特徴を認識できます。

勾配降下法とトレーニング ニューラル ネットワーク

勾配降下法 は、ニューラル ネットワークやその他の機械学習モデルのトレーニングに使用される基本的な最適化アルゴリズムです。これは、モデルのパラメーターを繰り返し調整して損失関数を最小化することで機能します。損失関数は、モデルの予測が実際のデータとどの程度一致するかを測定します。各ステップで、アルゴリズムはモデル パラメーターに関する損失関数の勾配を計算し、損失を低減する方向にパラメーターを移動します。

バックプロパゲーション は、ニューラル ネットワークでこれらの勾配を効率的に計算するために使用される手法です。これには 2 つのフェーズが含まれます:

  • フォワード パス。入力データがネットワークを介して渡され、予測が生成されます。
  • 後方パス。損失関数の勾配が予測に基づいて計算されます。その後、ネットワークを通じて伝播されて重みが更新されます。

このプロセスでは微積分の連鎖則を活用して勾配を推定し、全体の誤差への寄与に比例して各重みが確実に調整されます。 勾配降下法逆伝播法を併用すると、ニューラル ネットワークが反復的に精度を向上させることでデータから学習できるようになります。

損失関数

損失関数 は、トレーニング プロセスを導く上で重要な役割を果たします。コスト関数または誤差関数とも呼ばれます。ネットワークの予測出力と実際の目標値との差を定量化します。このメトリクスは、ネットワークのパフォーマンスの具体的な尺度を提供します。トレーニングの目標は、この損失を最小限に抑え、それによってモデルのパラメーターを最適化することです。

ANN で一般的に使用される損失関数は、タスクの特定の種類によって異なります。

  • 連続値を予測することが目的の回帰タスクでは、平均二乗誤差 (MSE) 損失がよく使用されます。 MSE は、予測値と実際の値の差の二乗平均を計算し、誤差が大きい場合にはより厳しくペナルティを与えます。
  • 出力がクラスラベルである分類タスクの場合、一般的に クロスエントロピー損失 が使用されます。この損失関数は、真のラベル分布とモデルによって提供される予測の間の非類似性を測定します。

勾配消失問題と ReLu

ディープ ニューラル ネットワークを構築する際の重要な課題の 1 つは、勾配消失問題です。トレーニング プロセスで使用される勾配が小さすぎると、重みの値が変更されなくなり、ネットワークがパラメーターを十分に更新できなくなる可能性があります。

この問題は、シグモイドまたはタン関数の活性化関数で特に顕著です。これを軽減するために、ディープラーニングはRectified Linear Unit (ReLu) 活性化関数を採用しました。 ReLu は ReLU(x)=max(0,x) として定義されます。ここで、x はニューロンへの入力を表します。この関数は、トレーニング中により強い勾配を維持するのに役立ち、勾配が消えることなくより深いネットワークが効果的に学習できるようにします。勾配の規模に影響を与えることなく非線形性を促進するこのシンプルさと効率により、ReLu は深層学習アーキテクチャで人気の選択肢となっています。

特殊な機械学習テクニック

コースは、それぞれが特定のアプリケーションやドメインに合わせて調整された、より専門化されたさまざまな機械学習技術に進みました。

自然言語処理

自然言語処理 (NLP) には、自然言語と音声の分析と合成への計算技術の適用が含まれます。 NLP に機械学習を使用する際の主な課題の 1 つは、テキスト データが本質的に構造化されておらず、高次元であることです。テキストは、機械学習アルゴリズムが処理できる数値形式に変換する必要がありますが、この作業は、構文、意味論、文脈などの言語のニュアンスによって複雑になります。

言葉の袋

Bag of Words (BoW) モデルは、単語の順序やコンテキストを無視して、ドキュメント内で各単語が出現する頻度をカウントすることでテキストを固定長ベクトルに変換することでこの問題に対処します。この方法はテキスト データを簡素化し、基本的な機械学習モデルで管理しやすくし、スパム検出やセンチメント分析などのテキスト分類タスクの基礎的な手法として機能します。ただし、BoW モデルの単純さ、語順と意味コンテキストの無視により、より複雑な言語タスクに対する有効性は制限されます。

UCB とトンプソン サンプリングによる強化学習

強化学習 (RL) は、エージェントが環境と対話することで意思決定を学習する機械学習の一種です。これは教師あり学習とは異なります。正しい入力/出力ペアが決して提示されず、次善のアクションが明示的に修正されることもありません。この戦略は、意思決定プロセスにおいて、探索、新しいことに挑戦すること、既知の情報を利用して活用することのバランスをとることによって進化します。

エージェントはポリシーに基づいてアクションを実行し、報酬または罰を通じてフィードバックを受け取り、長期的な報酬を最大化するためにポリシーを更新します。探索と活用のジレンマの管理に役立つ RL の 2 つの注目すべき戦略は、上限信頼限界 (UCB)トンプソン サンプリング です。

UCB は、高い報酬が得られるアクション、またはあまり試行されていないアクションを選択することで探索を優先するアルゴリズムです。そのアイデアは、既知の報酬と、あまり試行されていないアクションでより高い報酬が見つかる可能性とのバランスをとることです。 UCB は、アクションの報酬の推定値に基づいて信頼限界を構築し、最も高い上限の信頼限界を持つアクションを選択することによってこれを行います。このアプローチは体系的に不確実性を軽減し、時間の経過とともに意思決定を改善します。

トンプソン サンプリング は、探索と活用の問題に対してベイジアン アプローチを採用しています。これには、各アクションの報酬の事後分布からサンプリングし、最も高いサンプルを持つアクションを選択することが含まれます。この方法では、アクションの既知のパフォーマンスに基づいて、より確率的な探索が可能になり、新しいアクションの探索と、報酬確率分布に基づいた既知のアクションの活用の間で動的にバランスがとれます。

UCBトンプソン サンプリング はどちらも、学習環境がエージェントにとって最初は未知である状況で強力な手法であり、エージェントから受け取ったフィードバックに基づいて体系的な探索と最適化された学習を可能にします。環境。これらの方法は、A/B テストやネットワーク ルーティングなどのリアルタイムの意思決定シナリオで特に役立ちます。

次元削減技術

PCA は、可能な限り分散を維持しながら次元を削減するために使用される統計手法です。これは、いわゆる主成分、つまりデータの分散が最大化される方向を特定することによって機能します。元の変数を新しい直交変数セットに変換することで、データの次元を削減します。直交性により、この新しい変数は可能な限り無相関になり、データ内の最大の分散が考慮されます。これは、データの分散に最も寄与する関係を維持しながら、データ内の変数の数を減らす場合に特に役立ちます。 PCA は、データを複雑さを軽減した新しい次元セットに変換することで、高次元データの視覚化、学習アルゴリズムの高速化、ノイズの除去に役立ちます。

一方、

LDA も次元削減手法ですが、既知のカテゴリ間の分離性を最大化することに重点を置いています。データのクラス間の違いをモデル化しようとします。 LDA は、クラスを分離する特徴の線形結合を見つけることでこれを実現します。結果の組み合わせは、線形分類器として、または後の分類前の次元削減に使用できます。

PCALDA はどちらも若干異なる目的を果たします:

  • PCA は教師なしであり、データの分散に焦点を当てています。
  • LDA はクラスの分離性を最大化することに重点を置いて監視されています。

最新のモデル選択とブースト技術

コースの後半では、高度なモデル選択戦略を検討し、ブーストを紹介します。 ブースティング は、複数の弱い学習器を順次結合してより強力なモデルにすることによって機能します。シーケンス内の各学習者は、前の学習者が犯したエラーに焦点を当て、モデルの精度を徐々に向上させます。学習者は通常、デシジョン ツリーのような単純なモデルであり、それぞれが最終的な決定に段階的に貢献するため、アンサンブルが個々のモデル単独よりも強力になります。

極端な勾配ブースティング

この手法の最も一般的な実装の 1 つは Extreme Gradient Boosting (XGBoost) です。これは、幅広い予測モデリング タスクにわたる効率と有効性により際立っています。

結論

「機械学習 A-Z: AI、Python & R」コースは、機械学習に興味がある人にとって素晴らしい出発点です。多くの重要なトピックを取り上げ、広範な概要を示しますが、これはほんの始まりにすぎません。

このコースを修了しても、すぐに専門的な機械学習の仕事に対応できるエキスパートになれるわけではありません。むしろ、それが最初のステップであると考えてください。基本を理解するのに役立ち、機械学習のどの部分が最も興味深いかを示します。

以上が機械学習とその先の詳細: 機械学習 A-Zの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート