【发布时间】:2016-09-24 01:27:21
【问题描述】:
我已经阅读了this article 关于自动编码器的内容,它是由 Andrew Ng 介绍的。在那里,他使用像正则化这样的稀疏性来断开连接,但稀疏性的公式与 regur 不同。所以,我想知道为什么我们不直接使用模型 NN 或逻辑回归之类的正则化术语: (1/2 * m) * Theta^2 ?
【问题讨论】:
标签: machine-learning autoencoder
我已经阅读了this article 关于自动编码器的内容,它是由 Andrew Ng 介绍的。在那里,他使用像正则化这样的稀疏性来断开连接,但稀疏性的公式与 regur 不同。所以,我想知道为什么我们不直接使用模型 NN 或逻辑回归之类的正则化术语: (1/2 * m) * Theta^2 ?
【问题讨论】:
标签: machine-learning autoencoder
首先,让我们从一些命名约定开始,对权重的稀疏惩罚和 L2 惩罚都可以(并且经常)称为regularizers。因此,问题应该是“为什么使用基于稀疏性的正则化而不是基于简单的 L2 范数?”。这个问题没有简单的答案,因为它没有深入到基础数学,而是询问什么是更好的方法来确保我们的网络创建一个很好的泛化表示 - 将参数或多或少地保持在固定范围内(L2 正则化,一个你建议的)或确保无论我们作为网络输入的什么,它都会产生相对简单的表示(可能以拥有大量很少使用的权重/神经元为代价)。即使在这个抽象级别上,它也应该显示这两个正则化器之间的定性差异,这将导致构建完全不同的模型。稀疏项总是会更好吗?可能不是,ML 中几乎没有什么是“总是更好”的。但平均而言,对于自动编码器来说,这似乎是一个不那么具有启发性的选择——你想要一种压缩——因此你强迫你的网络创建压缩表示,这真的是......好吧..压缩(小!),同时使用 L2正则化将简单地“挤压”范数表示(因为通过具有小范数的权重的点积不会增加太多输入范数),但它仍然可以使用每个神经元的“微小位”,从而有效地构建一个复杂的表示(使用许多单位)但很简单 - 只需少量激活。
【讨论】: