AutoMLがすごいと聞いたので色々使って比べてみた

1. 経緯

最近ツイッターで「素人の俺がAutoMLでデータサイエンス無双な件」みたいなやつをよく見る気がしたので自分も無双してみることにしました。

2. AutoMLとは

図1.png
こういう感じで認識してます
もっと詳しい内容はこの辺りを読むと良いと思います。

3. 実施内容

クラウドサービスの提供元を中心に調べたところ
次のようなものが見つかりました。

AutoMLでは画像認識や自然言語処理なども取り扱い範囲に含みますが、
ツイッターで話題になっていたのがGoogle/AutoML Tablesだったことと、IBM/AutoAIを試してみたかったので今回は構造化(表形式)データを対象としました。
テストの種類としてはIBM/AutoAIに従って、2クラス分類、多クラス分類、回帰の三種類を実施することにしました。

3.1. 2クラス分類

ローン審査データセット
誰でもAIモデルが作れる! Watson Studioに新しく搭載された機械学習の自動化機能「AutoAI Experiment」をザクっとご紹介します

行数 特徴量数
2456 6

すでにAutoAIの紹介をされていた方がいたのでデータをお借りしました。
今回はローン審査についてのデータセットを利用したいと思います。
このデータセットは年齢やクレジットカード所持数の高低、収入の高低などからローンの可否を判定するものです。

3.2. 多クラス分類・回帰

FIFA選手データセット
FIFA 19 complete player dataset

行数 特徴量数
18207 89

サッカーゲーム、FIFAの選手データです。
元々ゲーム用のデータなので、各種能力が数値で表されています。
カラムの内容としては、身体能力、市場価値、評価、ポジション、AIの行動方針などがあります。
多クラス分類と回帰両方がテストできそうだったので選びました。

  • 多クラス分類
    • 23のポジションのうち、選手がどれに割り当てられているかを予測する。
  • 回帰
    • 選手の賃金がいくらに設定されているかを予測する

4. UX比較

4.1. Google/AutoML Tables

  • 良い点
    • 手法の中にDeepLearningが含まれている
    • データ処理~モデルトレーニングの一連の流れが分かりやすい
    • 統計学の用語がわからなくてもある程度モデルの評価ができる
  • 悪い点
    • データ形式の制約が多い
    • モデルの内部構造(採用した手法)が分からない

今回試した3つの中で最も"AIの民主化"を体現しているツールだと思います。
評価指数やデータ形式など、つまづきがちな箇所に丁寧なヘルプがあり、
機械学習に触れたことのない人でも意外とそれっぽい結果が出せるような作りになっている印象をうけました。
逆を言えばよくわからないまま使ってしまいそうで怖い感じもあります。

  • 分析ページのサンプル画像
    キャプチャ.PNG
    データの種類を自動判別してくれる他、欠損や固有値、各種統計情報を自動計算してくれます。
    また、特徴量を選択するとデータの分布もグラフ化してくれます。

  • 評価ページのサンプル画像1
    キャプチャ.PNG

  • 評価ページのサンプル画像2
    キャプチャ.PNG

図は2クラス分類の場合。
各種評価指標の他、特徴量の重要度もグラフ化してくれます。また、各指標にヘルプが振られており、容易に参照できます。

  • 試用期間における計算性能
    4 vCPU and 15 GiB RAM × 92台平行

  • 試用期間と同等の性能を確保する場合のトレーニング費用
    $19.32/時間
    (¥2,123 2019/11/6レート)

参考にした記事

公式ドキュメント

AutoML Tables のドキュメント

4.2. IBM/AutoAI

  • 良い点
    • データ形式の制約が非常に少ない
    • モデルが何をやっているのか理解しやすい
    • 学習済みモデルをnotebook形式で書き出しできる
  • 悪い点
    • 時系列分析がない
    • DeepLearningが別機能になっている

全体的に説明可能なAIを感じる作りになっていますが、
機械学習の知識を必要とする箇所が多く、誰でも扱えるツールというよりはデータサイエンティストの時間削減や提案の補助を行うツールという印象です。

  • トレーニング開始ページのサンプル画像 キャプチャ.PNG ほとんど設定の必要がなく、データを入れてすぐにはじめることができます。
  • トレーニング中のページのサンプル画像
    キャプチャ.PNG
    機械学習のパイプラインにおける現在の進行度合いが図示されます。
    また、モデル選択、ハイパーパラメータの最適化、特徴量エンジニアリング、ハイパーパラメータの再調整の各段階でトレーニング結果を確認することができます。

  • モデル評価ページのサンプル画像
    キャプチャ.PNG
    図は2クラス分類の場合。
    各種評価指標のグラフ化や混同行列の表示に加え、特徴量エンジニアリングで作られた新しい特徴量を表示してくれます。

  • 試用期間における計算性能
    8 vCPU and 32 GB RAM

  • 試用期間と同等の性能を確保する場合のトレーニング費用
    ¥1,120.0/時間

参考にした記事

公式ドキュメント

AutoAI Overview

4.3. Microsoft/AutomatedML

  • 良い点
    • 評価指標や予測結果を自動でグラフ化してくれる
    • 分類機能ではDeepLearningを利用可能
    • 評価指標の種類が多い
    • 学習済みモデルをダウンロードすることができる
  • 悪い点
    • firefoxやsafariでの挙動が非常に安定しない
    • トレーニング時間が長期化しがち

