26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【2020/5月更新】誰でもAIモデルが作れる! Watson Studioに新しく搭載された機械学習の自動化機能「AutoAI」をザクっとご紹介します

Last updated at Posted at 2019-06-05

image

要は(TL;DR;)

  • 2019/5/31からWatson Studioに機械学習を自動化する「AutoAI」が搭載されました
  • AutoAI」はその名前の通り、数値や文字列などの構造化データ(CSV)を入力にして、判定(分類)と数値予測(回帰)のモデルを数クリックで簡単に作れるツールです
  • Watson Studioの一機能としてのリリースなので、追加のお金はかかりませんし、無償のライトアカウントでもお試しできます
  • (:wink: 要はぶっちゃけ、Data RobotやH2O Driverless AIみたいなもんですわ.. ) 
  • Watson Studioにはディープラーニングの画像分類などをカンタンに自動化するNeuNets1も付いてますよ!

はじめに

こんにちわ、石田です!今日は2019/05/31からWatson Studioで一般利用可能(GA)になった「AutoAI」をご紹介させてください。「AutoAI」を使えば専門家でなくても数クリックで精度の高いAIモデルを簡単に作れますし、モデルの本番環境(WML)へのデプロイも超簡単です!

:blue_book: What's new - May 31, 2019
:blue_book: AutoAI Overview

:video_camera: 約3分半のご紹介ビデオ@YouTube
AutoAI概要 - 機械学習モデルの自動生成

どんな感じ? ざっくりと操作をご紹介

image
図1. 入力ファイルと予測フィールドの指定

:one: 入力にするCSVファイルを指定します
:two: 予測したいフィールド(ターゲット)を選びます
:three: ターゲットの特性により、自動的に手法と評価指標が選択されます(変更できます)
:four: あとは実行するだけ!自動的にトレーニングが起動します。簡単すぎますよね?

image
図2. モデル作成中のパネル例

モデル作成では以下のような一連の項目を自動処理しています。(蛇足ですがこの一連の流れを一般的に**機械学習パイプライン(ML Pipeline)**と呼びます)

  • 入力データセットの分割(今はTraining:HoldOut=90:10で固定)
  • トレーニング・データの読み込み
  • データの前処理(欠損値の補完、外れ値の除去など)
  • 最適なモデリング手法( estimator ) の選定(分類=30種 回帰=44種より)
  • ハイパーパラメーターの最適化( HPO )
  • 特徴量の加工(Feature Engeneering)
  • アンサンブル(モデルのいいとこ取り)

image
図3. Relationship Mapの例

:pencil: ( 2019/12追記) Relationship Mapでは以下のような情報をビジュアルに示してくれますので、ともすると「ブラックボックス」になりがちなこの類のツールで、中身の確認や理解促進に有効です。

  • データをどのように分割したか(基本3分割での交差検証+ホールドアウト)
  • どのアルゴリズムを選んだか(少量データにて簡易評価)
  • そのアルゴリズムでどのようなパイプラインを試みたか(基本は4パターン)
  • 各パイプラインでどのような特徴量生成が有効だったか

image
図4. モデル完成時の出力パネル例
トレーニングが完了すると、複数のパイプラインの評価結果を成績の良い順に提示してくれます。

image
図5. Pipeline Comparisonの例
:pencil: ( 2019/12追記) 上記のようなPipeline Comparisonも提供されるようになりました。

image
図6. モデルの評価指標の可視化例

それぞれのモデルの評価の明細メタデータもみられますのでデータサイエンティストの方も満足!

image
図7. モデルの保管とデプロイ

パネルのUIから簡単にモデルの保管とWML環境(実行ランタイム)へのデプロイができます。あとはREST APIとして任意のクライアントから呼び出すだけ!

「やってみた」記事は長くなったのでこちらに置きました。

機能

:pencil:(2019-07/22) 英語:flag_us:かつディープな内容ですが、研究所主催のWebinarでAutoAIのFeatute Engineeringの詳細テクニックが説明されていました。参加登録すればどなたでも視聴できるようなので、ご興味ある方はどうぞ。2
:tv: Deep dive on automating feature engineering
image

