Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Neural processes

183 views

Published on

2019/10/17の第4回生成モデル勉強会@京都における登壇内容

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Neural processes

  1. 1. 第4回⽣成モデル勉強会@京都 Neural Processes Marta Garnelo, Jonathan Schwarz, Dan Rosenbaum, Fabio Viola, Danilo J. Rezende, S. M. Ali Eslami, Yee Whye Teh April 1, 2019 2019/10/17 Masanori Sato@exawizards
  2. 2. はじめに 名前 佐藤 正規(さとう まさのり) 出⾝地 岩⼿県盛岡市 趣味等 バドミントン、カメラ、読書、マンガ、⾳楽鑑賞、ピア ノ、紅茶、猫etc. 【アルプス電気株式会社】 ダイレクトサーマルプリンタの開発 【キヤノン株式会社】 圧縮/⾮圧縮多成分流体シミュレータを始めとした各種数値 計算アルゴリズム研究開発、ハイパフォーマンスコンピュー ティング、画像再構成アルゴリズム⾼速化(国⽴情報学研究 所と共同研究)、複合現実システム開発など 【株式会社エクサウィザーズ】 GCNを⽤いた化合物活性予測、法⼈オンラインファイナンス、 居酒屋売上予測、味覚AI(原料配合量予測)、AI講座講師etc. 【基本情報】 【経歴】
  3. 3. ざっくり言うと Neural Process (NP) = Neural Network (NN) + Gaussian Process (GP) → NNとGPのいいとこ取りを狙った手法 Neural Network Gaussian Process ⻑ 所 • ⼤量のデータを取り込むことで、正確な 予測を⾏うことが得意 • ⼀度学習すれば、予測に要する時間は⾮ 常に短い • 学習したモデルに対して新たなサンプル を加えることで、モデルを更新すること が可能 • 予測に対する⾃信度を出すことができる 短 所 • 訓練後にモデルを更新することができな い • 予測に対する⾃信度を出すことができな い • 過学習する • 予測時に、今までの学習データを保持し なければいけない • データが多いと、予測時に時間がかかる (O(N3)オーダー)
  4. 4. Gaussian Process概要(1):ざっくり説明 • 確率過程(stochastic process)の一種で、入力(x1, …, xn)に対応する出力f=(y1, …, yn)の同時分布p(y) が多変量ガウス分布に従う確率モデルをGaussian Processという(関数を出力する確率モデル) • 異なるxにおけるyの関係は、多変量ガウス分布の共分散行列によって決まり、共分散行列の要素 は「カーネル関数」によって決まる(※直感的には、xが近ければyの値も近くなる) • 観測点を与えることによりp(y)が変化する(※直感的には、観測点付近の分散が小さくなる) (※http://chasen.org/~daiti-m/gpbook/より引⽤) 観測点
  5. 5. Gaussian Process概要(2):1次元回帰の例 上段:事前分布からの関数サンプル 下段:データ点を与えていった場合の予測分布 各列:共分散関数(カーネル関数)による違い (※http://machine-learning.hatenablog.com/entry/2018/01/13/142612より引⽤)
  6. 6. アーキテクチャのポイント • データ(x,y)を、”context” (xc,yc)と”target” (xt,yt)の2つに分割する • コアとなるコンポーネントは、エンコーダh(NN)、アグリゲータa、デコーダg(NN)の3つ • contextの情報を、一つの潜在変数zに落とし込む(このzに学習した関数の情報が詰め込まれる) • 潜在変数zは、同じく一つの潜在変数rをパラメータとする確率分布から生成される • 潜在変数rは、contextの各サンプル(xc,yc)に対する潜在変数rcをアグリゲータaで平均して得られる • 潜在変数zとtargetのサンプルxtを与えて、ytを予測する
  7. 7. NPによる実験例(1):事前分布 • NNの重みは正規分布からサンプリングしたものを使用 • 学習は一切していない • 潜在変数zの次元が増えると、より複雑な関数を生成できる (※https://kasparmartens.rbind.io/post/np/より引⽤)
  8. 8. NPによる実験例(2):少数サンプルによる学習と予測 【学習】 学習が進むにした がって、事後分布の 不確実性が下がる。 【予測】 学習時のサンプルと傾向の異な るcontext pointについては、う まく予測できない (汎化性能を上げるには、学習 時サンプルのバラエティを増や す必要がある) (※https://kasparmartens.rbind.io/post/np/より引⽤)
  9. 9. NPによる実験例(3):sin関数の学習と予測 学習データとして、y=asin(x), a~U(-2,2)を使用。潜在変数zは2次元。 【潜在変数】 2次元の潜在変数z によって、学習デー タに関する情報が表 現されている 【予測】 context pointを増や していくと、事後分 布の不確実性が減る (※https://kasparmartens.rbind.io/post/np/より引⽤)
  10. 10. 結果(1):1次元回帰 • 学習データはGPにより取得 Ø パラメータを振ったGaussian カーネルを使⽤ • 回帰対象となる真の関数が黒線 • context pointが黒点 • 青線がサンプリングされた関数 • context pointの数が増えていくにつ れて、生成される関数の不確実性 が下がる
  11. 11. 結果(2):画像生成(2次元回帰) • ピクセル値の一部を与えることにより、様々な画像が生成されている。 • ピクセル値を多く与えていくと、生成される画像のバラエティが少なくなる。
  12. 12. 【参考】Conditional Neural Processとの比較(1) • Neural Processと同じ著者らが、Conditional Neural Process(CNP)という手 法も提唱している • NPはグローバルな潜在変数zを経由するが、CNPはcontextから直接ytを予測 する
  13. 13. 【参考】Conditional Neural Processとの比較(1) • CNPにおける出力は、正規分布の平均と分散(平均と分散が決定論的に決まっ ている印象) • CNPでは、NPのように同じcontextから異なるサンプルを生成することができな い Ø NPと同じく潜在変数を導⼊するアプローチをとればサンプル⽣成が可能に なるようだが、この場合でも潜在変数の位置づけはそれほど明確ではない らしい(論⽂に記載がある)
  14. 14. 最近の動向 Attentive Neural Processや、Sequential Neural Processというものもあ るらしい。 • Attentive Neural Process NPがアンダーフィットする(aggregatorで平均化を行うことが原因ら しい)という欠点を解決するため、attention機構を導入することで、予 測精度の向上と学習の高速化を実現。 • Sequential Neural Process 時間的な状態遷移を組み込むことにより、時間依存構造を考慮できる NPを構築。
  15. 15. その他 • 本日の説明では時間の都合上、定式化については省略しました • NPの定式化を理解したいときには、例えば以下の情報源が大変参考 になります Ø 「ベイズ深層学習(須⼭敦志著)」の「4.2.1 変分推論法」 Ø Variationa AutoEncoder 徹底解説 (https://qiita.com/kenmatsu4/items/b029d697e9995d93aa24)

×