Amazon Web Services ブログ
Amazon SageMaker で、セマンティックセグメンテーションアルゴリズムが利用可能になりました
Amazon SageMaker は、マネージド型で、無限に拡張可能な機械学習 (ML) プラットフォームです。このプラットフォームを使用すると、機械学習モデルの構築、トレーニング、デプロイが簡単になります。Amazon SageMaker には、画像分類と物体検出のための 2 つの定評があるコンピュータビジョンアルゴリズムがすでに組み込まれています。Amazon SageMaker の画像分類アルゴリズムは、画像をあらかじめ定義されたカテゴリのセットに分類することを学習します。Amazon SageMaker の物体検出アルゴリズムは、境界ボックスを描画し、ボックス内の物体を識別することを学習します。本日、Amazon SageMaker セマンティックセグメンテーションアルゴリズムの開始により、コンピュータビジョンファミリーのアルゴリズムを強化することを発表いたします。
セマンティックセグメンテーション (SS) とは、既知のラベルセットからのクラスを使用して画像内のすべてのピクセルを分類するタスクです。セグメンテーション出力は通常、異なる RGB (クラス数が 255 未満の場合はグレースケール) の値として表現されます。したがって、出力は、入力画像と同じ形状のマトリックス (またはグレースケール画像) です。この出力画像は、セグメンテーションマスクとも呼ばれます。Amazon SageMaker セマンティックセグメンテーションアルゴリズムを使用すると、独自のデータセットでモデルをトレーニングできることに加えて、事前にトレーニングされたモデルを使用して希望通りに初期化を行うこともできます。このアルゴリズムは、MXNet Gluon フレームワークと Gluon CV ツールキットを使用して構築されています。セマンティックセグメンテーションモデルを学習することができる、次の 3 つの最先端の組み込みアルゴリズムの選択肢を提供します。
すべてのアルゴリズムに、2 つの異なるコンポーネントがあります。
- エンコーダまたはバックボーン。
- デコーダ。
バックボーンは、画像の特徴の信頼できるアクティブ化マップを作成するネットワークです。デコーダは、エンコードされたアクティブ化マップからセグメンテーションマスクを構築するネットワークです。Amazon SageMaker セマンティックセグメンテーションは、バックボーンのオプションとして、事前にトレーニングされた、またはランダムに初期化された ResNet50 または ResNet101 の選択肢を提供します。バックボーンには、元は ImageNet 分類タスクでトレーニングされた、事前トレーニング済みのアーティファクトが付属しています。これらは、ユーザーがセグメンテーションのために FCN または PSP バックボーンを微調整するために使用できる、信頼性の高い事前トレーニング済みのアーティファクトです。また、ユーザーはこれらのネットワークをゼロから初期化することもできます。デコーダは決して事前にトレーニングされていません。
このアルゴリズムは、単一マシン構成の P2/P3 タイプの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを使用してトレーニングすることができます。アルゴリズムによってトレーニングされたモデルは、Amazon SageMaker でサポートされているすべての CPU および GPU インスタンスでホストすることができます。ただし、畳み込みネットワークで GPU を完全に使用するために高度な数学ライブラリを利用できるため、CPU マシンでのトレーニングは常に GPU マシンより高価です。したがって、トレーニングは GPU マシンに限定します。トレーニングを受け、適切にホストされている場合、アルゴリズムはクエリ画像のセグメンテーションマスクを PNG ファイルとして生成するか、各クラスの各ピクセルの確率スコアを生成することができます。このアルゴリズムは、さまざまなサイズ、形状およびスケールのセグメントをネイティブで処理できます。
開始方法
Amazon SageMaker セマンティックセグメンテーションは、顧客のトレーニングデータセットが Amazon Simple Storage Service (Amazon S3) に存在すると期待しています。トレーニングを受けると、結果として Amazon S3 にモデルアーティファクトを生成します。Amazon SageMaker は、トレーニング中、顧客のために Amazon EC2 インスタンスを起動および停止します。 モデルをトレーニングすると、エンドポイントにデプロイすることができます。Amazon SageMaker ワークフローの一般的でハイレベルな概要については、Amazon SageMaker のドキュメントを参照してください。Amazon SageMaker セマンティックセグメンテーションアルゴリズムは、いくつかのインターフェイスを使用してトレーニングすることができます。AWS マネジメントコンソールのインターフェイスには、トレーニングジョブを開始してエンドポイントを作成するために使用できるシンプルなフォームに似た構造があります。また、関連するノートブックを使って説明されている Python で利用できる API もあります。
I/O 形式
Amazon SageMaker セマンティックセグメンテーションアルゴリズムは、次のファイル入力形式をサポートしています。この形式では、ユーザーが画像を直接渡すことができます。Amazon S3 のデータセットは 4 つのチャネルで表現されることが予想されます。トレーニング
用に 2 つと、4 つのディレクトリを使用する検証
用に 2 つ、あるいは画像用に 2 つ、注釈用に 2 つです。注釈は、圧縮されていない PNG 画像であると予想されます。データセットは、注釈マッピングがどのように確立されるかを記述するラベルマップを持つこともできます。そうでない場合、デフォルトが使用されます。このアルゴリズムは、様々な注釈システムおよび標準的なベンチマークデータセットからの注釈を処理することができます。 また、このアルゴリズムは、S3 から直接パイプモードでのトレーニングの拡張マニフェストもサポートしています。I/O 形式の仕組みに関しては、ドキュメントを参照してください。このアルゴリズムでは、S3 から直接パイプモードで動作する拡張マニフェストを使用して入力を提供することができます。
推論の形式
モデルのエンドポイントを使用してトレーニングしたモデルを照会するには、必要な出力のタイプを示す受入れタイプとともに画像を提供する必要があります。リクエストに応じて、アルゴリズムはセグメンテーションマスクを含む PNG ファイルをラベル自体と同じ形式で出力するか、protobuf 形式でエンコードされたクラス確率を出力します。受入れタイプの詳細については、ドキュメントを参照してください。
トレーニングジョブ
Amazon SageMaker セマンティックセグメンテーションアルゴリズムは、トレーニング用では GPU インスタンスだけをサポートしていることに注意してください。大きなバッチサイズのトレーニングには、メモリを増やした GPU インスタンスを使用することをお勧めします。 アルゴリズムのトレーニング中は、Amazon SageMaker ノートブックまたは Amazon CloudWatch で進行状況を監視することができます。トレーニングが完了すると、トレーニングされたモデルアーティファクトがトレーニング設定で指定した Amazon S3 の出力場所にアップロードされます。モデルをエンドポイントとしてデプロイするには、CPU インスタンスまたは GPU インスタンスのいずれかを選択できます。
パフォーマンスの数値
以下の数字は、Amazon SageMaker セマンティックセグメンテーションアルゴリズムのパフォーマンスの数値を示しています。PASCAL VOC12 トレーニングデータセットをトレーニングし、クロップサイズが 240X240 の VOC12 検証データセットで mean Intersection-over-Union (mIOU) を測定しました。 実験では、デフォルトパラメータ (momentum
= 0.9、weight_decay
= 0.0001) で backbone = "resnet-50"
と “rmsprop” をオプティマイザとして使用しました。モデルを 20 エポックトレーニングし、mIOU で 0.62 を達成しました。backbone="resnet-50"
を使用すると、1 つの GPU (ml.p3.2xlarge
) から (ml.p3.16xlarge
) インスタンスでの 8 つの GPU で mini_batch_size
が前者では 8、後者では 64 であり、トレーニング速度は約 5.83 倍のスピードアップとなります。同様に、ml.p2.16xlarge
から ml.p3.16xlarge
マルチ GPU インスタンスに移行すると、2.5 倍を超えるスピードの増加も観測されました。
ノートブック
物体検出の例は、SageMaker ノートブックリポジトリにあります。 完全なチュートリアルと、データの準備およびハイパーパラメータに関する推奨事項については、こちらを参照してください。
結論
このブログ記事では、Amazon SageMaker セマンティックセグメンテーションアルゴリズムの開始を発表しました。独自のセマンティックセグメンテーションモデルの学習を始める方法を説明し、いくつかのパフォーマンスの数値を示しました。セマンティックセグメンテーションの独自の実装の設定に関するご意見をお待ちしております。
まとめ
Ragav Venkatesan は、AWS AI ラボのリサーチサイエンティストです。彼は、アリゾナ州立大学で電気工学の修士号とコンピュータサイエンスの博士号を取得しています。彼の現在の研究領域には、Amazon SageMaker のためのニューラルネットワーク圧縮とコンピュータビジョンアルゴリズムが含まれます。仕事以外では、Ragav は Thaalam スタジオのセッションベーシストであり、プロデューサーです。
Saksham Saini は、イリノイ大学アーバナシャンペーン校でコンピューター工学の学士号を取得しました。彼は現在、Amazon SageMaker 向けに高度に最適化され、スケーラブルなアルゴリズムの構築に取り組んでいます。仕事以外では、彼は読書、音楽、旅行を楽しんでいます。
Satyaki Chakraborty は、コンピュータビジョンを学んでいるカーネギーメロン大学の修士課程の学生です。彼は、夏のインターンシップの間に Amazon SageMaker セマンティックセグメンテーションに貢献しました。
Xiong Zhou は、AWS AI ラボのアプライドサイエンティストです。彼は、ヒューストン大学で電気電子工学の博士号を取得しました。彼の現在の研究テーマは、領域適応とアクティブラーニングのアルゴリズムの開発です。また、Amazon SageMaker のコンピュータビジョンアルゴリズムの構築にも取り組んでいます。
Luka Krajcar は、AWS AI アルゴリズムチームのソフトウェア開発エンジニアです。彼は、ザグレブ大学の電気工学コンピューティング学部でコンピュータサイエンスの修士号を取得しています。仕事以外では、Luka はフィクションの読書、ランニング、ビデオゲームを楽しんでいます。
Hang Zhang は、Amazon AI のアプライドサイエンティストです。彼は、ラトガース大学の博士号を取得しています。彼は現在、GluonCV チームと仕事をしています。