将神经网络应用于简单的 x^2 函数以进行演示

数据挖掘 机器学习 分类 神经网络 初学者 八度
2022-02-14 13:16:06

我试图为一个简单的 x^2 函数训练一个神经网络

  1. 我在excel中开发了训练数据。第一列 (X) 是 =RANDBETWEEN(-5,5) 即 -5 和 5 之间的随机整数
  2. 第二列简单地平方第一列
  3. 第三列,我的输出“y”列是 0 或 1。如果第二列小于 12.5,则为 0,否则为 1

我制作了 850 个训练示例,并使用第一列作为“X”,第三列作为“y”

但是我只能获得 63% 的训练准确率!

我哪里错了?我将 input_layer 更改为 1 并尝试了 5 到 35 之间的隐藏单元。尝试了正则化 lambda 0 到 2 但仍然只有 63% 的准确度!我哪里错了?

我的预测函数是 p = 1 如果 h2(i)>0.5 否则为 0。

任何帮助都感激不尽!:-)

我还注意到,对于所有训练示例,我的神经网络的输出都是 0.3XXX ......这怎么可能?

2个回答

我使用 keras 在 python 中重新实现了您的设置。我使用了大小为 25 的隐藏层,我所有的激活都是 sigmoid 的。我的准确率达到了 99.88%。尝试将您的算法运行更多的时期。使用二元交叉熵作为损失函数并尝试降低梯度下降算法的学习率。这应该有助于提高您的准确性。我对性能不佳的唯一解释是你被困在了局部最小值,如果是这种情况,你的权重的不同启动应该可以解决这个问题。

问题解决了!我的成本公式中有错误...由于缺少括号,lambda 没有与两个 theta 分量相乘!解决了这个问题,现在一切正常。:-)