🚀 ニフティ’s Notion

Amazon SageMaker Ground Truthを使った画像のラベリング

Amazon SageMaker Ground Truthとは

💡
簡単に解説
  • 機械学習のためのデータ作成を手助けするサービス
  • データのラベリングや注釈付けを簡単に行えるため、トレーニングデータの作成が効率的に行える
  • 高品質なトレーニングデータの作成をサポート

データラベリングのつらみ

  1. ラベリングの主観性
    • 主観的な判断に基づいて行われることがある
    • 異なるラベラー間での主観的な解釈の違いが生じることがあり、一貫性を確保することが難しい場合がある
  2. 時間とコスト
    • 大規模なデータセットのラベリングは、時間とコストがかかる
    • 高品質なラベルを必要とするタスクや、複数のラベルを付ける必要がある複雑なタスクでは、膨大な労力が必要となる
    • データの増加に伴い、ラベリングのプロセスはスケーラビリティの問題を引き起こすことがある
  3. ラベルの不確実性
    • データには不確実性が存在し、特に境界の曖昧なインスタンスや困難なケースでは、正しいラベルを付けることが難しくなる
    • ラベル付けのプロセス自体にヒューマンエラーが含まれることもあり、正確なラベルを得ることが困難な場合もある
    • モデルの学習が困難になったり、予測の信頼性が低下する可能性がある

やりたいこと

  • 機械学習モデルを学習させる前に、トレーニング用データの準備をする
  • Amazon SageMaker Ground Truthを使って、画像に写っている犬種が何なのかを手動で特定し、データにラベルを付けていく

画像の準備

画像のダウンロード
S3バケットの作成
  1. Amazon S3のコンソール画面に行き、バケットを作成をクリック
  2. バケット名を指定して、作成(名前はなんでも良いです)
    image block
S3バケットへ画像をアップロードする
  1. 作成したS3バケットをクリックすると、以下のような画面が表示されるので、アップロードをクリック
    image block
  2. 以下のような画面に遷移する。ここに、先ほどダウンロードしたdogsフォルダをドラッグ&ドロップする
    image block
  3. ファイルが追加されていることを確認したら、アップロードをクリック
    image block
  4. S3バケットのページに戻ってみると、アップロードされていることが確認できる
    image block

画像のラベリング

ワークフォースの作成
  1. Amazon SageMakerのページを開く
  2. 左側のメニューから「Ground Truth」を展開し、「ラベリングワークフォース」をクリック
  3. 「プライベート」をクリックし、「プライベートチームを作成」をクリック
    image block
  4. プライベートチームを作成する
    1. AWS Cognitoでプライベートチームを作成する
    2. チーム名: ml-classifier
    3. Eメールによる新しいワーカーの招待
    4. Eメールアドレス: xxxx.yyyy@nifty.co.jp
    5. 組織名: team-ml
    6. 連絡先Eメール: xxxx.yyyy@nifty.co.jp
    7. 全ての入力が終わったら、「プライベートチームを作成」をクリック
  5. プライベートチーム、ワーカーが作成されていることを確認する
    image block
ラベリングジョブの作成
  1. Amazon SageMakerのページを開く
  2. 左側のメニューから「Ground Truth」を展開し、「ラベリングジョブ」をクリック
  3. 「ラベリングジョブの作成」をクリック
    image block
  4. 以下のように設定する(以下に書かれていないものはデフォルトのままでOK)
    • ジョブ名: dog-labeling
    • 入力データセットのS3バケットの場所: S3 URI というボックスに、 s3://<最初に作成したS3バケット名>/dogs/ を入力
      • 「S3の参照」をクリックして、検索しても良い
    • 出力データセットのS3バケットの場所: 入力データセットと同じ場所
    • データタイプ: 画像
    • IAMロール: create new role
      • 任意のS3バケット
      image block
    • 「完全なデータセットアップ」をクリック
    • タスクカテゴリ: 画像
    • タスクの選択: ImageClassification(単一ラベル)
    • 全ての入力が終わったら、「次へ」をクリック
  5. 続いて、ワーカーの選択とツールの設定ページ
    • ワーカータイプ: プライベート
    • プライベートチーム: ml-classifier
    • 画像分類 (単一ラベル) ラベル付けツール
      • ポメラニアン(pome)かトイプードル(toy)のどちらの犬が映っているかを選択してください
      • オプションを選択
        • pome
        • toy
      image block
    • 全ての入力が終わったら、「作成」をクリック

これでラベリングジョブが作成され、作業者が指定したラベルを付けることができる

ラベリングが完了したら、指定したアウトプットディレクトリに結果が自動的に保存される

ラベリングの実施
  1. ラベリングジョブの作成が完了すると、ワーカーに以下のようなメールが届く
    URLをクリックし、ラベリングツールにアクセスする
    image block
  2. URLをクリックすると、サインイン画面が表示される
    メールに記載されたユーザー名とパスワードを入力して、サインインする
    初回のみパスワードの変更を求められるので、パスワードを変更する
    image block
  3. サインインすると、ラベリングジョブ一覧画面が表示されるので、先ほど作成したラベリングジョブを選択し、「Start working」をクリック
    image block
  4. ブラウザに以下のような画面が表示されるので、表示された画像に対するラベルを右側のリストから選択し、右下の「Submit」をクリックする
    全ての画像に対してラベリングが完了するまでラベリングする
    image block
ラベリング結果の確認
  1. ラベリングジョブ一覧画面から、作成したラベリングジョブのステータスが「進行中」から「完了」に変わっていることを確認する
    image block
  2. ラベリングジョブをクリックし、詳細画面に遷移する
    入力データセットや出力データセット(ラベリング結果)の保存場所を確認することができる
    また、下にスクロールするとラベリング結果の確認をすることができる
    image block

    次のページ

    Amazon Rekognitionを使った機械学習モデルの学習と推論