経験からの教訓: 機械学習の問題に適したアルゴリズムを選択するにはどうすればよいでしょうか?

経験からの教訓: 機械学習の問題に適したアルゴリズムを選択するにはどうすればよいでしょうか?

機械学習がますます普及するにつれて、タスクを適切に処理できるアルゴリズムがますます多く登場しています。ただし、どのアルゴリズムが問題に最適であるかを事前に知ることはできません。十分な時間があれば、すべてのアルゴリズムを試して最適なものを見つけることができます。この記事では、既存の方法 (モデル選択とハイパーパラメータ調整) を活用して、アルゴリズムをより適切に選択する方法を紹介します。この記事の著者は、ワシントン大学の eScience 研究所および神経工学研究所のデータサイエンス博士研究員である Michael Beyeler 氏です。

ステップ1: 基本を理解する

始める前に、基本を確認しましょう。具体的には、機械学習の 3 つの主要なカテゴリである、教師あり学習、教師なし学習、強化学習を知っておく必要があります。

1. 教師あり学習では、各データ ポイントにカテゴリ ラベルや数値に関連付けられたラベルなどの注釈が付けられます。カテゴリ ラベルの例としては、画像を「猫」または「犬」として分類することが挙げられます。数値ラベルの例としては、中古車の販売価格を予測することが挙げられます。教師あり学習の目的は、多数のラベル付き例から学習し、新しいデータに対して予測を行うことです。たとえば、新しい写真に写っている動物を正確に識別する(分類)ことや、中古車の販売価格を予測する(回帰)ことなどです。

2. 教師なし学習では、データ ポイントには関連付けられたラベルがありません。対照的に、教師なし学習アルゴリズムの目的は、何らかの方法でデータを整理し、データ内に存在する固有の構造を見つけることです。これには、データのクラスタリング、つまり複雑なデータをより単純に処理して表示するためのより簡単な方法を見つけることが含まれます。

3. 強化学習では、アルゴリズムが各データ ポイントに対して (次に何をするか) を決定します。この技術はロボット工学でよく使われています。センサーは外界から一度に 1 つのデータ ポイントを読み取り、アルゴリズムはロボットが次に何をすべきかを決定する必要があります。強化学習は IoT アプリケーションにも適しています。ここで、学習アルゴリズムは、下した決定が良かったか悪かったかを示す報酬信号を受け取り、最適な報酬を得るために、アルゴリズムはそれに応じて戦略を変更する必要があります。

ステップ2: 問題を分類する

次に、問題を分類する必要があります。これには次の 2 つのステップが含まれます。

1. 入力データに基づいて分類する: データにラベルが付いている場合、これは教師あり学習の問題です。データにラベルが付いておらず、データの固有の構造を見つけたい場合は、教師なし学習です。環境と対話して目的関数を最適化したい場合は、強化学習です。

2. 出力結果に基づいて分類する: モデルの出力が数値の場合、これは回帰問題です。出力がカテゴリの場合、これは分類問題です。出力が入力データのセットの場合、これはクラスタリング問題です。

とても簡単です!

より一般的には、アルゴリズムが達成しようとしている目標は何かを自問し、それに基づいて適切なアルゴリズムのクラスを見つけることができます。

上記の説明には、まだ触れていないいくつかの技術用語が含まれています。

  • 分類: データを使用してカテゴリを予測する場合、教師あり学習は分類とも呼ばれます。たとえば、「猫」または「犬」が写っている写真を識別し、それらを「猫」または「犬」として分類することは、2 クラスまたは二項分類の問題です。より多くのカテゴリがある場合(物理学における次のノーベル賞受賞者が誰になるかを予測するなど)、これはマルチクラス分類問題と呼ばれます。
  • 回帰: 数値を予測する場合 (株価の予測など)、教師あり学習は回帰とも呼ばれます。
  • クラスタリング: クラスタリングまたはクラスター分析は、教師なし学習で最も一般的な方法の 1 つです。クラスタリングとは、同じグループ内のデータが異なるグループ内のデータよりも類似性が高くなるようにオブジェクトのセットをグループ化することです。
  • 異常検出: データ ポイント内の外れ値を見つける必要がある場合があります。たとえば、不正行為の検出では、非常に異常なクレジットカード購入はすべて疑わしいとみなされます。不正行為にはさまざまな形があり、トレーニング例が非常に少ないため、不正行為がどのようなものかを完全に理解することは不可能です。異常検出で採用されるアプローチは、(不正でない取引の履歴データを使用して)正常な動作を理解し、著しく異なる動作を識別することです。

