Azure ML の自動機械学習について調べる

この演習では、Azure Machine Learning の自動機械学習機能を使って、機械学習モデルをトレーニングし、評価します。 次に、トレーニングしたモデルをデプロイしてテストします。

この演習の所要時間は約 30 分です。

注 このラボを完了するには、管理者アクセス権が与えられている Azure サブスクリプションが必要です。

Azure Machine Learning ワークスペースを作成する

Azure Machine Learning を使うには、お使いの Azure サブスクリプションで Azure Machine Learning ワークスペースをプロビジョニングする必要があります。 そうすると、Azure Machine Learning スタジオを使ってワークスペース内のリソースを操作できるようになります。

ヒント: 既に Azure Machine Learning ワークスペースがある場合は、それを使って次のタスクに進むことができます。

  1. Microsoft 資格情報を使って、https://portal.azure.com の Azure portal にサインインします。

  2. [+ リソースの作成] を選び、Machine Learning を検索し、次の設定を使って新しい Azure Machine Learning リソースを作成します。
    • [サブスクリプション]: お使いの Azure サブスクリプション。
    • リソース グループ: リソース グループを作成または選択します。
    • 名前: “ワークスペースの一意の名前を入力します”**
    • リージョン: 地理的に最も近いリージョンを選びます
    • ストレージ アカウント: ワークスペース用に作成される既定の新しいストレージ アカウントです。
    • キー コンテナー: ワークスペース用に作成される既定の新しいキー コンテナーです。
    • Application Insights: ワークスペース用に作成される既定の新しい Application Insights リソースです。
    • コンテナー レジストリ: なし (コンテナーにモデルを初めてデプロイするときに、自動的に作成されます)
  3. Review + create を選択し、次に [作成] を選択します。 ワークスペースが作成されるまで待ってから (数分かかる場合があります)、デプロイされたリソースに移動します。

  4. [スタジオを起動する] を選択し (または新しいブラウザー タブを開いて https://ml.azure.com に移動し)、Microsoft アカウントを使って Azure Machine Learning スタジオにサインインします。 表示されているメッセージがあれば閉じます。

  5. Azure Machine Learning スタジオに、新しく作成したワークスペースが表示されます。 それ以外の場合は、左側のメニューで [すべてのワークスペース] を選び、先ほど作成したワークスペースを選びます。

プレビュー機能を有効にする

Azure Machine Learning の一部の機能はプレビュー段階であり、ワークスペースで明示的に有効にする必要があります。

  1. Azure Machine Learning スタジオで、[プレビュー機能の管理] (拡声器アイコン - 🕫) をクリックします。

    メニューの [プレビュー機能の管理] ボタンのスクリーンショット。

  2. 次のプレビュー機能を有効にします。

    • Guided experience for submitting training jobs with serverless compute (サーバーレス コンピューティングを使ってトレーニング ジョブを送信するためのガイド付きエクスペリエンス)

自動機械学習を使ってモデルをトレーニングする

自動機械学習を使うと、複数のアルゴリズムとパラメーターを試して複数のモデルをトレーニングし、お使いのデータに最適なものを特定できます。 この演習では、季節と気象の特徴に基づき、自転車レンタル詳細の履歴データセットを使って、特定の日に予想される自転車レンタルの数を予測するモデルをトレーニングします。

引用: “この演習で使われるデータは Capital Bikeshare から得たものであり、発行データのライセンス契約に従って使われます”。**

  1. Azure Machine Learning スタジオで、 [自動 ML] ページ ( [作成] の下) を表示します。

  2. 次の設定で新しい自動 ML ジョブを作成し、必要に応じて [次へ] を使ってユーザー インターフェイスを進めます。

    基本設定:

    • ジョブ名: mslearn-bike-automl
    • [新しい実験名]: mslearn-bike-rental
    • 説明: 自転車レンタル予測のための自動機械学習
    • タグ: “なし”**

    タスクの種類とデータ:

    • タスクの種類の選択: 回帰
    • データセットの選択: 次の設定で新しいデータセットを作成します。
      • データ型:
        • [名前]: bike-rentals
        • 説明: 過去の自転車レンタル データ
        • 種類: 表形式
      • データ ソース:
        • [Web ファイルから] を選びます
      • Web URL:
        • [Web URL]: https://aka.ms/bike-rentals
        • データ検証のスキップ: “選択しないでください”**
      • 設定:
        • [ファイル形式]: 区切り記号付き
        • [区切り記号]: コンマ
        • [エンコード]: UTF-8
        • [列ヘッダー]: 最初のファイルにのみヘッダーを付ける
        • [行のスキップ]: なし
        • データセットに複数行のデータを含める: 選択しない**
      • [スキーマ]:
        • [パス] 以外のすべての列を含める
        • 自動的に検出された型を確認する

      bike-rentals データセットを作成した後に選びます。

    タスク設定:

    • タスクの種類: 回帰
    • [データセット]: bike-rentals
    • ターゲット列: レンタル (整数)
    • Additional configuration settings:
      • プライマリ メトリック: 正規化された二乗平均平方根誤差
      • 最適なモデルの説明: “未選択”**
      • サポートされているすべてのモデルを使用する: 選択解除。 いくつかの特定のアルゴリズムだけを試すように実験を制限します。
      • 許可されるモデル: [RandomForest] と [LightGBM] を選択します — 通常は、できるだけ多く試してみてください。ただし、モデルを追加すると、ジョブの実行にかかる時間が長くなります。
    • 制限: “このセクションを展開します”**
      • Max trials (最大試行回数): 3
      • 同時試行の最大数: 3
      • 最大ノード: 3
      • メトリック スコアしきい値: 0.85 (“モデルで、正規化された二乗平均平方根誤差メトリック スコア 0.085 以下を達成した場合にジョブが終了するようにします。”)**
      • タイムアウト: 15
      • Iteration timeout (反復のタイムアウト): 5
      • Enable early termination (早期終了を有効にする): “オン”**
    • 検証とテスト:
      • 検証の種類: トレーニング検証の分割
      • Percentage of validation data (検証データの割合): 10
      • テスト データセット: なし

    コンピューティング:

    • コンピューティングの種類を選択: サーバーレス
    • [仮想マシンの種類]: CPU
    • 仮想マシンのレベル: 専用
    • 仮想マシンのサイズ: Standard_DS3_V2
    • インスタンスの数: 1
  3. トレーニング ジョブを送信します。 自動的に開始されます。

  4. ジョブが完了するまでお待ちください。 しばらく時間がかかる場合があります。コーヒーでも飲んで待ちましょう。

最高のモデルを確認する

自動機械学習ジョブが完了したら、トレーニングした最適なモデルを確認できます。

  1. 自動機械学習のジョブの [概要] タブで、最適なモデルの概要を確認します。 アルゴリズム名を囲むボックスを含む自動機械学習ジョブの最適なモデル概要のスクリーンショット。

    注: 状態の下に “警告: ユーザーが指定した終了スコアに達しました… “ というメッセージが表示されることがあります。 これは予想されている現象です。 次の手順に進んでください。

  2. 最適なモデルの [アルゴリズム名] の下のテキストを選び、詳細を表示します。

  3. [メトリック] タブを選択し、residuals グラフと predicted_true グラフがまだ選択されていない場合は選択します。

    モデルのパフォーマンスを示すグラフを確認します。 residuals グラフには、”残差” (予測値と実際の値の差) がヒストグラムとして表示されます。** predicted_true グラフでは、予測値と実際の値を比較します。

モデルをデプロイしてテストする

  1. 自動機械学習ジョブによってトレーニングされた最適なモデルの [モデル] タブで [デプロイ] を選び、[Web サービス] オプションを使って、次の設定でモデルをデプロイします。
    • [名前]: predict-rentals
    • [説明]: 自転車レンタルの予測
    • [コンピューティングの種類]: Azure コンテナー インスタンス
    • 認証を有効にする: “オン”**
  2. デプロイが開始するのを待ちます。これには数秒かかることがあります。 predict-rentals エンドポイントの [デプロイの状態] は、ページのメイン部分に “実行中” と表示されます。**
  3. [デプロイの状態] が “成功” に変わるまで待ちます。** これには 5 分から 10 分かかる場合があります。

デプロイされたサービスをテストする

これで、デプロイされたサービスをテストできます。

  1. Azure Machine Learning スタジオの左側のメニューで、 [エンドポイント] を選択し、predict-rentals リアルタイム エンドポイントを開きます。

  2. predict-rentals リアルタイム エンドポイント ページで、[テスト] タブを表示します。

  3. [Input data to test endpoint] (テスト エンドポイントへの入力データ) ペインで、テンプレート JSON を次の入力データに置き換えます。

     {
       "Inputs": { 
         "data": [
           {
             "day": 1,
             "mnth": 1,   
             "year": 2022,
             "season": 2,
             "holiday": 0,
             "weekday": 1,
             "workingday": 1,
             "weathersit": 2, 
             "temp": 0.3, 
             "atemp": 0.3,
             "hum": 0.3,
             "windspeed": 0.3 
           }
         ]    
       },   
       "GlobalParameters": 1.0
     }
    
  4. [テスト] ボタンをクリックします。

  5. 次のように、入力の特徴に基づいて予測されるレンタル数を含むテスト結果を確認します。

     {
       "Results": [
         444.27799000000000
       ]
     }
    

    テスト ペインによって入力データが取得され、トレーニングしたモデルを使用して予測されたレンタル数が返されました。

これまでに行った内容を振り返ってみましょう。 過去の自転車レンタル データのデータセットを使用してモデルをトレーニングしました。 このモデルでは、季節と気象の “特徴” に基づいて、特定の日に予想される自転車のレンタル数を予測しています。

クリーンアップ

作成した Web サービスは “Azure コンテナー インスタンス” にホストされます。 それ以上実験する予定がない場合は、不要な Azure の使用が発生するのを避けるために、エンドポイントを削除する必要があります。

  1. Azure Machine Learning Studio の [エンドポイント] タブで、predict-rentals エンドポイントを選択します。 次に、[削除] を選び、エンドポイントを削除することを確認します。

    コンピューティングを削除すると、サブスクリプションがコンピューティング リソースに対して課金されなくなります。 ただし、サブスクリプションに Azure Machine Learning ワークスペースが存在する限り、データ ストレージに対して少額が課金されます。 Azure Machine Learning の探索を完了したら、Azure Machine Learning ワークスペースとそれに関連付けられたリソースを削除できます。

ワークスペースを削除するには:

  1. Azure portal の [リソース グループ] ページで、Azure Machine Learning ワークスペースの作成時に指定したリソース グループを開きます。
  2. [リソース グループの削除] をクリックし、リソース グループ名を入力して削除することを確認し、[削除] を選択します。