2021年に機械学習を学ぶには?この詳細なガイドがあなたをカバーします!

2021年に機械学習を学ぶには?この詳細なガイドがあなたをカバーします!

「すべての人にAI」の時代を迎え、多くの人が機械学習(ML)に何らかの形で触れるようになりました。

データを必要とするすべての企業が、人工知能と機械学習を使用してビジネスを分析し、自動化されたソリューションを提供しようとしているようです。

フォーチュン・ビジネス・インサイトは、機械学習の市場価値が2027年までに1,170億ドルに達すると予測しています。」

機械学習の人気により、関連する知識を持たない多くの初心者が業界に参入するようになりました。もちろん、それ自体は良いことですが、機械学習プロジェクトを実際の運用環境に統合することは想像するほど簡単ではないことも理解する必要があります。

図: 750 社に基づく Algorithmia の 2020 年のエンタープライズ ML 使用状況イメージ

アルゴリズミアの調査によると、機械学習モデルに取り組んでいる企業の55%がまだそれを実用化していない

ここで言及する価値があるのは、機械学習を簡素化するプラットフォームを提供するスタートアップ企業である Algorithmia が、2017 年 6 月に Google から 1,050 万ドルのシリーズ A 資金調達ラウンドを完了したことです。

モデルのトレーニングに必要なデータとコンピューティング リソースがあれば、機械学習プロジェクトの実装はかなり簡単だと多くの人が考えているようです。

しかし、これは完全に間違っています。

この仮定により、モデルを展開することなく多くの時間とお金が無駄になる可能性が高くなります。

図: 機械学習のライフサイクルに関する素朴な仮定

この記事では、機械学習プロジェクトのライフサイクルが実際にどのようなものか、またライフサイクルの各段階で使用できるツールについて詳しく説明していきます。


そんなに単純じゃない:機械学習のライフサイクルを見る

実際には、機械学習プロジェクトは単純ではありません。データ、モデル、評価の改善を繰り返すプロセスであり、完全に完了することはありません。

このサイクルは、モデルの結果と評価を使用してデータセットを改良することに重点を置いているため、機械学習モデルの開発に不可欠です。さらに、高品質のデータセットは、高品質のモデルをトレーニングするための最も信頼性の高い方法です。

このサイクルの反復速度によって、費やす必要のあるコストが決まります。幸いなことに、品質を犠牲にすることなくこのサイクルをスピードアップできるツールがあります。

図: 機械学習ライフサイクルの実際の例

他のシステムと同様に、展開された機械学習モデルも継続的に監視、保守、更新する必要があります。モデルを展開して忘れてしまい、実際の世界でも残りの時間はテスト セットと同じように動作することを期待することはできません。

現実の環境に展開された機械学習モデルは、モデルに偏りが見つかったり、新しいデータ ソースが追加されたり、追加の機能が必要になったりするなどの理由で更新する必要があります。

そして、これらすべてにより、プロジェクト全体がデータ、モデル、評価のサイクルに戻ります。

次のセクションでは、機械学習ライフサイクルの各段階を詳しく説明し、各段階で使用できる一般的なツールを紹介します。


フェーズ1: データ

図: 機械学習サイクルのデータ部分

私たちの最終的な目標は高品質のモデルですが、優れたモデルをトレーニングするための鍵の 1 つは、モデルに渡されるデータの量にあります

データ側における機械学習ライフサイクルの関連ステップは次のとおりです。

1. データ収集

最初のステップは、最終的なデータの品質に関係なく、できるだけ多くの生データを収集することです。この生データのうち、注釈が付けられるのはごく一部であり、コストの大部分はそこから発生します。

また、モデルのパフォーマンスが問題になる場合は、必要に応じて大量のデータを追加すると便利です。

よく使用される公開データセットのリストは次のとおりです。

https://medium.com/towards-artificial-intelligence/best-datasets-for-machine-learning-data-science-computer-vision-nlp-ai-c9541058cf4f

2. 注釈モードを定義する

このリンクは、ライフサイクルのデータ ステージで最も重要な部分の 1 つですが、見落とされがちです。

適切に構築されていない注釈スキーマを使用すると、不明瞭なクラスやエッジ ケースが発生し、モデルのトレーニングが困難になる可能性があります。

たとえば、オブジェクト検出モデルのパフォーマンスは、サイズ、位置、方向、切り捨てなどのプロパティに大きく依存します。したがって、注釈付け時にオブジェクトのサイズ、密度、遮蔽などのプロパティを含めると、モデルがデータ内の重要な情報を学習するのに役立ちます。

