はじめまして、テンダの鈴木です。今年で入社2年目で、現在Azure について学んでいます。その中でもAzure Machine Learning について焦点をあてて、調査をしています。
そこで、Azure Machine Learning について学んだ内容や、研究開発で作成したサンプルプログラムについて、投稿していきたいと思います。今回は初回なので、「Azure Machine Learning とは何か」というテーマを選びました。
Azure Machine Learning とは?
Azure Machine Learning (以下AzureMLと記述)は、Microsoft が提供するクラウドサービスセット「Azure」の中のひとつで、名前の通り機械学習を行なうためのサービスです。
AzureML はコードを書く必要がなく、GUIでの操作が可能です。
そのため、ユーザーは簡単に予測分析ソリューションを構築、デプロイ、共有できます。
機械学習とは?
AzureML が機械学習を行なう為のサービスだと記述しました。しかし、そもそも機械学習とは何か?ここを簡単に説明します。
大量の既存データから学習を行い、そこに存在するパターンを探し出して、次の行動、結果、傾向を予測する処理を機械学習といいます。機械学習を活用しているサービスには、以下のようなものがあります。
- 通販サイトにある「あなたのおすすめ商品」
- 小売店の販売予測や自動発注
- 顔検出
また、機械学習には「教師有り学習」と「教師なし学習」などの学習方法が存在します。
- ※教師有り学習:既にデータに付随されているラベルによって、教えられた構造を学習する方法です。
- ※教師なし学習:データのみから、規則性を見つけ出し学習する方法です。
機械学習は、人工知能(AI)における研究課題になっています。
Azure Machine Learning を使ってみる
AzureML には、初めて使用するユーザーの為に、チュートリアルが用意されています。AzureML を学ぶとっかかりとして、私はこのチュートリアルを行なうことにしました。
今回行ったチュートリアルは、「Machine Learning のチュートリアル」の記事です。「モデルの作成、モデルのトレーニング、モデルのスコア付けとテスト」の流れで、新自動車の価格を予測するモデルを作成します。
AzureML はどのように操作できるのか、簡単にモデルを作成できるのか…を確認します。
- モデルの作成
チュートリアルでは、AzureML で用意されている複数のサンプルデータから、自動車価格データを使用して、実験(EXPERIMENT)を作成します。
サンプルデータは、[Saved Datasets]の中の[Samples]に用意されています。このサンプルデータを、分析が行なえる形に整理し、学習アルゴリズムで使用する列を定義します。
AzureML に用意されているモジュール[Select Columns in Dataset][Clean Missing Data]を使用してデータを整理した結果、値が不足していた列・行が削除され、定義した列のみ表示されています。
ここまでの作業で気になったのは、学習アルゴリズムで使用する列を定義するところです。ここで選択する列によって、優れた結果が得られるかが決まるようです。
- モデルトレーニング
1.で作成したデータを使用して、モデルのトレーニングとテストを行い、価格を予想する精度を確認します。今回、価格を予測したいので、数値を予測する目的で使用される、回帰アルゴリズムを使用します。[Split Data]モジュールを使用して、データをモデルのトレーニング用と、テスト用に分割します。モデルのトレーニングとテストが何を行なうかは、以下の通りです。
- トレーニング:自動車の特徴と価格の相関関係を検出します。
- テスト:モデルが既知の価格を余禄する精度を確認します。
チュートリアルでは、トレーニングに75%のデータを使用し、3.で行なうテストには残り25%を使用します。学習アルゴリズムに回帰アルゴリズムを使用するを記述しましたが、今回は最も単純な線形回帰を使用します。線形回帰モデルを使用するには、[Linear Regression]モジュールを用います。
ここまでの、マップは以下のようになっています。
とてもシンプルな形で、チュートリアルに従って進めていけば、1時間もしないでここまで出来ました。
- モデルのスコア付けとテスト
2.で残っていた25%のデータに、[Score Model]モジュールを使用して、スコア付けを行い、価格を予測します。今回の分析で、予測された新自動車の価格は、以下の通りです。分析結果は、[Score Model]モジュールを右クリックし、[Scored dataset]>[visualize]を選択すると見ることが可能です。また、選択してでてきたダイアログの右側にある、[visualizations]から以下のようなヒストグラムを見ることができます。
最後に、[Evaluate Model]モジュールを用いて、この予測結果を評価します。今回の結果は、以下の通りでした。
上から、平均絶対誤差/二乗平均平方根/相対絶対誤差/相対二乗誤差/決定係数 になります。決定係数の値が1に近づくほど、予測の精度が高いと判断されます。
今回のチュートリアルでは、決定係数が約0.9なので、比較的高い精度だと考えます。
Azure Machine Learning を使ってみて
今回はチュートリアルのためデータが用意されており、学習方法が提示された状態で行なったので簡単に結果を表示することができたと思います。
モデルに必要な列の選定や、使用する機械学習アルゴリズムの選択さえ出来れば、AzureML が用意してくれているモジュールを使用できるので、直感的に分析を行なえます。
しかし、予測結果の評価など、機械学習における前提知識はやはり必要になるので、まだまだ勉強が必要です。また、Microsoft が提供している実験(EXPERIMENT)を見てみるのも面白いと思います。
次回は、AzureML の研究開発で作成するサンプルプログラムについて、投稿する予定です。