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つで十分

ブログ    
ブログ    
ブログ    

推薦する

人間に一歩近づく | MIT×UMichが物体の空間関係を理解できる人工知能を研究

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

スマート物流は進化し、AIは「独自のスキル」を発揮し続ける

データによると、わが国のスマート物流市場規模は2019年に5074億元で、前年比23.10%増加しま...

...

デジタル農村開発が加速、AI、5G、IoTなどがチャンスをもたらす

インターネットやモバイルインターネット技術の急速な普及と「新インフラ」の発展は、農業と農村の近代化に...

AI実践者が適用すべき10のディープラーニング手法

過去 10 年間で、機械学習への関心は爆発的に高まりました。ほぼ毎日、さまざまなコンピューターサイエ...

人工知能トレーナーという職業は魅力的ですか?

人工知能については誰もが知っていますが、人工知能トレーナーについてはどのくらい知っていますか? [[...

...

さようなら、宅配便業者さん!

この時代の変化のスピードは想像を絶します!次から次へと生み出される想像力豊かな革新は、目を見張るほど...

トランプ大統領は自動運転技術を承認せず、自動運転車は決して成功しないと述べている

最近、外国メディアは複数の情報筋の話として、トランプ大統領は自動運転技術を承認していないと報じた。ト...

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

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

子どもたちが将来のスタートラインで勝てるようにするには:人工知能の思考を学ぶ

今日は、子供たちにプログラミングを教えるということについての私たちの考えをいくつか共有したいと思いま...

ロボットと人間:その組み合わせが産業オートメーションの様相を変える可能性

進化する産業オートメーションの世界では、人間と機械の境界を越えた革新的なパートナーシップが生まれてい...

将来の顔認識技術の最大の問題は、それがほぼ間違いのないものであることだ

近年、顔認識技術は、女性や有色人種の誤検出率の高さや、個人の自由やプライバシーへの悪影響など、常に世...

...

AIデータのラベル付けは大量にアウトソーシングされており、南アフリカ、ベネズエラなどの国の人々はデジタル搾取の運命から逃れられない

歴史的に、これらの国や地域は旧植民地帝国によって貧困化しており、ヨーロッパの植民地主義は土地の暴力的...