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

问题描述 投票:1回答:1

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

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

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

enter image description here

我实现了这个,但是即使在100万个时代之后,我也遇到了一个问题,即网络卡在输入数据1和1上。应该有“0”作为答案,但答案通常是0.5something。我检查了我的代码,这是正确的。

如果我将尝试在隐藏层中再添加1个神经元,网络在~50 000个时期后成功计算XOR。

enter image description here

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

来吧,如果XOR产生了很多问题,也许我们不应该将它用作神经网络的“hello world”?请解释发生了什么。

machine-learning neural-network
1个回答
0
投票

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

XOR是教授神经网络的一个很好的功能,因为作为CS学生,班上的学生可能已经熟悉它。此外,从单个感知器可以学习它的意义上讲,这并非微不足道。它不是线性的。看到我放在一起的这张图。

enter image description here

没有用于分隔这些值的行。 YET,它足以让人类理解,更重要的是,人类可以理解可以解决它的神经网络。 NN非常黑盒子,很难说它们为什么工作得非常快。地狱,这是另一个可以解决XOR的网络配置。

enter image description here

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

关键在于它是一个简单的问题,可以通过人类和黑板在课堂上解决,同时也比给定的线性函数更具挑战性。

编辑:实际上教授NN的另一个奇妙的例子是MNIST手绘数字分类数据集。我发现它非常容易地显示出一个同时非常简单易于理解的问题,非常难以编写非学习程序,以及一个非常实用的机器学习用例。问题是网络结构不可能在黑板上绘制,并以一种实用的方式跟踪正在发生的事情。 XOR实现了这一点。

编辑2:此外,没有代码,可能很难诊断为什么它没有收敛。你自己写过神经元了吗?优化功能等怎么样?

编辑3:如果你的函数最后一个节点的输出是0.5,尝试使用步进压缩功能,使得.5以下的所有值都变为0,所有0.5以上的值变为1.你只有二进制输出,所以为什么要打扰连续在最后一个节点上激活?

© www.soinside.com 2019 - 2024. All rights reserved.