深层神经网络可以在没有归一化的情况下近似乘积函数吗?


27

假设我们要f = x * y使用标准深层神经网络来简化回归。

我记得有一些重述,告诉我们带有一个隐藏层的NN可以近似任何函数,但是我尝试过并且没有规范化,即使是这种简单的乘法,NN也无法近似。只有数据的对数归一化才有帮助,m = x*y => ln(m) = ln(x) + ln(y). 但这看起来像个骗子。NN是否可以在没有对数归一化的情况下做到这一点?显然,(对我来说)是坚定的人-是的,所以问题是这种NN的类型/配置/布局应该是什么?

Answers:


13

较大的乘法函数梯度可能会迫使网络几乎立即进入某种恐怖状态,其中所有隐藏节点的梯度为零(由于神经网络的实现细节和局限性)。我们可以使用两种方法:

  1. 除以常数。我们只是在学习之前划分所有内容,然后在学习之后复制。
  2. 使用对数归一化。它使乘法相加:

    =Xÿln=lnX+lnÿ


5

今天早些时候我也遇到了类似的问题,令我惊讶的是我找不到快速的答案。我的问题是,鉴于NN仅具有求和函数,它们如何对乘法函数建模。

样的回答了这个问题,虽然这是冗长的解释。我的总结是,NN对功能表面进行建模,而不是对功能本身进行建模。回想起来,这是显而易见的……


5

当输入范围受到限制时,具有relu激活功能的NN可以近似乘法。回想一下relu(x) = max(x, 0)

如果NN近似平方函数就足够了g(z) = z^2,因为x*y = ((x-y)^2 - x^2 - y^2)/(-2)。右侧只有线性组合和正方形。

NN可以z^2用分段线性函数近似。例如,在范围内[0, 2]x和的组合relu(2(x-1))还不错。下图显示了这一点。不知道这是否超出理论范围:-) 在此处输入图片说明


0

“一个隐藏层”不限制神经元的数量和使用的激活功能的种类,它仍然具有较大的表示空间。一种验证此问题是否存在的简单方法:使用真实的神经元网络训练该回归问题,记录每个权重和偏差,使用这些参数绘制预测曲线,并将其与目标函数曲线进行对比。 这篇文章可能会有所帮助。


0

由于是StackExchange的新用户,我无法发表评论。但是我认为这是一个重要的问题,因为它是如此简单易懂却难以解释。相对而言,我认为接受的答案还不够。如果您考虑标准前馈NN的核心操作,并通过s(W*x+b)一些非线性激活函数的形式进行激活s,那么即使在组合(多层)网络中,如何从中“获得”乘法实际上也并不明显。缩放(公认的答案中的第一个项目符号)似乎根本没有解决问题……缩放是什么?对于每个样本,输入xy可能不同。只要您知道,就可以记录日志这就是您需要做的,并注意预处理中的符号问题(因为显然没有为负输入定义日志)。但这从根本上讲与神经网络可以“学习”的观点并不吻合(就像OP所说的那样,就像是作弊一样)。我不认为这个问题应该被比我更聪明的人回答才真正回答!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.