自动编码器是一种有三层的神经网络:输入层、隐藏层(编码层)和解码层。该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征。
自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标值设置成与输入值相等。自动编码器的训练目标是将输入复制到输出。在内部,它有一个描述用于表征其输入的代码的隐藏层。
自动编码器的目标是学习函数 h(x)≈x。换句话说,它要学习一个近似的恒等函数,使得输出 x^ 近似等于输入 x。自动编码器属于神经网络家族,但它们也和 PCA(主成分分析)紧密相关。
关于自动编码器的一些关键事实:
- 它是一种类似于 PCA 的无监督机器学习算法
- 它要最小化和 PCA 一样的目标函数
- 它是一种神经网络
- 这种神经网络的目标输出就是其输入
尽管自动编码器与 PCA 很相似,但自动编码器比 PCA 灵活得多。在编码过程中,自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换。因为自动编码器的网络表征形式,所以可将其作为层用于构建深度学习网络。
自动编码器的类型:
1. 去噪自动编码器
2. 稀疏自动编码器
3. 变分自动编码器(VAE)
4. 收缩自动编码器(CAE/contractive autoencoder)
A. 去噪自动编码器
这是最基本的一种自动编码器,它会随机地部分采用受损的输入来解决恒等函数风险,使得自动编码器必须进行恢复或去噪。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换 - Python技术站