Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AutoML Tables で コードを書かずに機械学習入門 / Introduction t...

kutakutat
November 25, 2021

AutoML Tables で コードを書かずに機械学習入門 / Introduction to Machine Learning without Writing Code with AutoML Tables

AutoML Tables で コードを書かずに機械学習入門

kutakutat

November 25, 2021
Tweet

More Decks by kutakutat

Other Decks in Technology

Transcript

  1. 自己紹介
 • 名前
 ◦ 吉田 拓 (Taku Yoshida)
 • 所属


    ◦ FrontierTech代表
 • 普段やってること
 ◦ Webアプリ開発、プロダクトマネジメント 
 ◦ 機械学習は基礎の基礎だけ知ってるくらい 
 • 趣味
 ◦ コーヒー☕
 最近は扉の解施錠、NFCカードなどのハードウェアにも進出中 

  2. Agenda
 1. AutoML の背景
 2. AutoML Tables の紹介
 3. AutoML

    Tables のデモンストレーション
 4. まとめ

  3. 機械学習のプロセスの課題
 • 様々なモデルを組み合わせて試行錯誤するハードルが高い
 ◦ モデルのアンサンブルが主流になりつつあり、より高度な機械学習の知識が必要 
 ◦ 機械学習エンジニア、データサイエンティストはひっぱりだこ。。 
 •

    何度もプロセスを回す手間が大きい
 ◦ 簡単にプロセスを回せないと検証するためのコストが高くなってしまう 
 ◦ プロセスの自動化には時間がかかる。。 
 ✅ 最低限の機械学習の知識でモデルの試行錯誤したい 
 ✅ 試行錯誤を高速で行いたい 
 ✅ 簡単にプロセス自動化したい 

  4. AutoML とは
 AutoML(Automated Machine Learning:自動化された機械学習) 
 ※ サービス名称ではなく一般的な言葉
 → 機械学習を実世界の問題に適用するタスクを自動化するプロセス


    
 出典 : https://en.wikipedia.org/wiki/Automated_machine_learning 
 
 自動化するプロセスの例
 データの取り込み、特徴量エンジニアリング、モデルの選択 、ハイパーパラメータ− 調整、学習や推論のインフラ構築 など

  5. AutoML に関するサービス例
 • Google : Cloud AutoML など
 • Amazon

    : AutoGluon など
 • DataRobot : DataRobot AI Cloud

  6. Google の ML 関連サービスと CloudAutoML の位置付け
 出典 : https://cloud.google.com/blog/ja/products/ai-machine-learning/practical-machine-learni ng-with-automl-series-1

    
 
 Cloud AutoML の位置付け 
 ゼロからモデルを作るのは大変だ けど、事前学習モデルでは対応で きない場合

  7. Cloud AutoML
 GCP の AutoML に関するプロダクト群の総称
 プロダクト群
 • 表形式データ :

    AutoML Tables 
 • 画像: AutoML Vision 
 • 動画 : AutoML Video Intelligence 
 • テキスト: AutoML Natural Language 
 • テキスト(翻訳) : AutoML Translation 
 • 統合プラットフォーム : Vertex AI 

  8. AutoML Tables とは
 • (ベータ版) 表形式の構造化データを扱う AutoML
 • 自動化対象
 ◦

    特徴量エンジニアリング 、モデルの選択、ハイパーパラメータの調整、モデルの 評価、学習から推論のインフラ構築など 
 出典 : https://developers-jp.googleblog.com/2019/06/google-automl-kaggledays-2.html 
 

  9. AutoML Tables の実例
 • Kaggle Days SF Hackathon 2位
 ◦

    自動車部品の製造における欠陥を予測する課題 
 ◦ 最大 3 名のチーム 74 組が 8 時間半をかけて競うコンペ 
 出典 : https://developers-jp.googleblog.com/2019/06/google-automl-kaggledays-2.html 
 

  10. AutoML Tables のワーフフロー
 1. データの収集、準備 : データを収集し正しい形式であることを、インポートの前後に確認 
 2. トレーニング:

    パラメータを設定してモデルを構築 
 3. 評価: モデルの評価指標を確認 
 4. デプロイと使用: モデルを使用できるようにデプロイ、エクスポート 

  11. AutoML Tables のワーフフロー
 1. データの収集、準備 : データを収集し正しい形式であることを、インポートの前後に確認 
 2. トレーニング:

    パラメータを設定してモデルを構築 
 3. 評価: モデルの評価指標を確認 
 4. デプロイと使用: モデルを利用できるようにデプロイ、 エクスポート

  12. トレーニングデータの要件
 トレーニング データは次の要件に従う必要があります。 
 • 100 GB 以下
 • 予測する値(ターゲット列)が含まれている

    
 • 列数は 2~1,000 列
 • 行数は 1,000~200,000,000 行 
 ◦ 1,000 行では高品質のモデルをトレーニングするために十分でない場合もある 
 ◦ 推奨される最低行数の目安 
 ▪ 分類問題 : 特徴数 × 50 
 ▪ 回帰問題: 特徴数 × 200 
 ベストプラクティスは公式の こちら

  13. AutoML Tables のワーフフロー
 1. データの収集、準備 : データを収集し正しい形式であることを、インポートの前後に確認 
 2. トレーニング:

    パラメータを設定してモデルを構築 
 3. 評価: モデルの評価指標を確認 
 4. デプロイと使用: モデルを利用できるようにデプロイ、エクスポート 

  14. モデルのトレーニングの設定
 主な設定項目
 • トレーニング予算
 ◦ 1~72 ノード時間
 • 利用する特徴量の選択
 ◦

    デフォルトは無効な値が含まれる列以外すべて 
 • 最適化の目標
 ◦ デフォルトは問題に合わせて自動で選択 
 • 早期停止
 ◦ 過学習になる前に学習を停止。デフォルト ON 
 • データ分割の設定
 ◦ デフォルト (Training)80% : (Dev)10% : (Test)10% 

  15. モデルの自動選択
 • モデルの自動選択、組み合わせ
 ◦ 1つ以上のモデルを自動で組み合わせて最終的なモデルを作成 
 • モデルは以下のモデルを利用
 ◦ AdaNet

    モデル
 ◦ AdaNet AutoEnsemble モデル 
 ◦ DNN 線形モデル
 ◦ 勾配ブースト ディシジョン ツリー モデル 
 ◦ フィードフォワード ニューラル ネットワーク モデル 
 例) モデル構造のログ 

  16. データの自動分割
 交差検証自動でを行います 
 通常は (Training)80% : (Dev)10% : (Test)10% にデータ分割

    
 別のサンプリングがしたい場合は データ分割列を元データに追加した上で、個々の行(サンプル)を TRAIN / VALIDATE / TEST / UNASSIGNED のいずれかに手動でランダムにラベリングして割り振る 
 時系列の場合はランダムサンプリングではなく、時系列でカットする 
 出典 : https://cloud.google.com/blog/ja/products/ai-machine-learning/practical-machine-learning-with-automl-series-4
  17. AutoML Tables のワーフフロー
 1. データの収集、準備 : データを収集し正しい形式であることを、インポートの前後に確認 
 2. トレーニング:

    パラメータを設定してモデルを構築 
 3. 評価: モデルの評価指標を確認 
 4. デプロイと使用: モデルを利用できるようにデプロイ、エクスポート 

  18. AutoML Tables のワーフフロー
 1. データの収集、準備 : データを収集し正しい形式であることを、インポートの前後に確認 
 2. トレーニング:

    パラメータを設定してモデルを構築 
 3. 評価: モデルの評価指標を確認 
 4. デプロイと使用: モデルを使用できるようにデプロイ、 エクスポート

  19. モデルの利用
 • バッチ予測
 ◦ 新しいデータをアップロードしてみて推論 
 ◦ リアルタイム性を求められずまとまったデータの推論を行いたいときに有用 
 •

    オンライン予測
 ◦ REST リクエストを送信できるようにモデルがデプロイして推論 
 ◦ リアルタイムに推論を返したい場合に有用 
 • モデルのエクスポート
 ◦ TensorFlow パッケージをダウンロード。Docker 上などで動かして推論 
 ◦ 手元のローカル環境や、アプリに組み込んで使用したい場合に有用 

  20. デモで扱うデータ
 AutoML Tables 公式のクイックスタート
 • データ
 ◦ ポルトガルの銀行のダイレクトマーケティングキャンペーン に関するデータ
 ◦

    顧客の口座等の情報と、商品(銀行の定期預金)が契約されたか否かのデータ 4万件 
 • 課題
 ◦ 何度も DM して意思確認するのは骨が折れる 
 • 解決策
 ◦ 事前に申し込みそうかどうか、事前にあたりを付けたい 
 
 👉「銀行の定期預金をしそうか/しそうでないか」の教師あり分類問題

  21. データの概観
 • ターゲット列 : Deposit (定期預金)
 • 2 種類のカテゴリ変数
 ◦

    1 は悪い結果(預金が行われないこと) 
 ◦ 2 は良い結果(預金が行われること) 
 
 
 ︙

  22. 最適化指標 AUC ROC
 定期預金する
 定期預金しない
 しきい値
 真陽性
 偽陰性
 偽陽性
 真陰性


    実際に定期預金した人のうち 
 定期預金すると予測した人の割合 
 再現率(真陽性率) = 真陽性 / (真陽性 + 偽陰性) 
 実際に定期預金しない人のうち 
 定期預金すると予測した人の割合 
 偽陽性率 = 偽陽性 / (真陰性 + 偽陽性) 
 出典 : https://www.cresco.co.jp/blog/entry/15337/ 
 
 ROC (Receiver Operating Characteristic)曲線の
 AUC (Area Under Curve)

  23. トレーニングデータの作成
 モデルの品質を高めるためにデータセットの準備時に気をつけること 
 • データの漏出を避ける( 予測を求める際には利用できない予測情報が含まれないように)
 • トレーニング/サービングスキューを避ける 
 •

    未来の情報を過去に混入させない 
 • 意図的に難読化・無作為化・匿名化されたデータを復元したものを含めない 
 • モデルの運用環境に存在しないデータを含めない 
 ︙
 ベストプラクティスは公式の こちら

  24. パフォーマンスが低いときは。。
 • スキーマを見直す
 a. すべての列の型が正しいこと 
 b. ID 列といった予測されない列をトレーニングから除外 


    • データを見直す
 a. null 値を許容しない列に 1 つでも値がないと、その行は無視されるので注意 
 b. データ内のエラーが多すぎないように 
 c. トレーニング データにできるだけ偏りがないように 
 • テスト データセットをエクスポートして調べる 
 • トレーニング データの量を増やす 
 • トレーニング時間を増やす