Answers:
可以通过查看模型来找到差异。首先让我们看一下稀疏编码。
稀疏编码将目标最小化 。| W H − X | | 2 2 ⏟重建术语 + λ | | H | | 1分稀疏项 ,其中W是基数矩阵,H是代码矩阵,X是我们要表示的数据矩阵。λ实现了稀疏性与重建之间的权衡。请注意,如果给定H,则W的估计
在开始的时候,我们没有但是。然而,存在许多可以解决上述关于H的目标的算法。实际上,这就是我们的推理方式:如果我们想知道属于看不见的x的h,就需要解决一个优化问题。
自动编码器是一系列无监督的神经网络。它们有很多,例如深层自动编码器或附加了不同正则化技巧的编码器,例如降噪,压缩,稀疏。甚至存在概率性变量,例如生成随机网络或变分自动编码器。它们最抽象的形式是 但我们会随着一个更简单的一个去现在: 大号AE = | | w ^ σ (w ^ Ť X
注意,长相几乎像大号一个ë一旦我们设置ħ = σ (w ^ Ť X )。两者的区别在于:i)自动编码器不鼓励其一般形式的稀疏性; ii)自动编码器使用模型来查找代码,而稀疏编码则通过优化来这样做。
取决于。)
同样,不同的正则化方法会产生具有不同特征的表示。去噪自动编码器也已被证明等同于某种形式的RBM等。
如果您想解决预测问题,则无需自动编码器,除非只有很少的标签数据和大量的未标签数据,。然后,通常最好训练一个深度自动编码器,然后将线性SVM放在顶部,而不是训练一个深度神经网络。
但是,它们是捕获分布特征的非常强大的模型。这是模糊的,但是目前正在进行将其转化为硬统计事实的研究。深潜高斯模型(又称变分自动编码器或生成随机网络)是获得自动编码器的非常有趣的方式,该编码器可以可靠地估算基础数据分布。
在神经科学中,术语“神经编码”用于指由刺激诱导的神经元电活动的模式。稀疏编码又是一种模式。当刺激(如图像)仅激活相对较少数量的神经元(组合在一起以稀疏方式表示)的激活时,代码就是稀疏的。在机器学习中,可以使用与创建稀疏代码模型相同的优化约束来实现稀疏自动编码器,该稀疏自动编码器是经过稀疏性约束训练的常规自动编码器。下面给出了每个问题的详细说明。
稀疏编码被定义为学习一组过度完整的基础向量来表示输入向量(<-为什么要这样做)
首先,至少自从(Hubel&Wiesel,1968)以来,就知道在V1区域中存在特定的细胞,这些细胞对边缘样刺激产生最大的反应(除了具有其他“有用的”特性外)。稀疏编码是一个模型,可以很好地解释该系统的许多观察特性。参见(Olshausen&Field,1996)更多详细信息。
其次,已经表明,描述稀疏编码的模型是用于机器学习中的特征提取的有用技术,并且在转移学习任务中产生了良好的结果。Raina等。(2007)表明,使用由手写字符组成的训练集学习的一组“基本向量”(特征,如笔触和边线)可改善手写数字识别任务中的分类。后来,基于稀疏编码的模型已用于训练“深度”网络,堆叠稀疏特征检测器的层以创建“稀疏深度置信网” (Lee等,2007)。。最近,使用基于稀疏编码的模型构建具有多层结构的网络(著名的“ Google Brain”),在图像识别方面取得了令人惊讶的结果,该网络能够以纯粹的无监督方式区分猫的图像(Le等。 ,2013)。
第三,可能有可能使用学习到的基础来执行压缩。一个还没有看到任何人真的这样做。
稀疏编码和自动编码器有什么区别?
自动编码器是一种通常使用某种约束来尝试重建其输入的模型。根据维基百科,它“是一种用于学习有效编码的人工神经网络”。自动编码器的定义中没有要求稀疏性的内容。基于稀疏编码的约束是可用的技术之一,但是还有其他技术,例如,降噪自动编码器,压缩自动编码器和RBM。所有这些使网络学习到输入的良好表示(通常也很“稀疏”)。
什么时候使用稀疏编码和自动编码器?
您可能对使用自动编码器进行深度网络的特征提取和/或预训练感兴趣。如果使用稀疏性约束实现自动编码器,则将同时使用两者。
稀疏编码器有点像自动编码器的一半。自动编码器的工作原理如下:
input => neural net layer => hidden outputs => neural net layer => output
对于反向传播,误差信号(损耗)为:输入-输出
如果我们对隐藏的输出应用稀疏约束,则大多数将为零,少数将为1。然后,第二层实质上是一组线性基函数,根据隐藏输出中的哪一个为1s,它们被加在一起。
在稀疏编码中,只有后半部分:
codes => neural net layer => output
“代码”是一堆实数,为神经网络层中的权重表示的基函数进行选择。由于在Olshausen的论文中,他们将稀疏性约束应用于代码,因此,就像在稀疏自动编码器中一样,这些代码也是稀疏的:多数为零,少数为零。
我们现在可以清楚地看到不同之处:对于稀疏编码,没有神经网络的前半部分:神经网络不会自动为我们提供代码。
我们如何获得稀疏编码中的代码?我们必须通过使用梯度下降或类似方法进行优化,以找到最能提供与输入图像匹配的输出的代码集。我们必须每次对每个图像(包括每个测试图像)执行此操作。
您可能想阅读有关同一主题的最新论文https://arxiv.org/abs/1708.03735v2。在本文中,作者表明,确实可以设置一种自动编码器,使得地面真理字典是该自动编码器平方损耗函数的关键点。