

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# カスタムモデレーションによる精度の向上
<a name="moderation-custom-moderation"></a>

 Amazon Rekognition の [DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) API を使用すると、不適切なコンテンツや不快な迷惑コンテンツを検出できます。Rekognition のカスタムモデレーション機能では、アダプターを使用することにより [DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) の精度を高めることができます。アダプターは、既存の Rekognition 深層学習モデルに追加できるモジュール式のコンポーネントであり、トレーニング対象のタスクに合わせて機能を拡張できます。アダプターを作成して [DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) オペレーションでこれを指定することにより、特定のユースケースに関連するコンテンツモデレーションタスクの精度をさらに高めることができます。

Rekognition のコンテンツモデレーションモデルを特定のモデレーションラベル用にカスタマイズするときは、プロジェクトを作成し、提供した一連のイメージに基づいて、アダプターをトレーニングします。そうすることで、アダプターのパフォーマンスを繰り返し確認し、希望する精度になるまでアダプターをトレーニングできます。プロジェクトは、異なるバージョンのアダプターを含めるために使用されます。

プロジェクトとアダプターを作成するときは Rekognition コンソールを使用します。または、 AWS SDK および関連する APIs を使用して、プロジェクトの作成、アダプターのトレーニング、アダプターの管理を行うことができます。



# アダプターの作成と使用
<a name="creating-and-using-adapters"></a>

アダプターは、既存の Rekognition 深層学習モデルに追加できるモジュール式のコンポーネントであり、トレーニング対象のタスクに合わせて機能を拡張できます。アダプターを使って深層学習モデルをトレーニングすることにより、特定のユースケースに関連するイメージ分析タスクの精度を高めることができます。

アダプターを作成して使用するには、Rekognition にトレーニングデータとテストデータを提供する必要があります。そのためには、次のうちいずれかの方法を実行します。
+ 一括分析と検証 - Rekognition が分析とラベルの割り当てを行うイメージを一括分析することで、トレーニングデータセットを作成できます。その後、イメージ用に生成された注釈をレビューし、予測を検証または修正します。イメージを一括分析する方法の詳細については、「[Bulk analysis](https://docs.aws.amazon.com/rekognition/latest/dg/bulk-analysis.html)」を参照してください。
+ 手動での注釈 - イメージをアップロードし注釈を付けることによりトレーニングデータを作成するときはこの方法を使います。テストデータは、イメージをアップロードして注釈を付けるか、自動分割することにより作成します。

詳細については、以下のトピックをご覧ください。

**Topics**
+ [一括分析と検証](adapters-bulk-analysis.md)
+ [手動での注釈](adapters-manual-annotation.md)

# 一括分析と検証
<a name="adapters-bulk-analysis"></a>

この方法では、トレーニングデータとして使用する大量のイメージをアップロードし、Rekognition を使ってそれらイメージの予測を取得します。それにより、イメージに自動的にラベルが割り当てられます。これらの予測は、アダプターの出発点として使用できます。予測の精度は検証が可能で、アダプターは検証済みの予測に基づいてトレーニングします。これは AWS コンソールで実行できます。



 以下のビデオでは、Rekognition の一括分析機能を使用して大量の画像の予測を取得して検証し、それらの予測でアダプターをトレーニングする方法について説明しています。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/IGGMHPnPZLs?si=5eoidzFPbL6i5FfY/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/IGGMHPnPZLs?si=5eoidzFPbL6i5FfY)


## 一括分析用のイメージのアップロード
<a name="adapters-bulk-analysis-upload-images"></a>

