Machine Learning(機械学習)をAzure上で構築する方法

2021年7月10日土曜日

AI Azure 機械学習

t f B! P L



下記のサイトに従って、進めていけば、Azure上でMachine Learningを実行する環境が整うのですが、スクリーンショットなどがないため、少しわかりにくいです。 

https://docs.microsoft.com/ja-jp/learn/modules/use-automated-machine-learning/

今回はスクリーンショット付でMachine Learningが実行できる環境構築方法を紹介します。


Machine Learning Studioの作成


検索窓にMachine Learningと入力して検索

リソースグループ名、ワークスペース名は任意の名前で入力



待ち時間:1分





機械学習を行うサーバーを構築



コンピューティング名はデフォルト値でOK







コンピューティング名はAzure内で一意にしないといけないので、登録済みの名前は使えません。


コンピューティングインスタンスおよびコンピューティングクラスターのデプロイが完了するまで数分待つ

データセットの登録

ここからはいよいよ、AIに学習させていきます。
このステップではAIに学習させるインプットデータとアウトプットデータを、データセットという箱に格納します。

まずは下記にアクセスしてサンプルデータをダウンロードします。

https://aka.ms/bike-rentals

こちらのデータは、気温や湿度、風速などのデータとともに自転車のレンタル数が何台だったかを記録しています。

このデータを使ってAIを学習し、未来を予測していきます。



名前は「bike-rentals」にします。



先ほど、ダウンロードしたファイルを指定します。
ファイル名は「daily-bike-share.csv」です。





学習の開始



先ほど登録したデータストアを選択して、次へを押します。

新しい実験名:mslearn-bike-rental
ターゲット例:rentals
コンピューティングクラスター:先ほど作成したコンピューティングクラスターの名前
を選択して、次へを押します。


ブロックされたアルゴリズムの中はRandomForestとLightGBMを除いてすべて選択します。
トレーニングジョブ時間:0.5
メトリックスコアしきい値:0.08
を入力します。


終了を押すと、学習が始まります。
この後、30分ほど待ちます。

下記のように完了になるまで待ちます。



ここからはAIをhttpsで呼び出せるように設定します。

アルゴリズム名ではVotingEnsembleを選択し、デプロイを押します。
名前:predict-rentals
コンピューティングの種類:Azureコンテナーインスタン
認証を有効にする:オン
にして、6番のデプロイを選択します。





下記の「RESTエンドポイント」と「主キー」をメモ帳にコピーしておきます。


ここから、学習したAIを使って、未来を予測していきます。






次に下記のソースコードをコピーします。

endpoint = 'YOUR_ENDPOINT' #Replace with your endpoint key = 'YOUR_KEY' #Replace with your key import json import requests #An array of features based on five-day weather forecast x = [[1,1,2022,1,0,6,0,2,0.344167,0.363625,0.805833,0.160446], [2,1,2022,1,0,0,0,2,0.363478,0.353739,0.696087,0.248539], [3,1,2022,1,0,1,1,1,0.196364,0.189405,0.437273,0.248309], [4,1,2022,1,0,2,1,1,0.2,0.212122,0.590435,0.160296], [5,1,2022,1,0,3,1,1,0.226957,0.22927,0.436957,0.1869]] #Convert the array to JSON format input_json = json.dumps({"data": x}) #Set the content type and authentication for the request headers = {"Content-Type":"application/json", "Authorization":"Bearer " + key} #Send the request response = requests.post(endpoint, input_json, headers=headers) #If we got a valid response, display the predictions if response.status_code == 200: y = json.loads(response.json()) print("Predictions:") for i in range(len(x)): print (" Day: {}. Predicted rentals: {}".format(i+1, max(0, round(y["result"][i])))) else: print(response)

そして、下記のように貼り付け、
YOUR_ENDPOINTとYOUR_KEYのところを、先ほどメモしておいたものに置き換えます。
最後に三角矢印を押すと、処理が開始されます。



結果は以下のようなものが表示されるかと思います。




これはどのような処理をやっていたかというと、先ほどCSVでアップロードしたデータは2021年の貸自転車の1日ごとのレンタル数の実績を用いて、AIに学習させ、
2022/1/1、1/2、1/3、1/4、1/5のレンタル数を予測する処理となっています。

最後に

ここまで約1時間程度で、AIの学習基盤と学習結果を用いて、未来を予測するAI基盤が出来上がりました。

今回はサンプルデータとして、1日ごとの自転車のレンタル数をインプットとして、未来のレンタル数を予測するAIが出来上がりましたが、インプットデータを別のものに変えれば、他の分野でも未来を予測することが可能になります。

ただし、その予測精度は何をインプットとして与えるか、だったり、どのアルゴリズムを採用するかによって異なってきますので、AIをいかに育てるかが重要になってきます。

PV

PVアクセスランキング にほんブログ村

ブログ村

このブログを検索

自己紹介

システムエンジニアとして12年ほど勤めたあと、社内SEに転職しました。 2017年に転職して、2019年に中古マンションを買いました。

リモートデスクトップのプロキシ越え

社内ネットワークからクラウド上のサーバにリモートデスクトップしたい Azureなどのクラウド環境にWindowsOSを立ち上げると、インターネット経由でリモートデスクトップ接続することになります。会社のネットワークからインターネットにアクセスする場合はプロキシサーバーやファイ...

QooQ