Amazon MLA-C01: モデルの評価と選択 — 学習ガイド

こちらの一部です: AWS Machine Learning Engineer Associate MLA-C01 — 学習ガイド. 検証済みの解答で練習: Amazon試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.

正確なモデル評価は、ビジネス目標とクラス/ラベルの特性に合ったメトリクスを選択することから始まります。二項分類では、混同行列(真陽性、偽陽性、偽陰性、真陰性)が基本的な要素であり、そこから適合率 (TP / (TP+FP))、再現率または感度 (TP / (TP+FN))、特異度 (TN / (TN+FP))、そして正確度 ((TP+TN) / 全体) が導出されます。適合率と再現率はトレードオフの関係にあり、これはF1スコア (2 * 適合率 * 再現率 / (適合率 + 再現率)) に集約されます。F1スコアは調和平均であり、偽陽性と偽陰性のバランスを重視します。クラスの不均衡が深刻な場合、正確度は誤解を招く可能性があります。ROC曲線下面積 (AUC) は、しきい値全体にわたる分離能力を測定し、多くの場合、不均衡に対して頑健です。一方、陽性クラスの割合が低い場合は、適合率-再現率曲線下面積 (AUPRC) の方がより有益な情報を提供します。回帰では、二乗平均平方根誤差 (RMSE) は大きな誤差を二乗でペナルティを科すため、外れ値に敏感です。外れ値に対する頑健性が求められる場合は、平均絶対誤差 (MAE) を使用します。

しきい値の選択は運用上の決定事項です。多くのアルゴリズムは確率スコアを生成し、それをクラスラベルに変換するためにしきい値が必要です。ROC曲線や適合率-再現率曲線を使用して、F1スコアやビジネス上の重み付けを考慮したコスト関数など、選択した目標を最大化するしきい値を見つけます。実践的な方法論としては、混同行列からしきい値ごとの適合率、再現率、F1スコアを計算し、目標とする適合率や再現率の制約を満たすしきい値を選択します。交差検証は、メトリクス推定値のばらつきを減らすことでこれを補完します。不均衡な分類問題では、分割全体でクラスの比率を維持するために層化K分割 (stratified K-fold) を使用します。コードでは、scikit-learnのStratifiedKFoldでn_splitsとshuffle=True、そして固定のrandom_stateを指定することで、再現可能な分割が得られます。分割ごとのメトリクスを記録し、平均と標準偏差を集計して、予測されるばらつきを定量化します。SageMakerを使用する場合、CVの実行を個別のトレーニングジョブとして編成し、SageMaker Experiments API(CreateExperiment、CreateTrial、CreateTrialComponent)で追跡できます。その後、各分割に対してLogMetricとLogHyperParameterを使用します。

バイアスとバリアンスのトレードオフは、モデルの複雑さと正則化の選択を導きます。高バイアスのモデルは過小適合(アンダーフィット)し、トレーニングセットと検証セットの両方で高いエラーを生成します。一方、高バリアンスのモデルは過学習(オーバーフィット)し、トレーニングエラーは低いものの検証エラーが高くなります。バイアスを修正するには、モデルの能力を高める、有益な特徴量を追加する、または正則化の強度を弱めます。バリアンスを修正するには、正則化 (L1/L2) を追加する、複雑さを減らす、ドロップアウトを使用する、またはトレーニングデータを増やすといった方法があります。バリアンスを検出するには、交差検証の推定値を使用します。分割ごとのメトリクスのばらつきが大きい場合は、高バリアンスを意味します。SageMakerでの反復トレーニングでは、早期停止(XGBoostの場合、ハイパーパラメータearly_stopping_roundsを設定し、eval_metric=‘auc’または’error’を指定)を組み込み、SageMaker Automatic Model Tuningをベイズ戦略で用いてhyperparameter_spaceを探索します。HyperparameterTunerにobjective_metric_name、objective_type=‘Maximize’または’Minimize’、hyperparameter_ranges、max_jobs、max_parallel_jobsを設定します。

