2021 年に知っておくべきすべての機械学習アルゴリズム

2021 年に知っておくべきすべての機械学習アルゴリズム

機械学習に関する知識が増えるにつれて、機械学習アルゴリズムの数も増えました。この記事では、データ サイエンス コミュニティでよく使用される機械学習アルゴリズムについて説明します。

[[353567]]

すべてのアルゴリズムを徹底的に説明すると、この記事は本と同じくらいの長さになってしまうため、一部のアルゴリズムについては他のアルゴリズムよりも詳しく説明することをご留意ください。また、数学に詳しくない人にとっては数学が威圧的になる可能性があることを知っているので、この記事では数学の量を最小限に抑えるように努めます。代わりに、それぞれの概要を簡単に説明し、いくつかの重要な機能を指摘したいと思います。

これを念頭に置いて、まずはより基本的なアルゴリズムをいくつか説明してから、CatBoost、Gradient Boost、XGBoost などの新しいアルゴリズムについて説明します。

線形回帰

線形回帰は、従属変数と 1 つ以上の独立変数の関係をモデル化するための最も基本的なアルゴリズムの 1 つです。つまり、2 つ以上の変数を表す「最適な直線」を見つけることです。

最適な直線は、点と最適な直線の間の距離の二乗を最小化することによって見つけられます。これは、残差二乗和の最小化と呼ばれます。残差は予測値から実際の値を引いたものです。

> 作者が作成した画像

まだ意味が分からない場合は、上の図を検討してください。 最もよく適合する緑の線と赤い線を比較すると、緑の線の方が赤い線よりも垂直線 (残差) がはるかに大きいことがわかります。 これは当然のことです。緑の線は点から非常に離れているため、データを適切に表していないからです。

線形回帰の背後にある数学についてさらに詳しく知りたい場合は、まず Brilliant の説明から始めることをお勧めします。

ロジスティック回帰

ロジスティック回帰は線形回帰に似ていますが、離散的な数の結果(通常は 2 つ)の確率をモデル化するために使用されます。 一見すると、ロジスティック回帰は線形回帰よりもはるかに複雑に聞こえますが、実際に必要なのは 1 つの追加ステップだけです。

まず、線形回帰の最適直線の式に似た式を使用してスコアを計算します。

追加の手順は、以前に計算したスコアを以下のシグモイド関数に入力して、リターンの確率を取得することです。この確率は、1 または 0 のバイナリ出力に変換できます。

スコアを計算するための初期方程式の重みを見つけるには、勾配降下法や最大尤度法などの方法が使用されます。 この記事の範囲外なので、これ以上詳しく説明しません。しかし、これで仕組みがわかりましたね。

K 最近隣

> 画像は著者作成

K 最近傍は単純なアイデアです。まず、分類されたデータ (赤と青のデータ ポイント) から始めます。次に、新しいデータ ポイントを追加するときに、最も近い k 個の分類されたポイントを調べて分類できます。最も多くの票を獲得したカテゴリーによって、新しいポイントが何に分類されるかが決まります。

この場合、k を 1 に設定すると、灰色のサンプルに最も近い最初のポイントが赤色のデータ ポイントであることがわかります。 したがって、そのポイントは赤として分類されます。

留意すべき点の 1 つは、k の値が低すぎると外れ値が発生する可能性があることです。一方、k の値が高すぎると、サンプル数が少ないクラスが無視される可能性があります。

ナイーブベイズ

ナイーブベイズは分類アルゴリズムです。 つまり、出力変数が離散的な場合は、Naive Bayes が使用されることになります。

ナイーブベイズは、条件付き確率とベイズの定理に関する予備的な数学的知識を必要とするため、難しいアルゴリズムのように思えるかもしれませんが、非常に単純で「素朴な」概念であり、例を挙げて説明できるよう最善を尽くします。

> 作者が作成した画像

天気の特徴 (見た目、気温、湿度、風) とゴルフが行われたかどうか (最後の列) に関するデータを入力するとします。

ナイーブベイズが本質的に行うことは、各入力変数のカテゴリ間の比率を出力変数と比較することです。これは以下の表に示されています。

> 作者が作成した画像

この例の読みやすさを考慮して、気温のセクションでは、ゴルフをプレーした 9 日間のうち 2 日間は暑かった (つまり暑かった) としています。

数学的に言えば、これはゴルフボールを熱く打つ確率として表現できます。数学記号は P(hot | yes) です。これは条件付き確率であり、これから述べる残りの部分を理解する上で非常に重要です。

この情報を入手すれば、天候の特徴の組み合わせに基づいてゴルフをプレーするかどうかを予測できます。

次のような特徴を持つ新しい一日を想像してください。

  • 見通し: 晴れ
  • 気温: 穏やか
  • 湿度: 正常
  • 強風: 誤り

