gpt4 book ai didi

c# - 教 ANN 如何添加

转载 作者:行者123 更新时间:2023-11-30 18:26:59 25 4
gpt4 key购买 nike

前言:我目前正在学习 ANN,因为我在大约 83 个类别中有大约 18500 张图像。它们将用于训练 ANN 以实时识别大致相等的图像。我按照书中的图像示例进行操作,但它对我不起作用。所以我要回到开头,因为我可能错过了一些东西。

我采用了 Encog XOR 示例并将其扩展为教它如何将小于 100 的数字相加。到目前为止,结果是混合的,即使对于训练后的精确输入也是如此。

输入(从 100 归一化):0+0、1+2、3+4、5+6、7+8、1+1、2+2、7.5+7.5、7+7、50 +50、20+20。输出是添加的数字,然后归一化为 100。

训练 100,000 次后,输入数据的一些样本输出:

0+0=1E-18 (great!)
1+2=6.95
3+4=7.99 (so close!)
5+6=9.33
7+8=11.03
1+1=6.70
2+2=7.16
7.5+7.5=10.94
7+7=10.48
50+50=99.99 (woo!)
20+20=41.27 (close enough)

来自精心挑选的看不见的数据:

2+4=7.75
6+8=10.65
4+6=9.02
4+8=9.91
25+75=99.99 (!!)
21+21=87.41 (?)

我弄乱了层、神经元数量和 [Resilient|Back]Propagation,但我不完全确定它是变好还是变坏。有了上面的数据,层数为2、6、1。

我没有引用框架来判断这个。这是正常的吗?是我输入不够吗?我的数据是否不够完整或不够随机,或者权重过大?

最佳答案

您不是第一个问这个问题的人。教 ANN 加法似乎合乎逻辑。我们教它们充当逻辑门,为什么不教加法/乘法运算符。我不能完全回答这个问题,因为我自己还没有研究过 ANN 在这种情况下的表现如何。

如果您只是教加法或乘法,您可能会在线性输出和无隐藏层的情况下获得最佳结果。例如,要学习加法,两个权重需要为 1.0,而偏置权重必须为零:

线性((输入1 * w1)+(输入2 * w2)+偏差)=成为线性((输入 1 * 1.0)+(输入 2 * 1.0)+(0.0))=

训练 sigmoid 或 tanh 可能会有更多问题。权重/偏置和隐藏层基本上必须撤消 sigmoid 函数才能真正回到上面的加法。

我认为部分问题在于神经网络正在识别模式,而不是真正地学习数学。

关于c# - 教 ANN 如何添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581916/

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