SlideShare a Scribd company logo
1 of 34
Download to read offline
GAN
1
(とても軽く)
⽣成モデルの世界
2
前提
私たちが観測するデータはとある分布からサンプリングされている!
観測データ(ヒストグラム) 3
⽣成モデル⼀⾔で
あるデータの⽣成過程を確率分布によってモデル化すること
データの特徴をより低次元の空間で表現し、⽣成されるデータを操作したい。。。 4
(今回の)⽣成モデル⼀⾔で
任意の分布を何かしらのデータを⽣成する真の分布に変換する関数
任意の分布 真の分布
学習
観測データ
p✓(x) =
Z
p✓(x|z)p(z)dz
⽣成モデルp(z) pdata(x) = p✓(x)
変換前のベクトル𝑧は
出⼒の特徴を表すことから
潜在変数と呼ばれる
5
何ができる?
データ⽣成
潜在変数を連続的に
変化させたときの結果
https://crypko.ai/#/
6
何ができる?
異常検知
データの⽣成確率がわかるので
異常な値の検知が可能
?
7
何ができる?
⽋損値補間
https://arxiv.org/pdf/2003.03808.pdf
8
深層⽣成モデル
実応⽤において変換前の任意の分布と推定したい真の分布は
⾮線形に依存していることが多い
計算機の性能が向上し、現実的な時間で学習が可能になったこと
も重なり、DNNを⽤いた⽣成モデルが提案され始め、それらの
ことを深層⽣成モデルと呼ぶ様になった。
9
GAN
Generative adversarial network(敵対的⽣成ネットワーク)
10
GANを⼀⾔で
⽣成ネットワークGと識別ネットワークDの騙し合いゲーム
イメージ
贋作を作る
⽣成機G
⽣成
贋作 本物
真贋⾒分ける
識別機D
(Fate/grand order)
vs
11
⽣成ネットワークGの⽬的
⽣成
𝐷に⾃分の⽣成した出⼒が本物であると誤認させたい
⼊⼒: 潜在変数 𝑧
出⼒: 偽データ 𝑥!"#$
ロス: 𝐷が𝑥!"#$を受け取って出⼒する偽物への確信度 1 − 𝑝 𝐶 = 1 𝑥!"#$
インスピレーション
⼊⼒
評価
12
識別ネットワークDの⽬的
𝐺の作った贋作なのか本物なのかを識別したい
⼊⼒: とあるデータ𝑥 (本物 𝑥%"&" or 贋作 𝑥!"#$)
出⼒: 本物への確信度 𝑝(𝐶 = 1|𝑥)
ロス: 出⼒と正解ラベルとの誤差
正解ラベル
誤差関数
評価
⼊⼒
誤差
13
数式に落とし込む
潜在変数 𝑧
訓練データ 𝑥-./.
⽣成データ 𝑥0.12 = 𝐺(𝑧)
識別機の出⼒ 𝑦 = 𝐷(𝑥)
識別機の損失関数
⽣成機の損失関数
ED(x) = (t log y + (1 t) log(1 y))
G
G(z)
xfake
D
D(x)
Eg(z) = log(1 D(G(z)) 14
⽣成モデル⼀⾔で
任意の分布を何かしらのデータを⽣成する真の分布に変換する関数
任意の分布 真の分布
学習
観測データ
p✓(x) =
Z
p✓(x|z)p(z)dz
⽣成モデルp(z) pdata(x) = p✓(x)
変換前のベクトル𝑧は
出⼒の特徴を表すことから
潜在変数と呼ばれる
15
理想的な識別機
訓練データから真の分布が、
⽣成機から予測された分布が与えられたとして理想的な判別機は
どの様な出⼒をするのか?
pdata(x)pg(x)
16
理想的な識別機
理想的には
となり、損失関数
の正解ラベルがそれぞれの分布から抽出される
ことに注意して
と変換したものに代⼊すると
pdata(x)
D(x)
ED(x) = (t log y + (1 t) log(1 y))
D(x) =
pdata(x)
pdata(x) + pg(x)
pg(x)
(Epdata(x)[ln D(x)] + Epg(x)[ln(1 D(x))])
17
Z
pdata ln
pdata
ddata + pg
dx
Z
pdata ln
pg
ddata + pg
dx
Z
pdata ln
2pdata
ddata + pg
dx +
Z
pdata ln 2dx
Z
pdata ln
2pg
ddata + pg
dx +
Z
pg ln 2dx
2DJS[pdata||pg] + 2 ln 2
と変換することができ、識別機の⽬的は訓練データ集合の従う分布と、
⽣成されたデータ集合の従う分布のJSダイバージェンスを求めることに
対応していることがわかります。
18
理想的な⽣成機
理想的な識別機の働きについて確認したらそれに敵対する⽣成機
の学習内容を考えることは簡単です。識別器が適切に分布間距離
を求めることで損失関数を最⼩化しようとしているのに対し、
⽣成機は を に近づけることで、識別機の損失関数を
最⼤化しようとします
2DJS[pdata||pg] + 2 ln 2
pg pdata
19
実験
実際にデータが⽣成されていく様⼦を⾒ていく
潜在変数 p(z) = N(0, 1)
20
実験
データの真の分布 と
そこからサンプリングされ、学習に⽤いられるデータ集合
p(x)
X
p(x) X
21
実験
⽣成機の構造
z
●
●
●
G(z)
10ノード
LeakyReLU
tanh
22
実験
識別機の構造
●
●
●
10ノード
sigmoid
x p(C = 1|x)
LeakyReLU
23
実験
学習データ数 10000
1度の学習に使⽤するデータ数 1024(ランダム抽出)
学習回数 1000回
100回ごとに⽣成機からの出⼒をサンプリング
24
結果
真の分布(からのサンプリング)
100 200 300 400 500
600 700 800 900 1000
モード崩壊の始まり
25
ロスの推移
G_loss
D_loss
敵対的に学習が⾏われている様⼦
26
(今回の)問題点
モード崩壊
あるデータ点の近傍のみが出⼒される様になり表現⼒が乏しくな
る問題( オーバーフィッティング)
原因
(モデルの複雑さに対して)学習データが少なく、真の分布を表せていない
(学習データの分布に対して)⽣成機の表現⼒、識別機の解析⼒が低い
'
27
再実験
今回の場合はネットワークの表現⼒不⾜が考えられるので
中間層の数を増やして再度検証を⾏う
同じ
分布だ!
28
再実験
先ほどのネットワークが
(⼊⼒層, 中間層, 出⼒層)=(1, 10, 1)と
構成されていたのに対して今回はD, Gそれぞれ
(⼊⼒層, 中間層*2, 出⼒層)=(1, 100, 100, 1)と
層とノードを増やすことで表現⼒の向上を図った
他の条件は先ほどと同じ
29
結果
真の分布(からのサンプリング)
100 200 300 400 500
600 700 800 900 1000
先ほどよりも真の分布に近そう
30
(個⼈的な)感想
今回はGANの学習過程や結果を可視化して理解したいと⾔う理
由で⼀次元データの⽣成に挑戦
基本的に(画像などの)ベクトル同⼠が⾮線形に⼤きく依存して
おり、カーネル密度推定などができないといった場合の⽣成に適
していて今回の様な問題に対しては動作理解には繋がっても現実
的ではなさそう
31
余談
学習⽤データから1024個サンプリングしてカーネル密度推定
真の分布 密度推定(正規化なし)
32
GANのこれから
実応⽤に際しては、今回の様にパラメータ数を多くとって解決!
とはならない
現実で扱いたい問題は基本的にデータの次元数が多い(画像など)
分布を説明できるだけの⼤量の教師データを作るのが難しい
次元数に沿った⼗分な表現⼒を持つ完全結合ネットワークは現実的な時間で学習で
きない
層が増えるにつれて勾配が消失し学習が進まなくなる 等
現在もなお、これらの問題を解決すべく新たな⼿法が提案されている
33
GANの発展
A Review on Generative Adversarial Networks: Algorithms, Theory, and Applications
written by Jie Gui, Zhenan Sun, Yonggang Wen, Dacheng Tao, Jieping Ye
(Submitted on 20 Jan 2020) 34

More Related Content

What's hot

Random Forest による分類
Random Forest による分類Random Forest による分類
Random Forest による分類Ken'ichi Matsui
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-Shintaro Fukushima
 
Oracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslassoOracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslassoSatoshi Kato
 
定番アルゴリズムを徹底理解!
定番アルゴリズムを徹底理解!定番アルゴリズムを徹底理解!
定番アルゴリズムを徹底理解!teapipin
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Prunus 1350
 

What's hot (8)

Random Forest による分類
Random Forest による分類Random Forest による分類
Random Forest による分類
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-最近のRのランダムフォレストパッケージ -ranger/Rborist-
最近のRのランダムフォレストパッケージ -ranger/Rborist-
 
Oracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslassoOracle property and_hdm_pkg_rigorouslasso
Oracle property and_hdm_pkg_rigorouslasso
 
定番アルゴリズムを徹底理解!
定番アルゴリズムを徹底理解!定番アルゴリズムを徹底理解!
定番アルゴリズムを徹底理解!
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 

Similar to GANの基本

[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-EncoderDeep Learning JP
 
DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214Kosuke Nakago
 
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析Satoshi Kato
 
異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –Yohei Sato
 
Let中部2012シンポスライド
Let中部2012シンポスライドLet中部2012シンポスライド
Let中部2012シンポスライドMizumoto Atsushi
 
Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章Makoto Kawano
 
第3回nips読み会・関西『variational inference foundations and modern methods』
第3回nips読み会・関西『variational inference  foundations and modern methods』第3回nips読み会・関西『variational inference  foundations and modern methods』
第3回nips読み会・関西『variational inference foundations and modern methods』koji ochiai
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係についてDeep Learning JP
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説Preferred Networks
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Yuya Unno
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative ModelsSeiya Tokui
 
M1gp -Who’s (Not) Talking to Whom?-
M1gp -Who’s (Not) Talking to Whom?-M1gp -Who’s (Not) Talking to Whom?-
M1gp -Who’s (Not) Talking to Whom?-Takashi Kawamoto
 
確率的自己位置推定
確率的自己位置推定確率的自己位置推定
確率的自己位置推定Horiguchi Shuhei
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門tmtm otm
 
PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)
PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)
PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)Akira Nakagawa
 