まず、X が与えられた場合にゴルフボールを打つ確率 P(y|X) を計算し、次に X が与えられた場合にゴルフボールを打つ確率 P(no|X) を計算します。

上記のグラフを使用すると、次の情報が得られます。

これで、この情報を次の数式に入力するだけです。

同様に、P(no | X) に対しても同じ一連の手順を実行します。

P(はい | X) > P(いいえ | X) なので、見通しは晴れ、気温は適度、湿度は正常、強風もないので、その人がゴルフをすると予測できます。

これがナイーブベイズの真髄です!

サポートベクターマシン

> 作者が作成した画像

サポート ベクター マシンは、実際には非常に複雑になる可能性がある教師あり分類手法ですが、最も基本的なレベルでは非常に直感的です。 この記事では、概要に留めておきます。

2 種類のデータがあるとします。 SVM は、2 つのデータ クラス間のマージンを最大化する 2 つのデータ クラス間の超平面または境界を見つけます (上記を参照)。 2 つのクラスを分離できる平面は多数ありますが、2 つのクラス間のマージンまたは距離を最大化する平面は 1 つだけです。

サポート ベクター マシンの背後にある数学を理解したい場合は、この一連の記事をご覧ください。

決定木

> 画像は著者作成

ランダムフォレスト

ランダム フォレストを理解する前に、次の 2 つの用語を理解する必要があります。

  • アンサンブル学習は、複数の学習アルゴリズムを組み合わせた手法です。単一のアルゴリズムのみを使用する場合よりも高い予測性能を実現することが目的です。
  • ブートストラップ サンプリングは、復元抽出法によるランダム サンプリングを使用する再サンプリング方法です。 複雑に聞こえますが、非常に簡単なので信じてください。詳細については、こちらをご覧ください。
  • バギングとは、ブートストラップされたデータセットの要約を使用して決定を下すことです。このトピックについては記事を書いたので、よくわからない場合は、そちらを参照してください。

用語を理解したところで、さらに詳しく見ていきましょう。

ランダム フォレストは、決定木に基づいたアンサンブル学習手法です。 ランダム フォレストでは、元のデータのブートストラップされたデータセットを使用して複数の決定木を作成し、決定木の各ステップで変数のサブセットをランダムに選択します。 次に、モデルは各決定木からのすべての予測のモード (バギング) を選択します。 これのポイントは何でしょうか? 「多数決」モデルに頼ることで、1 本のツリーが間違っているリスクが軽減されます。

> 作者が作成した画像

たとえば、決定木を作成すると、3 番目の決定木は 0 を予測します。ただし、4 つの決定木すべてのモードに依存する場合、予測値は 1 になります。それがランダムフォレストの力です!

アダブースト

AdaBoost または Adaptive Boost も、パッキングとブースティングの手法を利用して強化された予測子を開発するアンサンブル アルゴリズムです。

AdaBoost は、予測が多数の決定木から得られるという点でランダム フォレストに似ています。ただし、AdaBoost には 3 つの重要な違いがあります。

> 切り株の例

  • まず、AdaBoost は木ではなく切り株の森を作成します。切り株とは、1 つの節と 2 つの葉だけで構成される木です (上の画像を参照)。
  • 第二に、作成されたスタンプは、最終決定(最終予測)において加重平均されません。より多くのエラーを生成する切り株は、最終決定に影響を与えることはありません。
  • 最後に、各スタンプの目的は、前のスタンプによって引き起こされたエラーを減らすことであるため、スタンプを作成する順序が重要です。

本質的に、AdaBoost はより反復的なアプローチを採用し、以前の切り株で発生した間違いから反復的に改善することを目指します。

AdaBoost の背後にある基礎的な数学について詳しく知りたい場合は、私の記事「5 分で説明する AdaBoost の数学」をご覧ください。

勾配ブースティング

勾配ブースティングもアンサンブル アルゴリズムであり、ブースティング手法がブースティング予測子の開発に使用されるのは当然のことです。多くの点で Gradient Boost は AdaBoost に似ていますが、主に 2 つの違いがあります。

  • 木の切り株を構築する AdaBoost とは異なり、Gradient Boost は通常 8 ~ 32 枚の葉を持つ木を構築します。
  • 勾配ブースティングは、ブースティング問題を最適化問題として扱い、損失関数を使用してエラーを最小化しようとします。 これが、勾配降下法にヒントを得た「勾配ブースティング」と呼ばれる理由です。
  • 最後に、これらのツリーを使用して、サンプルの残差 (予測値から実際の値を引いた値) を予測します。

最後の点は混乱を招くかもしれませんが、知っておく必要があるのは、Gradient Boost は最初にデータを適合させるためのツリーを構築し、その後に構築されるツリーは残差 (エラー) を減らすことを目的としているということです。これは、AdaBoost と同様に、既存の学習者のパフォーマンスが低い領域に焦点を当てることで実現します。

XGBoost