入力

  • 現時点ではCSVファイル一択です。データベースは入力にできません
  • CSVファイルの最大サイズは100MB 1GB3です
  • CSVなので、扱えるのは数値や文字などの構造化データのみです。画像やテキストなどの非構造化データを扱いたい場合はAutoAIではなくNeuNetsのほうをご検討ください

解決できる問題

以下の3つの問題に対応しています。いずれも正解データのある「教師あり学習(Supervised Learning)」です。「クラスタリング」などの「教師なし学習(Unsupervised Learning)」は対応していません。

問題 ターゲットの例 代表的な評価指標
二値分類( Binary Classification ) 0/1, Y/N, True/False ROC AUC
多クラス分類( Multi-Class Classification ) A/B/C, BRONZE/SILVER/GOLD Accuracy
回帰(Regression) 数値(期待売上,身長,予想価格) RMSE(Root Mean Squered Error)

(2020/05/26) 更新↓
最新の詳細情報はドキュメント :blue_book: AutoAI implementation detailsをご参照ください。

分類」は下記のアルゴリズムから最適なものを選びます。

  1. Decision Tree Classifier
  2. Extra Trees Classifier
  3. Gradient Boosted Tree Classifier
  4. LGBM Classifier
  5. Logistic Regression
  6. Random Forest Classifier
  7. XGBoost Classifier

回帰」は下記のアルゴリズムから最適なものを選びます。

  1. Decision Tree Regression
  2. Extra Trees Regression
  3. Gradient Boosting Regression
  4. LGBM Regression
  5. Linear Regression
  6. Random Forest Regression
  7. Ridge
  8. XGBoost Regression

(↑更新ここまで)

ランタイム

使う側からはまったく意識しませんが、内部的なランタイムはPython - scikit-learnらしく、この上にいろいろな自動化/最適化のテクニックを積み上げているらしいです。

image

  • (あくまで2019/5/31時点では)実行環境は「8 vCPUs and 32 GB RAM」で固定です。先々は他の機能同様に選べるようになるのでしょう。
  • :warning: パネルにも記載ありますが、この構成は20CUH/Hourを消費します。他の機能での同等構成の消費量(4CUH/Hour)より多いので、ご注意ください。

Model Builderとの違い

:pencil: (2019/08/06) What's Newによると 2019/08/02付で、従来からご提供してきた簡単AIモデル作成機能の**Model Builderは無くなりました。今後はAutoAIをご利用ください。

Week ending 02 August 2019
Retirement of Watson Machine Learning Model Builder
Watson Machine Learning Model Builder is no longer available for training machine learning models. Models trained with Model Builder and deployed to Watson Machine Learning will continue to be supported, but no new models can be trained using Model Builder. Instead, use AutoAI for training classification and regression models. Read about the announcement, or learn more about AutoAI.

以前からWatson Studioには似たような機能としてSparkMLベースの「Model Builder」があります。こちらもウイザード形式で超簡単にモデルを作れます。
image
「専門家不要/自動化」の「効用」だけ見ると同じ、なのですがAutoAIの方が後発な分、機能も多いし深いです。今は並存している過渡期ですが、今後はAutoAIをご利用ください。いちおうModel Builderと比べた時のAutoAIの利点は下記かと思います。

  • 候補となるモデル数が多い
  • 自動データ準備(ADP)も、より洗練されている
  • (ハイパーパラメータ最適化など)より洗練された方法でモデルを構築
  • 様々な改善により、一般にModel Builderより精度の高いモデルが作れる
  • Confision Matrix始めモデルの評価結果の情報が可視化されており充実している

あと現時点ではModel Builderではバッチ処理もサポートしていますがAutoAIでは未サポートです。

NeuNetSとの違い & (2019/12追記) 両者は2020年にマージされます

冒頭で書いてしまいましたが、要は構造化データはAutoAI, 非構造化データはNeuNetSです。いずれもWatson Studioの機能であり追加料金なしでご利用いただけますし、ライトアカウントでも試せます。構造化データ・非構造化データの両方に対し「機械学習の自動化」の恩恵を低価格(約1万円/月・人)でご提供できているのは、Watson Studioのいいところだと思います。

image

NeuNetSについては以下のQiita記事などご参照ください。

:newspaper: イメージと正解ラベルだけで高精度の画像認識DLモデル作成 - Watsonの最新機能NeuNetSのご紹介
:newspaper: NeuNetSでニューラルネットワークモデルを自動生成してみた

