Skip to content

Commit 9323f19

Browse files
committed
Update Chapter 17
1 parent 6105ae1 commit 9323f19

1 file changed

Lines changed: 92 additions & 11 deletions

File tree

17.Generative_adversarial_networks.ipynb

Lines changed: 92 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
"id": "a3885b9f",
8383
"metadata": {},
8484
"source": [
85-
"- **生成器**$G$:它以一个随机向量(潜在空间中的一个随机点)作为输入,并将其解码为一张合成图像。\n",
85+
"- **生成器**$G$:它以一个随机向量(隐空间中的一个随机点)作为输入,并将其解码为一张合成图像。\n",
8686
"\n",
8787
"\n",
8888
"- **判别器**$D$:以一张图像(真实的或合成的均可)作为输入,并预测该图像是来自训练集还是由生成器创建。"
@@ -98,46 +98,127 @@
9898
},
9999
{
100100
"cell_type": "markdown",
101-
"id": "1cc5f2a3",
101+
"id": "5eb07848",
102102
"metadata": {},
103103
"source": [
104-
"基于这样的思想可以设计出 GAN 的目标函数如下式所示:\n",
104+
"> 对于生成器 $G$ 来说,通过随机噪声 $z$ 作为输入,生成器 $G$ 期望自己生成的样本尽可能地欺骗判别器 $D$,所以需要最大化判别概率 $D(G(z))$。因此,生成器 $G$ 的目标函数可以定义为最小化 ${\\rm log}(1-D(G(z)))$。\n",
105+
"\n",
106+
"$$ {\\min_G} \\; \\mathbb{E}_{z\\sim p_ {z}\\;(z)}[{\\rm log}(1-D(G(z)))] $$\n",
105107
"\n",
106-
"$$ {\\rm min} \\; {\\rm max}\\; V(D, G) = \\mathbb{E}_{x\\sim p_ {\\rm data}\\;(x)}[{\\rm log}D(x)] + \\mathbb{E}_{z\\sim p_ {\\rm z}\\;(z)}[{\\rm log}(1-D(G(z)))] $$"
108+
"> 对于判别器 $D$,为了尽可能地区分真实样本和虚假的生成样本,它希望最小化判别概率 $D(G(z))$ 的同时,最大化判别概率 $D(x)$。因此,判别器 $D$ 的目标函数可以定义为最大化 $ {\\rm log} D(x) + {\\rm log}(1-D(G(z)))$。\n",
109+
" \n",
110+
"$$ {\\max_D}\\;\\mathbb{E}_{x\\sim p_ {\\rm data}\\;(x)}[{\\rm log}D(x)] + \\mathbb{E}_{z\\sim p_ {z}\\;(z)}[{\\rm log}(1-D(G(z)))] $$"
107111
]
108112
},
109113
{
110114
"cell_type": "markdown",
111115
"id": "463fff5b",
112116
"metadata": {},
113117
"source": [
114-
"其中 $G$ 代表生成器,$D$ 代表判别器,$P_{\\rm data}(x)$ 代表真实样本的概率分布,$P_{z}(z)$ 代表随机噪声的概率分布,$z$ 是服从高斯分布的随机噪声。"
118+
"其中 $P_{\\rm data}(x)$ 代表真实样本的概率分布,$P_{z}(z)$ 代表随机噪声的概率分布,$z$ 是服从高斯分布的随机噪声。"
115119
]
116120
},
117121
{
118122
"cell_type": "markdown",
119-
"id": "5eb07848",
123+
"id": "1cc5f2a3",
120124
"metadata": {},
121125
"source": [
122-
"> 对于生成器 $G$ 来说,通过随机噪声 $z$ 作为输入,生成器 $G$ 期望自己生成的样本尽可能地欺骗判别器 $D$,所以需要最大化判别概率 $D(G(z))$,于是对于生成器 $G$,它的目标函数是最小化 ${\\rm log}(1-D(G(z)))$。\n",
126+
"基于以上思想可以设计出 GAN 的总目标函数如下式所示:\n",
123127
"\n",
124-
"> 对于判别器 $D$,为了尽可能地区分真实样本和虚假的生成样本,它希望最小化判别概率 $D(G(z))$ 的同时,最大化判别概率 $D(x)$。于是判别器的目标函数是最大化 $ {\\rm log} D(x) + {\\rm log}(1-D(G(z)))$。"
128+
"$$ {\\min_G} \\; {\\max_D}\\; V(D, G) = \\mathbb{E}_{x\\sim p_ {\\rm data}\\;(x)}[{\\rm log}D(x)] + \\mathbb{E}_{z\\sim p_ {\\rm z}\\;(z)}[{\\rm log}(1-D(G(z)))] $$"
125129
]
126130
},
127131
{
128132
"cell_type": "markdown",
129133
"id": "94a926a4",
130134
"metadata": {},
131-
"source": []
135+
"source": [
136+
"对抗训练过程由两个神经网络交替进行:\n",
137+
"\n",
138+
"- 先训练 $D$:选取一批真实样本和一批隐变量,隐变量通过 $G$ 得到生成样本,保持 $G$ 权值不变,利用随机梯度上升法计算并更新 $D$ 网络的权值;\n",
139+
"\n",
140+
"\n",
141+
"- 随后训练 $G$:选取一批隐变量通过 $G$ 得到生成样本,保持 $D$ 权值不变,利用随机梯度下降法计算并更新 $G$ 网络的权值。"
142+
]
132143
},
133144
{
134145
"cell_type": "markdown",
135146
"id": "21c95b3b",
136147
"metadata": {},
137148
"source": [
138-
"在对抗训练的过程中,判别器$D$ 判别真假样本的能力逐渐提高;而 生成器$G$ 为了欺骗判别器$D$,生成样本逐渐趋近于真实样本,最终使整个模型生成质量较好的新数据。"
149+
"在对抗训练的过程中,判别器 $D$ 判别真假样本的能力逐渐提高;而生成器 $G$ 为了欺骗判别器 $D$,生成样本逐渐趋近于真实样本,最终使整个模型生成质量较好的新数据。"
150+
]
151+
},
152+
{
153+
"cell_type": "markdown",
154+
"id": "ab49f57e",
155+
"metadata": {},
156+
"source": [
157+
"## 2.2 GAN全局最优解"
158+
]
159+
},
160+
{
161+
"cell_type": "markdown",
162+
"id": "6ef903ca",
163+
"metadata": {},
164+
"source": [
165+
"此前将 $p_{\\rm data}$ 定义为真实样本的概率分布,我们将 $p_g$ 定义为 $G(z)$ 生成样本的概率分布。"
166+
]
167+
},
168+
{
169+
"cell_type": "markdown",
170+
"id": "19f26885",
171+
"metadata": {},
172+
"source": [
173+
"此处补充论文公式3"
174+
]
175+
},
176+
{
177+
"cell_type": "markdown",
178+
"id": "8cdd7e3e",
179+
"metadata": {},
180+
"source": []
181+
},
182+
{
183+
"cell_type": "markdown",
184+
"id": "305915f7",
185+
"metadata": {},
186+
"source": []
187+
},
188+
{
189+
"cell_type": "markdown",
190+
"id": "8d261b52",
191+
"metadata": {},
192+
"source": [
193+
"GAN全局最优解为:"
139194
]
140195
},
196+
{
197+
"cell_type": "markdown",
198+
"id": "8fc6c5fb",
199+
"metadata": {},
200+
"source": [
201+
"$$p_g = p_{\\rm data}$$"
202+
]
203+
},
204+
{
205+
"cell_type": "markdown",
206+
"id": "f3cd12d5",
207+
"metadata": {},
208+
"source": []
209+
},
210+
{
211+
"cell_type": "markdown",
212+
"id": "8e86cf4a",
213+
"metadata": {},
214+
"source": []
215+
},
216+
{
217+
"cell_type": "markdown",
218+
"id": "9360a354",
219+
"metadata": {},
220+
"source": []
221+
},
141222
{
142223
"cell_type": "markdown",
143224
"id": "51f2530d",
@@ -149,7 +230,7 @@
149230
"id": "ad06db0f",
150231
"metadata": {},
151232
"source": [
152-
"## 2.2 GAN的缺点"
233+
"## 2.3 GAN的缺点"
153234
]
154235
},
155236
{

0 commit comments

Comments
 (0)