主要なサービスと設定

AWSのサービス群は、実験の追跡、モデルの登録、ドリフトの検出、デプロイのガードレールの強制を行うための、緊密に統合されたツールチェーンを形成します。実験の実行を整理するにはAmazon SageMaker Experimentsを使用します。sagemaker.create_experiment、sagemaker.create_trial、sagemaker.log_metricを呼び出して、ハイパーパラメータとメトリクスを永続化します。一元的なモデルライフサイクル管理には、SageMaker Model Registry(ModelPackageGroupとModelPackage)を使用し、モデルパッケージの属性であるModelPackageApprovalStatus(“PendingManualApproval”、“Approved”、“Rejected"などの値をサポート)を通じてデプロイフローを制御します。AWS LambdaやStep Functionsの人間による承認アクションからUpdateModelPackageを呼び出してapproval_statusを変更することで、手動承認をCI/CDフローに統合します。

デプロイ後のモニタリングとバイアス/ドリフト検出には、SageMaker Model MonitorとSageMaker Clarifyを使用します。エンドポイントでのリアルタイムデータキャプチャを有効にするには、CreateEndpointConfigまたはUpdateEndpointConfigの呼び出しでDataCaptureConfigを設定します。代表的なペイロードを収集するために、CaptureOptions: [{“CaptureMode”:“Input”}, {“CaptureMode”:“Output”}]、DestinationS3Uri、およびSamplingPercentageを指定します。Model MonitorのDefaultModelMonitorを使用して、参照データセットからGenerateBaseline(baseline_statisticsとbaseline_constraintsのJSON)を実行し、その後create_monitoring_scheduleでモニタリングスケジュールを作成します。その際、MonitoringScheduleConfig、schedule_expression(cronまたはrate)、およびEndpointInput(local_pathとS3InputModeを指定)などのMonitoringInputsを提供します。公平性とバイアスについては、clarify_configパラメータのcompute_biasとcompute_data_driftを指定してSageMaker ClarifyをProcessingJobとして使用するか、ProcessingジョブでSageMaker Clarifyの組み込み機能を使用し、結果をS3に永続化してダッシュボードで表示します。

以下のAWS機能は、データ集約、特徴量準備、異常検知のために一般的に組み合わせて使用されます。

設計パターンとトレードオフ

運用オーバーヘッドを最小限に抑える必要がある場合は、カスタムETLやカスタムモニタリングパイプラインを構築するのではなく、マネージドサービスや組み込みアルゴリズムの機能を利用することを推奨します。例えば、不正検知のための二値分類器をトレーニングする場合、SageMakerの効率的な組み込みアルゴリズムであるXGBoostが選択肢となります。これは低レイテンシーのトレーニングを提供し、不均衡データに合わせたハイパーパラメータ、例えば (num_negative / num_positive) に設定すべき scale_pos_weight などを備えています。XGBoostのハイパーパラメータは、Estimatorまたはトレーニングコンテナで設定します。objective='binary:logistic'eval_metric='aucpr' または 'auc'、そしてノイズの多い実行を終了させるための early_stopping_rounds などです。これにより、ドメイン固有の合成サンプリングが必要な場合を除き、カスタムのオーバーサンプリングパイプライン (SMOTEなど) を構築する手間を省けます。

特徴量エンジニアリングには、SageMaker Data Wranglerを使用してエンコーディング変換(カーディナリティの低いカテゴリカル特徴量にはワンホットエンコーディング、カーディナリティの高い特徴量には順序/ラベルエンコーディングまたはターゲットエンコーディング)を適用し、クリーンな特徴量をSageMaker Feature StoreまたはS3にマテリアライズします。Data Wranglerは運用上の負担の多くを取り除き、再利用可能なスクリプトや処理ジョブを生成します。最小限の労力で自動化されたモデル選択が必要な場合は、SageMaker Autopilotがカテゴリカル特徴量と数値特徴量が混在したデータを自動的に前処理し、候補モデルを生成します。ただし、Autopilotは変換を抽象化するため、カスタムの特徴量体系には最適でない場合があります。

モデルの比較とプロモーションは、メトリクス、アーティファクト、リネージが記録されている場合に最も堅牢になります。SageMaker Experimentsを使用して実行を比較し、次にModelPackageGroup内にModelPackageを作成します。プロモートするには、ModelPackageApprovalStatus を “Approved” に設定し、モデルパッケージのARNを参照するEndpointConfigを生成します。人間の手による管理が必要な場合は、モデルを “PendingManualApproval” のままにし、Step FunctionsまたはAWS CodePipelineを使用して人間の承認ワークフローを構築します。このワークフローでは、UpdateModelPackage を呼び出してステータスを “Approved” に変更する承認アクションを組み込みます。

よくある落とし穴と判断基準

よくある落とし穴は、根本的な問題がデータドリフトであるにもかかわらず、本番環境でのF1スコアの低下をモデルの欠陥と混同してしまうことです。デプロイから数ヶ月後にF1スコアが持続的に低下する最も可能性の高い原因は、突然のバグではなく、入力分布のドリフトまたはラベルのドリフト(コンセプトドリフト)です。これを診断するには、エンドポイントでDataCaptureConfigを有効にしてリクエストとレスポンスのペイロードをS3にキャプチャし、ベースライン制約に対してModel Monitorのモニタリングスケジュールを実行し、特徴量の分布統計とPSI(人口安定性指数)を計算します。また、Clarifyのデータドリフトとバイアスチェックを実行して、公平性メトリクスに影響を与える変化を検出します。

もう一つの頻繁な誤りは、時間的なリークやビジネスコストを考慮せずに単純にリサンプリングを行い、クラスの不均衡を不適切に処理することです。重複したサンプルを導入する可能性のあるサンプリング戦略に移行する前に、まずアルゴリズムレベルでの制御を優先します。例えば、XGBoostではscale_pos_weightを設定し、eval_metricをaucprやカスタム目的にチューニングします。再現性と実験の追跡のために、常にSageMaker Experiments APIを使用してハイパーパラメータとメトリクスを記録し、昇格が監査可能になるようにアーティファクトのURIと来歴メタデータを含むモデルパッケージを登録します。

実践的な問題:ユースケースシナリオ

会社: FinSight Inc. — Amazon S3とオンプレミスのMySQLにデータを持つオンライン取引の不正検知。要件として、安全なデータ分離、自動化された異常検知と可視化、本番デプロイ前の手動承認、反復的なトレーニングのための低い起動レイテンシー、最小限の運用オーバーヘッドでの一元的なモデルバージョニングが求められる。

  1. データの集約とセキュリティ: AWS Glueを使用してS3のトランザクションログをクロールし、Glueカタログテーブルを作成します。SSE-KMSによるバケット暗号化を設定し、IAMポリシーとVPCエンドポイントを通じてアクセスを制限します。オンプレミスのMySQLについては、セキュアなVPNまたはAWS Direct Connectを備えたVPC内でAWS Glue JDBC接続を使用するか、AWS DMSを使用して必要なテーブルをS3のランディングゾーンにレプリケートします。データセットをGlueデータカタログに登録し、SageMaker実行ロールに最小権限のアクセスを付与します。

  2. 特徴量の準備と異常検知: Amazon SageMaker Data Wranglerを使用してGlueカタログとS3ランディングゾーンに接続し、変換(欠損値の補完、カテゴリ変数のラベルエンコーディング、数値のスケーリング)を適用し、Data Wranglerの組み込みプロファイリングを実行して分布を可視化し、異常にフラグを立てます。処理された特徴量を、トレーニング用のSageMaker Feature Storeオフラインストアと、推論時の低レイテンシーなルックアップ用のオンラインストアにエクスポートします。

  3. モデルトレーニングと起動レイテンシーの最小化: objective=‘binary:logistic’、eval_metric=‘aucpr’を設定し、scale_pos_weightを(負例の数/正例の数)に設定したXGBoost用のSageMaker Estimatorを使用します。反復的なトレーニングジョブ全体で起動レイテンシーを削減するために、毎回データインジェストを再構築するのではなく、Data Wranglerの出力をS3にキャッシュし、同じトレーニングコンテナイメージとインスタンスタイプを再利用します。cache_configを有効にしたSageMaker Pipelinesを使用することで、入力/ハイパーパラメータが変更されていない繰り返しステップではインフラストラクチャの起動をスキップします。

  4. 実験の追跡とモデルの選択: 各トレーニング実行をSageMaker Experiments(CreateExperiment, CreateTrial, LogMetric)で計測します。objective_metric_name=‘validation:aucpr’, objective_type=‘Maximize’, strategy=‘Bayesian’, max_jobs, max_parallel_jobsを設定したHyperparameterTunerを使用して、最適なハイパーパラメータを見つけます。Experimentsでモデルを比較し、選択した候補をModelPackageGroup内にModelPackageを作成することでSageMakerモデルレジストリに登録します。

  5. 手動承認とデプロイのゲーティング: 新しく作成されたモデルパッケージはModelPackageApprovalStatus=‘PendingManualApproval’のままにしておきます。人間の承認タスクを含むAWS Step FunctionsワークフローまたはAWS CodePipelineの承認アクションを使用します。承認されると、UpdateModelPackageを実行して承認ステータスを’Approved’に設定し、EndpointConfigの自動作成とUpdateEndpointの実行をトリガーしてデプロイを実行します。

  6. モニタリング、バイアス、ドリフト: リアルタイムエンドポイントでDataCaptureConfigを有効にし、InputとOutputのCaptureOptions、DestinationS3Uri、SamplingPercentageを設定します。トレーニングデータセットからModel MonitorのGenerateBaselineでベースライン統計を生成し、create_monitoring_scheduleで継続的なモニタリングをスケジュールします。SageMaker Clarifyを定期的に処理ジョブとして実行し、バイアスとデータドリフトのメトリクスを計算します。F1がベースライン制約を下回った場合、Model Monitorのアラートをトリガーとして自動再トレーニングパイプライン(SageMaker Pipeline)を起動し、Experimentsに新しい実行を記録し、人間によるレビューのために新しいモデルパッケージを生成します。

AWSの論理的根拠: このアプローチでは、マネージドなSageMakerの機能を利用します。Data WranglerとFeature Storeで前処理のオーバーヘッドを最小化し、XGBoostのscale_pos_weightで複雑なリサンプリングなしで不均衡を処理し、SageMaker ExperimentsとModel Registryで監査可能な実験とモデルのライフサイクル管理を行い、DataCaptureConfigに加えてModel MonitorとClarifyで自動化されたドリフトと公平性の検出を行い、Model Registryと統合されたStep Functions/CodePipelineで必要な手動承認ゲートを提供します。これらのサービスを組み合わせることで、セキュリティ、トレーサビリティ、モデルの劣化に対応する能力を維持しつつ、運用負荷を最小限に抑えることができます。


モデルのトレーニングとハイパーパラメータの最適化 · すべてのドメイン · モデルのデプロイと推論

これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

試験に合格する →

Amazonを閲覧 →

Related guides

オールインワンアクセス

1つのサブスクリプション。すべての試験。

すべてのプランで、無制限の回答検索、模擬試験、AI解説、および完全なリソースライブラリが利用可能 — 20以上の言語に対応。

月額
24.87
Just €0.83/day
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

ベストバリュー
12ヶ月
179.87
Just €0.49/daySave 40%
すべて含まれています:
  • 無制限の回答検索
  • 無制限の模擬試験
  • AIを活用した解説
  • 完全なリソースライブラリ
  • 20以上の言語
  • 毎週のコンテンツ更新
  • 特典 & 紹介
  • 優先サポート
無料トライアルを開始

クレジットカード不要*

✓ 無料プランが含まれています · ✓ いつでもキャンセル可能 · ✓ すべてのプランで製品の全機能が利用可能