深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络

自动编码器,也就是自编码神经网络,是神经网络的一种

采用无监督学习的方式对高维数据进行高效的特征提取和特征表示,在学术界和工业界都大放异彩

 

 

我们之前看的都是监督学习

但是生活中的大量的数据都是没有label的

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第1张图片

现在来看非监督学习

 

 

机器学习领域的三大方向

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第2张图片

强化学习(樱桃)、监督学习(蛋糕的外皮)、非监督学习

 

 

为什么需要非监督学习?

降维

利用大量的无标签数据

 

 

https://projector.tensorflow.org/

 

 

Auto-Encoders

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第3张图片

监督学习是有一个明确的目标的,那么非监督学习也是有目标的

目标就是重建它自己
深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第4张图片

与CNN不同的在于,CNN的输出层是分类,如果是十分类输出层就有10个节点。但无监督网络就无法分类,其目标就是重建自己,所以输出层的节点数=输入层的节点数

自编码神经网络就是一个特殊的全连接层

neck可以升维也可以降维,大部分是降维

 

怎样训练

还是原来那些方法

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第5张图片

自编码神经网络还是神经网络,所以training还是看loss function

 

 

 

PCA vs AutoEncoder

PCA,principal components analysis,主成分分析

在auto-encoder之前,降维都是用PCA降维

但是PCA具有线性特性,大部分的数学形态都是非线性的,线性变化很可能能操作的空间就非常少

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第6张图片

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第7张图片

可以看到autoencoder的效果还是好于PCA的

 

 

AutoEncoder的一些变种

 

Denoising AutoEncoders

只是在像素级别的重建,很有可能只是记住一些特征。为了防止这样,我们给加一些扰动,加一些噪声

如果加了噪声之后还能重建出来,就说明能够从数据中发现真正的规律了

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第8张图片

 

Dropout AutoEncoders

在训练的时候,有目的得让一些权值断开(把weight暂时设置为0,但以后反向传播还要用)

这样给下一层的信息就是有限的了,就迫使系统更加robust,不会依赖所有神经元的输入

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第9张图片

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第10张图片

可以看到,dropout很小的时候accurancy并不是最小的,因为overfitting了,把一些噪声的形态也记住了

 

Adversarial Autoencoders

对抗自编码器,AAE

将GAN的技术应用到了autoencoder上面

AAE是根据VAE发展来的

深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络_第11张图片

encoder把真实分布x映射成隐层的z, decoder 再将z解码还原成x。
AAE的特点就在于在隐层hidden layer中引入了对抗的思想来优化隐层的z

 

 

 

你可能感兴趣的:(深度学习与神经网络(十三)—— Auto-Encoder自编码神经网络)