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% がこのように失敗します…

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

予測: 2019 年に爆発的に普及する 10 の人工知能テクノロジー!

1. 自然言語生成自然言語生成は、データをテキストに変換し、コンピューターがこれまでにない精度でア...

機械学習は計算化学研究の発展にどのように役立つのでしょうか?

過去数年間、化学研究は、個人の経験と文献から得られた過去の研究結果を使用する実験方法のみに焦点を当て...

JDロジスティクスは知能を高めつつ、宅配業者から仕事を奪っている

JD.comは早くも2017年8月に、陝西省の地域をカバーする中国初のドローン空域の承認を取得しまし...

Swift モバイル ゲーム開発に適用される幅優先探索アルゴリズム

[51CTO.com クイック翻訳] Swift Algorithm Club (https://g...

Google、AIの地位強化のためデータサイエンスコミュニティKaggleの買収を発表

Google は本日、データサイエンスと機械学習のコンテストを主催するオンライン サービスである K...

プライベートUNIT学習ノート - 対話システムの構築を簡単に始めることができます

対話システムの構築は比較的専門的で複雑なプロセスであり、通常は 3 つの主要な段階に分かれています。...

OpenAI COO: AIが一夜にしてビジネスに大きな変化をもたらすとは期待しない

12月5日、OpenAIは企業ユーザーの開拓に力を入れているものの、同社の幹部の一部は、この技術がす...

英雄の呼びかけ | 2018 WOT グローバル人工知能技術サミット: 英雄を呼ぶ宣言文

[51CTO.com オリジナル記事] 朗報です!テクノロジー愛好家たちの熱い期待の中、1年間開催さ...

人工知能が「怠け者」社員147人を解雇、「労働者」は追い詰められている

人工知能やロボットがSF小説に登場して以来、人類は人工知能と共存する未来社会に不安を抱いてきた。映画...

...

...

ロードバランサーのアルゴリズムと原理を探る

負荷分散アルゴリズムの種類を分析した後、動的負荷分散について紹介します。この概念は主にロードバランサ...

人工知能とモノのインターネットのダイナミックな融合を探る(パート 2)

前回の記事「人工知能とモノのインターネットの動的統合を探る(I) 」の続き1. IoTにおけるAIの...