自编码神经网络是一种无监督学习算法,它使用了反向传播算法,并让目标值等于输出值。
当隐藏神经元的数量较大时(可能比输入像素的个数还要多),我们仍然通过神经网络施加一些其他的限制条件(例如稀疏性限制)来发现数据中的结构。
稀疏性:如果当神经元的输出接近于1的时候我们认为他被激活,而输出接近于0的时候认为他被抑制,那么使得神经元大部分时间都被抑制的限制则被称为稀疏性限制。(这里我们假设神经元的激活函数是sigmoid函数。)
a(2)j(x)
a
j
(
2
)
(
x
)
表示在给定输入为x的情况下,自编码神经网络隐藏神经元
j
j
的激活度。
表示隐藏神经元 j j 的平均活跃度(在训练集上取平均)。
我们可以近似地加一条限制,其中, ρ ρ 是稀疏性参数,通常是一个接近于0 的较小的值(比如 ρ=0.05 ρ = 0.05 )
为了实现这一限制,我们将会在我们的优化目标函数中加入一个额外的惩罚因子,而这一惩罚因子将惩罚那些 ρ^j ρ ^ j 和 ρ ρ 有明显不同的情况从而使得隐藏神经元的平均活跃度保持在较小的范围内。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/35eaa5c8c30608f614941fc77a6eab1c.png)
s2 s 2 代表隐藏层中隐藏神经元的数量。
相对熵是一种标准的用来测量两个分布之间差异的方法。
这一惩罚因子实际上是基于他的,可以被表示为
其中,是一个以
ρ
ρ
为均值和一个以
ρ^j
ρ
^
j
为均值的两个伯努利随机变量之间的相对熵。