カスタム分類モデルでの予測の品質を向上させるには、Amazon Comprehendを使用します

「予測の品質を向上させるために、Amazon Comprehendのカスタム分類モデルを活用しましょう」

人工知能(AI)と機械学習(ML)は、企業や政府機関を含むさまざまな組織で広く採用されています。自然言語処理(NLP)や使いやすいAI / MLサービス(Amazon TextractAmazon Transcribe、およびAmazon Comprehend)の進歩により、非構造化データの処理が容易になりました。組織は、Amazon ComprehendなどのAI / MLサービスを使用して、非構造化データとの分類モデルを構築し、以前は得られなかった深い洞察を得るようになりました。最小限の努力で事前に学習されたモデルを使用できますが、適切なデータの整理やモデルの調整がなければ、AI / MLモデルのすべての利点を実現することはできません。

この記事では、Amazon Comprehendを使用してカスタム分類モデルを構築および最適化する方法を説明します。Amazon Comprehendを使用して多ラベルのカスタム分類モデルを構築し、精度、適合率、再現率、F1スコアなどのパフォーマンスメトリックを満たすためにトレーニングデータセットを準備し、モデルを調整するためのガイドラインを提供します。Amazon Comprehendのモデルトレーニングの出力アーティファクトである混同行列を使用してモデルのパフォーマンスを調整し、トレーニングデータの改善方法についてもアドバイスします。

ソリューションの概要

このソリューションでは、Amazon Comprehendを使用して最適化されたカスタム分類モデルを構築する方法を示します。データの準備、モデルの作成、モデルのパフォーマンスメトリックの分析、分析に基づいた推論の最適化など、いくつかの手順を経て説明します。この過程では、Amazon SageMakerノートブックAWS Management Consoleを使用します。

データの準備、モデルの構築、モデルの調整におけるベストプラクティスと最適化技術についても説明します。

前提条件

SageMakerのノートブックインスタンスを持っていない場合は、作成することができます。手順については、Amazon SageMakerノートブックインスタンスの作成を参照してください。

データの準備

この分析では、Kaggleの有害コメント分類データセットを使用します。このデータセットには6つのラベルと158,571のデータポイントが含まれています。しかし、各ラベルには、全体のデータの10%未満しか正例としてデータがありません。そのうち2つのラベルは1%未満です。

ラベルをパイプ(|)で区切って分割するAmazon Comprehendの二列CSV形式に既存のKaggleデータセットを変換します。Amazon Comprehendでは、各データポイントに少なくとも1つのラベルが必要です。このデータセットでは、提供されたラベルのいずれにも該当しないデータポイントがいくつかあります。これらのデータポイントのうち、有害でないものを正としてcleanという新しいラベルを作成します。最後に、一貫性のあるデータセットを各ラベルごとに80/20の比率でトレーニングとテストのデータセットに分割します。

データの準備にはData-Preparationノートブックを使用します。以下の手順では、Kaggleデータセットを使用してモデルのためのデータを準備します。

  1. ナビゲーションペインのノートブックインスタンスを選択します。
  2. 構成済みのノートブックインスタンスを選択し、Open Jupyterを選択します。
  3. NewメニューでTerminalを選択します。

  1. 以下のコマンドをターミナルで実行して、この記事のために必要なアーティファクトをダウンロードします。
cd SageMakerwget https://aws-ml-blog.s3.amazonaws.com/artifacts/amazon-comprehend-improve-prediction-quality/comprehend-blog-artifacts.zipunzip comprehend-blog-artifacts.ziprm comprehend-blog-artifacts.zipmkdir assets
  1. ターミナルウィンドウを閉じます。

それでは、3つのノートブックとtrain.csvファイルが表示されるはずです。

  1. ノートブックData-Preparation.ipynbを選択します。
  2. ノートブックのすべてのステップを実行します。

これらのステップは、生のKaggleデータセットをカリキュレーションされたトレーニングおよびテストデータセットとして準備します。カリキュレートされたデータセットは、ノートブックとAmazon Simple Storage Service(Amazon S3)に保存されます。