Survival analysis0702 2
Survival analysis0702 2Survival analysis0702 2
Survival analysis0702 2Nobuaki Oshiro
 

Similar to GANの基本 (20)

[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
 
DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214
 
深層学習①
深層学習①深層学習①
深層学習①
 
forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析forestFloorパッケージを使ったrandomForestの感度分析
forestFloorパッケージを使ったrandomForestの感度分析
 
異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –
 
Let中部2012シンポスライド
Let中部2012シンポスライドLet中部2012シンポスライド
Let中部2012シンポスライド
 
Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章Python for Data Anaysis第2回勉強会4,5章
Python for Data Anaysis第2回勉強会4,5章
 
第3回nips読み会・関西『variational inference foundations and modern methods』
第3回nips読み会・関西『variational inference  foundations and modern methods』第3回nips読み会・関西『variational inference  foundations and modern methods』
第3回nips読み会・関西『variational inference foundations and modern methods』
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
001 z test
001 z test001 z test
001 z test
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models
 
Prml 4.3
Prml 4.3Prml 4.3
Prml 4.3
 
M1gp -Who’s (Not) Talking to Whom?-
M1gp -Who’s (Not) Talking to Whom?-M1gp -Who’s (Not) Talking to Whom?-
M1gp -Who’s (Not) Talking to Whom?-
 
確率的自己位置推定
確率的自己位置推定確率的自己位置推定
確率的自己位置推定
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
 
PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)
PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)
PCSJ/IMPS2021 講演資料:深層画像圧縮からAIの生成モデルへ (VAEの定量的な理論解明)
 
Survival analysis0702 2
Survival analysis0702 2Survival analysis0702 2
Survival analysis0702 2
 

GANの基本