赞
踩
1.GAN(Generative Adversarial Networks)
其主要组成部分包括:
GAN网络最初的训练目的:
希望生成器G,能够学到样本的真实分布P_data(x),那么G就能生成之前不存在的但是又很真实的样本,来扩大数据量。如图:
z是一个随机向量,满足任意分布,通过输入生成器G得到输出x,我们希望x的分布和真实分布P_data(x)接近,所以通过调整生成器G的参数来满足这一条件。
下图通过具体举例来说明:
最上面的P_data(x):代表了真实数据图像;
1.将z输入到最初的生成器G,得到的输出的是一个杂乱的噪声图像;
2.然后通过不断调整生成器G的参数,最终得到的输出越来越逼近真实数据分布。
那么现在知道了生成器G的作用,是通过对生成器的参数不断优化更新,使得输入的随机向量的输出与真实样本分布相似。但是问题是如何进行参数更新的呢?
其中GAN最核心的公式如上图:
就是通过minmaxV(D,G)来进行参数更新。
1代表真实样本,0代表生成样本
生成器和判别器的训练是分开的:
至于为什么经过minmaxV(D,G)这个公式能够使生成样本分布与真实样本分布近似,通过公式的拆解变化最终可以简化为一个常量加上一个JS散度。即下式:
JS散度就是当P_data和P_G相等时最小,因此通过优化minmaxV(D,G)该公式最终就会得到P_data与P_G相等。即生成样本与真实样本无限逼近。
(minmaxV(D,G)该公式的拆解展开比较复杂,这里就省略了,感兴趣的可以留言)
文献:A Survey on Semi-Supervised Semantic Segmentation
GAN在语义分割中的应用在该文献中已经讲的很明白,我就简单讲一下我的理解,其本质和GAN的原理一样:
分为两种框架:
生成方法和非生成方法
鉴别器损失函数LD由三个项组成:
当模型将真实样本标记为伪造样本时,第一项会对其进行惩罚;
当模型将假样本标记为真样本时,第二项会惩罚模型;
最后一项是监督分量,它试图强制对相应类中标记集的每个像素进行正确分类。γ是训练过程中监督的权重。
生成器损失函数LG:
即鉴别器损失的第二项,取了个负号。
补充:
有些人可能会对这里的正负号产生疑问,前面在讲GAN的时候V(D,G)公式里面都是正号,怎么到这里成负号了。这里把GAN的核心公式和上面的损失函数放在一起讲解:
先看核心公式,①训练判别器时需要最大化V(D,G)即maxV(D,G),那么放在语义分割任务里面损失函数时,就应该加上负号,因为网络训练时通常时使损失函数越来越小。加上负号时通过最小化损失函数即最大化V(D,G)。
再看②,生成器的训练需要最小化V(D,G),则和损失函数的目的相同,因此为正值。
分割网络损失函数Lseg由三项组成:
第一项是由交叉熵损失函数形成的监督分量Lsup。
第二项是对抗分量Ladv,其惩罚D检测到由分割网络生成的分割图的情况。
第三项Lsemi考虑其分割超过置信阈值T的未标记图像。λadv和λsemi是对其各自项的使用进行加权的参数。
这里主要给出的是一些框架,重在理解GAN的原理,以及在半监督语义分割任务中如何使用的思路。具体应用有许多相关论文。后续会进行更新讲解。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。