機械学習プロジェクトのロードマップの設計方法

機械学習プロジェクトのロードマップ設計方法

画像クレジット: DreamStudio

新しい機械学習プロジェクトを始めるときに最初にすることは何ですか?

私はこれをさまざまなスタートアップのMLリーダーに尋ね、いくつかの異なる回答を得ました。特定の順序はありませんが、以下のいずれかです:

  1. 新しいタスクに対して既存のモデルのいずれかを試してみる。
  2. データを探索し理解する。
  3. 以前に何が行われたかを調査文献で調べる。

これらの最初のステップのいずれも新しいモデルのコードを作成しトレーニングすることではありません。また、データ前処理パイプラインの設計をすることでもありません。

これらのアプローチはそれぞれ優れた点があります。新しいプロジェクトが以前にモデル化された何かに非常に似ている場合(データとタスクの両方)、すでに実装されたモデリングアプローチを試すことは、タスクのベースラインを確立する非常に迅速な方法です。そうすることで、データ前処理やモデリングに適応する必要がある新しい課題を発見することもできます。

これが#2につながるかもしれません:データの探索と理解。あるいはここから始めるかもしれません。新しいデータセットの固有のニーズを認識することは重要です。おそらく前処理や注釈付けを異なる方法で処理する必要があります。データにクリーンアップが必要なアーティファクトがあるか、ラベルが常に正しくないかもしれません。前処理とモデリングが対処する必要がある課題を理解することは重要です。

しかし、一部のチームが見逃すステップであり、プロジェクトを成功に導く最も重要なステップは文献検索です。似たようなデータ上の類似のタスクを他の誰かがモデル化していませんか?もし扱っているデータの種類が一般的であれば、「類似」の非常に厳密な定義を適用することができるかもしれません。ただし、新しいイメージングモダリティで作業している場合や新しいタスクに取り組んでいる場合は、「類似」の定義を緩める必要があるかもしれません。

これらの最初の3つのステップは、私が新しいプロジェクトを計画する際に使用するプロセスで重要です:機械学習ロードマップ。

新しいプロジェクトでクライアントと一緒に仕事をするとき、ロードマップは最初のステップです。ロードマップは、プロジェクトの残りの作業の範囲を明確にします。実装する必要があるものを確実にすることで、不確実性を減らします。無駄なアプローチに時間を費やしたり、循環してしまったりする可能性を減らします。ゼロから何かを実装する前に既存のツールキットを特定することで、時間とお金を節約します。そして、プロジェクトの成功確率を高めます。

MLロードマップにはどのような要素が含まれていますか?主要な要素をご紹介します。

1) 問題の定義

機械学習を使用して解決したい問題を明確に定義することから始めます。そして、それと同時に、MLが問題を解決するための適切なツールであるかどうかを考えることも重要です。これはプロジェクト全体の基盤を築き、プロジェクトが望ましい結果をもたらすことを保証するのに役立ちます。

問題の定義には、ビジネス上の問題、収集する必要のあるデータ、および目標変数を特定することが含まれます。明確な問題の定義と明確に定義された目標は、不必要な実験を避け、問題の最も重要な側面に焦点を当てるのに役立ちます。

成功基準を確立することが重要です。これには評価メトリックが含まれるかもしれませんが、主に意図されたユースケースに関連します。

考慮すべきいくつかのポイント:

  • あなたの解決策は関連していますか?現在のワークフローに統合され、現在のボトルネックや問題点を解決する方法ですか?
  • 現在のプロセスを改善するにはどれくらいの正確さが必要ですか?
  • モデルが一般化する必要があるシナリオはありますか?これには、異なるイメージングデバイス、患者集団、または照明条件などが含まれる場合があります。
  • モデルはどれくらい説明可能である必要がありますか?モデルがどのように動作するかを理解することは、改善のためのポイントを特定するのに非常に役立ちます。ただし、信頼性の構築や規制承認のためにも重要な場合があります。
  • モデルが展開された後に計算上の制約がありますか?前もって処理やメモリの制約を理解することで、可能なアプローチを絞り込むことができます。

問題を前もって定義することで、望ましい結果をもたらす成功した機械学習プロジェクトの舞台を設定します。

関連する研究を調査することは、どのMLプロジェクトでも重要なステップです。これにより、似たような問題の既存の解決策を特定し、その分野の最先端を理解することができます。

まず、文献レビューを行うことから始めることができます。これには、研究論文や学会の発表論文、その他の関連する文献を読むことが含まれます。

読んだソースとそれぞれのソースから得られた主要な結果を追跡することは重要です。これにより、思考を整理し、既存の解決策のパターンやギャップを特定することができます。

  • 彼らはどの種類のデータを扱っていましたか?
  • 何人の患者、画像などが関与していましたか?
  • 彼らはどのようにトレーニングデータを注釈付けし、構造化しましたか?
  • 彼らはどのモデルアーキテクチャを使用しましたか?
  • 彼らはどのようにモデルをトレーニングしましたか?
  • 彼らはどんな課題に直面しましたか?
  • 画像やラベルの品質や量に問題はありましたか?
  • 彼らは独立したデータをどのように収集し、検証に使用しましたか?