:pencil: (2019/12月追記) ブログ記事「NeuNetS Merging into AutoAI in Watson Studio」によりますと、2020年にNeuNetsはAutoAIとマージされ一つの機能になるそうです。記事によるとニューラル・ネットワークを用いてテーブル形式のデータ予測や時系列分析、テキストマイニング、イメージ認識などユースケースが拡がるらしいのでお楽しみに!(ベータ募集も書いてありました)

Merging NeuNetS into AutoAI allows for the automation and enhancement of a new suite of neural network models, and it addresses much broader data science use cases, including tabular data prediction and classification, time-series forecasting, text mining, and image recognition.

:pencil: (2019/12追記) Pythonノートブックへの保存(beta)

2019/12月時点では絶賛クローズ・ベータ中ですが、AutoAIで生成したパイプラインをJupyter Notebookに保存できるようになりました。これによりデータサイエンティストの方はブラックボックスになりがちなAutoAIの中の動きをより深く理解できますし、カスタマイズや処理のバッチ化なども実現できるようになります。

image
上記のようにパイプラインを選んで右クリックーSave asで簡単にNotebookに処理内容をエクスポートできます。

image
基本的にNotebookはWatson Studio上のJupyter Notebookになりますので、このまま実行も可能です。

:newspaper: Saving an AutoAI generated notebook

[おまけ] 著名データセットで実際にやってみた

小規模なものですが、機械学習でよく出てくる著名データセットにAutoAIを適用してみました。以下が結果ですが、なんもしないのに結構いい線行ってるのがおわかりいただけるかと思います。(使ったファイルはGithubに置いておきますのでご自由にどうぞ~)
ちなみに評価結果の見方は下記になります。

  • 2クラス分類=ROC AUCは1に近いほど性能良い
  • 複数クラス分類=Accuracyも1に近いほど性能良い
  • 回帰=RMSEは0に近いほど性能が良い(&異なるデータ間での比較は無意味)
# データの種類 CSV 大元 行数 カラム数 方式 指標 実行時間 評価結果
1 乳がんデータ Cancer sklearn 569 30 2クラス分類 ROC AUC 2min 0.992
2 ボストン市の住宅価格データ House sklearn 506 14 回帰 RMSE 2min 2.991
3 アヤメの品種データ Iris sklearn 150 4 複数クラス分類 Accuracy 85s 0.978
4 タイタニックの生存者データ Titanic kaggle 891 12 2クラス分類 ROC AUC 115s 0.86
5 ワインの品質データ Wine sklearn 178 13 複数クラス分類 Accuracy 2min 0.975
6 ローン審査のデータ Credit SPSS Modeler 2465 6 2クラス分類 ROC AUC 6min 0.89
7 顧客離反のデータ Churn IBM 1799 19 2クラス分類 ROC AUC 6min 0.997

最後に

ってことで、専門家でなくても超簡単にモデルが作れてしまうので、皆様もぜひお試しください!なお「やってみた」記事はこちらです。
以上です。

:clipboard: 改定履歴

当記事は今後も気付きがあったら追加しようと思うので改定履歴をつけます。初版から記述を追加/変更した箇所には:pencil:マークを付けておきますね。

日付 変更内容
1.0 2019-06-05 初版公開
1.1 2019-07-22 AutoAIのWebinarの紹介を追加
1.2 2019-08-06 Model Builderが無くなった点を追記
1.3 2019-12-02 Relationship MapやNotebook Exportを追記
1.4 2020-04-09 CSVデータの最大が100MB->1GBに拡張された点を追記
1.5 2020-05-26 ドキュメント上、Watson Studioが内部的に使う手法の記述が変わってたので最新を反映
  1. NeuNetsは出た時点ではOpenScaleの一機能でしたが、その後WatsonStudioの機能になったのでOpenScaleを買わなくても標準で使えます!

  2. 一般にFeatureEngineeringのアプローチは大きく3つあり、現時点のAutoAIの実装ではExploration(Cognito)は搭載済み、Prediction(LFE)は近々、Fusion(OneBM)は年内くらいにできれば、、とコメントで言ってました。

  3. 2020/3/13の機能拡張にて最大サイズが拡張されました。What'sNewをご確認ください。

26
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?