生成对抗网络框架:
生成对抗网络(Generative adversarial networks,简称为GAN)是2014年由Ian J. Goodfellow首先提出来的一种学习框架。传统的生成模型都需要先定义一个概率分布的参数表达式,然后通过最大化似然函数来训练模型,比如深度玻尔兹曼机(RBM)。这些模型的梯度表达式展开式中通常含有期望项,导致很难得到准确解,一般需要近似,比如在RBM中,利用Markov chain 的收敛性,可以得到符合给定分布下的随机样本。为了克服求解准确性和计算复杂性的困难,J牛创造性的提出来了生成对抗网络。GAN模型不需要直接表示数据的似然函数,却可以生成与原始数据有相同分布的样本。与常规的深度学习模型(比如cnn、dbn、rnn)不同,GAN模型采用了两个独立的神经网络,分别称为“generator”和“discriminator”,生成器用于根据输入噪声信号生成‘看上去和真实样本差不多’的高维样本,判别器用于区分生成器产生的样本和真实的训练样本(属于一个二分类问题)。其模型结构框架如下,
GANs是基于一个minimax机制而不是通常的优化问题,它所定义的损失函数是关于判别器的最大化和生成器的最小化,作者也证明了GAN模型最终能够收敛,此时判别器模型和生成器模型分别取得最优解。记x表示样本数据,p(z)表示生成器的输入噪声分布,G(z;θg)表示噪声到样本空间的映射,D(x)表示x属于真实样本而不是生成样本的概率,那么GAN模型可以定义为如下的优化问题,
从以上公式可以看出,在模型的训练过程中,一方面需要修正判别器D,使值函数V最大化,也即使得D(x)最大化和D(G(z))最小化,其数学意义即最大化判别器分类训练样本和生成样本的正确率,另一方面需要修正生成器G,使值函数V最小化,也即使得D(G(z))最大化,其数学意义即生成器要尽量生成和训练样本非常相似的样本,这也正是GAN名字中Adversarial的由来。J牛提出了交替优化D和G(对D进行k步优化,对G进行1步优化),具体的训练过程如下,
参考博文:GAN应用于图像分类
有关上采样的问题:
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。
放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。
对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。
下采样原理:对于一副图像I尺寸为M*N,对起进行s倍下采样,即得到(M/s)*(N/s)尺寸的分辨率图像,当然,s应该是M和N的公约数才可以,如果考虑是矩阵形式的图像,就是把原始图像s*s窗口内的图像编程一个像素,这个像素点的值就是窗口内所有像素的均值。
Pk = Σ Ii / s2
上采样原理:图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。
插值算法还包括了传统插值,基于边缘图像的插值,还有基于区域的图像插值。
另外条件马尔科夫随机场的问题参照博文:条件随机场