このプロセスに役立つ一般的なツールを 2 つ紹介します。

Matplotlib、Plot - データのプロットプロパティを見つけるのに役立ちます

Tableau - データをより深く理解するのに役立つ分析プラットフォーム

3. データ注釈

データに注釈を付ける作業は、同じ作業を何時間も繰り返して実行する必要がある面倒な作業です。これが、注釈サービスが普及した理由の 1 つです。多くの人は、自分でデータに注釈を付ける作業に多くの時間を費やしたくないのです。

その結果、アノテーターは多くのミスを犯します。ほとんどのアノテーション会社は最大エラー率(最大エラー率 2% など)を明示していますが、より大きな問題は、アノテーション モードの定義が不十分なために、アノテーターがサンプルに異なるラベルを付ける可能性があることです

ただし、アノテーション会社のチームがこれを発見することは難しいため、自分で確認する必要があります。

以下に、よく使用されるさまざまな注釈サービスを示します。

Scale、Labelbox、Prodigy - 人気の注釈サービス

Mechanical Turk - クラウドソーシングによる注釈

CVAT - DIY コンピュータ ビジョン アノテーション

Doccano - NLP 専用の注釈ツール

Centaur Labs - 医療データラベリングサービス

4. データセットと注釈を改善する

モデルのパフォーマンスを向上させるために多くの時間を費やすことになります。

モデルが学習しているがパフォーマンスが低い場合、その原因はほとんどの場合、モデルのパフォーマンスを制限するバイアスやエラーを含むトレーニング データセットにあります

モデルの改善には通常、ハード サンプル マイニング (たとえば、モデルがデータセット A でパフォーマンスが低い場合は、データセット A に類似した新しいデータをトレーニング データに追加する)、モデルによって学習されたバイアスに基づいてデータセットを再調整する、新しいラベルを追加して既存のラベルを改善するための注釈スキーマの更新が含まれます。

データセットと注釈を改善するためによく使用されるツールは次のとおりです。

DAGsHub - データセットのバージョン管理

FiftyOne - データを視覚化してエラーを見つける

フェーズ2: モデル

図: 機械学習ライフサイクルのモデル部分

このプロセスの出力は「重要に見えるモデル」ですが、この部分は実際にはサイクル全体の中で最も時間がかかりません。

図: 業界ではモデルよりもデータセットに多くの時間が費やされている

既存の事前トレーニング済みモデルを調べる

このステップの目標は、できるだけ多くのリソースを使用して、モデル構築プロセスを可能な限り最良の状態で開始することです。

「転移学習」は今日のディープラーニングの中心です。ゼロからモデルを作成するのではなく、関連するタスクで事前トレーニングされた既存のモデルを微調整する場合があります

たとえば、マスク検出モデルを作成する場合、GitHub から事前トレーニング済みの顔検出モデルをダウンロードすると良いでしょう。この顔検出モデルはより成熟しており、人気があり、予備的な作業もより多く行われているからです。

このプロセスで一般的に使用されるツールと方法は次のとおりです。

FiftyOne モデル動物園 - 1 行のコードでモデルをダウンロードして実行

TensorFlow Hub - トレーニング済み ML モデルのリポジトリ

modelzoo.oo - さまざまなタスクとライブラリ用の事前トレーニング済みのディープラーニングモデル

トレーニングループの構築

データは、事前トレーニングに使用されたデータとまったく同じタイプではない可能性があります。

たとえば、画像データセットの場合、モデルのトレーニング パイプラインを設定するときに、入力解像度やオブジェクト サイズなどの要素を考慮する必要があります。

さらに、ラベルのクラスと構造に合わせてモデルの出力構造を変更する必要があります。 PyTorch Lightning は、限られたコードでモデルトレーニングをスケールアップする簡単な方法を提供します。

このプロセスで一般的に使用されるツールは次のとおりです。

Scikit Learn - 古典的な機械学習システムを構築して視覚化する

PyTorch、PyTorch Lightning、TensorFlow、TRAX - 人気のディープラーニング Python ライブラリ

Sagemaker - Sagemaker IDE で機械学習システムを構築およびトレーニングする

実験の追跡

このステップでは、サイクル全体で複数回の反復が必要になる場合があります。

最終的にはさまざまなモデルをトレーニングすることになるため、モデルのさまざまなバージョンと、それらをトレーニングするために使用したハイパーパラメータおよびデータを注意深く追跡しておくと、整理整頓に役立ちます。

このプロセスで一般的に使用されるツールは次のとおりです。