アダプター用のトレーニングデータセットを作成するには、Rekognition がラベルを予測できるよう、イメージを一括でアップロードします。最善の結果を得るには、10,000 を上限として、できる限り多くのトレーニング用イメージを用意し、それらのイメージで、ユースケースのありとあらゆる側面を表現できるようにします。

 AWS コンソールを使用する場合、コンピュータから直接イメージをアップロードしたり、イメージを保存する Amazon Simple Storage Service バケットを提供したりできます。ただし、Rekognition API と SDK を使用する場合は、Amazon Simple Storage Service バケットに保存されているイメージを参照する、マニフェストファイルを提供する必要があります。詳細については「[Bulk analysis](https://docs.aws.amazon.com/rekognition/latest/dg/bulk-analysis.html)」を参照してください。

## 予測のレビュー
<a name="adapters-bulk-analysis-review-predictions"></a>

イメージを Rekognition コンソールにアップロードすると、Rekognition でそのイメージ用のラベルが生成されます。それにより、これらの予測を真陽性、偽陽性、真陰性、偽陰性のいずれかのカテゴリとして検証できます。予測を検証した後、フィードバックに基づいてアダプターをトレーニングできます。

## アダプターのトレーニング
<a name="adapters-bulk-analysis-train-adapter"></a>

一括分析で返された予測の検証が完了すると、アダプターのトレーニングプロセスを開始できます。

## AdapterId の取得
<a name="adapters-bulk-analysis-get-adapter"></a>

アダプターのトレーニングが完了すると、アダプターの一意の ID を取得して、Rekognition のイメージ分析 API と共に使用できるようになります。

## API オペレーションの呼び出し
<a name="adapters-bulk-analysis-call-operation"></a>

カスタムのアダプターを適用するには、アダプターをサポートしているイメージ分析 API を呼び出す際にその ID を指定します。これにより、イメージの予測精度が高まります。

# 手動での注釈
<a name="adapters-manual-annotation"></a>

イメージを手動でアップロードし注釈を付けることによりトレーニングデータを作成するときは、この方法を使います。テストデータは、テストイメージをアップロードしこれに注釈をつけるか、自動分割により、Rekognition でトレーニングデータの一部をテストイメージとして使用することによって作成します。

## イメージのアップロードと注釈付け
<a name="adapters-upload-sample-images"></a>

アダプターをトレーニングするには、典型的なユースケースの、サンプルイメージのセットをアップロードする必要があります。最善の結果を得るには、10,000 を上限として、できる限り多くのトレーニング用イメージを用意し、それらのイメージで、ユースケースのありとあらゆる側面を表現できるようにします。

![\[トレーニング画像をインポートするためのオプションを示すインターフェイス。マニフェストファイルをインポートする、S3 バケットからインポートする、コンピュータから画像をアップロードするなどのオプションがある。S3 URI フィールドと、読み取り/書き込みアクセス許可の確保に関する注意が表示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-11-traiing-dataset.png)


 AWS コンソールを使用する場合、コンピュータから直接イメージをアップロードしたり、マニフェストファイルを提供したり、イメージを保存する Amazon S3 バケットを提供したりできます。

 ただし、Rekognition API と SDK を使用する場合は、Amazon S3 バケットに保存されているイメージを参照する、マニフェストファイルを提供する必要があります。

イメージの注釈は [Rekognition コンソール](https://console.aws.amazon.com/rekognition)の注釈インターフェイスを使って付けることができます。ラベルを使ってタグ付けすることでイメージに注釈を付けると、トレーニングの「グラウンドトゥルース」が設定されます。また、アダプターをトレーニングする前にトレーニングセットとテストセットを指定するか、自動分割機能を使用する必要があります。データセットの指定とイメージの注釈付けが完了したら、テストセット内の注釈付きイメージに基づいてアダプターを作成できるようになります。その後、アダプターのパフォーマンスを評価できます。

## テストセットの作成
<a name="adapters-training-testing"></a>

注釈付きのテストセットを提供するか、自動分割機能を使用します。トレーニングセットは、アダプターを実際にトレーニングするのに使用します。アダプターは、これらの注釈付きイメージに含まれるパターンを学習します。テストセットは、アダプターを完成させる前にモデルのパフォーマンスを評価するために使用します。

## アダプターのトレーニング
<a name="adapters-train-adapter"></a>

 トレーニングデータの注釈が完了すると、または、マニフェストファイルを提供すると、アダプターのトレーニングプロセスを開始できます。

## アダプター ID の取得
<a name="adapter-get-adapter"></a>

アダプターのトレーニングが完了すると、アダプターの一意の ID を取得して Rekognition のイメージ分析 API と共に使用できるようになります。

## API オペレーションの呼び出し
<a name="adapter-call-operation"></a>

カスタムのアダプターを適用するには、アダプターをサポートしているイメージ分析 API を呼び出す際にその ID を指定します。これにより、イメージの予測精度が高まります。

# データの準備
<a name="preparing-datasets-adapters"></a>

アダプターを作成するには、Rekognition に 2 つのデータセット (トレーニングデータセットとテストデータセット) を提供する必要があります。各データセットは、イメージと注釈/ラベルという 2 つの要素で構成されています。以下のセクションでは、ラベルとイメージの用途、およびこれらを組み合わせてデータセットを作成する方法について説明します。

## イメージ
<a name="preparing-datasets-adapters-images"></a>

イメージの典型的な例を使ってアダプターをトレーニングします。トレーニング用のイメージを選択するときは、アダプターでターゲットとする各ラベルの、予想される反応を示すイメージを複数含めるようにします。

トレーニングデータセットを作成するには、次の 2 種類のイメージからいずれかを提供する必要があります。
+ 偽陽性の予測を含むイメージ。例えば、ベースモデルはアルコールが含まれていると予測したものの、実際は含まれていないイメージ。
+ 偽陰性の予測を含むイメージ。例えば、ベースモデルはアルコールが含まれていないと予測したものの、実際は含まれているイメージ。

バランスの取れたデータセットを作成するには、次の 2 種類のイメージからいずれかを提供することが推奨されます。
+ 真陽性の予測を含むイメージ。例えば、アルコールが含まれていることをベースモデルが正確に予測しているイメージ。偽陽性のイメージを提供する場合は、これらのイメージを提供することが推奨されます。
+ 真陰性の予測を含むイメージ。例えば、アルコールが含まれていないことをベースモデルが正確に予測しているイメージ。偽陰性のイメージを提供する場合は、これらのイメージを提供することが推奨されます。

## ラベル
<a name="preparing-datasets-adapters-labels"></a>

ラベルは、オブジェクト、イベント、概念、アクティビティのいずれかを参照します。コンテンツモデレーションでは、ラベルは、不適切なコンテンツや不快な迷惑コンテンツのインスタンスです。

Rekognition のベースモデルをトレーニングすることでアダプターを作成する場合、イメージにラベルを割り当てることを注釈と言います。Rekognition コンソールでアダプターをトレーニングするときは、コンソールを使って、ラベルを選択し、そのラベルに対応するイメージにタグを付けることで、イメージに注釈を追加します。このプロセスを通じて、モデルは割り当てられたラベルに基づきイメージの要素を識別する方法を学習します。このリンク処理により、モデルは、アダプターの作成時に最も関連性の高いコンテンツに集中することができ、イメージ分析の精度を高めることができます。

あるいはマニフェストファイルを提供することもできます。このファイルには、イメージに関する情報とそれに付随する注釈が含まれています。

## トレーニングデータセットとテストデータセットの作成
<a name="preparing-datasets-adapters-datasets"></a>

トレーニングデータセットは、モデルの微調整やカスタムアダプターの作成の土台となるものです。トレーニングデータセットは、モデルが学習できるよう、注釈付きで提供する必要があります。モデルはこのデータセットから学習することにより、指定したタイプのイメージに関するパフォーマンスを高めることができます。

 精度を高めるには、イメージに注釈やラベルを付けてトレーニングデータセットを作成する必要があります。このためには以下の 2 つの方法があります。
+  手動でのラベル割り当て - Rekognition コンソールを使って、データセットに含めるイメージをアップロードすることでトレーニングデータセットを作成し、そのイメージに手動でラベルを割り当てます。
+  マニフェストファイル — マニフェストファイルを使用してアダプターをトレーニングします。マニフェストファイルには、トレーニングイメージとテストイメージのグラウンドトゥルースの注釈と、トレーニングイメージの場所に関する情報が含まれています。Rekognition APIs を使用してアダプターをトレーニングするとき、または AWS コンソールを使用するときに、マニフェストファイルを指定できます。

テストデータセットは、トレーニング後のアダプターのパフォーマンスを評価する際に使用します。信頼性の高い評価を行うため、テスト用データセットは、元のトレーニングデータセットのうち、モデルがこれまでに処理したことのないものを使用して作成されます。このプロセスによりアダプターのパフォーマンスを常に最新のデータで評価して、正確な測定値と指標を得ることができます。最適な精度の向上については、「[トレーニングアダプターのベストプラクティス](using-adapters-best-practices.md)」を参照してください。

# CLI と SDKs AWS を使用したアダプターの管理
<a name="managing-adapters"></a>

 Rekognition では、事前トレーニングされたコンピュータビジョンモデルを活用した、複数の機能を利用できます。これらのモデルを使用すると、ラベル検出やコンテンツモデレーションなどのタスクを実行できます。また、こうした特定のモデルを、アダプターを使用してカスタマイズすることもできます。

Rekognition のプロジェクト作成およびプロジェクト管理 API ([CreateProject](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProject.html) や [CreateProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProjectVersion.html)) を使用すると、アダプターの作成およびトレーニングが行えます。以下のページでは、 API オペレーションを使用して、 AWS コンソール、選択した AWS SDK、または AWS CLI を使用してアダプターを作成、トレーニング、管理する方法について説明します。

アダプターをトレーニングした後は、サポートされている機能を使って推論を行う際にこれを使用できます。現在、アダプターはコンテンツモデレーション機能を使用するときにサポートされています。

 AWS SDK を使用してアダプターをトレーニングするときは、グラウンドトゥルースラベル (画像注釈) をマニフェストファイルの形式で指定する必要があります。または、Rekognition コンソールを使用して、アダプターを作成しトレーニングすることもできます。

**注記**  
 アダプターはコピーできません。コピーできるのは、Rekognition Custom Labels のプロジェクトバージョンのみです。

**Topics**
+ [アダプターのステータス](#managing-adapters-project-versions-statuses)
+ [プロジェクトの作成](managing-adapters-create-project.md)
+ [プロジェクトの記述](managing-adapters-describe-projects.md)
+ [プロジェクトの削除](managing-adapters-delete-project.md)
+ [プロジェクトバージョンの作成](managing-adapters-create-project-version.md)
+ [プロジェクトバージョンの記述](managing-adapters-describe-project.md)
+ [プロジェクトバージョンの削除](managing-adapters-delete-project-version.md)

## アダプターのステータス
<a name="managing-adapters-project-versions-statuses"></a>

カスタムモデレーションアダプター (プロジェクトバージョン) は、以下のいずれかのステータスになります。
+ TRAINING\$1IN\$1PROGRESS - アダプターは、トレーニングドキュメントとして提供したファイルでトレーニング中です。
+ TRAINING\$1COMPLETED - トレーニングが正常に完了し、アダプターはパフォーマンスの確認準備ができています。
+ TRAINING\$1FAILED - アダプターは何らかの理由でトレーニングを完了できませんでした。失敗の原因について、出力マニフェストファイルと出力マニフェスト概要を確認してください。
+ DELETING - アダプターは削除中です。
+ DEPRECATED - アダプターはコンテンツモデレーション基本モデルの古いバージョンでトレーニングされています。猶予期間中であり、基本モデルの新しいバージョンのリリースから 60〜90 日以内に期限切れになります。猶予期間中も、アダプターを [DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) または [StartMediaAnalysisJob](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartMediaAnalysisJob.html) API オペレーションで推論に使用できます。アダプターの有効期限については、「カスタムモデレーションコンソール」を参照してください。
+ EXPIRED - アダプターは、古いバージョンのコンテンツモデレーション基本モデルでトレーニングされており、DetectModerationLabels または StartMediaAnalysisJob API オペレーションでカスタム結果を取得するために使用できなくなりました。期限切れのアダプターを推論リクエストで指定した場合は無視され、代わりに最新バージョンのカスタムモデレーション基本モデルからレスポンスが返されます。

# プロジェクトの作成
<a name="managing-adapters-create-project"></a>

[CreateProject](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProject.html) オペレーションでは、Rekognition のラベル検出オペレーション用のアダプターを含むプロジェクトを作成できます。プロジェクトとはリソースのグループであり、DetectModerationLabels のようなラベル検出オペレーションの場合、ベースの Rekognition モデルのカスタマイズに使用できるアダプターを、プロジェクトを使って保存できます。CreateProject を呼び出すときに、作成するプロジェクトの名前を、ProjectName 引数で指定します。

 AWS コンソールを使用してプロジェクトを作成するには: 
+ Rekognition コンソールにサインインします。
+ **[カスタムモデレーション]** をクリックします。
+ **[プロジェクトを作成]** を選択します。
+ **[新しいプロジェクトを作成]** または **[既存のプロジェクトに追加]** を選択します。
+ **[プロジェクト名]** を追加します。
+ **[アダプター名]** を追加します。
+ 必要に応じて説明を追加します。
+ トレーニングイメージのインポート方法 (マニフェストファイル、S3 バケットから、コンピュータから) を選択します。
+ トレーニングデータを自動分割するか、マニフェストファイルをインポートするか、いずれかを選択します。
+ プロジェクトを自動的に更新するか否かを選択します。
+ **[プロジェクトを作成]** をクリックします。

CLI と SDK AWS を使用してプロジェクトを作成するには:

1. まだインストールしていない場合は、 AWS CLI と AWS SDKs をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKsを設定する](setup-awscli-sdk.md)」を参照してください。

1. 次のコードを実行してプロジェクトを作成します。

------
#### [ CLI ]

```
# Request
# Creating Content Moderation Project
aws rekognition create-project \
    --project-name "project-name" \
    --feature CONTENT_MODERATION \
    --auto-update ENABLED
    --profile profile-name
```

------

# プロジェクトの記述
<a name="managing-adapters-describe-projects"></a>

[DescribeProjects](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects.html) API を使用することで、プロジェクトに関する情報 (プロジェクトに関連付けられているすべてのアダプターに関する情報など) を取得できます。

CLI と SDK AWS を使用してプロジェクトを記述するには:

1. まだインストールしていない場合は、 CLI と AWS SDKs AWS をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKsを設定する](setup-awscli-sdk.md)」を参照してください。

1. 次のコードを実行してプロジェクトを記述します。

------
#### [ CLI ]

```
# Request
# Getting CONTENT_MODERATION project details 
aws rekognition describe-projects \
    --features CONTENT_MODERATION
    --profile profile-name
```

------

# プロジェクトの削除
<a name="managing-adapters-delete-project"></a>

プロジェクトは、Amazon Rekognition コンソールを使用するか、[DeleteProject](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProject.html) API を使用することで削除できます。プロジェクトを削除するには、先に、関連付けられたアダプターをすべて削除する必要があります。一度削除したプロジェクトまたはモデルは、元に戻せません。

 AWS コンソールでプロジェクトを削除するには: 
+ Rekognition コンソールにサインインします。
+ **[カスタムモデレーション]** をクリックします。
+ プロジェクト自体を削除するときは、先に、それに関連付けられたアダプターを削除する必要があります。プロジェクトに関連付けられているアダプターをすべて削除するには、アダプターを選択して **[削除]** を選択します。
+ プロジェクトを選択し、**[削除]** をクリックします。

CLI と SDK AWS を使用してプロジェクトを削除するには:

1. まだインストールしていない場合は、 CLI と AWS SDKs AWS をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKsを設定する](setup-awscli-sdk.md)」を参照してください。

1. 次のコードを実行してプロジェクトを削除します。

------
#### [ CLI ]

```
aws rekognition delete-project 
  --project-arn project_arn \
  --profile profile-name
```

------

# プロジェクトバージョンの作成
<a name="managing-adapters-create-project-version"></a>

アダプターをデプロイ用にトレーニングするには、[CreateProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateProjectVersion.html) オペレーションを使用します。CreateProjectVersion は、最初に、プロジェクトに関連付けられたアダプターの新しいバージョンを作成し、その後、アダプターのトレーニングを開始します。CreateProjectVersion のレスポンスは、当該モデルのバージョンの Amazon リソースネーム (ARN) です。トレーニングが完了するまでしばらく時間がかかります。現在のステータスは、DescribeProjectVersions を呼び出すことで確認できます。モデルをトレーニングするとき、Rekognition は、プロジェクトに関連付けられたトレーニングデータセットとテストデータセットを使用します。データセットはコンソールで作成できます。詳細については、データセットのセクションを参照してください。

 Rekognition コンソールでプロジェクトを作成するには 
+  AWS Rekognition コンソールにサインインします。
+  [カスタムモデレーション] をクリックします。
+  プロジェクトを選択します。
+  [プロジェクトの詳細] ページで、**[アダプターを作成]** を選択します。
+  [プロジェクトを作成] ページで、[プロジェクトの詳細]、[トレーニング画像]、[テスト画像] に必要な情報を入力し、**[プロジェクトを作成]** を選択します。
+  [画像にラベルを割り当てる] ページで、イメージにラベルを追加し、完了したら **[トレーニングを開始]** を選択します。

CLI と SDK AWS を使用してプロジェクトバージョンを作成するには:

1. まだインストールしていない場合は、 CLI と AWS SDKs AWS をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKsを設定する](setup-awscli-sdk.md)」を参照してください。