大規模なマルチラベルデータセットを取り扱う際に考慮すべきデータ準備のガイドラインは次のとおりです:

  • データセットは、ラベルごとに最低でも10のサンプルを持っている必要があります。
  • Amazon Comprehendは最大100のラベルを受け付けます。これは増やすことができるソフトリミットです。
  • データセットファイルが正しくフォーマットされていることを確認してください。間違った区切り文字は空のラベルを導入する可能性があります。
  • すべてのデータポイントにはラベルが必要です。
  • トレーニングおよびテストデータセットは、ラベルごとにバランスの取れたデータ分布を持つ必要があります。ランダムな分布を使用しないでください。それは、トレーニングおよびテストデータセットにバイアスを導入する可能性があります。

カスタム分類モデルを構築する

データの準備段階で作成したカリキュレートされたトレーニングおよびテストデータセットを使用してモデルを構築します。次のステップでAmazon Comprehendのマルチラベルカスタム分類モデルを作成します:

  1. Amazon Comprehendコンソールで、ナビゲーションペインでカスタム分類を選択します。
  2. 新しいモデルを作成を選択します。
  3. モデル名には、toxic-classification-modelを入力します。
  4. バージョン名には、1を入力します。
  5. 注釈とデータ形式マルチラベルモードを使用を選択します。
  6. トレーニングデータセットには、Amazon S3上のカリキュレートされたトレーニングデータセットの場所を入力します。
  7. カスタマー提供テストデータセットを選択し、Amazon S3上のカリキュレートされたテストデータの場所を入力します。
  8. 出力データには、Amazon S3の場所を入力します。
  9. IAMロールで、IAMロールを作成を選択し、名前のサフィックスとして「comprehend-blog」と指定します。
  10. カスタム分類モデルのトレーニングとモデルの作成を開始するために、作成を選択します。

以下のスクリーンショットは、Amazon Comprehendコンソール上でカスタム分類モデルの詳細を示しています。

モデルのパフォーマンスを調整する

以下のスクリーンショットは、モデルのパフォーマンスメトリクスを示しています。これには、精度、再現率、F1スコア、正解率などの主要なメトリクスが含まれています。

モデルがトレーニングされて作成された後、データセットから生成されたoutput.tar.gzファイルには、データセットのラベルと各ラベルの混同行列が含まれています。モデルの予測パフォーマンスをさらにチューニングするには、各クラスへの予測確率を理解する必要があります。これを行うには、データポイントごとにAmazon Comprehendが割り当てたスコアを特定するために解析ジョブを作成する必要があります。

解析ジョブを作成するには、次の手順を完了します:

  1. Amazon Comprehendコンソールで、ナビゲーションペインで解析ジョブを選択します。
  2. ジョブの作成を選択します。
  3. 名前toxic_train_data_analysis_jobを入力します。
  4. 解析タイプにはカスタム分類を選択します。
  5. 分類モデルおよびフライホイールにはtoxic-classification-modelを指定します。
  6. バージョンには1を指定します。
  7. 入力データS3の場所には、カリキュレートされたトレーニングデータファイルの場所を入力します。
  8. 入力形式には1行ごとのドキュメントを選択します。
  9. 出力データS3の場所には、場所を入力します。
  10. アクセス許可では、既存のIAMロールを使用を選択し、以前に作成したロールを選択します。
  11. 解析ジョブを開始するためにジョブの作成を選択します。
  12. ジョブの詳細を表示するために解析ジョブを選択します。ジョブの詳細の下にあるジョブIDをメモしてください。次のステップでジョブIDを使用します。

クレジットされたテストデータの開始分析ジョブの手順を繰り返します。分析ジョブの予測出力を使用してモデルの予測確率について学びます。トレーニングおよびテストの分析ジョブのジョブIDをメモしてください。

Model-Threshold-Analysis.ipynbノートブックを使用して、すべての可能な閾値で出力をテストし、scikit-learnのprecision_recall_curve関数を使用して予測確率に基づいて出力をスコアリングします。さらに、各閾値でF1スコアを計算することもできます。

Model-Threshold-Analysisノートブックには、Amazon Comprehendの分析ジョブIDが入力として必要です。Amazon ComprehendコンソールからジョブIDを取得できます。すべてのステップをModel-Threshold-Analysisノートブックで実行して、すべてのクラスの閾値を観察します。

