图片生成
GAN (Generator adversarial networks)生成对抗网络。
生成器(G)生成图片,判别器(D)判别图片的真伪。一般定义原始样本作为D的输入,则D输出为真(1),G的输出作为D的输入,D的输出为假(0)。
loss function
生成器(G)的loss函数为D(G(z))与1的交叉熵。即生成器的训练期望是使判别起认为自己生成的图像是原始样本。
判别器(D)的loss函数如下:
判别器的loss 可以分为两项相加
第一项为原始样本为输入的D的输出与1的交叉熵,即判别器对原始样本的输出期望是1;
第二项为生成图像为输入的D的输出与0的交叉熵,即判别器对生成图像的输出期望是0。
VAE (Variational Autoencoder) 变分编码器
图像生成原理图:
VAE原理图1:
原理:
- Encoder: 将样本集X特征提取,缩减为u,e,作为正态分布的参数,即在样本的特征中提取出正态的参数,也即将样本映射到正态分布。X->(u,e)的一个映射关系。
- Encoder loss: N(u,e)与N(0,1)散度,要使N(u,e)分布接近与标准正态分布。
- Decoder: 在N(u,e)中采样z,通过生成器上采样得到生成样本f(z).
- Decoder loss: X与f(z)范数,即f(z)接近与样本X
数学事实:对于一个目标概率分布,给定任何一种概率分布,总存在可微可测的函数,将其映射到另外一种概率分布,使得这中概率分布与目标概率分布任意的接近。
VAE生成原理图:
相关知识点
交叉熵
主要用于0-1分类的情况,作为loss函数与sigmoid函数连用。
替代sigmiod与范数(距离)连用,会出现梯度为0,从而不能训练的情况。KL散度(相对熵)
插入信息熵的概念
熵
用于考察信息量的损失,则就要先确定一个描述信息量的量纲。熵就是用来描述信息量的量纲。
量化数据含有多少信息。
如果我们使用log2作为底,熵就可以理解为:我们编码所有信息所需要的最小位数(通俗就是如果某一猜测事件发生,需要猜测多少次)。
KL散度
用于衡量近似分布带来的信息的损失量,是单向衡量,分布X相对于分布Y的信息损失量 != 分布X相对于分布Y的信息损失量。
KL散度计算的是数据原分布与近似分布的概率密度的对数差的期望值。在对数以2为底时,log2,则可以理解为“我们损失了多少位的信息”。