algonote

機械学習とか

AutoML ハンズオンまとめ #dllab

AutoML ハンズオンに参加しました. AzureでAutoML

f:id:hiromichinomata:20200124152337p:plain:w200

事前準備

チュートリアル:Python SDK で初めての ML 実験を作成するにしたがってAzure上でJupyter Notebookを動かせるようにしておきます。内部でAzureのCLIを使う必要があり、Jupyter Notebookで認証パスとコードが小さく出るのでそれはやる必要がある。

ハイパーパラメーター・チューニングのチュートリアルを終了するとAzure上で結果が見れ、各パラメーターの違いが見れます。 f:id:hiromichinomata:20200124131922p:plain

Azure Machine Learning Studioは先週日本語化されたとか

Azure MLの仕様

Azure MLにはAutomated Machine LearningとHyperdriveの2機能が存在

  • Automated Machine Learning

テーブルデータのみ対応. NIPS 2018で発表されたベイズ最適化と協調フィルターを使った手法をベースにしており、D〇〇aRobotと比べると賢い(との主張)

プライバシー保護とONNX変換もサポートしている.

f:id:hiromichinomata:20200124152932p:plain:w400

分類、回帰、時系列のモードがある. Previewのdeep learningは英語onlyでBERTが動くとのこと

  • パラメータチューニング Hyperdrive

テーブルデータに限らない

モデル解釈について

モデル解釈にはいろんな手法が存在しているが、そのインターフェイスはバラバラ. Interpret-Communityが各モデル解釈を統合されたAPIで提供しており、Azure Machine Learningでも使うことができる

モデルの解釈には

  • グローバルな解釈: とある特徴量がきいているかどうか
  • ローカルな解釈: とあるひとつの予測の根拠

の2種類がある.

f:id:hiromichinomata:20200124154817p:plain

モデル解釈UIはこんな感じ

本編

AzureのAutoMLには

  • GUIから学習する方法
  • コードベースで学習させる方法

の2種類がある.

コードベースのほうが細かくパラメータがチューニングでき例えばGUIだとアンサンブルを抜くことができないとか. ライブラリは2週間に一度ver upされるそうです

Azureのデータフレームは独自形式のためpandasで使うためにはto_pandas_dataframeする必要がある. その他Sparkもサポートしているとのこと。

計算自体はdocker imageを使用しているためオンプレで実行可能とのこと. おもしろいですね。

f:id:hiromichinomata:20200124153216p:plain 内部ではXGBoostやLightGBM, RandomForestなどを実行しているみたいです

また、defaultの挙動だと

  • 不均衡データ: 1:20までサポート
  • 欠損値: 平均値で埋められる
  • カーディナリティーが高いデータ: 使えない

その他

  • 低優先度インスタンスだと8割引. データセンターの空きリソースを使うためシャットダウンされますが. USなど大きいデータセンターだとシャットダウンされにくいとか
  • Azure MLとは別の枠組みでMicrosoft ResearchがNeural Network Intelligenceを公開しており、各種アルゴリズムを試せる

所感

モデル解釈の可視化機能が豊富で、ローカルでも実行可能なのは魅力的ですね。単なるscikit-learnでも使えるとか

一方、AutoMLに前処理をまかせるとfeature名が機械的に作られ、この特徴が重要と言われても何を表してるの??ということもあるようです。

ハンズオン資料 github.com