機械学習プロジェクトを実際に完了するにはどうすればよいでしょうか? 各ステップを支援するツールにはどのようなものがありますか? > Tolga Ulkan による Unsplash の写真 現代では、誰もが機械学習 (ML) を学んでいます。データを収集している企業はどれも、AI と ML を使用してビジネスを分析し、自動化されたソリューションを提供する方法を模索しているようです。 機械学習は2027年までに1170億ドルの価値を持つと予想されている - フォーチュン ML の大量流入により、正式なバックグラウンドを持たない新規参入者が多くなりました。より多くの人々がこの分野に興味を持ち、学んでいるのは素晴らしいことですが、ML プロジェクトを本番環境に統合することは簡単な作業ではないことも明らかです。 750 社の企業を対象とした Algorithmia の 2020 年エンタープライズ ML の現状からの画像 企業の 55% がまだ ML モデルを本番環境に導入していない — Algorithmia 多くの人は、モデルをトレーニングするために必要なデータとコンピューティング リソースがあれば、ML プロジェクトは簡単だと考えているようです。彼らはまた間違いを犯した。この仮定では、モデルが展開されない場合、時間と費用の両方で多大なコストがかかると思われます。 > ML ライフサイクルの単純な仮定 (画像提供: 著者) この記事では、ML プロジェクトのライフサイクルが実際にどのようなものか、またそれに対処するのに役立つツールについて説明します。 機械学習ライフサイクル 現実には、機械学習プロジェクトは単純なものではなく、データ、モデル、評価の改善を繰り返す継続的なサイクルであり、決して完全に完了することはありません。このサイクルは、モデルの結果と評価を使用してデータセットを改良することに重点を置いているため、ML モデルの開発に不可欠です。高品質のデータセットは、高品質のモデルをトレーニングするための最も信頼性の高い方法です。このプロセスをどれだけ速く繰り返し実行できるかによってコストが決まりますが、幸いなことに、品質を犠牲にすることなくサイクルを高速化できるツールがあります。 > ML ライフサイクルの現実的な例 (画像提供: 著者) 他のシステムと同様に、デプロイされた ML モデルでも監視、メンテナンス、更新が必要です。 ML モデルをデプロイして忘れてしまい、残りの時間は実際のテスト セットと同じように動作すると期待することはできません。本番環境にデプロイされた ML モデルは、モデル内のバイアスが発見されたり、新しいデータ ソースが追加されたり、追加の機能が必要になったりした場合などに更新する必要があります。これにより、データ、モデル、評価のサイクルに戻ります。 2021 年現在、ディープラーニングは 10 年以上にわたって重要視されており、ML を市場の最前線に押し上げるのに役立っています。機械学習業界は活況を呈しており、機械学習モデルの作成を支援するために数え切れないほどの製品が開発されています。 ML ライフサイクルの各ステップには、プロセスをスピードアップし、ML プロジェクトのない企業にならないために使用できるツールがあります。 次のセクションでは、ML ライフサイクルの各段階についてさらに詳しく説明し、人気のあるツールを紹介します。 フェーズ1: データ > ML ライフサイクルにおけるデータ (画像提供: 著者) 最終的な目標は高品質のモデルを構築することですが、優れたモデルをトレーニングするための生命線は、渡されるデータの量、そしてさらに重要なことには、その品質にあります。 ML ライフサイクルにおける主なデータ関連ステップは次のとおりです。 データ収集 - 品質に関係なく、できるだけ多くの生データを収集します。最終的には、そのうちのごく一部のみが注釈付けされ、コストの大部分はここから発生します。必要なだけデータを追加できるため、モデルのパフォーマンスが問題になる場合に便利です。
注釈スキーマを定義する - これはライフサイクルのデータ フェーズで最も重要な部分の 1 つですが、見落とされがちです。適切に構築されていない注釈スキーマは、クラスとエッジケースに曖昧さをもたらし、モデルのトレーニングを困難にします。 たとえば、オブジェクト検出モデルのパフォーマンスは、サイズ、位置、方向、切り捨てなどのプロパティに大きく依存します。したがって、注釈付け時にオブジェクトのサイズ、密度、オクルージョンなどのプロパティを含めると、モデルが学習できる高品質のトレーニング データセットを作成するために必要な重要なメタデータを提供できます。
データ注釈 - 注釈は、同じタスクを何時間も繰り返し実行する退屈なプロセスです。そのため、注釈サービスは急成長しているビジネスです。その結果、注釈者は多くの間違いを犯す可能性があります。ほとんどのアノテーション会社は最大エラー率(例:最大エラー 2%)を保証していますが、より大きな問題は、アノテーション スキーマが正しく定義されていないため、アノテーターがサンプルに異なるラベルを付けることを決定することです。これは、注釈会社の QA チームにとって見つけるのが難しいため、確認する必要があります。
データセットと注釈の改善 — モデルのパフォーマンスを改善しようとする場合、おそらくほとんどの時間を費やすことになるのはここです。モデルは学習しているがパフォーマンスが低い場合、その原因はほとんどの場合、モデルのパフォーマンスの上限を生み出すバイアスとエラーを含むトレーニング データセットにあります。モデルの改善には、多くの場合、ハード サンプル マイニング (モデルが失敗した他のサンプルに類似した新しいトレーニング データを追加する)、モデルによって学習されたバイアスに基づくデータセットの再バランス調整、新しいラベルを追加して既存のラベルを最適化するための注釈とスキーマの更新などのスキームが含まれます。 。
フェーズ2: モデル > ML ライフサイクルにおけるモデル (画像提供: 著者) このプロセスの出力はモデルですが、理想的には、このループに費やす時間は最小限に抑えられます。 業界では、モデルよりもデータセットに多くの時間が費やされています。クレジット: Andrej Karpathy 既存の事前トレーニング済みモデルを調べる — ここでの目標は、利用可能なリソースを可能な限り再利用して、モデリング制作を最良の形で開始することです。転移学習は、今日のディープラーニングの中心的な考え方です。おそらく、モデルをゼロから作成するのではなく、関連するタスクで事前トレーニングされた既存のモデルを微調整することになります。たとえば、マスク検出モデルを作成する場合、これはより人気のあるトピックであり、より多くの作業が必要となるため、おそらく GitHub から事前トレーニング済みの顔検出モデルをダウンロードすることになります。
トレーニング ループを構築する - データは、事前トレーニング済みモデルのトレーニングに使用されたデータとは異なる可能性があります。画像データセットの場合、モデルのトレーニング パイプラインを設定するときに、入力解像度やオブジェクト サイズなどを考慮する必要があります。また、ラベルのクラスと構造に合わせてモデルの出力構造を変更する必要もあります。 PyTorch Lightning は、限られたコードでモデルのトレーニングをスケールアップする簡単な方法を提供します。
実験の追跡 - このサイクル全体には複数回の反復が必要になる場合があります。最終的にはさまざまなモデルをトレーニングすることになるため、モデルのさまざまなバージョンと、それをトレーニングしたハイパーパラメータおよびデータを注意深く追跡することが、整理された状態を保つために大いに役立ちます。 フェーズ3: 評価 > ML ライフサイクルにおける評価 (画像提供: 著者) トレーニング データを学習したモデルを取得できたら、マイニングを開始して、新しいデータでのパフォーマンスを確認します。 ML モデルを評価するための主な手順: モデル出力の視覚化 - トレーニング済みのモデルができたら、すぐにいくつかのサンプルで実行して出力を確認します。これは、テスト セット全体で評価する前に、トレーニング/評価パイプラインにエラーがあるかどうかを確認する最適な方法です。また、2 つのクラスのラベルが誤っているなど、明らかなエラーがあるかどうかも表示されます。
適切なメトリックを選択する - モデルの全体的なパフォーマンスを比較するのに役立つ 1 つまたは複数のメトリックを作成します。タスクに最適なモデルを選択できるようにするには、最終目標に一致するメトリックを開発する必要があります。追跡すべき他の重要な特性を発見したら、指標も更新する必要があります。たとえば、小さなオブジェクトに対するオブジェクト検出モデルのパフォーマンスの追跡を開始する場合は、オブジェクトの 1 つとして、境界ボックスが 0.05 未満のオブジェクトに対して mAP を使用します。 これらの全体的なデータセット メトリックは複数のモデルのパフォーマンスを比較するために使用できますが、モデルのパフォーマンスを向上させる方法を理解するのに役立つことはほとんどありません。
失敗例を見てみましょう。モデルが行うすべてのことは、トレーニングに使用されたデータに基づいています。したがって、何かを学習できると仮定した場合、予想よりもパフォーマンスが悪い場合は、データを調べる必要があります。モデルが適切に実行されたケースを確認することは有用ですが、モデルが正しく予測した偽陽性と偽陰性を確認することが重要です。これらのサンプルを注意深く研究すると、モデルの障害モードが見えてきます。 たとえば、下の画像は Open Images データセットのサンプルを示しており、誤検知が 1 つあり、後輪として表示されています。この誤検知は注釈の欠落によるものであることが判明しました。データセット内のすべてのホイール注釈を検証し、他の同様のエラーを修正すると、ホイール上のモデルのパフォーマンスを向上させることができます。 > 画像提供:Tyler Ganter(出典)
ソリューションの開発 - 障害ケースを特定することは、モデルのパフォーマンスを向上させるために障害ケースを修正する方法を見つけるための最初のステップです。ほとんどの場合、モデルが失敗した箇所と同様のトレーニング データの追加に原因を遡ることができますが、パイプラインの前処理または後処理の手順の変更や注釈の修正なども含まれる場合があります。解決策が何であれ、モデルのどこに欠陥があるかを理解することによってのみ、問題を解決できます。 フェーズ4: 生産 > モデルの展開 (画像提供:著者) ついに! 評価メトリックで良好なパフォーマンスを発揮し、さまざまなコーナーケースで重大なエラーが発生しないモデルを構築しました。 ここで、次のことを行う必要があります。 モデルの監視 - デプロイメントをテストして、評価メトリックや推論速度などのテスト データに対してモデルが期待どおりに動作していることを確認します。
新しいデータの評価 - 運用環境でモデルを使用するということは、テストされたことのないまったく新しいデータをモデルに渡すことになることが多いことを意味します。モデルが遭遇する新しいデータをどのように処理するかを確認するには、特定のサンプルを評価およびマイニングすることが重要です。 モデルの理解を継続してください。モデル内の一部のエラーやバイアスは非常に根深いため、発見するのに長い時間がかかる場合があります。顧客によって発見された場合に問題を引き起こす可能性のあるエッジケースや傾向について、モデルを継続的にテストして調査する必要があります。 スケーリング機能 - すべてが正常に機能している場合でも、モデルが期待どおりの利益成長を実現できない可能性があります。新しいクラスの追加、新しいデータ フローの開発、モデルの効率化など、現在のモデルの機能を拡張して改善する方法は無数にあります。システムを改善するたびに、ML ライフサイクルを再起動してデータとモデリングを更新し、すべてを評価して、新しい機能が期待どおりに動作することを確認する必要があります。 フィフティワン 上記は非常に一般的で偏見のない内容ですが、私が使用しているツールを紹介したいと思います。 ML ライフサイクルのさまざまな部分で利用できるツールは多数あります。しかし、この記事で強調したいくつかの重要なポイントをサポートするツールが著しく不足しています。複雑なデータ (画像やビデオなど) を視覚化してラベル付けしたり、モデルのパフォーマンスが低い特定のケースを見つけるためのクエリを記述したりする操作は、多くの場合、手動のスクリプトを通じて実行されます。 私は、データセットとモデルのデバッグを支援し、このギャップを埋めるために設計されたオープンソースのデータ視覚化ツールである FiftyOne を Voxel51 で開発してきました。 FiftyOne を使用すると、画像やビデオのデータセットを視覚化し、ローカルまたはリモートで GUI で予測をモデル化できます。また、モデルを評価し、データセットまたはモデル出力のあらゆる側面に対して高度なクエリを記述するための強力な機能も提供します。 FiftyOne はラップトップでも実行できるので、この Colab ノートブックを使用してブラウザで試してみてください。あるいは、pip を使用して簡単にインストールすることもできます。 pip インストール 51 > FiftyOne のオブジェクト検出モデルとデータセットからのサンプル (画像提供: 著者) まとめ 機械学習 (ML) をビジネスに取り入れようとしている企業のうち、実際にモデルを本番環境に導入できるのはごく一部です。 ML モデルのライフサイクルは単純ではなく、データと注釈の改善、モデルとトレーニング パイプラインの構築、サンプル レベルの評価の間で継続的な反復が必要です。何をしているのかわかっていれば、このサイクルによって最終的に本番環境対応のモデルが完成する可能性がありますが、時間の経過とともにメンテナンスと更新も必要になります。幸いなことに、このプロセスのすべてのステップを支援する無数のツールが開発されています。 |
<<: RPA の収益は 2021 年に 18 億 9,000 万米ドルに達する見込みです。AI は RPA をどのように再定義するのでしょうか?
>>: AIがデータセンター運営者が直面する課題をどう解決するか
海外メディア(VentureBeat)によると、1980年代後半には、多くのスタートアップ企業、政府...
01 車載レーザーレーダーのレーザー点群ポイントクラウド技術により、LIDAR イメージングは...
免疫療法はがんの診断と治療に革命をもたらしていますが、まだ少数の患者(20%~30%)にしか効果があ...
[[425002]]自然言語理解 (NLU) は難しい問題です。数十年前の AI の誕生から現在に至...
1. 人工知能の応用分野1. コンピュータービジョン生体認証: 顔認識、歩行認識、歩行者 ReID、...
[[183485]] LISP 言語の歴史と、いくつかの余談や興味深い逸話は、実際に本として読む価値...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
膨大な数の演算回路を搭載した NVIDIA GPU により、AI、高性能コンピューティング、コンピュ...
今は人工知能爆発の時代です。AIと機械学習は広く普及しています。もちろん、機械学習の分野で最も人気の...