[レポート]AIM361-R1 – Amazon SageMakerを用いた機械学習モデルの最適化 #reinvent

AWS re:Invent 2019のワークショップ「AIM361-R1 - [NEW LAUNCH!] [REPEAT 1] Optimizing Your Machine Learning Models on Amazon SageMaker」のレポートです。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうも、DA事業本部の大澤です。

本エントリはAWS re:Invent 2019のワークショップ「AIM361-R1 - [NEW LAUNCH!] [REPEAT 1] Optimizing Your Machine Learning Models on Amazon SageMaker」のレポートです。

セッション概要

In this code-level workshop, you’ll learn how to use hyperparameter optimization (HPO) and AutoML on Amazon SageMaker, in order to quickly and easily build highly accurate machine learning models. Using a real-life dataset, you’ll first use HPO to tune models built with the popular XGBoost algorithm. Then, you’ll use the newly released AutoML capability in Amazon SageMaker to automatically figure out the algorithm, the parameters, and the data preprocessing steps. Finally, you’ll use HPO again to perform architecture search on a Keras neural network.

意訳

このコードレベルワークショップでは、早くかつ簡単に正確な機械学習モデルを構築するためのAmazon SageMakerでのハイパーパラメータ最適化(HPO)とAutoMLの使い方について学習します。まずは実生活のデータセットを使用して、人気のXGBoostで構築したモデルをHPOでチューニングします。それから新しくリリースされたAmazon SageMakerのAutoML機能を使って、アルゴリズムやパラメータ、データ前処理を自動的に求めます。最後に、HPOを使ってKerasのニューラルネットワークの最適な構造を探します。

スピーカー

  • Julien Simon - Global Evangelist, AI & Machine Learning, Amazon Web Services
  • Steve Turner - Head of Emerging Technologies, Amazon Web Services

レポート

Automatic Model Tuning(AMT)

  • HyperParameters
    • アルゴリズムごとに様々なパラメータがあり、取りうる値の範囲も様々
    • どれが影響力が一番ある?
    • どの値を取るべき?
    • どれくらいの組み合わせを試すべき?
    • HPOの戦略
    • SageMakerにおけるハイパーパラメータの設定方法
      • 基本的には辞書形式で設定
        • パラメータ - 値の範囲
    • SageMakerにおけるAutomatic Model Tuning
      • Estimatorの定義
      • チューニングするメトリックを定義
      • パラメータ範囲を設定
      • HyperparameterTunerを定義
      • fit
      • マネジメントコンソールで確認できる
      • SageMakerSDKでqueryもできる
      • deploy()で最も良いジョブのモデルをデプロイできる
    • Tips
      • ベイジアンストラテジーを使用する
      • 並列で大量のジョブを実行しすぎない
      • 多すぎるジョブを実行しない

AutoML

  • AutoML
    • AutoMLはモデルの作成を自動化する
    • モデルアイデンティフィケーション
    • アルゴリズムセレクション
    • データ前処理
    • HPO
  • Black box vs White box
    • Black box
      • モデルを理解できず、再現もできない
    • White box
      • コードもモデルの理解もできる
  • AutoML with Amazon SageMaker Pilot
    • 全てのステップをカバー
    • White box
      • どのようにしてモデルが開発できるか確認できる
      • データ処理用とモデル作成用のノートブックがそれぞれ自動生成される
      • 生成されるノートブックを使って、カスタマイズもできる
    • リリース時の対応アルゴリズム
      • Linear Learner
      • FM
      • KNN
      • XGBoost
    • ステップ
      • 処理前のデータセットをS3へ
      • AutoMLジョブを設定
      • ジョブを起動
      • ジョブの一覧を確認
      • candidatesautogenerated notebookを確認
      • 最も良いcandidateをデプロイする

資料

Lab

次の内容をSageMakerのノートブックインスタンス上で各自で進めていきます。

  • Lab1: AMTを使ってXGBoostの最適なハイパーパラメータを探す
  • Lab2: Autopilotを使って、最適なアルゴリズムと前処理、ハイパーパラメータを探す
  • Lab3: AMTを使ってKerasでの深層学習構造を探索する

学習に時間のかかるLab2から進めましたが、残念ながらワークショップ終了時点でもまだ学習ジョブは完了しませんでした。Lab1とLab3は終了し、検証データでの評価指標F1はLab1の方が良い結果となりました。

資料

さいごに

AWS re:Invent 2019のセッション「AIM361-R1 - [NEW LAUNCH!] [REPEAT 1] Optimizing Your Machine Learning Models on Amazon SageMaker」のレポートをお伝えしました。Amazon SageMaker Autopilotは学習によってデータの前処理とモデル構築に使用するノートブックが作成されるため、検証としても使えそうです。今後今回のワークショップのノートブックを使うことでAutopilotを手軽に試せます。Amazon SageMaker Autopilotがどんな感じか興味のある方は試してみてはいかがでしょうか。

参考