AutoEncoder: 稀疏自动编码器 Sparse_AutoEncoder
本文为系列文章AutoEncoder第三篇.AutoEncoder对几种主要的自动编码器进行介绍,并使用PyTorch进行实践,相关完整代码将同步到Github
本系列主要为记录自身学习历程,并分享给有需要的人.水平所限,错误难免,欢迎批评指正,不吝赐教.
本文及本系列将不定期更新.
AutoEncoder:
- 自动编码器 AE
- 堆叠自动编码器 Stacked AutoEncoder
- 稀疏自动编码器 Sparse AutoEncoder
- 降噪自动编码器 Denoising AutoEncoder
- 变分自动编码器 Variational AutoEncoder
- CAE
本文主要包含一下内容:
稀疏自动编码器的基本概念,原理,并使用MNIST数据集进行实现
写在前面:推荐一篇斯坦福Andrew Ng的CS294A Lecture notes, 对神经网络,SAE以及KL等都有很好的讲解,本文很多内容来源于此.
1. 基本概念
稀疏自动编码器(SAE)其实就是在普通autoencoder的基础上增加了稀疏
的约束,使得神经网络在隐藏层神经元较多的情况下依然能够提取样本的特征和结构.
且该稀疏性penalty
是用来惩罚隐藏层激活输出值的,而不是输出层的输出.
关于稀疏的解释:
当神经元的的输出接近激活函数上限时(例如对于Sigmoid为1)称该神经元状态为激活,反之当神经元的输出接近激活函数的下限时称该神