これらは、自分自身の解決策を構築する前に理解する必要のある重要な側面です。

関連研究の調査は、プロジェクトを始めるためのキックスタートとなる既存のコードベース、データセット、または事前学習モデルを特定するのにも役立ちます。これにより、時間とリソースを節約することができます。

3) データの理解

データの理解は、どんな機械学習プロジェクトでも重要なステップです。データの品質と関連性は、機械学習モデルのパフォーマンスに大きな影響を与えるからです。

一部のプロジェクトでは、データがすでに収集されている場合もあります。他の場合では、データ収集プロセスをまず定義し、実行する必要があります。文献レビューは、どの種類のデータを収集すべきか、プロジェクトにどれだけのデータが必要かを指南するのに役立つかもしれません。

データが収集されたら、おそらく注釈が必要になるでしょう — このタスクも文献レビューによって明らかにされるかもしれません。

  • どのような注釈が必要ですか?ピクセル、パッチ、および画像レベルの注釈が最も一般的です。
  • 注釈を支援するために使用されたツールは何ですか?他のモダリティからの注釈が可能ですか?たとえば、生物学的サンプルの分子解析や衛星画像のOpen Street Mapのような既存の注釈セットから注釈が可能ですか?
  • 注釈はどれほど主観的ですか?観察者間の合意を評価するために独自の実験を調査することで、この課題の範囲が明らかになるかもしれません。

また、データの品質も理解する必要があります。これには、欠損値、外れ値、およびデータの不整合をチェックすることが含まれます。これには、組織の調製アーティファクト、ノイズやぼやけなどの画像の欠陥、またはドメイン外のシナリオなどが含まれる可能性があります。データの品質の問題を特定することで、適切に前処理およびクリーニングすることができ、前もって解決できない課題に対処する計画を立てることができます。

データの前処理には、正規化、スケーリング、その他の変換などが含まれる場合があります。大きな画像の場合、通常は小さなパッチに分割する必要があります。データと注釈は、モデルのトレーニングに効率的な形式で保存する必要があります。

データの理解により、モデルのパフォーマンスと信頼性に影響を及ぼす可能性のあるバイアスも特定することができます。バイアスは、特定のサブグループのトレーニングデータの不足や見かけの相関関係に起因する可能性があります。異なるラボでの処理の違いや地理的な変動など、技術的な変動によるバッチ効果もあります。また、異なる注釈付け者によってラベル付けされたサンプルもあります。

ほとんどのアプリケーションでは、ドメインの専門家にデータについての知見を求めるべきです:

  • データはどのように収集されましたか?
  • それは何を表していますか?
  • データの研究に関連する特徴は何ですか?
  • 実際の世界での使用時に存在する可能性のある変動は何ですか?
  • モデルを混乱させる可能性のあるアーティファクトや品質の問題は何ですか?

これらの側面のいくつかは非常に微妙であり、特定の分野に熟練していない人には明らかではありません。

データの理解というこの重要なステップにより、品質と関連性を評価し、データのバイアスを特定し、適切な前処理技術を決定することができます。

4) 検証の計画

プロジェクトの早い段階で検証の計画を立てることは、予期しない課題を明らかにするために重要です。最終的なモデルは、現実世界のシナリオでのパフォーマンスが期待されるため、その能力をテストすることが重要です。

最初に考慮すべき検証のセットアップは、トレーニングデータをトレーニング、検証、およびテストセットに分割することです。トレーニングセットは通常、データの最も大きな部分であり、モデルのトレーニングに使用されます。検証セットは、学習率や正則化の強さなど、モデルのハイパーパラメータを調整するために使用されます。テストセットは、モデルのパフォーマンスを評価し、未知のデータに対するモデルの汎化能力の無偏推定を提供します。テストセットは、モデルの開発プロセス中にトレーニングセットと検証セットから完全に分離して保持する必要があります。

通常、トレーニング、検証、およびテストセットは、意図しないバイアスを避けるために、利用可能なデータからランダムにサンプリングされながら、クラスまたは目標変数の所望の分布を維持しています。データが異なるグループで構成されている場合、例えば各患者から複数の画像、異なる医療センターから収集されたサンプル、または異なる地理的領域からの画像などの場合、グループのより注意深い層別化が必要になります。同じグループの例は、トレーニングセット、検証セット、またはテストセットに属し、3つのセットに分散することはありません。

交差検証技術(k-foldやleave-n-out交差検証など)を使用することで、データをトレーニング、検証、テストセットにシステマティックに分割することで、より信頼性の高いパフォーマンス推定を得ることもできます。このセットアップは、小規模データセットに特に一般的です。

モデルのパフォーマンス評価には、トレーニング、検証、テストセットで1つ以上のメトリックを計算することが含まれます。適切なメトリックはアプリケーションに依存しますが、正確性、感度、特異度、F1スコア、AUCスコア、DICEなどが含まれることがあります。これらのメトリックのそれぞれは、モデルの予測と正解データとの比較を行います。

