機械学習がますます普及するにつれて、タスクを適切に処理できるアルゴリズムがますます多く登場しています。ただし、どのアルゴリズムが問題に最適であるかを事前に知ることはできません。十分な時間があれば、すべてのアルゴリズムを試して最適なものを見つけることができます。この記事では、既存の方法 (モデル選択とハイパーパラメータ調整) を活用して、アルゴリズムをより適切に選択する方法を紹介します。この記事の著者は、ワシントン大学の eScience 研究所および神経工学研究所のデータサイエンス博士研究員である Michael Beyeler 氏です。 ステップ1: 基本を理解する 始める前に、基本を確認しましょう。具体的には、機械学習の 3 つの主要なカテゴリである、教師あり学習、教師なし学習、強化学習を知っておく必要があります。 1. 教師あり学習では、各データ ポイントにカテゴリ ラベルや数値に関連付けられたラベルなどの注釈が付けられます。カテゴリ ラベルの例としては、画像を「猫」または「犬」として分類することが挙げられます。数値ラベルの例としては、中古車の販売価格を予測することが挙げられます。教師あり学習の目的は、多数のラベル付き例から学習し、新しいデータに対して予測を行うことです。たとえば、新しい写真に写っている動物を正確に識別する(分類)ことや、中古車の販売価格を予測する(回帰)ことなどです。 2. 教師なし学習では、データ ポイントには関連付けられたラベルがありません。対照的に、教師なし学習アルゴリズムの目的は、何らかの方法でデータを整理し、データ内に存在する固有の構造を見つけることです。これには、データのクラスタリング、つまり複雑なデータをより単純に処理して表示するためのより簡単な方法を見つけることが含まれます。 3. 強化学習では、アルゴリズムが各データ ポイントに対して (次に何をするか) を決定します。この技術はロボット工学でよく使われています。センサーは外界から一度に 1 つのデータ ポイントを読み取り、アルゴリズムはロボットが次に何をすべきかを決定する必要があります。強化学習は IoT アプリケーションにも適しています。ここで、学習アルゴリズムは、下した決定が良かったか悪かったかを示す報酬信号を受け取り、最適な報酬を得るために、アルゴリズムはそれに応じて戦略を変更する必要があります。 ステップ2: 問題を分類する 次に、問題を分類する必要があります。これには次の 2 つのステップが含まれます。 1. 入力データに基づいて分類する: データにラベルが付いている場合、これは教師あり学習の問題です。データにラベルが付いておらず、データの固有の構造を見つけたい場合は、教師なし学習です。環境と対話して目的関数を最適化したい場合は、強化学習です。 2. 出力結果に基づいて分類する: モデルの出力が数値の場合、これは回帰問題です。出力がカテゴリの場合、これは分類問題です。出力が入力データのセットの場合、これはクラスタリング問題です。 とても簡単です! より一般的には、アルゴリズムが達成しようとしている目標は何かを自問し、それに基づいて適切なアルゴリズムのクラスを見つけることができます。 上記の説明には、まだ触れていないいくつかの技術用語が含まれています。
ステップ3: 利用可能なアルゴリズムを見つける 問題を分類したので、利用可能なツールを使用して適切かつ実用的なアルゴリズムを特定できます。 Microsoft Azure では、どのアルゴリズムがどのクラスの問題に使用できるかを示す便利なアルゴリズム リストを作成しました。このフォームは Azure ソフトウェア向けにカスタマイズされていますが、汎用性があります (フォームの PDF バージョンは http://suo.im/3Ss2zW で入手できます)。 注目すべきアルゴリズムは次のとおりです。 1. 分類:
2. 回帰:
3. クラスタリング:
4. 異常検出:
ステップ4: 適用可能なすべてのアルゴリズムを実装する 通常、特定の問題に対して、その問題を解決できる候補アルゴリズムが複数存在します。では、どれを選択すればいいのか、どうすればわかるのでしょうか。通常、この質問に対する答えは単純ではないので、試行錯誤する必要があります。 プロトタイプの開発は 2 つのステップで行われます。最初のステップでは、最小限の特徴エンジニアリングで、いくつかのアルゴリズムを迅速かつ大まかに実装したいと考えています。この段階での主な目標は、どのアルゴリズムのパフォーマンスが優れているかを大まかに把握することです。このステップは採用に少し似ています。候補アルゴリズムのリストを短くする理由を見つけようとします。 候補となるアルゴリズムのリストを数個に絞り込んだ後、実際のプロトタイピングが始まりました。理想的には、慎重に選択された一連の評価基準を使用してデータセット上の各アルゴリズムのパフォーマンスを比較する機械学習パイプラインを設定します。この段階では、アルゴリズムのほんの一部しか扱っていないので、本当の魔法が起こる部分、つまり特徴エンジニアリングに注目することができます。 ステップ5: 特徴エンジニアリング おそらく、アルゴリズムを選択することよりも重要なのは、データを表す適切な機能を選択することです。上記のリストから適切なアルゴリズムを選択するのは比較的簡単ですが、特徴エンジニアリングはより芸術的です。 主な問題は、分類しようとしているデータが特徴空間で適切に記述されていないことです。たとえば、ピクセルのグレースケール値を使用して画像を予測するのは通常、適切な選択ではありません。代わりに、信号対雑音比を改善するデータ変換を見つける必要があります。これらのデータ変換がなければ、私たちのタスクはおそらく解決できないでしょう。たとえば、方向勾配ヒストグラム (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)」によるオリジナル翻訳です] この著者の他の記事を読むにはここをクリックしてください |
<<: ハードウェアクラッキングに耐えられるハッシュアルゴリズムにはどのようなものがありますか?
>>: 楊強:人工知能の次の技術的、商業的トレンドはどこにあるのでしょうか?
[[328252]] AI がソフトウェア エンジニアリングやテクノロジー企業に与える影響は否定でき...
[[324253]] 01 自動運転車社会科学者は、郊外化、汚染、自由、家族旅行、命の喪失、救われ...
[51CTO.com クイック翻訳]近年、人工知能技術の発展と進歩に伴い、コンピュータービジョンとデ...
NVIDIA は最近、AI 駆動型イメージング、ゲノミクス、スマート センサーの開発と展開のための...
スタンフォード大学のクリストファー・マニング教授は、AI 分野の中核となる概念を 1 ページを使って...
[[248668]]早速、世界で最も「美しい」ソートアルゴリズムについてお話ししましょう。 voi...
[[326308]]概要いわゆる LRU (Least Recently Used) アルゴリズムの...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
今日、現代科学技術の出現と発展、そしてさまざまなインテリジェント技術の登場により、人類の宇宙旅行はよ...
顔は機密性の高い個人情報です。一度漏洩すると、個人や財産の安全に大きな損害を与え、公共の安全を脅かす...
人工知能(AI)技術の急速な発展は、さまざまな分野に多くの革新と利便性をもたらしました。この記事では...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...