首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >神经网络-为什么每个人都有不同的XOR方法

神经网络-为什么每个人都有不同的XOR方法
EN

Stack Overflow用户
提问于 2018-03-04 09:14:29
回答 1查看 229关注 0票数 2

目前,我正在尝试通过阅读书籍来学习如何使用神经网络,但主要是通过互联网教程。

我经常看到"XOR是神经网络的'Hello World‘“。

但是这里有一件事:一个教程的作者说,对于计算XOR值的神经网络,我们应该使用1个隐藏层和2个神经元。此外,他还使用带增量的反向传播来调整权重。

我实现了这一点,但即使在一百万次之后,我仍然有一个问题,网络被输入数据1和1卡住了。答案应该是"0“,但答案通常是0.5左右。我检查了我的代码,它是正确的。

如果我尝试在隐藏层中再添加一个神经元,网络在大约50,000个时期后成功地计算了XOR。

与此同时,也有人说"XOR不是一项微不足道的任务,我们应该使用具有2-3层或更多层的网络“。为什么?

来吧,如果XOR产生了这么多问题,也许我们不应该把它当作神经网络的“你好世界”?请解释一下发生了什么事。

EN

回答 1

Stack Overflow用户

发布于 2018-03-04 09:34:27

因此,神经网络非常有趣。有一个证据表明,只要有足够的时间,单个感知器就可以学习任何线性函数。更令人印象深刻的是,一个只有一个隐藏层的神经网络显然可以学习任何功能,尽管我还没有看到这一点的证据。

对于教授神经网络来说,XOR是一个很好的函数,因为作为CS学生,班上的学生可能已经熟悉了它。此外,在单个感知器可以学习它的意义上,它也不是微不足道的。它不是线性的。看我放在一起的这张图。

这些值之间没有分隔线。然而,它对人类来说足够简单,更重要的是,人类可以理解可以解决它的神经网络。神经网络是非常黑盒的,所以很难知道为什么它们工作得这么快。见鬼,这是另一个可以解决异或的网络配置。

你的一个更复杂的网络的例子更快地解决了它,展示了组合更多神经元和更多层的力量。绝对没有必要使用2-3个隐藏层来解决它,但它肯定有助于加快这一过程。

重点是,这是一个足够简单的问题,可以由人类在课堂上的黑板上解决,同时也比给定的线性函数稍具挑战性。

编辑:另一个实际教授NNs的极好的例子是MNIST手绘数字分类数据集。我发现它很容易显示出一个问题,这个问题对人类来说非常简单,很难为其编写非学习程序,并且是机器学习的一个非常实际的用例。问题是,网络结构不可能在黑板上绘制,并以一种对类实用的方式跟踪正在发生的事情。XOR实现了这一点。

编辑2:此外,如果没有代码,可能很难诊断为什么它不收敛。神经元是你自己写的吗?那么优化函数等等呢?

编辑3:如果你的函数最后一个节点的输出是0.5,试着使用一个步长压缩函数,把所有低于.5的值变成0,把所有大于0.5的值变成1。不管怎么说,你只有二进制输出,所以为什么要在最后一个节点上连续激活呢?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49090962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档