gpt4 book ai didi

c++ - 为什么改变这个网络中隐藏神经元的数量对效率没有影响?

转载 作者:太空宇宙 更新时间:2023-11-04 13:06:48 25 4
gpt4 key购买 nike

我刚刚根据这个视频编写了神经网络

https://www.youtube.com/watch?v=KkwX7FkLfug

虽然不是真的需要,但源代码可以在这里找到 http://inkdrop.net/dave/docs/neural-net-tutorial.cpp

我稍微更改了输入数据代码,所以现在我的程序会测试点是在一条线的上方还是下方。这个功能有效。它打印完全相同的输入/目标文件,但 X 和 Y 坐标的值介于 0 和 20 之间,输出值根据该点是否位于 Y = 2x+4 线上方计算为 0 或 1。输入文件已生成且准确无误。

我进行了一些测试,发现了有趣的结果。使用 2 4 1(2 个输入神经元、4 个隐藏神经元、1 个输出)拓扑和 2000 个输入值运行程序会产生 9.164...E61 的初始误差在 pass 1 上。在 pass 2000 上,错误减少到 -2.086...E53,仍然相当不准确...

现在,让我们将输入大小增加到 10000。显然,这应该会提高程序的准确性,因为它有更多的东西要学习。确实如此,错误现在减少到 -5.602...E18,我可以看到它的输出值非常准确。

这就是问题所在。除非我错了,否则我认为网络中隐藏神经元的数量是提高网络效率的因素。我已将拓扑更改为 2 50 1,并将输入大小保持在 2000。但这会导致与以前相同的结果!为什么是这样?在输入大小相同的情况下,增加隐藏神经元的数量不应该减少错误吗?

更新:我刚刚尝试通过使用 2 4 4 4 4 4 1 的拓扑来增加隐藏神经元的层数。这对数据没有影响

最佳答案

通常,在尝试构建神经模型时,您会从少量神经元开始。也有像 Deepnets 或 Reservoir 计算这样的异常(exception)。你可以增加神经元的数量,但是,提供太多会扩大搜索空间,你可能没有足够的数据来训练,或者网络变得比规则模型更多的内存,当然你需要更多的迭代来训练它.我会寻找其他方法来改进网络,查看输入、网络类型、传输函数。

关于c++ - 为什么改变这个网络中隐藏神经元的数量对效率没有影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867800/

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