生成超高解析度成像,将低分辨率的照片转化成高分辨率;
艺术创作:图像转换、文字到图像的转换;消费市场。
将输入先进行编码,然后经过多层感知器的神经网络,相当于进行了降维和数据压缩。
而在生成模型中,我们仅适用压缩后编码到解码器的这一后半部分。
自编码器无法根据新编码生成数据,所以我们对Auto-Encoder做出改进,在他学习到输入数据的隐含变量,并让这些隐含变量服从高斯分布。
在VAE问题中,涉及到两个问题也就是两个损失函数:
第一个是描述网络还原程度的损失函数,即是输出数据和输入数据之间的均方距离;
第二个是隐含变量与高斯分布相近程度的损失函数。
KL越高,说明差异程度越大;KL低的时候,说明差异小。如果两者相同,KL=0.
将上面两个损失函数相加,并优化这个最终的损失函数使得模型达到最优结果。
生成数据误差:
隐含变量误差:
最终误差:
VAE模型本质在于使得输出数据与输入数据的均方误差最小化,使得VAE真正是倾向于学习得到与真实数据更接近的数据。
为了优化VAE,这里GAN效果更好。
①首先对真实训练数据集定义一个概率分布函数
②为了逼近真实数据的概率分布,生成模型定义一个概率分布函数,其中
为参数变量。
③实际过程中,我们改变参数,使得生成模型分布
逼近真实概率分布
从中取出
,通过所有的真实训练样本计算在生成模型中的概率并全部相乘:
(则说明我们的生成模型在这些数据上具备最大的概率)
计算:
①取对数:这里对所有的取一个对数,并相乘转化为相加:
②积分形式:对于上述公式,把求和近似转化为求的期望值。推导出积分的形式。
③减去一个常数项:推导出积分后减去一个与没有关系的常数项
,所以我们需要找到一个
使得下面推导结果最小。
④使用KL散度:使用KL散度对两个概率P和Q:
可以发现该公式不具有可逆性。特定情况下P看作是数据的真实分布,Q表示数据的模型分布或者近似分布。
相似的,我们得到公式得KL散度形式:
实际时间中,我们几乎不可能知道真实数据的分布,因为真实数据的分布极其复杂,所以这里是使用训练数据的经验分布在逼近.
在许多情况下,我们对于分布密度函数具体样子并没有太大兴趣,而我们的生成对抗网络属于隐式模型,解决了许多现有模型存在的问题。
1. 代价函数
对于判别器D,代价函数为:
对于生成器来说,两者是一个零和博弈,代价综合是零,所以生成器的代价函数满足:
2. 价值函数
这样综合生成器和判别器的代价函数,我们设置一个价值函数V来表示和
:
3. 纳什均衡
在博弈中,存在一个纳什平衡点,即为对双方相对来说都较好的结果。
这里有个很好的例子是鞍点(saddle point)
4. 计算
在上述基础上,分别求出理想的判别器和生成器
对于上述的,假定生成器G是固定的,令式子
,推导如下(同样是积分化)
5. 推导判别器
现在我们希望找到一个D使得V最大,对积分中的项
无论x取多大时候都能最大,已知是固定的,也假定生成器G固定,所以
也是固定的。
现在我们假定x固定,和
进行求导:
对于形式如下:
这里可以看见我们的判别器范围在0~1之间,则接受真实数据时候判断为1,接受生成数据判定为0.当生成数据和真实数据很接近时候,判定为1/2.
6. Jensen-Shannon散度
把KL公式代入展开:
7. 推导生成器
先把带入到前面的积分式子重新表示
:
将其转化成JS散度形式:
当且仅当时,取全局最小值-log(4),这里
的分布