Tensorbord、重みとバイアス、MLFlow - モデルのハイパーパラメータを視覚化して追跡する

さらに、ここにちょっとしたヒントがあります:

自分のタスクが完全にユニークだと思う場合でも、トレーニング前に使用できるトリックがいくつかあります。たとえば、教師なしまたは半教師ありの方法でモデルを事前トレーニングし、元のデータ全体のごく一部のみを使用して微調整することを検討できます。

タスクに応じて、合成データを使用してモデルを事前トレーニングすることもできます。

目標は、微調整データセットをモデルパラメータのいくつかの貴重なレイヤーのトレーニングにのみ使用すれば済むほど、データを十分に表現するモデルを取得することです。

フェーズ3: 評価

図: 機械学習ライフサイクルの評価部分

トレーニング データを学習したモデルを正常に取得したら、次のステップは、そのモデルが「新しいデータ」でどのように機能するかを詳しく調べることです。

機械学習モデルを評価するための主な手順は次のとおりです。

モデル出力の視覚化

トレーニング済みのモデルができたら、すぐにいくつかのテストケースを実行して出力を観察する必要があります。

これは、テスト セット全体で評価を実行する前に、トレーニングまたは評価パイプラインにエラーがあるかどうかを確認する最適な方法です。

さらに、このプロセスの結果により、2 つのクラスが誤ってラベル付けされているなど、モデルに明らかなエラーがあるかどうかがわかります。

次のツールが役立ちます。

OpenCV、Numpy、Matplotlib - カスタム視覚化スクリプトを記述できます

FiftyOne - 画像や動画のコンピュータービジョンタスクの出力を視覚化する

適切な測定方法の選択

いくつかのサンプルの出力を観察した後、モデルの全体的なパフォーマンスを比較するのに役立つ 1 つまたは複数のメトリックを作成する必要があります。

特定のタスクに最適なモデルを確実に取得するには、最終目標と一致するモデル メトリックを作成する必要があります

同時に、追跡したい他の重要な特徴を発見したときにも、メトリックを更新する必要があります。たとえば、オブジェクト検出モデルが小規模なオブジェクトに対してどの程度のパフォーマンスを発揮するかをテストする場合は、メトリックの 1 つとして「境界ボックス < 0.05」を使用できます。

ただし、これらのメトリックは複数のモデルのパフォーマンスを比較するのに便利ですが、開発者がモデルのパフォーマンスを向上させるプロセスを理解するのに役立つことはほとんどないことに注意することが重要です。

このプロセスでは、次のツールが一般的に使用されます。

  • Scikit Learn - 一般的な指標を提供する
  • Python、Numpy - カスタムインジケーターの開発に使用できます

失敗例を見てみよう

入力したトレーニング データによってモデルのパフォーマンスが決まります。モデルが何かを学習したが、パフォーマンスが予想よりも悪かった場合は、データを確認する必要があります。

モデルが適切に機能する例を確認することは有用ですが、モデルが誤った予測を行う例を確認することが最も重要です。これらの例を十分に観察すると、モデルが一貫して失敗する例の種類が徐々にわかるようになります。

たとえば、下の画像は、後輪が誤検知された Open Images データセットの例を示しています。この誤検知の結果の原因は、注釈が欠落していることです。したがって、データセット内のすべての注釈をチェックし、他の同様のエラーを修正すると、タイヤ上のモデルのパフォーマンスを向上させることができます。

画像: タイラー・ガンター

この段階で一般的に使用されるツールは次のとおりです。

FiftyOne、Aquarium、Scale Nucleus - データセットをデバッグすることでエラーを見つけることができます

ソリューションを開発する

モデルのパフォーマンスを向上させる方法を見つけるための最初のステップは、失敗ケースの特性を特定することです。

ほとんどの場合、トレーニング データを追加して問題を解決する必要がありますが、トレーニング データはランダムに追加するのではなく、テスト失敗例に類似したデータである必要があります。さらに、パイプラインの前処理または後処理の手順を変更したり、注釈を変更したりすることもできます。

解決策が何であれ、それはモデルの失敗例を理解することから生まれます。

フェーズ4: 生産

図: モデルのデプロイ

この段階で、評価メトリックで適切に機能し、限界例で重大なエラーを起こさないモデルがようやく完成します。

さて、何をする必要がありますか?

モニターモデル

このステップでは、デプロイメントをテストして、モデルがテスト データで評価メトリックと推論速度に従って引き続き実行されることを確認する必要があります。