一部のアプリケーションでは、テストセットでのメトリックの計算が十分な検証となる場合もあります。他の場合では、データのこの一部分が実世界のシナリオと十分に類似していないかもしれません。おそらく、モデルがトレーニングされた地理的な領域や医療施設とは異なる地域や施設の患者に対してモデルを使用する必要があり、注釈付きのトレーニングデータは利用できません。そのため、モデルを外部のコホートで検証して、実世界のパフォーマンスと汎化能力をシミュレートする必要があります。

5) ベースラインモデルの開発

計画と研究を大いに行った後、ついにモデリングを始める準備が整いました。しかし、最も複雑なディープラーニングモデルから始めることはお勧めしません。まずはシンプルなベースラインを開発してください。これにより、データ処理、注釈、および検証パイプラインをテストし、予期しない課題を明らかにすることができます。

特定のプロジェクトには多くの適切なアルゴリズムがあり、最適なアルゴリズムを選ぶことは困難かもしれません。最もシンプルなベースラインは、単純な特徴量に基づく線形分類器または回帰器を使用することかもしれません。あるいは、特徴学習を行い、ファインチューニングを行わない転移学習を使用することもあります。この段階ではハイパーパラメータを詳細にチューニングする必要はありません。デフォルトのパラメータでもこの最初のステップには十分かもしれません。

ベースラインモデルを開発することで、将来のモデルの効果を評価するためのパフォーマンス基準を確立することができます。プロジェクトに対する現実的なパフォーマンスの期待値を設定し、望ましいレベルのパフォーマンスを達成するためにどれだけの改善が必要かを判断することができます。

このベースラインモデルは最終モデルとは見なされるべきではありません。むしろ、より良いパフォーマンスを達成できるより複雑なモデルを開発するための出発点として使用するべきです。

6) 繰り返しと改善

望ましい精度レベルに達するまで、モデルのパフォーマンスを改善するためには繰り返し作業が不可欠です。

最初のステップは、モデルのパフォーマンスを分析することです。これには、以下の異なる側面を検討することが含まれます:

  • 過学習の兆候やモデル収束の問題を確認するために、トレーニングおよび検証メトリックをレビューする。
  • 改善のための領域や可能なバイアスを特定するために、検証メトリックを異なるサブグループに分類する。
  • 改善のための領域を特定するために、失敗モードを分類する。
  • ドメインエキスパートとの結果をレビューし、彼らにとって重要な不備に関するフィードバックを得る。

モデルのパフォーマンスを分析した後は、パフォーマンスが悪かった理由と問題の解決策を仮説立てする必要があります。解決策は、データに関連するもの(より多くのデータの収集やクリーニング手順の変更など)またはモデルに関連するもの(モデルアーキテクチャやハイパーパラメータの変更など)である可能性があります。文献調査のノートを確認してアイデアを見つけましょう。

次のステップは、変更を実装し、検証データでモデルのパフォーマンスを評価するための仮説をテストすることです。最もモデルに悪影響を及ぼす問題や最も簡単に修正できる問題から優先して取り組んでください。

機械学習モデルの繰り返しと改善は継続的なプロセスです。望ましい精度レベルに達するまで、モデルをテストし、改良を続ける必要があります。データ収集や注釈に時間のかかる変更が修正に含まれる場合は、できるだけ早くコースを修正するために、これらの繰り返しを短く保ちましょう。

7) デプロイ、監視、および保守

望ましいパフォーマンスレベルを達成したモデルがある場合、それを本番環境にデプロイすることができます。これには、モデルをアプリケーションやシステムに統合し、期待どおりに機能することを確認する必要があります。

最初のステップは、モデルのデプロイに必要な要件を特定することです。これには、パフォーマンス、スケーラビリティ、セキュリティ、ユーザーインターフェースなどの要素が含まれます。また、デプロイプラットフォームを選択する必要もあります。一般的なオプションは、クラウドベースのサービスまたはオンプレミスのインフラです。

次のステップは、デプロイ可能な形式にモデルをパッケージ化し、デプロイメントが正しく動作していることをテストすることです。これには、モデルのパフォーマンス、スケーラビリティ、セキュリティのテストが含まれる場合があります。モデルがデプロイされた後は、パフォーマンスを監視し、必要な調整を行う必要があります。

機械学習モデルのデプロイは継続的なプロセスであり、モデルが時間とともに効果を保つためには、モデルを継続的に改善する必要があります。

最後に、モデルまたはそのトレーニングプロセスに行われる変更を文書化することは重要です。これにより、モデルが時間の経過によって透明性を保ち、再現性を持つことが保証されます。

要約

機械学習プロジェクトは複雑で反復的なものです。このロードマッププロセスにより、プロジェクトの各側面を計画することができます。詳細は変更されるかもしれませんが、全体的なコンポーネントは同じままです。問題の定義からモデルの維持まで、各ステップには注意深い計画が必要です。可能な限り、計画されたアプローチがどのように失敗する可能性があるか、およびこれらの可能な失敗に対処するためのいくつかの解決策についても考えるべきです。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more