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
AdaNet
Search
Shuhei Fujiwara
June 26, 2019
Research
1
370
AdaNet
Shuhei Fujiwara
June 26, 2019
Tweet
Share
More Decks by Shuhei Fujiwara
See All by Shuhei Fujiwara
数理最適化を知ろう
shuheif
2
1.1k
Model Building in Mathematical Programming #2
shuheif
0
51
Nesterov #2
shuheif
0
66
TensorFlow Docs Translation Proofreading
shuheif
0
830
Model Building in Mathematical Programming #1
shuheif
0
76
Nesterov
shuheif
2
150
tbf07-seat-optim.pdf
shuheif
1
9.5k
Google Cloud Next Extended 2019 ML Day
shuheif
4
1.1k
TensorFlow Docs Translation JA
shuheif
1
940
Other Decks in Research
See All in Research
メールからの名刺情報抽出におけるLLM活用 / Use of LLM in extracting business card information from e-mails
sansan_randd
2
420
Gemini と Looker で営業DX をドライブする / Driving Sales DX with Gemini and Looker
sansan_randd
0
120
Retrieval of Hurricane Rain Rate From SAR Images Based on Artificial Neural Network
satai
3
140
2038年問題が思ったよりヤバい。検出ツールを作って脅威性評価してみた論文 | Kansai Open Forum 2024
ran350
8
3.8k
AIトップカンファレンスからみるData-Centric AIの研究動向 / Research Trends in Data-Centric AI: Insights from Top AI Conferences
tsurubee
3
1.6k
「熊本県内バス・電車無料デー」の振り返りとその後の展開@土木計画学SS:成功失敗事例に学ぶ公共交通運賃設定
trafficbrain
0
210
20241115都市交通決起集会 趣旨説明・熊本事例紹介
trafficbrain
0
1k
論文紹介: COSMO: A Large-Scale E-commerce Common Sense Knowledge Generation and Serving System at Amazon (SIGMOD 2024)
ynakano
1
390
IM2024
mamoruk
0
230
Weekly AI Agents News!
masatoto
31
53k
Human-Informed Machine Learning Models and Interactions
hiromu1996
2
570
CoRL2024サーベイ
rpc
1
1.6k
Featured
See All Featured
RailsConf 2023
tenderlove
29
1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
A designer walks into a library…
pauljervisheath
205
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Bash Introduction
62gerente
611
210k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
9
490
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Unsuck your backbone
ammeep
669
57k
We Have a Design System, Now What?
morganepeng
51
7.4k
Statistics for Hackers
jakevdp
797
220k
Transcript
論文紹介 AdaNet: Adaptive Structural Learning of Artificial Neural Networks @shuhei_fujiwara
2019-06-26 1
What’s AdaNet? ▶ ICML 2017 ▶ http://proceedings.mlr.press/v70/cortes17a.html ▶ Google AI
Blog: ▶ https://ai.googleblog.com/2018/10/introducing-adanet-fast-and-flexible.html ▶ AutoML Table の裏で使われている (という噂の) 手法 ▶ https://cloud.google.com/automl-tables/docs/features ▶ TensorFlow implementation ▶ https://github.com/tensorflow/adanet 2
Basic Idea of AdaNet
The Goal of AdaNet Feed forward network よりも一般的なネットワーク構成の中から良いものを探す ▶ 後ろの任意の層の任意のノードに対して辺を繋げる
▶ 実際には汎化誤差の上界を保証するためにもう少し制約を入れる 3
Basic Idea ▶ 最初は小さいネットワークで普通に学習 この時点での目的関数 (正則化項は省略) 1 m m ∑
i=1 Φ (1 − yif1(xi)) ▶ yi ∈ {−1, +1}: label, Φ(·): loss function ▶ f1(·): 1 反復目のモデルの出力 ▶ 汎化誤差の上界を保証するには 最後の層への重みに L1 正則化が必要 Input Output 4
Basic Idea ▶ 真の値と現時点でのモデルの output の差を 予測するようなネットワークを継ぎ足す 新しい subnetwork の出力を足し込む
F(w, u) = 1 m m ∑ i=1 Φ (1 − yif1(xi) − yiw · u(xi)) ▶ −yiw · u(xi): 赤い subnetwork の出力 Input Output 5
How to Add Subnetwork Subnetwork の候補 以下の 2 種類を試して良かった方をくっつける: ▶
以下の 2 種類を試して良かった方を使う ▶ 今のネットワークと同じ深さのもの ▶ 今のネットワークより 1 段深いもの ▶ Subnetwork の制約 ▶ 1 つ前の層としか結合しない (汎化誤差の上界を保証するのに必要) Input Output 6
Algorithm 1. 2 種類の subnetwork を作る ▶ 今と同じ深さのやつと 1 段深いやつ
2. それぞれくっつけて学習させてみる 3. より性能が良い方の subnetwork を採用する ▶ 性能は正則化なども込みの目的関数で測る ▶ 本当はこの部分に Rademacher complexity (の推定値) とかが隠れているので 結構重要 ▶ 改善しなかったらアルゴリズム終了 4. 1 へ戻る 7
Generalization Bound
汎化誤差の上界に関する議論の定石 手持ちのサンプルに対する誤判別率を使って持っていない母集団に対する 誤判別率を評価したい ▶ S = ((x1, y1), . .
. , (xm, ym)): 持っているサンプル ▶ R(f) = E(x,y)∼D [ 1yf(x)≤0 ] : 母集団に対する誤判別率の期待値 ▶ ^ RS,ρ(f) = 1 m ∑ m i=1 1yif(xi)≤ρ : 持っているサンプル集合 S に対する誤判別率 ▶ マージン ρ だけ余裕を持って判別させるのがミソ R(f) ≤ ^ RS,ρ(f)+「十分サンプル数を大きくすれば定数に近付く何か」 という形がゴール 8
Formal Formulation 仮説集合 (アルゴリズムで探索対象となる関数の集合) を定義 今回はノードや層ごとに分けて定義するところが少し特徴的 入力から最初の層への仮説集合 H1 = {
x → u · Ψ(x) : u ∈ Rn0 , ∥u∥p ≤ Λ1,0 } ▶ Ψ(·): 入力データからベクトルへの写像 (たとえば文章と BoW) ▶ h1,j ∈ H1 : x ∈ X から 1 層目のノード j に渡る値への写像 9
Formal Formulation 2 層目以降の (k 層目の各ノードを構成する) 仮説集合 Hk = {
x → k−1 ∑ s=1 us · (φs ◦ hs)(x) : us ∈ Rns , ∥us∥p ≤ Λ1,0, hk,s ∈ Hs } ▶ hs : ネットワークの s 層目 ▶ φ: 活性化関数 ▶ u: s 層目全ノードから k 層目のある 1 ノードへ繋がる重み 10
Rademacher Complexity 汎化誤差の上界を議論するための道具で、仮説 (関数) 集合の複雑さの指標 ^ RS(G) = 1 m
Eσ [ sup h∈G m ∑ i=1 σih(xi) ] R(G) = ES∼D [ ^ RS(G) ] ▶ ランダムにラベルを付与したデータに対してどれくらい正しく判別できる 関数が仮説内に存在するか ▶ R が大きすぎる ==> 関数が複雑すぎて過学習する 11
Theorem 1 のお気持ち Theorem 1 R(f) ≤ ^ RS,ρ(f) +
4 ρ l ∑ k=1 ∥wk∥1Rm( ˜ Hk) + 2 ρ √ log l m + ˜ O ( 1 ρ √ log l m ) where ˜ Hk = Hk ∪ (−Hk) ▶ サンプル数 m を十分大きく取れば右の 2 項はゼロ ▶ Rademacher complexity と正則化項でおさえられる 12
Lemma 2 のお気持ち ▶ Rademacher complexity って具体的にどれくらいの大きさ? ▶ 仮説集合 Hk
をちょっと狭めると議論できる ▶ H∗ k : Hk に「1 つ前の層にしか接続しない」という制約を加えた版 Lemma 2 ^ RS(H∗ k ) ≤ r∞ΛkN 1 q k √ log(2n0) 2m ▶ r∞ = maxi∈[1,m] ∥Ψ(xi)∥∞ 13
Objective Function
Objective Function 汎化誤差の上界を踏まえて目的関数を次のように設定 F(w) = 1 m m ∑ i=1
Φ 1 − yi N ∑ j=1 wjhj + N ∑ j=1 Γj|wj| where Γj = λRm(Hkj ) + β, hj ∈ H∗ = ∪l k=1 ˜ H∗ k Rademacher complexity は lemma 2 の上界で代用する 14
Iterations 各反復では次のような部分問題を解けば良い Ft(w, u) = 1 m m ∑ i=1
Φ 1 − yi N ∑ j=1 wjhj − yiw · u(xi) + N ∑ j=1 Γu∥w∥1 ▶ u: Subnetwork の最後の層 ▶ 裏にそこまでのネットワークの重みが変数として隠れている ▶ w: Subnetwork の最後の層から出力への重み ▶ Γu : Subnetwork の深さで R が変わる (ので u が添字) 15
Numerical Experiments
Experiments with CIFAR-10 詳しくは論文参照 ▶ 普通のニューラルネットや Logistic Regression と比べて高精度 ▶
Subnetwork のくっつけ方は工夫の余地があるので AdaNet 同士でも比較 ▶ AdaNet.R: L1 正則化を追加 ▶ AdaNet.P: 新しい subnetwork は前回加えたものにだけ接続 ▶ AdaNet.D: 前回加えたものとの接続に dropout を入れる ▶ 疎結合にしても精度は落ちない 16
Implementation
TensorFlow Implementation ▶ TensorFlow での実装 ▶ https://github.com/tensorflow/adanet ▶ 研究の実験用コードじゃなくてマジでちゃんと API
整えられたやつ ▶ とても嬉しい ▶ TensorFlow の Estimator API として作られている 17
Conclusions
Conclusions ▶ 論文ではきちんと汎化誤差の上界など理論的な面が議論されている ▶ 実装はマジでそのまま使えるやつが公開されてる ▶ Estimator の流儀で書くだけなので、最悪地雷を踏んでも 別の手法にすぐ逃げられる ▶
AutoML Table みたいなサービスにも投入された 研究 ==> 実用化の流れが芸術点高い 18