所以我正在尝试自学神经网络(用于回归应用,而不是对猫的图片进行分类)。
我的第一个实验是训练一个网络来实现一个 FIR 滤波器和一个离散傅里叶变换(对“之前”和“之后”信号进行训练),因为它们都是线性操作,可以通过没有激活函数的单层来实现。 两者都工作得很好。
所以我想看看我是否可以添加一个abs()
并让它学习一个幅度谱。首先,我考虑在隐藏层中需要多少个节点,并意识到 3 个 ReLU 足以abs(x+jy) = sqrt(x² + y²)
对输出)。有时它会起作用:
但在我尝试的大多数情况下,它都会陷入局部最小值并且无法找到正确的形状:
我已经尝试过 Keras 中的所有优化器和 ReLU 变体,但它们并没有太大区别。我还能做些什么来使像这样的简单网络可靠地收敛吗?还是我只是以错误的态度来处理这个问题,而您应该在问题上抛出比必要更多的节点,如果其中一半死了,这没什么大不了的?