gpt4 book ai didi

machine-learning - 神经网络不学习,收敛于一个输出

转载 作者:行者123 更新时间:2023-11-30 09:23:29 25 4
gpt4 key购买 nike

我正在尝试对神经网络进行编程,现在正在测试它。我已将其简化为 2 个训练示例,其中包含 2 个输入和 1 个输入。

Input : Output
1,0 : 1
1,1 : 0

我循环前向和反向传播 1,000 次,网络输出始终收敛到 1 或 0,具体取决于初始化随机权重的起始位置。无论我输入什么,输出都是一样的。它不会学习。

我不确定如何寻求帮助而不会使我的所有代码重载,所以我将发布我正在做的事情:

Create random initial weights
For i = 1 to 1000
For j = 1 to Samples in Training Set (2)
Set activations (Sigmoid function)
Forward-prop
delta = sum of (deltas in next layer * weights connecting this node with next deltas) * act*(1-act)
Weights = Weights + lambda(.05) * delta * x(i)

我似乎做错了什么吗?我应该发布部分/全部代码吗?关于我还应该测试什么有什么建议吗?我一直在 Excel 中手动测试所有内容,一切似乎都按我预期的方式工作(前向传播、增量计算等)

最佳答案

如果您尝试训练它进行异或,那么您应该使用所有四个训练示例(0,0->0)等。不要将计算网络的输出与反向传播等同起来,反向传播是指计算误差值隐藏层神经元。

反向传播本身就是一种算法,多层感知器使用它来(宽松地说)“推断”隐藏层神经元的误差值。反向传播适用于单个隐藏层神经元,通过将来自该神经元的每个权重与它们所连接的神经元的误差值相加来实现。

在所有四个示例上训练您的网络,它不应超过 10,000 个 epoch,因为它收敛得很好,但 1000 个可能就可以了。

另一个注意事项:无论学习问题如何,神经网络(以及几乎所有机器学习算法)在更多数据(训练示例)下总是会表现得更好。

关于machine-learning - 神经网络不学习,收敛于一个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23526637/

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