XGBoost は非常に強力であるため、現在最も人気があり、広く使用されているアルゴリズムの 1 つです。これは Gradient Boost に似ていますが、より強力な追加機能がいくつかあります。

  • リーフノードは縮小(剪定)され、モデルの一般化を改善するために使用されます。
  • ニュートン法の高速化 - 勾配降下法よりも直接的な最小値を提供し、高速化します。
  • 追加のランダム化パラメータ - ツリー間の相関を減らし、最終的に全体的な強度を高めます
  • 木に対する固有のペナルティ

アルゴリズムの仕組みをより詳しく理解するには、StatQuest のビデオを視聴することを強くお勧めします。

ライトGBM

XGBoost が最高のアルゴリズムだと考えているなら、もう一度考え直してください。 LightGBM は、XGBoost よりも高速でさらに正確であることが証明されている別のブースティング アルゴリズムです。

LightGBM が他と異なるのは、Gradient-based Single-sided Sampling (GOSS) と呼ばれる独自の手法を使用してデータ インスタンスをフィルターし、分割値を見つけることです。これは、事前ソートとヒストグラムベースのアルゴリズムを使用して最適な分割を見つける XGBoost とは異なります。

Light GBM と XGBoost の詳細については、こちらをご覧ください。

キャットブースト

CatBoost は勾配降下法に基づく別のアルゴリズムですが、いくつかの微妙な違いがあり、それが独自の特徴となっています。

  • CatBoostは対称ツリーを実装しており、予測時間を短縮するのに役立ちます。また、ツリーの深さもデフォルトで浅くなっています(6)。
  • CatBoostは、XGBoostがランダムパラメータを持つのと同様に、ランダム順列を利用する。
  • しかし、XGBoostとは異なり、CatBoostは順序付きブースティングやレスポンスエンコーディングなどの概念を使用して、カテゴリカルな特徴をよりエレガントに処理します。

全体的に、CatBoost が非常に強力なのは、レイテンシ要件が低いことであり、これは XGBoost よりも約 8 倍高速であることを意味します。

CatBoost についてさらに詳しく知りたい場合は、この記事をご覧ください。

読んでくれてありがとう!

成功したら、おめでとうございます。これで、さまざまな機械学習アルゴリズムについてより深く理解できるはずです。

最後のいくつかのアルゴリズムを理解するのに苦労しているとしても、落胆しないでください。これらはより複雑であるだけでなく、比較的新しいものでもあるのです。これらのアルゴリズムについてさらに詳しく説明するリソースを今後もお楽しみに。

<<:  人工知能が商業不動産業界にもたらす5つの変化

>>:  なぜ失敗したかご存知ですか?機械学習プロジェクトの 87% がこのように失敗します…

ブログ    

推薦する

人工知能の知られざる12の秘密

[[375984]] [51CTO.com クイック翻訳] 人工知能技術がさまざまな業界でますます使...

データと人工知能の整合性をどのように確保するか?

2022 年、データと AI はデジタル革命の新たな章の基盤を築き、ますます多くのグローバル企業に...

自動運転のためのニューラルネットワークとディープラーニング

先進運転支援システム (ADAS) は、道路の安全性と旅行体験に対するドライバーと乗客のより高い要求...

...

未来の戦場は「瞬殺」の時代へ、人工知能が威力を発揮

近年、人工知能技術は飛躍的な進歩を遂げ、戦闘指揮の分野で広く応用され、観察・判断・決定・行動(OOD...

中国移動研究所のチャン・ヤオビン氏:主流の人工知能技術スタックの詳細な議論と実践的な概要

はじめに:近年の人工知能技術の急速な発展は、主にニューラルネットワーク、チップ、ビッグデータという ...

...

退屈な「機械学習」がこのように学べるとは思ってもいませんでした!

[[234276]]機械学習は、確率論や統計などの複雑な分野を含む人工知能の中核分野の 1 つです...

ChatGPTはまたしても「おばあちゃんの抜け穴」に騙されました! PS おばあちゃんの遺物、Bing を騙して認証コードを完全に識別させる

「Granny Loophole」が戻ってきました!このミームを知らない人のために、数か月前にインタ...

調査:CIOはAIの実験や投資に依然として慎重

機械学習の実験と成果の達成に関しては、持っている人と持っていない人の間の格差が拡大しています。先週ニ...

AIはHRにどのように役立つのでしょうか?

全国的に人材不足が進む中、テクノロジーは雇用者が厳しい市場で最高の人材を見つけるのに役立ちますが、人...

Pythonでシンプルだが強力な顔認識システムを書く

face_recognition は、強力でシンプル、使いやすい顔認識オープンソース プロジェクトで...

外国人の機械学習エンジニアは失業に直面しているのに、なぜ彼らはまだMLの学習にこだわるのでしょうか?

機械学習の分野では悲観的な見通しが広がっています。機械学習の人材の採用は減速しています。 [[334...