1.Auto-Encoder自编码器
用途:无监督数据降维,比起PCA,AE更保持位置相关性。输出输出维度是一样的,目标就是生成自己,先降维再升维。
AE VS. PCA
如何训练?
对于二分类问题,当x=0,loss(fx)=-(log(1-
)),为了最小化loss,
越小越好接近0也就是真实x=0。
同理,当x=1,loss(fx)=-(log(
)),为了最小化loss,
越大越好接近1也就是真实x=1。这就是minmize算法。
变种一:Denoising AutoEncoder
加入了噪声,对比AE在一定程度上防止过拟合。
变种二:Denoising AutoEncoder
按一定概率Dropout,迫使模型更加鲁棒,可以提升精度。可以理解为训练增加难度,测试时用全连接减少难度。对比AE在一定程度上防止过拟合,下图Dropout=0.2时精度最高。
变种三:Adversarial AutoEncoder 让随机种子变真实
增加了鉴别器,判断新生成的数据z'是否符合真实数据z的分布。迫使隐藏层向量完成图片重建外,还符合真实图片的分布。
其中,KL计算:
前面是AE的loss,后面KL是指pq的分布,重合为0。训练的话就是让Loss变小,pq更加的重合。
x=>N(μ,σ²).sample=>
变种四:Variational Autoencoder 变分自动编码器
VAE解决了之前N(μ,σ²)在反向传播时不可导的问题。
其中推导:
AE VS. VAE
GAN VS. VAE