1. 次のコードを実行してプロジェクトバージョンを作成します。

------
#### [ CLI ]

```
# Request
aws rekognition create-project-version \
 --project-arn project-arn \
 --training-data '{Assets=[GroundTruthManifest={S3Object="amzn-s3-demo-source-bucket",Name="manifest.json"}]}' \
 --output-config S3Bucket=amzn-s3-demo-destination-bucket,S3KeyPrefix=my-results \
 --feature-config "ContentModeration={ConfidenceThreshold=70}"
 --profile profile-name
```

------

# プロジェクトバージョンの記述
<a name="managing-adapters-describe-project"></a>

プロジェクトに関連付けられているアダプターを一覧表示して記述するには、[DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions.html) オペレーションを使用します。ProjectVersionArns では最大 10 個のモデルバージョンを指定できます。値を指定しないと、プロジェクト内のすべてのモデルバージョンの説明が返されます。

CLI と SDK AWS を使用してプロジェクトバージョンを記述するには:

1. まだインストールしていない場合は、 CLI と AWS SDKs AWS をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKsを設定する](setup-awscli-sdk.md)」を参照してください。

1. 次のコードを実行してプロジェクトバージョンを記述します。

------
#### [ CLI ]

```
aws rekognition describe-project-versions 
  --project-arn project_arn \
  --version-names [versions]
```

------

# プロジェクトバージョンの削除
<a name="managing-adapters-delete-project-version"></a>

プロジェクトに関連付けられている Rekognition アダプターを削除するには、[DeleteProjectVersion](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteProjectVersion.html) オペレーションを使用してます。実行中またはトレーニング中のアダプターは削除できません。アダプターのステータスを確認するには、DescribeProjectVersions オペレーションを呼び出し、そのオペレーションによって返されるステータスフィールドを確認します。実行中のアダプターを停止するには、StopProjectVersion を呼び出します。モデルがトレーニング中の場合は、トレーニングが終了した後に削除します。プロジェクト自体を削除するときは、先に、それに関連付けられたアダプターを削除する必要があります。

 Rekognition コンソールでプロジェクトバージョンを削除するには 
+ Rekognition コンソールにサインインします。
+ [カスタムモデレーション] をクリックします。
+ [プロジェクト] タブでは、すべてのプロジェクトと関連するアダプターを確認できます。アダプターを選択し、**[削除]** をクリックします。

CLI と SDK AWS を使用してプロジェクトバージョンを削除するには:

1. まだインストールしていない場合は、 CLI と AWS SDKs AWS をインストールして設定します。詳細については、「[ステップ 2: AWS CLI と AWS SDKsを設定する](setup-awscli-sdk.md)」を参照してください。

1. 次のコードを実行してプロジェクトバージョンを削除します。

------
#### [ CLI ]

```
# Request
aws rekognition delete-project-version 
  --project-version-arn model_arn \
  --profile profile-name
```

