去噪自动编码器是自动编码器的扩展,帮助自动编码器避免出现空函数(即输出等于输入),这一过程就被称为“去噪”。
去噪自动编码器工作原理
自动编码器是一类用于特征选择和提取的神经网络,也称为降维。一般来说,自动编码器中的隐藏层越多,这种降维就越精细。但是,如果自动编码器的隐藏层多于输入,则存在算法在训练期间仅学习空函数的风险,即输出简单地等于输入的点,然后自动编码器变得无用。
去噪自动编码器试图通过引入噪声来规避空函数的风险,即随机破坏输入,去噪自动编码器通过随机将一些输入值变为零来故意破坏数据来解决这个问题,以便自动编码器必须“去噪”或重建原始输入。
应用于输入的噪声量采用百分比形式。通常30%就可以了,但如果数据很少,就需要考虑添加更多噪声,比如50%。这取决于数据量和输入节点。
需要注意的是在计算损失函数时,重要的是将输出值与原始输入进行比较,而不是与损坏的输入进行比较。这样就消除了学习空函数而不是提取特征的风险。
其他类型的自动编码器
稀疏自动编码器:包括比输入更多的隐藏节点,但一次只允许少量激活。
变分自动编码器:使用变分方法学习潜在表示,这会产生额外的损失分量和一种称为随机梯度变分贝叶斯的新训练算法。
收缩自动编码器:在目标函数中添加一个正则化器,强制模型学习一个对输入值变化更灵活的函数。