閾値が上がるにつれて適合率が上昇し、再現率は逆になります。両者のバランスを見つけるために、F1スコアを使用して、その曲線上の顕著なピークでバランスを見つけます。F1スコアのピークは、モデルのパフォーマンスを改善できる特定の閾値に対応しています。ほとんどのラベルは、0.5の閾値の周りにあることに注意してください。ただし、脅威ラベルの閾値は0.04の周りにあります。

最適化されていない特定のラベルの場合、デフォルトの0.5の閾値ではパフォーマンスが低下するため、この閾値を使用します。最適化された閾値を使用することで、テストデータのモデルの結果が脅威ラベルの0.00から0.24に向上します。各ラベルに共通の基準(> 0.7のような標準値)ではなく、閾値に対応する最大のF1スコアをベンチマークとして、そのラベルの陽性と陰性を判断するために使用します。

未表示クラスの処理

不均衡なデータセットに効果的なもう1つのアプローチは、過剰サンプリングです。未表示クラスを過剰サンプリングすることで、モデルは未表示クラスをより頻繁に見ることができ、それらのサンプルの重要性を強調します。最適化されたデータセットを作成するためにOversampling-underrepresented.ipynbノートブックを使用します。

このデータセットでは、評価データセットでのモデルのパフォーマンスがサンプルを追加することでどのように変化するかをテストしました。過剰サンプリング手法を使用して、未表示クラスの出現頻度を増やしてパフォーマンスを向上させます。

この特定のケースでは、10、25、50、100、200、および500の陽性例でテストしました。データポイントを繰り返していることに注意してください。未表示クラスの重要性を強調することで、モデルのパフォーマンスを改善しています。

コスト

Amazon Comprehendでは、処理されるテキスト文字数に基づいて支払いが行われます。実際の費用については、Amazon Comprehendの価格設定を参照してください。

クリーンアップ

この解決策の実験が終了したら、この例で展開されたすべてのリソースを削除してリソースをクリーンアップしてください。これにより、アカウントの継続的な費用を回避することができます。

結論

この記事では、データの準備、予測確率を使用したモデルチューニング、アンダーリプレゼンテッドデータクラスの処理技術に関するベストプラクティスとガイダンスを提供しました。これらのベストプラクティスとテクニックを使用して、Amazon Comprehendのカスタム分類モデルのパフォーマンスメトリクスを向上させることができます。

Amazon Comprehendに関する詳細情報は、Amazon Comprehend 開発者リソースにアクセスしてビデオリソースやブログ記事を探し、AWS ComprehendのFAQを参照してください。

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

機械学習

「ヘルスケアとゲノミクス産業が機械学習とAIで革新する方法」

AIと機械学習は医療研究のやり方を変えつつありますAIが薬剤探索、ゲノミクス、およびタンパク質の折りたたみに革新をもたら...

データサイエンス

テキストから画像への革命:SegmindのSD-1Bモデルが最速のゲームで登場

紹介 Segmind AIは、画期的なオープンソースのテキストから画像への生成モデルであるSSD-1B(Segmind Stable Diffusion 1B)...

データサイエンス

「表形式データの進化:分析からAIへ」

「表形式データ」とは、行と列に整理されたデータを指しますこれにはCSVファイルやスプレッドシート、関係データベースなどが...

AI研究

「このAI研究は、深層学習と進化アルゴリズムを用いて、シリコンMach-Zehnderモジュレータの設計を革新します」

NetflixやIoTの人気や分散コンピューティングおよびストレージアーキテクチャへの移行により、ネットワークの伝送容量要件が...

AI研究

サリー大学の研究者が新しい人工知能(AI)モデルを開発しましたこのモデルは、通信ネットワークが最大76%ものネットワークを節約できる可能性があります

オープン・ラジオ・アクセス・ネットワーク(O-RAN)は、分離されたラジオ・アクセス・ネットワーク(RAN)に知能を注入し、...

データサイエンス

「ディープラーニングの謎を解明する:CIFAR-10データセットを用いたCNNアーキテクチャの秘密の解明」

「人工知能の絶えず進化する世界において、畳み込みニューラルネットワーク(CNN)は革命的なテクノロジーとして登場し、コン...