------

# カスタムモデレーションのアダプターのチュートリアル
<a name="using-adapters-tutorial"></a>

このチュートリアルでは、Rekognition コンソールを使用してアダプターを作成、トレーニング、評価、使用、管理する方法について説明します。 AWS SDK でアダプターを作成、使用、管理するには、「」を参照してください[CLI と SDKs AWS を使用したアダプターの管理](managing-adapters.md)。

アダプターを使用すると、Rekognition の API オペレーションの精度を高め、モデルの動作を自分のニーズやユースケースに合わせてカスタマイズできます。このチュートリアルでアダプターを作成すると、[DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) などのオペレーションで独自のイメージを分析するときにこれを使用できます。また、アダプターを再トレーニングして今後の改善に役立てることができます。

このチュートリアルでは以下の方法を学びます。
+ Rekognition コンソールを使用してプロジェクトを作成する。
+ トレーニングデータに注釈を付ける。
+ トレーニングデータセットに基づきアダプターをトレーニングする。
+ アダプターのパフォーマンスをレビューする。
+ アダプターをイメージ解析に使用する。

## 前提条件
<a name="using-adapters-tutorial-prereqs"></a>

このチュートリアルを始める前に、「[アダプターの作成と使用](creating-and-using-adapters.md)」を読むことをお勧めします。