ステップ3: 利用可能なアルゴリズムを見つける

問題を分類したので、利用可能なツールを使用して適切かつ実用的なアルゴリズムを特定できます。

Microsoft Azure では、どのアルゴリズムがどのクラスの問題に使用できるかを示す便利なアルゴリズム リストを作成しました。このフォームは Azure ソフトウェア向けにカスタマイズされていますが、汎用性があります (フォームの PDF バージョンは http://suo.im/3Ss2zW で入手できます)。

注目すべきアルゴリズムは次のとおりです。

1. 分類:

  • サポート ベクター マシン (SVM) を使用すると、可能な限り広い分類境界を見つけることができます。 2 つのクラスを明確に区別できない場合、アルゴリズムは可能な限り厳密な境界を見つけます。テキストやゲノムなどの特徴密度の高いデータ (特徴数 > 100) を処理する場合に真価を発揮します。このような場合、サポート ベクター マシン (SVM) は、他のほとんどのアルゴリズムよりも高速かつ過剰適合が少なく、必要なメモリ量もわずかで、分類を実行できます。
  • 人工ニューラル ネットワークは、バイナリ分類、マルチ分類、回帰問題をカバーする脳にヒントを得た学習アルゴリズムです。パーセプトロンやディープラーニングなど、さまざまな種類があります。トレーニングには長い時間がかかりますが、さまざまなアプリケーションで最先端のパフォーマンスを実現することが知られています。
  • ロジスティック回帰: 名前に「回帰」が含まれていますが、ロジスティック回帰は、バイナリ分類問題とマルチ分類問題の両方に使用できる強力なツールです。早くて簡単です。直線ではなく「S」字型の曲線を使用するため、データのグループ化に自然に適合します。ロジスティック回帰は線形分類境界を与えるので、これを使用する場合は線形近似に慣れていることを確認する必要があります。
  • 決定木とランダム フォレスト: 決定フォレスト (回帰、バイナリ分類、マルチ分類)、決定ジャングル (バイナリ分類とマルチ分類)、およびブースト決定木 (回帰とバイナリ分類) はすべて決定木に基づいています。これは機械学習の基本的な概念です。決定木にはさまざまなバリエーションがありますが、それらはすべて同じことを行います。つまり、特徴空間をほぼ同じラベルを持つ領域に分割します。これらの領域は、分類または回帰のどちらを実行しているかに応じて、一貫したカテゴリまたは定数値のいずれかになります。

2. 回帰:

  • 線形回帰は、データ セットに線 (または平面、超平面) を当てはめるプロセスです。これはシンプルで高速な基本ツールですが、問題によっては単純すぎる場合があります。
  • ベイズ線形回帰には、過剰適合を回避するという非常に望ましい特性があります。ベイジアンアプローチでは、回答の分布の可能性について事前にいくつかの仮定を立てることでこれを実現します。このアプローチのもう 1 つの副産物は、パラメーターが非常に少ないことです。
  • ブーストされた決定木回帰: 前述のように、ブーストされた決定木 (回帰とバイナリ分類の両方) は決定木に基づいており、特徴空間をほぼ同じラベルを持つ領域に細分化することによって機能します。ブーストされた決定木は、作成できる細分化の数と各領域で許可されるデータ ポイントの最小数を制限することで、過剰適合を回避します。アルゴリズムはツリーのシーケンスを構築し、各ツリーは前のツリーが残したエラーを補うように学習します。これにより、大量のメモリを使用する非常に正確な学習者が得られる可能性があります。

3. クラスタリング:

  • 階層的クラスタリングの目的は、2 つの形式を持つクラスターの階層を構築することです。凝集型クラスタリングは、各観測が独自のクラスターで開始され、階層を上るにつれてクラスターのペアが結合される「ボトムアップ」アプローチです。分割クラスタリングは、すべての観測が 1 つのクラスターから開始され、観測が階層を下るにつれて再帰的に分割される「トップダウン」アプローチです。全体的に、ここでの融合と分割は根本的な方法で決定されます。階層的クラスタリングの結果は通常、樹形図の形式で表示されます。
  • k 平均法クラスタリングの目的は、n セットの観測値を k 個のクラスターに分割することです。各観測値は、それに近い平均値を持つクラスターに属します。これらの平均値は、これらのクラスターのプロトタイプとして使用されます。これにより、データ空間が Voronoi セルに分割されます。

4. 異常検出:

  • k-近傍法 (k-NN) は、分類と回帰のための非パラメトリック手法です。どちらの場合も、入力は特徴空間内の最も近い k 個のトレーニング例で構成されます。 k-NN 分類では、出力はクラスのメンバーシップです。オブジェクトは、k 個の最も近い近傍の多数決によって分類されます。この場合、オブジェクトは k 個の最も近い近傍の中で最も一般的なクラスに割り当てられます (k は正の整数で、通常は小さい値です)。 k-NN 回帰では、出力はオブジェクトの属性値です。この値は、k 個の最も近い近傍の平均です。
  • 1 クラス SVM: 非線形 SVM の巧妙な拡張を使用して、1 クラス SVM はデータセット全体を厳密に要約する境界を描くことができます。範囲をはるかに超える新しいデータ ポイントは異常であり、注目に値します。

ステップ4: 適用可能なすべてのアルゴリズムを実装する

通常、特定の問題に対して、その問題を解決できる候補アルゴリズムが複数存在します。では、どれを選択すればいいのか、どうすればわかるのでしょうか。通常、この質問に対する答えは単純ではないので、試行錯誤する必要があります。

プロトタイプの開発は 2 つのステップで行われます。最初のステップでは、最小限の特徴エンジニアリングで、いくつかのアルゴリズムを迅速かつ大まかに実装したいと考えています。この段階での主な目標は、どのアルゴリズムのパフォーマンスが優れているかを大まかに把握することです。このステップは採用に少し似ています。候補アルゴリズムのリストを短くする理由を見つけようとします。

候補となるアルゴリズムのリストを数個に絞り込んだ後、実際のプロトタイピングが始まりました。理想的には、慎重に選択された一連の評価基準を使用してデータセット上の各アルゴリズムのパフォーマンスを比較する機械学習パイプラインを設定します。この段階では、アルゴリズムのほんの一部しか扱っていないので、本当の魔法が起こる部分、つまり特徴エンジニアリングに注目することができます。

ステップ5: 特徴エンジニアリング

おそらく、アルゴリズムを選択することよりも重要なのは、データを表す適切な機能を選択することです。上記のリストから適切なアルゴリズムを選択するのは比較的簡単ですが、特徴エンジニアリングはより芸術的です。

主な問題は、分類しようとしているデータが特徴空間で適切に記述されていないことです。たとえば、ピクセルのグレースケール値を使用して画像を予測するのは通常、適切な選択ではありません。代わりに、信号対雑音比を改善するデータ変換を見つける必要があります。これらのデータ変換がなければ、私たちのタスクはおそらく解決できないでしょう。たとえば、方向勾配ヒストグラム (HOG) が登場する前は、歩行者検出や顔検出などの複雑な視覚タスクを実行するのは困難でした。

ほとんどの機能の有効性は実験を通じて評価する必要がありますが、データ機能を選択するための一般的な方法を理解しておくと役立ちます。以下に、より良いアプローチをいくつか示します。

  • 主成分分析 (PCA): 情報量の多い主成分を見つけ、データ内の分散の大部分を説明できる線形次元削減法。
  • スケール不変特徴変換 (SIFT): 画像内のローカル特徴を検出して記述する、コンピューター ビジョンにおける特許取得済みのアルゴリズム。オープンソースの代替メソッド ORB (Oriented FAST and rotated BRIEF) があります。
  • Speeded Up Robust Features (SURF): SIFT のより堅牢なバージョンで、特許を取得しています。
  • 方向勾配ヒストグラム (HOG): 画像のローカル部分における勾配方向の発生をカウントするためにコンピューター ビジョンで使用される特徴記述方法。

詳細なアルゴリズムについては、https://en.wikipedia.org/wiki/Visual_descriptor を参照してください。

もちろん、独自の特性評価方法を考え出すこともできます。候補となるメソッドが複数ある場合は、パッケージ化されたメソッドを使用してインテリジェントな機能選択を実行できます。

1. 前方検索:

  • 最初は機能は選択されていません。
  • 次に、最も関連性の高い特徴を選択し、それを既存の特徴に追加します。モデルのクロス検証エラーを計算し、他のすべての候補特徴の選択を繰り返します。最後に、クロス検証エラーを最小化する特徴を選択し、それを選択した特徴に追加します。
  • 必要な機能の数に達するまで繰り返します。

2. 逆検索:

  • すべての機能から始めましょう。
  • まず、最も無関係な特徴を削除し、次にモデルの相互検証エラーを計算します。他のすべての候補特徴に対してこのプロセスを繰り返し、最後に、相互検証エラーが最大になる候補特徴を削除します。
  • 必要な機能の数に達するまで繰り返します。
  • クロス検証基準を使用して機能を削除および追加します。

ステップ6: ハイパーパラメータの最適化

*** アルゴリズムのハイパーパラメータを最適化する必要があるかもしれません。たとえば、主成分分析における主成分の数、k 最近傍アルゴリズムにおけるパラメーター k、ニューラル ネットワークにおける層の数と学習率などです。最良のアプローチは、選択にクロス検証を使用することです。

上記の方法をすべて適用すると、強力な機械学習システムを作成できる可能性が高くなります。しかし、ご想像のとおり、細部にこそ問題があり、成功するまでに何度も実験する必要があるかもしれません。

元記事: http://www.askaswiss.com/2017/02/how-to-choose-right-algorithm-for-your-machine-learning-problem.html

[この記事は、51CTOコラムニストのMachine Heart、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  ハードウェアクラッキングに耐えられるハッシュアルゴリズムにはどのようなものがありますか?

>>:  楊強:人工知能の次の技術的、商業的トレンドはどこにあるのでしょうか?

ブログ    

推薦する

2020 年のベスト AI ソフトウェア開発ツール

[[328252]] AI がソフトウェア エンジニアリングやテクノロジー企業に与える影響は否定でき...

自動運転や人工知能はあなたの将来の生活にどのような変化をもたらすでしょうか?

[[324253]] 01 自動運転車社会科学者は、郊外化、汚染、自由、家族旅行、命の喪失、救われ...

コンピュータビジョンプロジェクトのためのオブジェクト検出の初心者向けガイド

[51CTO.com クイック翻訳]近年、人工知能技術の発展と進歩に伴い、コンピュータービジョンとデ...

NVIDIA、医療用 AI コンピューティング プラットフォームを発表

NVIDIA は最近、AI 駆動型イメージング、ゲノミクス、スマート センサーの開発と展開のための...

スタンフォード大学の教授が、専門家以外の人向けにAIの核となる概念を1ページで定義

スタンフォード大学のクリストファー・マニング教授は、AI 分野の中核となる概念を 1 ページを使って...

世界で最も美しいソートアルゴリズム!

[[248668]]早速、世界で最も「美しい」ソートアルゴリズムについてお話ししましょう。 voi...

ChatGPTは自分で質問することを学習し、複数のファイルのアップロードをサポートしています

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

スマートテクノロジーが戦いに加わり、宇宙探査が新たな機会をもたらす

今日、現代科学技術の出現と発展、そしてさまざまなインテリジェント技術の登場により、人類の宇宙旅行はよ...

...

...

ネットワークデータセキュリティ管理に関する新たな規制が導入される

顔は機密性の高い個人情報です。一度漏洩すると、個人や財産の安全に大きな損害を与え、公共の安全を脅かす...

...

さまざまなオフィスAIを集めて活用すれば、最も効率的な人材になれる

人工知能(AI)技術の急速な発展は、さまざまな分野に多くの革新と利便性をもたらしました。この記事では...