为什么我们需要自动编码器的稀疏性?

机器算法验证 机器学习 自动编码器
2022-03-21 10:50:33

自动编码器用于降维,并作为无监督特征学习的工具。此外,自动编码器已被用于构建和训练多层神经网络。

当我们谈论自动编码器时,我们引入了稀疏度,我想知道,为自动编码器引入稀疏度项的目的是什么?

1个回答

请记住,自动编码器正试图提出数据的最佳汇总/压缩(隐藏/延迟)表示,以使重构误差最小化。这可以用以下等式表示:

minx^F1nt=1ncost(x(t),x^(t))

其中x^(t)=x^(x(t))是数据点t的重建,F是我们正在考虑的函数空间和cost是您选择的一些成本/距离函数。

如果您选择像多层神经网络这样强大的模型,它是一种通用逼近器,那么这意味着您基本上可以复制您获得的任何输入数据。因此,上述问题的解决方案可能变得空洞和琐碎,因为您的神经网络可能会学习恒等映射:

x^(i)=x^(x(i))=x(i)

如果您的成本函数在对于许多常用的成本函数来说,这可能是正确的,比如欧几里得距离。例如:cost(x(t),x^(t))=cost(x(t),x(t))

minx^F1nt=1n12x(t)x^(t)22

时为零。x(t)x^(t)=0x(t)=x^(t)

因此,如果对您正在考虑的函数空间没有任何进一步的限制,您将不会学习有意义的数据压缩/隐藏表示(因为您的系统/算法太强大并且基本上是一种“过度拟合”)。

要求稀疏解决方案只是解决此问题的一种方法。它只是对您给定的问题强加先验,以便您获得有意义的解决方案。直观地说,它类似于解决“没有免费午餐”的问题。没有某种先验,很难得到有用的东西。