Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

GAN (概要)(part 1)

参考図書1,参考コード2はこちら

0. 初めに

こちらでは,GAN3の数学的知識や概要(実装は今度やります)
について学ぶ.

(また,私自身初学者のため,謝りや指摘等あればお願いいたします.)

1. GAN = 敵対的生成ネットワーク

2014年において,深層学習は識別問題に対して強いことが知られていた.これは,誤差逆伝播法やドロップアウトアルゴリズムに基づいた高次元な豊かな表現に由来するものであったからだ.

しかし,生成モデルは難解な確率的な計算を計算することが困難であったため,深層学習の影響は多くなかった.

そんな状況の中で生まれたのがGAN(敵対的生成ネットワーク)というモデルである.

GANでは生成モデルと、あるサンプルがモデル分布とデータ分布のどちらから来ているかを判断することを学習する識別モデルが対戦する.

GANは特殊なケース(生成モデルが多層パーセプトロンにランダムなノイズを通すことでサンプルを生成し、識別モデルも多層パーセプトロンである場合)において,近似推論やマルコフ連鎖モンテカルロ法を必要としない.

2. モデル

事前分布$p_z(z)$に従う乱数$z$によって定める生成モデル$G(z;\theta_g)$($\theta_g$はハイパーパラメータ)と
事前分布$p_{g}(x)$に従うデータ$x$によって定める識別モデル$D(x;\theta_d)$を用いて以下の目的関数を考える.

V(D,G)=\mathbb{E}_{x\sim p_{data}}[\ln D(x)]
+\mathbb{E}_{z\sim p_{z}}[\ln (1-D(G(z)))]

識別モデル$D$は真の分布に従うと判断される確率を表現するため,上の値が大きいほど,識別モデル$D$の精度は良く,上の値が低いほど生成モデルの精度は良いということになる.

すなわち$\underset{G}{\min} \underset{D}{\max}V(D,G)$を解くことを考える.

(注意: $z$を潜在ベクトルと考えると,オートエンコーダの形に似ている)

3. アルゴリズム

$m$個のミニバッチの$k$-stepの勾配降下法を考えると以下のようになる.

for Num_of_training iteration:
  for k steps do:
    - 事前分布から$z^m$を発生させる.
    - サンプルを$x^m$個抽出する.
    - ハイパラ$\theta_d$に関して微分をし,ハイパラを更新する.
  end for
- 事前分布から$z^m$を発生させる.
- ハイパラ$\theta_g$関してのみ微分をして,ハイパラを更新する.
end for

(min-maxの問題のため,個別にハイパラを考えている.と思う)

4. 数学的な性質

命題1.

$G$を固定すると,

D_G^*(x)=\frac{p_{data}(x)}{p_{data}(x)+p_{g}(x)}

定理2.

C(G) =\underset{D}{\max}V(G,D)

とすると,$C(G)$は$p_g=p_{data}$の時のみ,最小値$-\ln 4$を達成する.

命題2.

$G$と$D$が十分広い表現(?)をもち,上記に示したアルゴリズムに沿って学習を進めると,目的関数は最適化され,$p_{g}$は$p_{data}$に近づく.

(しかし,モード崩壊の欠点があることが知られている
(それの改善案に関するQiita記事4))

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?