Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Cloud Next Extended 2019 ML Day
Search
Shuhei Fujiwara
June 04, 2019
4
1.1k
Google Cloud Next Extended 2019 ML Day
Shuhei Fujiwara
June 04, 2019
Tweet
Share
More Decks by Shuhei Fujiwara
See All by Shuhei Fujiwara
Model Building in Mathematical Programming #2
shuheif
0
46
Nesterov #2
shuheif
0
65
TensorFlow Docs Translation Proofreading
shuheif
0
810
Model Building in Mathematical Programming #1
shuheif
0
68
Nesterov
shuheif
2
140
tbf07-seat-optim.pdf
shuheif
1
9.4k
AdaNet
shuheif
1
370
TensorFlow Docs Translation JA
shuheif
1
920
TensorFlow DevSummit 2019 Recap
shuheif
0
710
Featured
See All Featured
Teambox: Starting and Learning
jrom
133
8.8k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
GitHub's CSS Performance
jonrohan
1030
460k
What's in a price? How to price your products and services
michaelherold
243
12k
It's Worth the Effort
3n
183
27k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
GraphQLとの向き合い方2022年版
quramy
43
13k
A Modern Web Designer's Workflow
chriscoyier
693
190k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
A Philosophy of Restraint
colly
203
16k
Transcript
今日は AdaNet の話をしたいだけ Google Cloud Next Extended 2019 ML Day
@shuhei_fujiwara 2019-06-04 1
自己紹介 藤原秀平 (FUJIWARA Shuhei) Twitter: @shuhei_fujiwara ▶ 株式会社メルペイ所属 ▶ TensorFlow
User Group Tokyo Organizer ▶ Google Developer Expert (Machine Learning) ▶ GCPUG Tokyo Staff ▶ 今年は Google Cloud Next 行ってません 2
とりあえず会場の雰囲気を知りたい Google Cloud Next 2019 ▶ 現地に行った人 ▶ 何かしら報告会に既に行った人 Google
Cloud Platform ▶ 普段使ってる人 3
目次 News ML APIs AI Platform AutoML AdaNet 4
News
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
ML APIs 何気に待望の機能っぽいものが色々追加されてて話題になってないけど 結構良い話では...? ▶ Vision API ▶ Object detection
▶ Natural Language API ▶ カスタム辞書が使用可能に (これ欲しかったよね?) ▶ 領収書や請求書の読み取り などなど 6
AI Platform (1/2) Next 以前からこっそり出てたものも含め色々整理された感じ ▶ Training ▶ 実は Docker
image が使えるようになってた ▶ Prediction ▶ 実は scikit-learn と XGBoost のモデルもホストできるようになってた ▶ Custom prediction routine でわりと何でもアリになった ▶ 若干 Cloud Run で良くね? という気がしてきたけど、どう住み分けるんだろ...? ▶ Notebook ▶ 実はあった 7
AI Platform (2/2) ▶ AI Hub ▶ TensorFlow Hub 用のモデル・
Kubeflow の pipeline、Jupyter Notebook とか 諸々共有できる ▶ TF Hub 用のモデル置き場ができたのはまあまあ嬉しい ▶ Publish できる条件が謎 (企業アカウントじゃないとだめ? ▶ Kubeflow ▶ Kubeflow on GKE をシュッと準備してくれるやつ ▶ Data Labeling ▶ Google がラベリングしてくれる謎サービス (誰か使ってみてくれ...! ▶ AutoML のデータアップロードする画面と統合されてることを期待したが そんなことはなかった 8
AutoML ▶ 何かたくさん出てきたね ▶ 僕の番が来る頃には全部語り尽くされてるんじゃないですかね...? 9
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
AdaNet
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
The Goal of AdaNet Feed forward network よりも一般的なネットワーク構成の中から良いものを探す ▶ 後ろの任意の層の任意のノードに対して辺を繋げる
▶ もちろん全てのパターンを調べ切るのは不可能 12
基本的なアイデア ▶ 最初は小さいネットワークで普通に学習 ▶ 赤い矢印が学習対象の weight この時点での loss (正則化項は省略) 1
m m ∑ i=1 Φ (1 − yif1(xi)) ▶ yi ∈ {−1, +1}: label, Φ(·): loss function ▶ f1(·): 1 反復目のモデルの出力 Input Output 13
基本的なアイデア ▶ 真の値と現時点でのモデルの output の差を 予測するようなネットワークを継ぎ足す 新しい subnetwork の出力を足し込む F(w,
u) = 1 m m ∑ i=1 Φ (1 − yif1(xi) − yiw · u(xi)) ▶ −yiw · u(xi): 赤い subnetwork の出力 Input Output 14
Subnetwork のくっつけ方 Subnetwork の候補 以下の 2 種類を試して良かった方をくっつける: ▶ 今のネットワークと同じ深さのもの ▶
今のネットワークより 1 段深いもの 多少はハイパーパラメータもある ▶ Subnetwork のノード数 ▶ 正則化周りの係数 ▶ etc... Input Output 15
Algorithm 1. 2 種類の subnetwork を作る ▶ 今と同じ深さのやつと 1 段深いやつ
2. それぞれくっつけて学習させてみる 3. より性能が良い方の subnetwork を採用する ▶ 性能は正則化なども込みの目的関数で測る ▶ 本当はこの部分に Rademacher complexity (の推定値) とかが隠れているので 結構重要 ▶ 改善しなかったらアルゴリズム終了 4. 1 へ戻る 16
汎化誤差の上界 (おまけ) Theorem 1, Lemma 1, Lemma2, Corollary 1 ▶
すごく雑な言い方をすると、データを増やせば 過学習が減ることを保証 (自明ではない) R(f) ≤ ^ RS,ρ(f) + hoge √ fuga #sample ▶ f: このアルゴリズムで探索対象になる (ニューラルネット) ▶ RS,ρ(f): 学習に使ったサンプル S に対する (マージン ρ での) 誤判別率 ▶ R(f): 母集団に対する誤判別率 17
Experiments with CIFAR-10 ▶ 普通のニューラルネットや Logistic Regression と比べて高精度 ▶ Subnetwork
のくっつけ方は工夫の余地があるので AdaNet 同士でも比較 ▶ AdaNet.R: L1 正則化を追加 ▶ AdaNet.P: 新しい subnetwork は前回加えたものにだけ接続 ▶ AdaNet.D: 前回加えたものとの接続に dropout を入れる 18
TensorFlow Implementation ▶ TensorFlow での実装 ▶ https://github.com/tensorflow/adanet ▶ 研究の実験用コードじゃなくてマジでちゃんと API
整えられたやつ ▶ とても嬉しい ▶ TensorFlow の Estimator API として作られている 19
AdaNet 所感 ▶ 論文ではきちんと汎化誤差の上界など理論的な面が議論されている ▶ 実装はマジでそのまま使えるやつが公開されてる ▶ AutoML Table みたいなサービスにも投入された
研究 ==> 実用化の流れが芸術点高い 20