gpt4 book ai didi

neural-network - 通过神经网络回归最大函数

转载 作者:行者123 更新时间:2023-12-05 03:11:56 26 4
gpt4 key购买 nike

我正在通过学​​习神经网络来训练自己。有一个函数我无法让我的神经网络学习:f(x) = max(x_1, x_2)。这似乎是一个非常简单的函数,有 2 个输入和 1 个输入,但是一个 3 层神经网络训练了超过 1000 个样本和 2000 个时期,却完全错误。我正在使用 deeplearning4j

对于神经网络来说,max 函数很难学习是什么原因,还是我只是调错了它?

最佳答案

只是想指出:如果你使用 relu 而不是 tanh 实际上有一个精确的解决方案,我猜你是否会将网络缩小到这个完全相同的大小(1 个隐藏层和 3 个节点),你总是会得到这些权重(节点的模块排列和权重的缩放(第一层按 gamma 缩放,第二层按 1/gamma 缩放):

max(a,b) = ((1, 1, -1)) * relu( ((1,-1), (0,1), (0,-1)) * ((a,b)) )

其中 * 是矩阵乘法。

这个等式将以下人类可读的版本翻译成神经网络语言:

max(a,b) = relu(a-b) + b = relu(a-b) + relu(b) - relu(-b)

我还没有实际测试过它,我的观点是,从理论上讲,网络应该很容易学习这个功能。

编辑:我刚刚对此进行了测试,结果如我所料:

[[-1.0714666e+00 -7.9943770e-01  9.0549403e-01]
[ 1.0714666e+00 -7.7552663e-08 2.6146751e-08]]

[[ 0.93330014]
[-1.250879 ]
[ 1.1043695 ]]

那里对应第一层和第二层。转置第二个并与第一组权重相乘,最终得到一个标准化版本,可以很容易地与我的理论结果进行比较:

[[-9.9999988e-01  9.9999988e-01  1.0000000e+00]
[ 9.9999988e-01 9.7009000e-08 2.8875675e-08]]

关于neural-network - 通过神经网络回归最大函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35623995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com