画像分類は、画像を分類できるコンピューター ビジョン ベースの機械学習 (ML) 手法です。 画像分類のよく知られた例としては、手書き数字の分類、医用画像の分類、顔認識などがあります。 画像分類は、いくつかのビジネス アプリケーションで役立つ手法ですが、適切な画像分類モデルを構築することは簡単ではありません。
ML モデルを評価する際には、いくつかの考慮事項が役割を果たす可能性があります。 モデルの精度を超えて、重要な他の潜在的なメトリックは、モデルのトレーニング時間と推論時間です。 ML モデル開発の反復的な性質を考えると、トレーニング時間を短縮することで、データ サイエンティストはさまざまな仮説をすばやくテストできます。 リアルタイム アプリケーションでは、より高速な推論が重要になる場合があります。
Amazon SageMaker ジャンプスタート 一般的な ML タスク全体でさまざまな事前トレーニング済みモデルをワンクリックで微調整およびデプロイできるほか、一般的なビジネス上の問題を解決するエンドツーエンド ソリューションを選択できます。 これらの機能により、ML プロセスの各ステップから重労働が取り除かれ、高品質のモデルの開発が容易になり、デプロイまでの時間が短縮されます。 JumpStart API 独自のデータセットで、JumpStart がサポートする事前トレーニング済みモデルの膨大な選択肢をプログラムで展開し、微調整することができます。
展開前に、JumpStart で提供される ML モデルを段階的にトレーニングおよび調整できます。 これを書いている時点で、87 のディープラーニング ベースの画像分類モデルが JumpStart で利用できます。
しかし、どのモデルが最良の結果をもたらすでしょうか? この投稿では、複数のモデルを簡単に実行し、関心のある XNUMX つの次元 (モデルの精度、トレーニング時間、推論時間) でそれらの出力を比較する方法を紹介します。
ソリューションの概要
JumpStart を使用すると、UI または API を使用して JumpStart コンソールからモデルをトレーニング、調整、デプロイできます。 この投稿では、API ルートを使用し、さまざまなヘルパー スクリプトを含むノートブックを提示します。 このノートブックを実行して結果を取得し、これらのモデルを相互に簡単に比較してから、モデルの精度、トレーニング時間、および推論時間の点でビジネス ニーズに最適なモデルを選択できます。
公開データセット この投稿で使用されている画像は、管理された条件下で収集された病気の植物の葉と健康な植物の葉の約 55,000 枚の画像で構成されており、クラス ラベルは 0 ~ 38 の範囲です。 このデータセットはトレーニング データセットと検証データセットに分割され、約 44,000 のトレーニング中の画像と 11,000 の画像が検証中です。 以下は、いくつかのサンプル画像です。
この演習では、JumpStart が提供する 15 つのフレームワーク (PyTorch と TensorFlow) からモデルを選択しました。 次の XNUMX のモデル アルゴリズムは、これらのフレームワークの一般的なニューラル ネットワーク アーキテクチャを幅広くカバーしています。
pytorch-ic-alexnet-FT
pytorch-ic-densenet121-FT
pytorch-ic-densenet201-FT
pytorch-ic-googlenet-FT
pytorch-ic-mobilenet-v2-FT
pytorch-ic-resnet152-FT
pytorch-ic-resnet34-FT
tensorflow-ic-bit-s-r101x1-ilsvrc2012-classification-1-FT
tensorflow-ic-imagenet-inception-resnet-v2-classification 4-FT
tensorflow-ic-imagenet-inception-v3-classification-4-FT
tensorflow-ic-imagenet-mobilenet-v2-050-224-classification-4-FT
tensorflow-ic-imagenet-mobilenet-v2-075-224-classification-4-FT
tensorflow-ic-imagenet-mobilenet-v2-140-224-classification-4-FT
tensorflow-ic-imagenet-resnet-v2-152-classification-4-FT
tensorflow-ic-tf2-preview-mobilenet-v2-classification-4-FT
モデルを使用します tensorflow-ic-imagenet-inception-v3-classification-4-FT
他のモデルからの結果を比較するベースとして。 この基本モデルは任意に選択されました。
この比較を実行するために使用されるコードは、 AWSサンプルGitHubリポジトリ.
結果
このセクションでは、これらの 15 回の実行の結果を示します。 これらすべての実行で、使用されたハイパーパラメーターはエポック = 5、学習率 = 0.001、バッチ サイズ = 16 でした。
モデルの精度、トレーニング時間、モデルからの推論時間 tensorflow-ic-imagenet-inception-v3-classification-4-FT
がベースとして採用され、他のすべてのモデルからの結果は、このベース モデルに関連して表示されます。 ここでの目的は、どのモデルが最適かを示すことではなく、JumpStart API を使用してさまざまなモデルの結果を比較し、ユース ケースに最適なモデルを選択する方法を示すことです。
次のスクリーンショットは、他のすべてのモデルが比較された基本モデルを強調しています。
次のプロットは、相対精度と相対トレーニング時間の詳細ビューを示しています。 PyTorch モデルは赤で、TensorFlow モデルは青で色分けされています。
前のプロットで緑色の楕円で強調表示されているモデルは、相対精度と低い相対トレーニング時間の適切な組み合わせを持っているようです。 次の表に、これら XNUMX つのモデルの詳細を示します。
モデル名 | 相対精度 | 相対トレーニング時間 |
tensorflow-ic-imagenet-mobilenet-v2-050-224-classification-4-FT | 1.01 | 0.74 |
tensorflow-ic-imagenet-mobilenet-v2-140-224-classification-4-FT | 1.02 | 0.74 |
tensorflow-ic-bit-s-r101x1-ilsvrc2012-classification-1-FT | 1.04 | 1.16 |
次のプロットは、相対精度と相対推論時間を比較しています。 PyTorch モデルは赤で、TensorFlow モデルは青で色分けされています。
次の表は、緑色の楕円で囲まれた XNUMX つのモデルの詳細を示しています。
モデル名 | 相対精度 | 相対推論時間 |
tensorflow-ic-imagenet-mobilenet-v2-050-224-classification-4-FT | 1.01 | 0.94 |
tensorflow-ic-imagenet-mobilenet-v2-140-224-classification-4-FT | 1.02 | 0.90 |
tensorflow-ic-bit-s-r101x1-ilsvrc2012-classification-1-FT | 1.04 | 1.43 |
87 つのプロットは、選択された XNUMX つの次元で、特定のモデル アルゴリズムが他のアルゴリズムよりも優れたパフォーマンスを発揮したことを明確に示しています。 この演習で提供される柔軟性は、適切なアルゴリズムを選択するのに役立ち、提供されたノートブックを使用して、XNUMX の利用可能なモデルのいずれかでこのタイプの実験を簡単に実行できます。
まとめ
この投稿では、JumpStart を使用して、モデルの精度、トレーニング時間、推論の待ち時間など、関心のある複数の次元で高性能の画像分類モデルを構築する方法を示しました。 また、この演習を独自のデータセットで実行するためのコードも提供しました。 JumpStart モデル ハブで現在画像分類に使用できる 87 個のモデルから、関心のあるモデルを選択できます。 ぜひ今すぐお試しください。
JumpStart の詳細については、次を参照してください。 SageMaker ジャンプスタート.
著者について
ラジュ・ペンマッチャ博士 AWS の AI プラットフォームの AI/ML スペシャリスト ソリューション アーキテクトです。 スタンフォード大学で博士号を取得。 彼は、顧客が機械学習モデルとソリューションを簡単に構築してデプロイできるようにする SageMaker のローコード/ノーコード サービス スイートに密接に取り組んでいます。 顧客をサポートしていないときは、新しい場所に旅行するのが好きです。
アシッシュ・ケタン博士 は、Amazon SageMaker 組み込みアルゴリズムを使用する上級応用科学者であり、機械学習アルゴリズムの開発を支援しています。 イリノイ大学アーバナシャンペーン校で博士号を取得。 彼は機械学習と統計的推論の活発な研究者であり、NeurIPS、ICML、ICLR、JMLR、ACL、および EMNLP カンファレンスで多くの論文を発表しています。