他2つに比べて表示してくれる情報の量が多く、機能的にも非常に充実していました。
一方、UIが分かりづらく、サイトへの接続も不安定であったりと、使い勝手はあまり良くない印象です。元々はCLIで提供しており、GUIはまだベータ版とのことなので今後改善するかもしれません。

  • タスクタイプ設定ページのサンプル画像
    キャプチャ.PNG
    分類・回帰に加えて時系列データを扱うことができます。
    また、分類問題ではディープラーニングを扱う事が可能です。
    (詳細なドキュメントは見つかりませんでした。
    テキストデータが含まれている時に有効ですみたいなヘルプが有ったので、Word2Vec的なことをやってるんでしょうか?)

  • 多クラス分類でのグラフ化機能のサンプル画像
    キャプチャ.PNG

  • 回帰分析でのグラフ化機能のサンプル画像2
    スクリーンショット 2019-11-05 14.46.28.png

特に設定しなくても自動でグラフを生成してくれます。
また、他二つではあまり対応できていなかった多クラス分類や回帰分析のグラフ表示も実施してくれます。

  • 試用期間における計算性能
    4 vCPU and 28 GiB RAM

  • 試用期間と同等の性能を確保する場合のトレーニング費用
    ¥72.912/時間

参考にした記事

公式ドキュメント

自動化された機械学習とは
自動化機械学習の結果の概要

5. モデル構築能力比較

5.1. 2クラス分類

ツール 正解率(%) 適合率(%) 再現率(%) ROC AUC トレーニング時間(min) トレーニング費用(¥)
Google/AutoML Tables 76.7 86.1 75.6 0.850 40 1,415.5
IBM/AutoAI 80.4 83.4 83.1 0.888 5 92
Microsoft/AutomatedML 80.5 80.5 80.5 0.880 20.0 24.3

カテゴリデータが多く、サンプル自体の量が少ないこともあってDeepLearningを用いない方が時間対効率は良くなるようです。
余談ですが、Microsoft/AutomatedAIでDeepLearningを有効にした場合ROC AUCは0.80程度に低下しました。

5.2. 多クラス分類

ツール 正解率(%) 適合率(%) 再現率(%) ROC AUC トレーニング時間(h) トレーニング費用(¥)
Google/AutoML Tables --- 77.4 45.6 0.972 5.53 11,655
IBM/AutoAI 58.5 58.5 58.5 --- 17.0 19,040
Microsoft/AutomatedML 49.3 53.5 49.4 0.918 55.8(打ち切り) 4,068

予測対象となるクラスが多いこともあって、DeepLearningを使わないとトレーニング時間が長期化してしまいました。

5.3. 回帰

ツール RMSE R2 トレーニング時間(h) トレーニング費用(¥)
Google/AutoML Tables 2.032 0.996 3.88 8,238
IBM/AutoAI 8.269 0.862 2.05 2,296
Microsoft/AutomatedML 13.057 0.647 12.0 874

Google/AutoML Tablesの結果が良い、というか良すぎる気がします。
ドキュメントを見る限りだと交差検証とかはしていない印象を受けるので、過学習気味になってしまっている可能性は考えた方がよさそうです。

※補足:指標の説明

評価指標 説明
正解率 全データの内、予測値と標本値が一致したものの割合
100%に近い程良い
適合率 正値を予測したデータの内、標本値でも正値だったデータの割合
100%に近いほど良い
再現率 標本値が正値になっているデータの内、正値を予測できたデータの割合
100%に近いほど良い
ROC AUC 間違いの割合vs正解の割合で書かれたグラフ下の面積
1に近いほど良い
RMSE 予測値と標本値の誤差を二乗して平均を出し、平方根を取ったもの
0に近いほど良い
R2 予測値と標本値の誤差の二乗和を標本値と平均の差の二乗和で割って1から引いたもの
1に近いほど良い

6. まとめ

  • Google/AutoML Tables
    • データがたくさんあるなら効果は高い、そうでなければ過学習に注意が必要
    • "誰でも使える感"が高い
  • IBM/AutoAI
    • データが少なめでも良い精度が出せる
    • モデルの内部構造が分かりやすい
  • Microsoft/AutomatedML
    • 得られる情報の量が多い
    • GUIが不安定

7. 感想

雑にやってこの精度が出るなら単に精度が出せるだけだと今後やってけないんだろうなぁ、と感じました。
とはいえ課題設定とかデータの用意までやってくれるものでもないですし、そういった方向性で勉強していくのが大事なのかなと思います。

8. 今後の更新予定(11/12予定)

  • 人の手による精度が既知のデータセットを試して比較する ex) 家の価格予測
  • Sony/PredictionOneを試す

おまけ 今回試さなかったツール

Datarobot

個人で使う方法がいまいちわからなかったので。

AWS/MachineLearning

サービス終了してたので(Sagemakerはなんか違う感じだった)

Sony/PredictionOne

存在に気付いたのが記事完成の直前だったため。
SONYのAutoMLサービス「PredictionOne」を使ってみた
他の方が実施された記事があるのでこちらを見ると良いと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away