计算机视觉-生成模型
给定训练集,产生与训练集同分布的新样本。
希望学到一个模型,其与训练样本的分布相近。
无监督学习里的一个核心问题:密度估计问题。
典型思路:
-
显式的密度估计:显示的定义并求解分布。
-
隐式的密度估计:学习一个模型,而无需显示的定义它。
显式地密度模型:PixelRNN与PixelCNN
利用链式准则将图像x的生成概率转变为每个像素生成概率的乘积。
缺点是:像素的生成是序列的进行训练,生成整张图片的效率太慢了。
二者的优点:似然函数可以精确计算;利用似然函数的值可以有效地评估模型性能。
二者的缺点:序列产生=>慢
VAE(变分自编码)
无监督的特征学习,其目标是利用无标签数据找到一个有效地低维的特征提取器。
对输入数据进行降维,采用的方法是自编码器(早先使用的方法是线性方法,后来出现了全连接神经网络,最后使用卷积神经网络)。
特征降维的作用是:希望降维后的特征仅保留数据中有意义的信息。
整体的方法就是将输入数据通过编码器提取特征,然后对特征使用解码器重构输入数据,也就是保证输出和输入尽可能的重合。
经过训练后的编码器就可以用于分类任务,但是效果没有直接用VGG等的好,因为它保留的是样本特征,而没有特别保留样本间的区别特征,但是在分类中,这个样本间的区别特征或许会更加的重要。而训练后的解码器就可以用于生成图片,类似于给定一个数据,可以通过解码器自动生成一张数字图片等。
优点:生成模型里的一种主要方法,可以计算出一个特征,这个特征表示可以用在其他的许多任务重。
缺点:最大化似然函数的下边界能够有效地工作,但是模型不好评估;与GAN相比,产生的样本模糊,质量较低。
生成对抗网络GAN
问题:希望从训练样本分布中采样新数据,但这个分布不仅维度高而且还很复杂,难以直接实现。
解决方案:对一个简单的分布采样,比如均匀分布;然后,学习一种映射将其变换到训练样本分布。
生成网络:期望能够产生尽量真实的图片,进而骗过判别器。
判别网络:期望能够准确的区分真假图片。
在这个过程中采用的是minimax的方式联合训练。基本流程是首先训练判别,是的整个式子的值尽可能的大。然后训练生成器,是的能够尽量的骗过判别器,让判别器输出结果为1。
GAN总结:
-
不需要显式地密度函数定义
-
采用了游戏理论方法:利用2个玩家的博弈,来学习训练数据的分布。
-
优点:优雅,目前最好的生成效果。
-
缺点:很难训练,非常不稳定;无法计算出样本或者隐变量的概率。
-
领域热点:更好的损失函数,更稳定的训练方法(Wasserstein GAN,LSGAN等等);条件GANs(Conditional GANs),将GANs应用于多种任务。
DCGAN:
DCGAN构架在训练过程中状态稳定,并可以有效实现高质量的图片生成,因此,现在的很多GAN都是在它的基础上进行改进的。
DCGAN提了四种规则:
-
使用卷积层代替池化层。
-
去除全连接层。
-
使用批归一化。
-
使用恰当的激活函数:生成网络使用ReLU,输出层采用Tanh;判别器使用LeakluReLU。
LSGAN:
GAN网络在训练时经常出现D太过于强大,很快就能分出真假,一些点离决策边界非常远,所处位置梯度是0.这部分样本很难被拉到真实点附近。
解决方案:将判别器任务由分类改成回归任务。
WGAN:
推土机距离:
γ表示需要从xp中拿多少土放入xq中,二范式表示xp和xq之间的距离。然后推土机距离是要在所有方案中选择 那个最小的距离方案。
条件GAN:
-
存在标签1对多的问题,传统的神经网络的输出结果和每个训练结果都尽量接近,导致生成图像非常模糊,甚至无法分辨。
-
期望输出内容是多样的,是可以被控制的。
ACGAN:
# 生成模型
---
给定训练集,产生与训练集同分布的新样本。
希望学到一个模型,其与训练样本的分布相近。
无监督学习里的一个核心问题:密度估计问题。
典型思路:
* 显式的密度估计:显示的定义并求解分布。* 隐式的密度估计:学习一个模型,而无需显示的定义它。
### 显式地密度模型:PixelRNN与PixelCNN
利用链式准则将图像x的生成概率转变为每个像素生成概率的乘积。
![image-20211125195923837](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211125195923837.png)
缺点是:像素的生成是序列的进行训练,生成整张图片的效率太慢了。
二者的优点:似然函数可以精确计算;利用似然函数的值可以有效地评估模型性能。
二者的缺点:序列产生=>慢
### VAE(变分自编码)
---
无监督的特征学习,其目标是利用无标签数据找到一个有效地低维的特征提取器。
对输入数据进行降维,采用的方法是自编码器(早先使用的方法是线性方法,后来出现了全连接神经网络,最后使用卷积神经网络)。
特征降维的作用是:希望降维后的特征仅保留数据中有意义的信息。
整体的方法就是将输入数据通过编码器提取特征,然后对特征使用解码器重构输入数据,也就是保证输出和输入尽可能的重合。
经过训练后的编码器就可以用于分类任务,但是效果没有直接用VGG等的好,因为它保留的是样本特征,而没有特别保留样本间的区别特征,但是在分类中,这个样本间的区别特征或许会更加的重要。而训练后的解码器就可以用于生成图片,类似于给定一个数据,可以通过解码器自动生成一张数字图片等。
优点:生成模型里的一种主要方法,可以计算出一个特征,这个特征表示可以用在其他的许多任务重。
缺点:最大化似然函数的下边界能够有效地工作,但是模型不好评估;与GAN相比,产生的样本模糊,质量较低。
## 生成对抗网络GAN
---
问题:希望从训练样本分布中采样新数据,但这个分布不仅维度高而且还很复杂,难以直接实现。
解决方案:对一个简单的分布采样,比如均匀分布;然后,学习一种映射将其变换到训练样本分布。
**生成网络:**期望能够产生尽量真实的图片,进而骗过判别器。
**判别网络:**期望能够准确的区分真假图片。
在这个过程中采用的是minimax的方式联合训练。基本流程是首先训练判别,是的整个式子的值尽可能的大。然后训练生成器,是的能够尽量的骗过判别器,让判别器输出结果为1。
**GAN总结:**
* 不需要显式地密度函数定义* 采用了游戏理论方法:利用2个玩家的博弈,来学习训练数据的分布。* 优点:优雅,目前最好的生成效果。* 缺点:很难训练,非常不稳定;无法计算出样本或者隐变量的概率。* 领域热点:更好的损失函数,更稳定的训练方法(Wasserstein GAN,LSGAN等等);条件GANs(Conditional GANs),将GANs应用于多种任务。
**DCGAN:**
DCGAN构架在训练过程中状态稳定,并可以有效实现高质量的图片生成,因此,现在的很多GAN都是在它的基础上进行改进的。
DCGAN提了四种规则:
* 使用卷积层代替池化层。* 去除全连接层。* 使用批归一化。* 使用恰当的激活函数:生成网络使用ReLU,输出层采用Tanh;判别器使用LeakluReLU。
**LSGAN:**
GAN网络在训练时经常出现D太过于强大,很快就能分出真假,一些点离决策边界非常远,所处位置梯度是0.这部分样本很难被拉到真实点附近。
解决方案:将判别器任务由分类改成回归任务。
**WGAN:**
推土机距离:
![image-20211128150328726](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211128150328726.png)
γ表示需要从xp中拿多少土放入xq中,二范式表示xp和xq之间的距离。然后推土机距离是要在所有方案中选择 那个最小的距离方案。
**条件GAN:**
问题:
* 存在标签1对多的问题,传统的神经网络的输出结果和每个训练结果都尽量接近,导致生成图像非常模糊,甚至无法分辨。* 期望输出内容是多样的,是可以被控制的。
**ACGAN:**