この段階で一般的に使用されるツールは次のとおりです。

Pachyderm、Algorithmia、Datarobot、Kubeflow、MLFlow は、モデルとパイプラインのデプロイと監視に役立ちます。

Amazon Web Services、Google AutoML、Microsoft Azure - これらは機械学習モデル向けのクラウドベースのソリューションです

新しいデータの評価

トレーニング済みのモデルを実際の運用で使用するということは、モデルでテストされたことのないデータをフレームワーク全体に継続的に入力する必要があることを意味します。

このプロセスでは、いくつかのアクションが特に重要です。1. 指定したメトリックを使用して新しいデータを評価する 2. 特定の例を詳しく調べる。これらのアクションを使用すると、モデルが新しいデータに対してどのように機能するかを確認できます。

モデルを理解し続ける

モデル内の一部のエラーやバイアスは深く根付いている場合があり、発見されるまでに長い時間がかかることがあります

このプロセス中は、モデルの問題を引き起こす可能性のあるさまざまなエッジ ケースや傾向を発見するために、モデルを継続的にテストおよび調査する必要があります。そうしないと、これらの問題が顧客に発見される可能性があります。

拡張機能

すべてが完璧であっても、モデルが期待した利益をもたらさない可能性があります

現在のモデルの機能を拡張する方法は無数にあります。新しいクラスを追加したり、新しいデータ フローを開発したり、既存のモデルをより効率的にしたりすることで、現在のモデルはより優れたものになります。

さらに、システムのパフォーマンスを向上させる必要がある場合は、機械学習のライフサイクルを再起動してデータとモデルを更新し、評価して、新しいシステムが期待どおりにスムーズに動作することを確認する必要があります。

参考リンク:

https://towardsdatascience.com/the-machine-learning-lifecycle-in-2021-473717c633bc

<<:  因果推論と正規化がリストに載っています。権威ある専門家が過去 50 年間で最も重要な統計的アイデアをレビューします。

>>:  130 億個のパラメータを持つモデルをトレーニングするには GPU がいくつ必要ですか?マイクロソフト: 1つで十分

ブログ    
ブログ    
ブログ    

推薦する

2020年のAI技術のブレークスルーをすべて見る

2020年は、厳しい防疫活動のさなか、静かに過ぎていきました。今年も人工知能の進歩は止まりませんでし...

ビル・ゲイツ氏:GPT-5はGPT-4よりそれほど良くはならない、生成AIは限界に達した

ビル・ゲイツ氏の暴露は機械学習コミュニティで話題となっている。 「GPT-5 は GPT-4 よりそ...

認知知能は魔法のようなもの:2021 年の主要なブレークスルーを振り返る

著者: ユン・チャオ[51CTO.com からのオリジナル記事]人工知能ソリューションの応用が進むに...

エンジニアがソフトロボットを制御する空気圧式コンピュータメモリを開発

海外メディアの報道によると、カリフォルニア大学リバーサイド校のエンジニアらが、ソフトロボットの動きを...

AI採用を本当に公平にすることは難しいかもしれない

アマゾンのAI採用ツールが女性差別をしていたことが発覚し、公式がチーム解散を発表。これで一件落着か?...

...

LLaMAが使用するオープンソースデータセットは棚から削除されました。これには約20万冊の本が含まれており、OpenAIデータセットに匹敵します。

オープンソースのデータセットは著作権侵害のため棚から削除されました。例えば、LLaMA、GPT-J ...

5G + AI の統合開発は、インダストリアル インターネットにどのように役立ちますか?

2021年、デジタル経済の重要な一部である産業インターネットが再び政策の焦点となりました。中国工業...

機械学習入門: HelloWorld (Tensorflow)

ソースコードのダウンロードアドレス: https://share.weiyun.com/a0c166...

なぜロボット起業のチャンスはBサイドにあると言われるのでしょうか?

技術の変化のスピードは常に保守派の想像を超えています。 [[348702]]多くの人々の直感では、過...

AI技術の自立を実現するために、国内のディープラーニングフレームワークは3つの大きな課題に直面している

「ディープラーニングフレームワークは人工知能技術システムの真ん中にあり、下のチップと上のアプリケーシ...

AIモデルのオープンソースの定義を変える必要がある

オープンソースライセンスは進化すべきだと思いますか? 2023年は人工知能(AI)の登場とともに新年...

焦点: 注目すべき 6 つのスマート セキュリティ トレンド

スマート セキュリティは、新しい AI 機能のおかげで、静的なセキュリティ ビデオ録画からリアルタイ...