Google Cloud Next Extended 2019 ML Day

D6bf88af4f3c68f688d433ad0c3c1345?s=47 Shuhei Fujiwara
June 04, 2019
880

Google Cloud Next Extended 2019 ML Day

D6bf88af4f3c68f688d433ad0c3c1345?s=128

Shuhei Fujiwara

June 04, 2019
Tweet

Transcript

  1. 今日は AdaNet の話をしたいだけ Google Cloud Next Extended 2019 ML Day

    @shuhei_fujiwara 2019-06-04 1
  2. 自己紹介 藤原秀平 (FUJIWARA Shuhei) Twitter: @shuhei_fujiwara ▶ 株式会社メルペイ所属 ▶ TensorFlow

    User Group Tokyo Organizer ▶ Google Developer Expert (Machine Learning) ▶ GCPUG Tokyo Staff ▶ 今年は Google Cloud Next 行ってません 2
  3. とりあえず会場の雰囲気を知りたい Google Cloud Next 2019 ▶ 現地に行った人 ▶ 何かしら報告会に既に行った人 Google

    Cloud Platform ▶ 普段使ってる人 3
  4. 目次 News ML APIs AI Platform AutoML AdaNet 4

  5. News

  6. News 既にあちこちで語り尽くされていますが... ▶ Rename: Cloud ML Engine ==> AI Platform

    ▶ 機能と新サービスの追加 ▶ ML APIs にいくつかの機能追加 ▶ AutoML の機能と新サービス追加 ▶ 細かいことはだいたいここでわかる ▶ https://cloud-ja.googleblog.com/2019/04/100-plus-announcements-from- google-cloud-next19.html Next 前後に出た重要度高そう (主観) なところだけ軽くおさらい 5
  7. ML APIs 何気に待望の機能っぽいものが色々追加されてて話題になってないけど 結構良い話では...? ▶ Vision API ▶ Object detection

    ▶ Natural Language API ▶ カスタム辞書が使用可能に (これ欲しかったよね?) ▶ 領収書や請求書の読み取り などなど 6
  8. AI Platform (1/2) Next 以前からこっそり出てたものも含め色々整理された感じ ▶ Training ▶ 実は Docker

    image が使えるようになってた ▶ Prediction ▶ 実は scikit-learn と XGBoost のモデルもホストできるようになってた ▶ Custom prediction routine でわりと何でもアリになった ▶ 若干 Cloud Run で良くね? という気がしてきたけど、どう住み分けるんだろ...? ▶ Notebook ▶ 実はあった 7
  9. AI Platform (2/2) ▶ AI Hub ▶ TensorFlow Hub 用のモデル・

    Kubeflow の pipeline、Jupyter Notebook とか 諸々共有できる ▶ TF Hub 用のモデル置き場ができたのはまあまあ嬉しい ▶ Publish できる条件が謎 (企業アカウントじゃないとだめ? ▶ Kubeflow ▶ Kubeflow on GKE をシュッと準備してくれるやつ ▶ Data Labeling ▶ Google がラベリングしてくれる謎サービス (誰か使ってみてくれ...! ▶ AutoML のデータアップロードする画面と統合されてることを期待したが そんなことはなかった 8
  10. AutoML ▶ 何かたくさん出てきたね ▶ 僕の番が来る頃には全部語り尽くされてるんじゃないですかね...? 9

  11. AutoML Table ▶ テーブルデータを渡すと学習から API の生成までやっておいてくれる ▶ というのは皆聞き飽きてそう 裏で動いてるアルゴリズム気になりません...? https://cloud.google.com/automl-tables/docs/features

    ▶ Linear <== とりあえず最初にやるやつ ▶ Feedforward deep neural network <== いつもの ▶ Gradient Boosted Decision Tree <== いつもの ▶ Ensembles of various model architectures <== 面倒臭いけどたまにやる ▶ AdaNet <== 知らない子ですね...? 10
  12. AdaNet

  13. AdaNet AutoML Table の裏で使われている (という噂の) 手法 ▶ Google AI Blog:

    ▶ https://ai.googleblog.com/2018/10/introducing-adanet-fast-and-flexible.html ▶ ICML 2017 ▶ http://proceedings.mlr.press/v70/cortes17a.html ▶ TensorFlow implementation ▶ https://github.com/tensorflow/adanet 11
  14. The Goal of AdaNet Feed forward network よりも一般的なネットワーク構成の中から良いものを探す ▶ 後ろの任意の層の任意のノードに対して辺を繋げる

    ▶ もちろん全てのパターンを調べ切るのは不可能 12
  15. 基本的なアイデア ▶ 最初は小さいネットワークで普通に学習 ▶ 赤い矢印が学習対象の weight この時点での loss (正則化項は省略) 1

    m m ∑ i=1 Φ (1 − yif1(xi)) ▶ yi ∈ {−1, +1}: label, Φ(·): loss function ▶ f1(·): 1 反復目のモデルの出力 Input Output 13
  16. 基本的なアイデア ▶ 真の値と現時点でのモデルの output の差を 予測するようなネットワークを継ぎ足す 新しい subnetwork の出力を足し込む F(w,

    u) = 1 m m ∑ i=1 Φ (1 − yif1(xi) − yiw · u(xi)) ▶ −yiw · u(xi): 赤い subnetwork の出力 Input Output 14
  17. Subnetwork のくっつけ方 Subnetwork の候補 以下の 2 種類を試して良かった方をくっつける: ▶ 今のネットワークと同じ深さのもの ▶

    今のネットワークより 1 段深いもの 多少はハイパーパラメータもある ▶ Subnetwork のノード数 ▶ 正則化周りの係数 ▶ etc... Input Output 15
  18. Algorithm 1. 2 種類の subnetwork を作る ▶ 今と同じ深さのやつと 1 段深いやつ

    2. それぞれくっつけて学習させてみる 3. より性能が良い方の subnetwork を採用する ▶ 性能は正則化なども込みの目的関数で測る ▶ 本当はこの部分に Rademacher complexity (の推定値) とかが隠れているので 結構重要 ▶ 改善しなかったらアルゴリズム終了 4. 1 へ戻る 16
  19. 汎化誤差の上界 (おまけ) Theorem 1, Lemma 1, Lemma2, Corollary 1 ▶

    すごく雑な言い方をすると、データを増やせば 過学習が減ることを保証 (自明ではない) R(f) ≤ ^ RS,ρ(f) + hoge √ fuga #sample ▶ f: このアルゴリズムで探索対象になる (ニューラルネット) ▶ RS,ρ(f): 学習に使ったサンプル S に対する (マージン ρ での) 誤判別率 ▶ R(f): 母集団に対する誤判別率 17
  20. Experiments with CIFAR-10 ▶ 普通のニューラルネットや Logistic Regression と比べて高精度 ▶ Subnetwork

    のくっつけ方は工夫の余地があるので AdaNet 同士でも比較 ▶ AdaNet.R: L1 正則化を追加 ▶ AdaNet.P: 新しい subnetwork は前回加えたものにだけ接続 ▶ AdaNet.D: 前回加えたものとの接続に dropout を入れる 18
  21. TensorFlow Implementation ▶ TensorFlow での実装 ▶ https://github.com/tensorflow/adanet ▶ 研究の実験用コードじゃなくてマジでちゃんと API

    整えられたやつ ▶ とても嬉しい ▶ TensorFlow の Estimator API として作られている 19
  22. AdaNet 所感 ▶ 論文ではきちんと汎化誤差の上界など理論的な面が議論されている ▶ 実装はマジでそのまま使えるやつが公開されてる ▶ AutoML Table みたいなサービスにも投入された

    研究 ==> 実用化の流れが芸術点高い 20