アダプターを作成するときは、Rekognition コンソールのツールを使用すると、プロジェクトを作成し、イメージをアップロードして注釈を付け、それらのイメージに基づいてアダプターをトレーニングできます。開始するには、[プロジェクトの作成およびアダプターのトレーニング](#using-adapters-tutorial-annotation)を参照してください。

あるいは、Rekognition のコンソールまたは API を使用してイメージの予測を取得し、その予測を検証してから、それらの予測に基づいてアダプターを学習することもできます。開始するには、[アダプターの一括分析、予測検証、トレーニング](#using-adapters-tuorial-annotation-bulk-analysis)を参照してください。

## イメージの注釈
<a name="using-adapters-tutorial-image-annotation"></a>

イメージには、Rekognition コンソールでイメージにラベルを付けることで注釈を付けることができます。また、Rekognition の一括分析を使用してイメージに注釈を付け、その後で正しくラベルが付いていることを確認することもできます。注釈を付けるには、次のいずれかのトピックを選択します。

**Topics**
+ [プロジェクトの作成およびアダプターのトレーニング](#using-adapters-tutorial-annotation)
+ [アダプターの一括分析、予測検証、トレーニング](#using-adapters-tuorial-annotation-bulk-analysis)

### プロジェクトの作成およびアダプターのトレーニング
<a name="using-adapters-tutorial-annotation"></a>

Rekognition コンソールを使用してイメージに注釈を付けて、アダプターをトレーニングするには、以下のステップを実行します。

**プロジェクトの作成**

アダプターをトレーニングまたは使用するときは、先に、アダプターを含めるプロジェクトを作成する必要があります。また、アダプターのトレーニングに使用するイメージも提供する必要があります。プロジェクト、アダプター、イメージデータセットを作成するには 

1.  AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/rekognition/ で Rekognition コンソールを開きます。

1. 左側のペインで、**[カスタムモデレーション]** を選択します。Rekognition カスタムモデレーションのランディングページが開きます。  
![\[Rekognition のカスタムモデレーションインターフェイス。ファインチューニングされた既存のアダプターはなく、新しいプロジェクトの作成または検索オプションがある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-1-landing-page.png)

1. カスタムモデレーションのランディングページにはすべてのプロジェクトとアダプターのリストが表示されています。また、アダプターを作成するボタンもあります。**[プロジェクトを作成]** を選択し、新規プロジェクトとアダプターを作成します。

1. アダプターを作成するのが初めてである場合は、画面上で、プロジェクトとアダプターに関連するファイルを保存する、Amazon S3 バケットを作成するように指示されます。**[Amazon S3 バケットを作成]** を選択します。

1. 次のページで、**アダプター名**と**プロジェクト名**を入力します。必要に応じてアダプターの説明も入力します。  
![\[プロジェクト名、アダプター名、オプションのアダプターの説明など、プロジェクトの詳細を入力するためのフォーム。マニフェストファイルまたは S3 バケットからトレーニング画像データセットをインポートするためのオプション。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-2-project-details.png)

1. このステップでは、アダプターのイメージも提供します。**[コンピュータからイメージをインポート]**、**[マニフェストファイルをインポート]**、**[Amazon S3 バケットからイメージをインポート]** のいずれかを選択できます。Amazon S3 バケットからイメージをインポートする場合は、トレーニングイメージを含むバケットとフォルダへのパスを指定します。コンピュータからイメージを直接アップロードする場合は、一度にアップロードできるイメージの数が最大 30 であることにご注意ください。注釈を含むマニフェストファイルを使用する場合は、以下で説明するイメージ注釈の手順は飛ばして、「[アダプターのパフォーマンスのレビュー](#using-adapters-tutorial-performance)」セクションに進みます。

1. **[テストデータセットの詳細]** セクションで、**[自動分割]** を選択して Rekognition に適切な割合のイメージをテストデータとして自動選択させるか、**[マニフェストファイルを手動でインポート]** を選択します。

1. この情報を入力したら、**[プロジェクトを作成]** を選択します。

**アダプターのトレーニング**

注釈の付いていないイメージでアダプターをトレーニングするには

1. アダプターを含むプロジェクトを選択し、**[イメージにラベルを割り当てる]** オプションを選択します。

1. **[イメージにラベルを割り当てる]** ページには、トレーニングイメージとしてアップロードされたイメージがすべて表示されています。これらのイメージは、左側にある 2 つの属性選択パネルを使って、ラベル付き/ラベルなしのステータス、およびラベルカテゴリ別に、フィルタリングできます。トレーニングデータセットにイメージを追加するときは、**[画像を追加]** を選択します。  
![\[画像ラベル付けインターフェイス。手順、アダプターの詳細、空の画像パネルが表示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-4-assign-labels-to-images.png)

1. トレーニングデータセットにイメージを追加したら、必ず、ラベルを使ってイメージに注釈を付けます。イメージをアップロードすると、[画像にラベルを割り当てる] ページが更新され、アップロードしたイメージが表示されます。画面上で、Rekognition のモデレーションでサポートされているラベルのドロップダウンリストからイメージに適したラベルを選択するように指示されます。ラベルは複数選べます。

1. トレーニングデータ内のすべてのイメージにラベルを付けるまで、この作業を続けます。

1. すべてのデータにラベルを付けたら、**[トレーニングを開始]** を選択してモデルのトレーニングを開始し、アダプターを作成します。  
![\[2 つの画像が表示されたインターフェイス。明示的なヌード、挑発的な内容、暴力、ヘイトシンボル、アルコール、薬物、タバコなどのカテゴリにラベルを割り当てるためのオプションがある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-5-labels-images-blurred.png)

1. トレーニングプロセスを開始する前に、必要に応じてアダプターに**タグ**を追加できます。アダプターにカスタム暗号化キーを提供するか、KMS AWS キーを使用することもできます。必要なタグを追加し、暗号化をカスタマイズしたら、**[アダプターをトレーニング]** をクリックしてアダプターのトレーニングプロセスを開始します。

1. アダプターのトレーニングが完了するまで待機します。トレーニングが完了すると、アダプターの作成が完了したことの通知が届きます。

アダプターのステータスが [トレーニング完了] に変わったら、アダプターのメトリクスをレビューできます。

### アダプターの一括分析、予測検証、トレーニング
<a name="using-adapters-tuorial-annotation-bulk-analysis"></a>

Rekognition のコンテンツモデレーションモデルによる一括分析予測を検証して次の手順を実行し、アダプターをトレーニングします。

 Rekognition のコンテンツモデレーションモデルによる予測を検証してアダプターをトレーニングするには、以下を行う必要があります。

1.  イメージの一括分析を実行します。

1.  イメージについて返された予測を検証します。

イメージの予測は、Rekognition のベースモデル、または作成済みのアダプターを使用して一括分析を実行することで取得できます。

**イメージの一括分析を実行**

検証した予測に基づいてアダプターをトレーニングするには、最初に、一括分析ジョブを実行して、Rekognition のベースモデルまたは任意のアダプターを使用してイメージのバッチを分析する必要があります。一括分析ジョブを実行するには 

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/) で Amazon Rekognition コンソールを開きます。

1. 左側のペインで **[一括分析]** を選択します。[一括分析] のランディングページが表示されます。**[一括分析を開始]** を選択します。一括分析機能の概要に、画像のアップロード、分析の待機、結果の確認の手順が表示されており、オプションでモデル予測を検証する手順も示されています。基本モデルを使用したコンテンツモデレーションの最近の一括分析ジョブが一覧表示されます。  
![\[一括分析機能の概要。基本モデルを使用したコンテンツモデレーションのワークフローが示され、最近の一括分析ジョブが一覧表示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-1-create-bulk-analysis.png)

1. アダプターを作成するのが初めてである場合は、画面上で、プロジェクトとアダプターに関連するファイルを保存する、Amazon Simple Storage Service バケットを作成するように指示されます。**[Amazon S3 バケットを作成]** を選択します。

1. **[アダプターを選択する]** ドロップダウンメニューから、一括分析に使用するアダプターを選択します。アダプターを選択しない場合は、デフォルトでベースモデルが使用されます。このチュートリアルでは、アダプターを選択しません。  
![\[一括分析機能のインターフェイス。Rekognition の機能やアダプターの選択、ジョブ名の設定、ラベルの最小信頼度しきい値の指定を行うためのドロップダウンメニューが表示されている。一部のフィールドは必須となっている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-2-bulk-analysis-job.png)

1.  **[一括分析ジョブ名]** フィールドに、一括分析ジョブの名前を入力します。

1. **[最小信頼度しきい値]** の値を選択します。選択した信頼度しきい値を下回るラベル予測は返されません。選択した最小信頼度しきい値を下回る信頼度しきい値は、後ほどモデルのパフォーマンスを評価するときに、調整できませんのでご注意ください。

1. このステップでは、一括分析で分析するイメージも提供します。これらのイメージはアダプターのトレーニングにも使用できます。**[コンピュータからイメージをアップロード]** または **[Amazon S3 バケットからイメージをインポート]** のいずれかを選択できます。Amazon S3 バケットからドキュメントをインポートする場合は、トレーニングイメージを含むバケットとフォルダへのパスを指定します。コンピュータからドキュメントを直接アップロードする場合は、一度にアップロードできるイメージの数が最大 50 であることにご注意ください。

1. この情報を入力したら、**[分析を開始する]** を選択します。Rekognition のベースモデルを使用した解析プロセスが開始します。

1.  一括分析ジョブのステータスは、一括分析のメインページにある、ジョブの一括分析ステータスから確認できます。一括分析のステータスが「成功」に変わったら、分析の結果をレビューできます。  
![\[一括分析のジョブ一覧。「Evaluation 01」という名前のジョブが表示され、そのステータスが「成功」となっている。Content moderation Recognition API と基本モデルが使用されているのがわかる。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-3-bulk-analysis-status.png)

1.  **[一括分析ジョブ]** のリストの中から、作成した分析を選択します。

1. 一括分析の詳細ページでは、アップロードしたイメージに対して Rekognition のベースモデルが行った予測を確認できます。

1. ベースモデルのパフォーマンスをレビューします。イメージにラベルを割り当てるときにアダプターに必要になる信頼度しきい値は、信頼度しきい値のスライダーを使って変更できます。信頼度しきい値を変更すると、フラグ付きのインスタンスとフラグなしのインスタンスの数が変わります。[ラベルカテゴリ] のパネルには、Rekognition が認識する最上位のカテゴリが表示されます。このリストでカテゴリを選択すると、そのラベルが割り当てられているすべてのイメージを表示できます。  
![\[一括分析の棒グラフ。さまざまなラベルでフラグ付けされた画像の数が示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-4-bulk-analysis-complete.png)

**予測の検証**

Rekognition のベースモデルまたは選択したアダプターの精度をレビューしてその精度を高めるには、検証ワークフローを使用します。

1. ベースモデルのパフォーマンスのレビューを終えたら、予測を検証する必要があります。予測を修正することで、アダプターをトレーニングできます。[一括分析] ページの上部にある **[予測を検証]** をクリックします。  
![\[偽陽性率と偽陰性率を計算するための予測の検証、または精度を向上させるためのカスタムモデレーションアダプターのトレーニングを求めるパネル。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-6-start-verification.png)

1. [予測を検証] ページには、Rekognition のベースモデルまたは選択したアダプターに提供したすべてのイメージが、各イメージの予測ラベルと共に表示されます。イメージの下にあるボタンを使って、それぞれの予測が正しいか間違っているかを検証します。予測が間違っている場合は [X] を、正しい場合はチェックマークをクリックします。アダプターをトレーニングするには、1 つのラベルで 20 件以上の偽陽性予測と 50 件の偽陰性予測を検証する必要があります。検証する予測の数が多ければ多いほど、アダプターのパフォーマンスは向上します。  
![\[アルコール飲料を手にする人を描写する 3 つの画像。画像ラベルに対する「Alcohol」カテゴリ予測を説明するために使用されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-7-verify-predictions-1.png)

   予測を検証すると、イメージの下のテキストが変わり、検証した予測の種類が表示されます。イメージを検証できたら、**[画像にラベルを割り当てる]** メニューを使ってイメージにラベルを追加することもできます。選択した信頼度しきい値で、モデルによりフラグの付いた/付いてないイメージを確認したり、カテゴリ別にイメージをフィルタリングしたりできます。  
![\[アルコールに対するコンテンツのモデレーションの 3 つの例が示されている画像。ラベルを適用するためのメニューが表示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-8-verify-predictions-2.png)

1. 検証の必要な予測をすべて検証すると、[検証] ページの **[ラベルごとのパフォーマンス]** のセクションに、検証した予測に関する統計が表示されます。これらの統計は、[一括分析の詳細] ページに戻って確認することもできます。  
![\[コンテンツモデレーションの検証ページ。「Explicit Nudity」、「Suggestive」、「Alcohol」のラベルの偽陽性率が示され、信頼度しきい値が 50% と表示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-8.5-predictions-stats.png)

1. **[ラベルごとのパフォーマンス]** に関する統計に問題がなければ、**[予測を検証]** ページに戻って、**[アダプターをトレーニング]** をクリックし、アダプターのトレーニングを開始します。  
![\[ジョブの詳細を示す [予測を検証] ページ。ジョブの名前、作成日、モデルバージョン、入力と出力の場所が表示されている。[アダプターをトレーニング] ボタンがある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-9-train-adapter.png)

1. [アダプターをトレーニング] ページでは、プロジェクトを作成するか、既存のプロジェクトを選択するように指示されます。プロジェクトと、そのプロジェクトに含まれるアダプターの名前を入力します。テストイメージのソースも指定する必要があります。イメージを指定するときは、[自動分割] を選択して Rekognition でトレーニングデータの一部をテストイメージとして自動的に使用するか、マニフェストファイルを手動で指定できます。推奨の方法は、[自動分割] を使用することです。  
![\[新しいアダプタープロジェクトを作成するためのインターフェイス。プロジェクト名、アダプター名、アダプターの説明を入力するフィールドがある。さらに、テストデータソースを指定するフィールド、データを自動分割するかマニフェストファイルをインポートするかのオプションがある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-10-train-adapter-project.png)

1. 必要なタグと、デフォルト AWS KMS キーを使用しない場合は AWS キーを指定します。**[自動更新]** は有効のままにしておくことが推奨されます。

1. **[アダプターをトレーニング]** をクリックします。  
![\[アダプターの構成設定。タグの追加、データ暗号化、信頼度しきい値、自動更新のオプションがある。アダプターはこのインターフェイスからトレーニングできる。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/BA-11-train-adapter.png)

1. カスタムモデレーションのランディングページでアダプターのステータスが [トレーニングの完了] に変わったら、アダプターのパフォーマンスをレビューできます。詳細については「[アダプターのパフォーマンスのレビュー](#using-adapters-tutorial-performance)」を参照してください。

## アダプターのパフォーマンスのレビュー
<a name="using-adapters-tutorial-performance"></a>

アダプターのパフォーマンスをレビューするには

1. コンソールを使用すると、カスタムモデレーションのランディングページにある [プロジェクト] タブで、プロジェクトに関連付けられているアダプターのステータスを確認できます。カスタムモデレーションのランディングページに移動します。  
![\[カスタムモデレーションのランディングページ。モデレーションプロジェクトのリストが表示され、詳細情報として、ステータス、アダプター ID、入力データの場所、基本モデルバージョン、作成日、ステータスメッセージなどが示されている。プロジェクトを作成、削除、再開できるボタンがある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-7-status-alt.png)

1. レビューするアダプターをこのリストの中から選びます。次の [アダプターの詳細] ページには、アダプターのさまざまなメトリクスが表示されます。  
![\[アダプターのパフォーマンスメトリクス。「Suggestive」や「Alcohol」などのさまざまなラベルカテゴリについて、偽陽性が 25% 向上、偽陰性が 24% 減少が示されている。Ground Truth 真陽性、基本モデル、アダプター偽陰性に関するデータも表示されている。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-8.5-new-performance-review.png)

1. **[しきい値]** パネルでは、イメージにラベルを割り当てるときにアダプターに必要になる最小信頼度しきい値を変更できます。信頼度しきい値を変更すると、フラグ付きのインスタンスとフラグなしのインスタンスの数が変わります。選択したカテゴリのメトリクスは、ラベルカテゴリでフィルタリングして確認することもできます。選択したしきい値を設定します。

1. [アダプターのパフォーマンス] のパネルでメトリクスを調べることにより、テストデータに基づきアダプターのパフォーマンスを評価できます。これらのメトリクスは、アダプターの抽出を、テストセットの「グラウンドトゥルース」の注釈と比較することにより、算出されます。

[アダプターのパフォーマンス] パネルには、作成したアダプターの偽陽性の改善と偽陰性の改善が表示されます。[ラベルごとのパフォーマンス] タブでは、各ラベルカテゴリのアダプターと、ベースモデルのパフォーマンスを比較できます。ベースモデルとアダプターの両方による偽陽性予測および偽陰性予測の数が、ラベルカテゴリ別に階層化されて表示されます。これらのメトリクスをレビューすることで、改善が必要な場所を特定できます。これらのメトリクスの詳細については、「[アダプターの評価と改善](using-adapters-evaluating-improving.md)」を参照してください。

パフォーマンスを改善するには、より多くのトレーニングイメージを収集し、プロジェクト内で新しいアダプターを作成します。カスタムモデレーションのランディングページに戻りプロジェクトに新しいアダプターを作成するだけで、アダプターのトレーニング対象となるトレーニングイメージがさらに増えます。今度は、**[新規プロジェクトを作成]** ではなく **[既存のプロジェクトオプションに追加]** を選択し、**[プロジェクト名]** ドロップダウンメニューから、新しいアダプターの作成先となるプロジェクトを選択します。前回と同じように、イメージに注釈を付けるか、注釈付きのマニフェストファイルを提供します。

![\[新しいコンテンツモデレーションアダプターの作成または既存のプロジェクトへの追加のためのインターフェイス。アダプターとプロジェクトに名前を付けるためのオプションがある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-9-create-new-adapter.png)


## アダプターの使用
<a name="using-adapters-tutorial-using-adapter"></a>

アダプターを作成したら、そのアダプターを [DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) などのサポートされている Rekognition オペレーションに提供できます。アダプターで推論を実行するために使用できるコードサンプルを表示するには、「アダプターを使用する」タブを選択します。ここでは、CLI AWS と Python の両方のコードサンプルを確認できます。また、アダプターを作成したオペレーションに関する、ドキュメントの各セクションを参照し、その他のコードサンプル、セットアップ手順、サンプル JSON を確認することもできます。

![\[テストデータ、トレーニングデータ、出力データの場所が示されたインターフェイス。対応する S3 URL フィールドが表示されている。アダプターを使用するためのオプション、トレーニング画像とタグを表示するためのオプションがある。トレーニング済みアダプターを使用するための ID のほか、AWS CLI コマンドと Python コードのサンプルなど、アダプターの詳細にアクセスするためのオプションもある。\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/images/adapters-12-use-adapter.png)


## アダプターとプロジェクトの削除
<a name="using-adapters-tutorial-deleting-adapter"></a>

アダプターを個別に削除することも、プロジェクトを削除することもできます。プロジェクト自体を削除するときは、先に、それに関連付けられたアダプターを削除する必要があります。

1. プロジェクトに関連付けられたアダプターを削除するには、そのアダプターを選択し、**[削除]** をクリックします。

1. プロジェクトを削除するには、削除するプロジェクトを選択して **[削除]** をクリックします。

# アダプターの評価と改善
<a name="using-adapters-evaluating-improving"></a>

アダプターをトレーニングしたらその都度、Rekognition コンソールツールのパフォーマンスメトリクスをレビューして、そのアダプターが、必要なパフォーマンス水準をどの程度満たしているかを明らかにします。その後、トレーニングイメージの新しいバッチをアップロードし、プロジェクト内で新しいアダプターをトレーニングすることにより、イメージに対するアダプターの精度をさらに高めることができます。アダプターの改良版を作成できたら、不要になった古いアダプターはコンソールから削除できます。

また、[DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions.html) API オペレーションを使用してメトリクスを取得することもできます。

## パフォーマンスメトリクス
<a name="using-adapters-performance-metrics"></a>

トレーニングプロセスを完了してアダプターを作成したら、アダプターが、イメージからどの程度情報を抽出できているかを評価することが重要です。

Rekognition コンソールには、アダプターのパフォーマンスの分析に役立つ、偽陽性の改善と偽陰性の改善という 2 つのメトリクスが用意されています。

これらのメトリクスは、コンソールのアダプターの部分にある [アダプターのパフォーマンス] タブを選択すればどのアダプターでも確認できます。[アダプターのパフォーマンス] パネルには、作成したアダプターの偽陽性の改善と偽陰性の改善が表示されます。

偽陽性の改善では、アダプターによる偽陽性の認識が、ベースモデルに比べどの程度改善しているかを測定します。偽陽性の改善値が 25% であれば、そのアダプターが、テストデータセットでの偽陽性の認識率を 25% 高めたことを意味します。

偽陰性の改善では、アダプターによる偽陰性の認識が、ベースモデルに比べどの程度改善しているかを測定します。偽陰性の改善値が 25% であれば、そのアダプターが、テストデータセットでの偽陰性の認識率を 25% 高めたことを意味します。

[ラベルごとのパフォーマンス] タブでは、各ラベルカテゴリのアダプターと、ベースモデルのパフォーマンスを比較できます。ベースモデルとアダプターの両方による偽陽性予測および偽陰性予測の数が、ラベルカテゴリ別に階層化されて表示されます。これらのメトリクスをレビューすることで、改善が必要な場所を特定できます。

例えば、「アルコール」のラベルカテゴリの、ベースモデルの偽陰性率が 15 で、アダプターの偽陰性率が 15 以上である場合、新しいアダプターを作成するときは、「アルコール」のラベルを含むイメージをさらに追加する必要があることがわかります。

Rekognition API オペレーションを使用する場合、[DescribeProjectVersions](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjectVersions.html) オペレーションを呼び出すと F1-Score のメトリクスが返されます。

## モデルの改善
<a name="using-adapters-improving-model"></a>

アダプターのデプロイは反復的なプロセスです。つまり、目標とする精度に達するにはアダプターを複数回トレーニングする必要があります。アダプターを作成してトレーニングしたら、さまざまなタイプのラベルでそのアダプターのパフォーマンスをテストし、評価する必要があります。

アダプターの精度が不十分な領域がある場合は、それらのイメージの新しい例を追加してそれらのラベルに対するアダプターのパフォーマンスを高めます。問題があるケースを反映したさまざまな例を、アダプターに追加するようにします。アダプターに典型的な、多様なイメージを提供することにより、実社会のさまざまな例に対応できるようになります。

トレーニングセットに新しいイメージを追加したら、アダプターを再トレーニングし、テストセットとラベルを使って再評価します。アダプターが必要なパフォーマンスレベルに達するまでこのプロセスを繰り返します。より忠実な典型的イメージや注釈を提供すれば、偽陽性スコアと偽陰性スコアはトレーニングを繰り返すうちに徐々に改善されていきます。

# マニフェストファイルの形式
<a name="using-adapters-manifest-files"></a>

以下のセクションでは、入力、出力、評価ファイルの、マニフェストファイル形式の例について説明します。

## 入力マニフェスト
<a name="using-adapters-manifest-files-input"></a>

マニフェストファイルは JSON 行で区切られたファイルであり、各行には、1 つのイメージに関する情報を含んだ JSON が含まれています。

入力マニフェストの各エントリには、Amazon S3 バケット内のイメージへのパスを含む `source-ref` フィールドと、カスタムモデレーションの場合は、グラウンド注釈の付いた `content-moderation-groundtruth` フィールドが含まれている必要があります。1 つのデータセット内のイメージはすべて、同じバケットに入れるようにします。この構造は、トレーニングマニフェストファイルとテストマニフェストファイルの両方に共通です。

カスタムモデレーションの `CreateProjectVersion` オペレーションでは、入力マニフェストで提供される情報を使用してアダプターをトレーニングします。

以下の例は、安全でないクラスが 1 つ含まれる 1 つのイメージの、マニフェストファイルに含まれる 1 行です。

```
{
   "source-ref": "s3://foo/bar/1.jpg",
   "content-moderation-groundtruth": {
        "ModerationLabels": [
            { 
                "Name": "Rude Gesture"
            }
        ]
   }
}
```

次の例は、複数の安全でないクラス (特に「ヌード」や「失礼なジェスチャー」) を含む、1 つの安全でないイメージの、マニフェストファイルに含まれる 1 行です。

```
{
   "source-ref": "s3://foo/bar/1.jpg",
   "content-moderation-groundtruth": {
        "ModerationLabels": [
            { 
                "Name": "Rude Gesture"
            },
            {
                "Name": "Nudity"
            }
        ]
   }
}
```

以下の例は、安全でないクラスを含まない 1 つのイメージの、マニフェストファイルに含まれる 1 行です。

```
{
   "source-ref": "s3://foo/bar/1.jpg",
   "content-moderation-groundtruth": {
        "ModerationLabels": []
   }
}
```

サポートされているラベルの完全なリストについては、「[Moderating content](https://docs.aws.amazon.com/rekognition/latest/dg/moderation.html)」を参照してください。



## 出力マニフェスト
<a name="using-adapters-manifest-files-output"></a>

トレーニングジョブが完了すると、出力マニフェストファイルが返されます。出力マニフェストファイルは JSON 行で区切られたファイルであり、各行には、1 つのイメージに関する情報を含んだ JSON が含まれています。OutputManifest への Amazon S3 パスは、`DescribeProjectVersion` レスポンスから取得できます。
+  `TrainingDataResult.Output.Assets[0].GroundTruthManifest.S3Object`、トレーニングデータセット用 
+  `TestingDataResult.Output.Assets[0].GroundTruthManifest.S3Object`、テストデータセット用 

次の情報が、出力マニフェストの各エントリについて返されます。


|  |  | 
| --- |--- |
| Key Name | Description | 
|  source-ref  | Reference to an image in s3 that was provided in the input maniefst | 
|  content-moderation-groundtruth  | Ground truth annotations that were provided in the input manifest | 
|  detect-moderation-labels  | Adapter predictions, part of the testing dataset only | 
|  detect-moderation-labels-base-model  | Base model predictions, part of the testing dataset only | 

アダプターとベースモデルの予測は、[DetectModerationLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectModerationLabels.html) レスポンスと同様の形式で、ConfidenceTrehsold 5.0 で返されます。

以下の例は、アダプターとベースモデルの予測の構造を示しています。

```
{
   "ModerationLabels": [ 
      { 
         "Confidence": number,
         "Name": "string",
         "ParentName": "string"
      }
   ],
   "ModerationModelVersion": "string",
   "ProjectVersion": "string"
}
```

返されるラベルの完全なリストについては、「[Moderating content](https://docs.aws.amazon.com/rekognition/latest/dg/moderation.html)」を参照してください。

## 評価結果マニフェスト
<a name="using-adapters-manifest-files-eval"></a>

トレーニングジョブが完了すると、評価結果マニフェストファイルが返されます。評価結果マニフェストはトレーニングジョブによって出力される JSON ファイルであり、アダプターがテストデータに対してどの程度うまく機能したかを示す情報が含まれています。

評価結果マニフェストへの Amazon S3 のパスは、DescribeProejctVersion レスポンスの `EvaluationResult.Summary.S3Object` フィールドから取得できます。

次の例は、評価結果マニフェストの構造を示したものです。

```
{
    "AggregatedEvaluationResults": {
       "F1Score": number
    },

    "EvaluationDetails": {
        "EvaluationEndTimestamp": "datetime",
        "Labels": [
            "string"
        ],
        "NumberOfTestingImages": number,
        "NumberOfTrainingImages": number,
        "ProjectVersionArn": "string"
    },

    "ContentModeration": {
        "InputConfidenceThresholdEvalResults": {
            "ConfidenceThreshold": float,
            "AggregatedEvaluationResults": {
                "BaseModel": {
                    "TruePositive": int,
                    "TrueNegative": int,
                    "FalsePositive": int,
                    "FalseNegative": int
                },
                "Adapter": {
                    "TruePositive": int,
                    "TrueNegative": int,
                    "FalsePositive": int,
                    "FalseNegative": int
                }
            },
            "LabelEvaluationResults": [
                {
                    "Label": "string",
                    "BaseModel": {
                        "TruePositive": int,
                        "TrueNegative": int,
                        "FalsePositive": int,
                        "FalseNegative": int
                    },
                    "Adapter": {
                        "TruePositive": int,
                        "TrueNegative": int,
                        "FalsePositive": int,
                        "FalseNegative": int
                    }
                }
            ]
        }
        "AllConfidenceThresholdsEvalResults": [
            {
                "ConfidenceThreshold": float,
                "AggregatedEvaluationResults": {
                    "BaseModel": {
                        "TruePositive": int,
                        "TrueNegative": int,
                        "FalsePositive": int,
                        "FalseNegative": int
                    },
                    "Adapter": {
                        "TruePositive": int,
                        "TrueNegative": int,
                        "FalsePositive": int,
                        "FalseNegative": int
                    }
                },
                "LabelEvaluationResults": [
                    {
                       "Label": "string",
                        "BaseModel": {
                            "TruePositive": int,
                            "TrueNegative": int,
                            "FalsePositive": int,
                            "FalseNegative": int
                        },
                        "Adapter": {
                            "TruePositive": int,
                            "TrueNegative": int,
                            "FalsePositive": int,
                            "FalseNegative": int
                        }
                    }
                ]
            }
        ]
    }
}
```

評価マニフェストファイルには以下が含まれます。
+ `F1Score` により定義された集計された結果。
+ ProjectVersionArn、トレーニングイメージの数、テストイメージの数、アダプターのトレーニングに使用されたラベルなど、評価ジョブの詳細。
+ ベースモデルとアダプターのパフォーマンスの両方に関する TruePositive、TrueNegative、FalsePositive、FalseNegative の集計結果。
+ ベースモデルとアダプターのパフォーマンスの両方に関する、入力信頼度しきい値で計算された TruePositive、TrueNegative、FalsePositive、FalseNegative のラベルごとの結果。
+ ベースモデルとアダプターのパフォーマンスの両方に関する、入力信頼度しきい値で計算された TruePositive、TrueNegative、FalsePositive、FalseNegative の集計結果およびラベルごとの結果。信頼度しきい値は 5～100 の範囲の 5 の倍数。

# トレーニングアダプターのベストプラクティス
<a name="using-adapters-best-practices"></a>

アダプターを作成、トレーニング、使用するときは、次のベストプラクティスに従うことが推奨されます。



1.  サンプルイメージのデータでは、顧客が抑えようとしている典型的なエラーを捉えている必要があります。モデルが、視覚的に類似したイメージで繰り返しミスを犯している場合は、そうしたイメージをトレーニング用に多数用意します。

1.  モデルが特定のモデレーションラベルでミスを犯したイメージだけを用意するのではなく、そのモデレーションラベルでミスを犯していないイメージも必ず用意します。

1.  トレーニングには最低でも 50 個の偽陰性サンプルまたは 20 個の偽陽性サンプルを用意します。また、テストには最低でも 20 個のサンプルを用意します。ただし、アダプターのパフォーマンスを高めるため、注釈付きのイメージをできるだけ多く提供します。

1.  すべてのイメージに関して、重要なラベルのすべてに注釈を付けます。あるイメージで、特定のラベルの出現箇所に注釈を付ける必要があると判断した場合は、他のすべてのイメージでこのラベルの出現箇所に注釈を付けます。

1.  サンプルイメージのデータには、ラベルのバリエーションを、本番稼働環境で分析されるイメージの典型的な例を中心にできるだけ多く含める必要があります。

# AutoUpdate のアクセス権限のセットアップ
<a name="using-adapters-autoupdate"></a>

Rekognition はカスタムアダプターの AutoUpdate 機能をサポートしています。したがって、プロジェクトで AutoUpdate フラグが有効になっているときは、自動再トレーニングがベストエフォートで試行されます。これらの自動更新には、トレーニング/テストデータセットにアクセスするためのアクセス許可と、カスタマーアダプターをトレーニングする AWS KMS キーが必要です。これらのアクセス権限は、以下の手順で付与できます。



## Amazon S3 バケット許可
<a name="using-adapters-autoupdate-s3"></a>

 デフォルトでは、すべての Amazon S3 バケットとオブジェクトはプライベートです。バケットを作成した AWS アカウントであるリソース所有者のみが、バケットとそれに含まれるオブジェクトにアクセスできます。ただし、リソース所有者は、バケットポリシーを記述することで他のリソースおよびユーザーにアクセス権限を付与できます。

 カスタムアダプターのトレーニングで、入力データセットのソースおよびトレーニング結果の宛先として使用する Amazon S3 バケットを作成または変更する場合は、バケットポリシーをさらに変更する必要があります。Amazon S3 バケットの読み取りまたは書き込みを行うには、Rekognition に次のアクセス権限が必要になります。

**Rekognition に必要な Amazon S3 ポリシー**

Rekognition には、以下の属性を持つアクセス権限ポリシーが必要です。
+ ステートメント SID
+ バケット名
+ Rekognition のサービスプリンシパル名
+ Rekognition に必要なリソース、バケットとそのすべてのコンテンツ
+ Rekognition が取るべき必要なアクション

次のポリシーは、自動再トレーニング中に Rekognition が Amazon S3 バケットにアクセスすることを許可します。

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Sid": "AllowRekognitionAutoUpdateActions",
            "Principal": {
                "Service": "rekognition.amazonaws.com"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:HeadObject",
                "s3:HeadBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

[このガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)に従うことで上記のバケットポリシーを S3 バケットに追加できます。

バケットポリシーの詳細については、[こちら](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)を参照してください。

## AWS KMS 主要なアクセス許可
<a name="using-adapters-autoupdate-KMS"></a>

 Rekognition を使用すると、カスタムアダプターのトレーニング中に、オプションの KmsKeyId を指定できます。指定すると、Rekognition は、このキーを使って、モデルトレーニングのためにサービスにコピーされたトレーニングおよびテストイメージを暗号化します。このキーは、出力の Amazon S3 バケット (OutputConfig) に書き込まれたトレーニング結果とマニフェストファイルを暗号化するためにも使用されます。

 カスタムアダプタートレーニングへの入力として KMS キーを指定することを選択すると (つまり `Rekognition:CreateProjectVersion`)、Rekognition サービスプリンシパルが今後このキーを自動再トレーニングに使用できるよう、KMS キーポリシーをさらに変更する必要があります。Rekognition には次のアクセス権限が必要です。

**Rekognition に必要な AWS KMS キーポリシー**

Amazon Rekognition には、以下の属性を持つアクセス権限ポリシーが必要です。
+ ステートメント SID
+ Amazon Rekognition のサービスプリンシパル名
+ Amazon Rekognition が取るべき必要なアクション

次のキーポリシーは、自動再トレーニング中に Amazon Rekognition が Amazon KMS キーにアクセスすることを許可します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KeyPermissions",
            "Effect": "Allow",
            "Principal": {
                "Service": "rekognition.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}
```

------

[このガイド](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)に従って、上記の AWS KMS ポリシーを AWS KMS キーに追加できます。

 AWS KMS ポリシーの詳細については、[こちら](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)を参照してください。

# AWS Rekognition のヘルスダッシュボード通知
<a name="using-adapters-health-notification"></a>

 AWS Health Dashboard は、Rekognition からの通知をサポートします。これらの通知は、アプリケーションに影響を与える可能性のある Rekognition モデルの、予定されている変更についての告知と修正ガイダンス提供します。現在利用できるのは、Rekognition コンテンツモデレーション機能に固有のイベントのみです。

 AWS Health Dashboard は AWS Health サービスの一部です。セットアップは一切必要なく、アカウントで認証されるすべてのユーザーが表示できます。詳細については、「[Getting started with the AWS Health Dashboard](https://docs.aws.amazon.com/health/latest/ug/getting-started-phd.html)」を参照してください。

次のような通知を受信した場合は、アクションを実行するためのアラームとして処理する必要があります。

**通知例: Rekognition コンテンツモデレーションで新しいモデルバージョンの提供が開始されました。**

Rekognition は`AWS_MODERATION_MODEL_VERSION_UPDATE_NOTIFICATION`、新しいバージョンのモデレーションモデルがリリースされたことを示すイベントを AWS Health Dashboard に発行します。このイベントは、DetectModerationLabels API と、この API を備えたアダプターを使用している場合、重要です。新しいモデルはユースケースによっては品質に影響する可能性があり、最終的に、以前のモデルバージョンから置き換わります。このアラートが表示されたら、モデルの品質を検証して、モデルの更新スケジュールに注意を払うことが推奨されます。

モデルバージョンの更新通知を受け取った場合は、アクションを実行するためのアラームとして取り扱います。アダプターを使用しない場合は、更新したモデルの品質を、既存のユースケースに基づいて評価する必要があります。アダプターを使用する場合は、更新したモデルで新しいアダプターをトレーニングし、その品質を評価する必要があります。自動トレーニングを設定している場合、新しいアダプターは自動的にトレーニングされ、ユーザーはその品質を評価できます。

```
{
   "version": "0",
    "id": "id-number",
    "detail-type": "AWS Health Event",
    "source": "aws.health",
    "account": "123456789012",
    "time": "2023-10-06T06:27:57Z",
    "region": "region",
    "resources": [],
    "detail": {
        "eventArn": "arn:aws:health:us-east-1::event/AWS_MODERATION_MODEL_UPDATE_NOTIFICATION_event-number",
        "service": "Rekognition",
        "eventTypeCode": "AWS_MODERATION_MODEL_VERSION_UPDATE_NOTIFICATION",
        "eventScopeCode": "ACCOUNT_SPECIFIC",
        "communicationId": "communication-id-number",
        "eventTypeCategory": "scheduledChange",
        "startTime": "Fri, 05 Apr 2023 12:00:00 GMT",
        "lastUpdatedTime": "Fri, 05 Apr 2023 12:00:00 GMT",
        "statusCode": "open",
        "eventRegion": "us-east-1",
        "eventDescription": [
            {
                "language": "en_US",
                "latestDescription": "A new model version is available for Rekognition Content Moderation."
            }
        ]
    }
}
```

 [EventBridge を使用して Health イベントを検出して対応するには、「Amazon EventBridge による AWS](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html) AWS Health EventBridge」を参照してください。