1.在线吴恩达深度学习视频:https://www.bilibili.com/video/av66314465/?p=2
总结:理解了神经网络的大概构造,以及反推公式如何操作 装了open CV
2.Pytorch简单入门:https://morvanzhou.github.io/tutorials/machine-learning/torch/
3.gan原理:https://www.jiqizhixin.com/articles/2017-10-1-1
对3的总结:
1)同时训练两个模型,即一个能捕获数据分布的生成模型 G 和一个能估计数据来源于真实样本概率的判别模型 D。
生成器 G 的训练过程是最大化判别器犯错误的概率,即判别器误以为数据是真实样本而不是生成器生成的假样本。
可以求出唯一均衡解,即 G 可以生成与训练样本相同的分布,而 D 判断的概率处处为 1/2,这一过程的推导与证明将在后文详细解释。
步骤:
1.先定义一个先验的输入噪声变量 P_z(z)
2.根据 G(z;θ_g) 将其映射到数据空间中 G 为多层感知机所表征的可微函数
3.定义第二个多层感知机 D(s;θ_d),输出为单个标量,D(x) 表示 x 来源于真实数据而不是 P_g 的概率
4.训练 D 以最大化正确分配真实样本和生成样本的概率
5.可以通过最小化 log(1-D(G(z))) 而同时训练 G
判别器 D 和生成器对价值函数 V(G,D) 进行了极小极大化博弈
(KL散步是为了拉进两个分布:生成分布和真实分布的距离)
GAN就存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。
WGAN成功地做到了以下爆炸性的几点:
彻底解决GAN训练不稳定的问题,不再需要小心平衡生成器和判别器的训练程度
基本解决了collapse mode的问题,确保了生成样本的多样性
训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN训练得越好,代表生成器产生的图像质量越高
以上一切好处不需要精心设计的网络架构,最简单的多层全连接网络就可以做到
4.CGAN的核心操作是将条件信息加入到G和D中
5.PGGAN生成惊人的样本量
先试着生成低分辨率或者低质量的图像,然后不断地增加分辨率或者细节。
6.SAGAN:自我注意生成对抗网络
(1)可以很好的处理长范围、多层次的依赖(可以很好的发现图像中的依赖关系)
(2)生成图像时每一个位置的细节和远端的细节协调好
(3)判别器还可以更准确地对全局图像结构实施复杂的几何约束。
SA-GAN将Spectral Normalization应用到了G和D中,稳定了训练和生成过程。
在训练过程中,给予G和D不同的学习速率,以平衡两者的训练速度。
SA-GAN引入的Attention机制在网络的每一层都考虑全局信息, 而不是像卷积层那样只考虑局部信息。
相较于全连接层,SA-GAN中的全局信息没有那么大的参数量,在提高感受野和减小参数量之间得到了一个更好的平衡。
7.BigGAN:
通过2-4倍的增加参数量(增加channel),8倍的扩大batchsize,可以使GAN获得最大的性能提升。
通过使用截断技巧(truncation trick),可以使得训练更加平稳,但是需要在多样性和逼真度之间做平衡。
通过现存的和其他新颖的各种技术的集合,可以保证训练的平稳性,但是精度也会随之下降,需要在性能和训练平稳性之间做平衡。
8.pix2pix的核心是有了对应关系
pix2pix必须使用成对的数据进行训练,但很多情况下成对数据是很难获取到的,CycleGAN解决这个问题。这种网络不需要成对的数据,只需要输入数据的一个集合(比如一堆马的照片)和输出数据的一个集合(比如一堆斑马的照片)就可以了。
CycleGAN成功的原因在于它分离了风格(Style)和内容(content)
分辨率和图像质量。pix2pixHD就是用来解决这个问题的
pix2pixHD采取了金字塔式的方法:
先输出低分辨率的图片。
将之前输出的低分辨率图片作为另一个网络的输入,然后生成分辨率更高的图片
9.stargan:解决图像转换一对多的问题,本文主要对人脸进行改变
1. StarGAN只要一个G和一个D实现多领域转换
2. 提供一种掩码向量方法,使StarGAN能够控制所有可用的域标签
3. 在人脸属性转移和表情改变方面StarGAN效果很好,starGan适用于多数据集间的转换
网友评论