Neural network 使用真输出和假输出的神经网络

Neural network 使用真输出和假输出的神经网络,neural-network,encog,Neural Network,Encog,由于我是神经网络新手,为了更清楚地理解它,我想问几个问题 问题1:我想测试真/假结果(模式识别),那么这是否意味着我的输出层将有2个中子 问题2:继续问题1,如果在训练数据中,它只包含真实数据,那么测试数据中的所有结果总是真实的?(因为我遇到了这个问题,而Encog库不允许我指定两个输出中子,因为我在训练数据中只有一种类型的输出) 我的培训数据: 1,2,3,4 Pattern1 6,7,8,9 Pattern1 我的测试数据: 4,3,2,1 Pattern2 这是我从encog得到的

由于我是神经网络新手,为了更清楚地理解它,我想问几个问题

  • 问题1:我想测试真/假结果(模式识别),那么这是否意味着我的输出层将有2个中子
  • 问题2:继续问题1,如果在训练数据中,它只包含真实数据,那么测试数据中的所有结果总是真实的?(因为我遇到了这个问题,而Encog库不允许我指定两个输出中子,因为我在训练数据中只有一种类型的输出)
我的培训数据:

1,2,3,4 Pattern1
6,7,8,9 Pattern1
我的测试数据:

4,3,2,1 Pattern2
这是我从encog得到的结果: 神经网络结果:

0.0,0.0, actual=-0.05972914453206861,ideal=1.0
有人能告诉我哪里错了吗?

非常感谢。

如果您只需要一个真/假响应,那么您的输出层应该只有一个神经元。如果那一个神经元是活跃的,就当作是真的。如果未激活,则将其视为false

如果您的训练数据只有真实值,那么它就是坏数据,不会真正起作用。你只需要训练你的人际网络,使其始终以真实的方式回应。也许您应该找出一些可能导致错误结果的数据,并将其添加到训练数据中

如果您的培训数据只有两种情况,并且它们都是正确的,那么您的网络将不会真正学到任何东西。你需要更多的数据来明确模式

去问一个聪明人(我们拥有的最好的神经网络)以下问题:

1,2,3,4 is true; 6,7,8,9 is true. Is 4,3,2,1 true?
他们不知道。我不知道。没人知道。我不知道标准是什么。它可以是任何数量的事物来决定序列是否正确。包括:

  • 数字在上升
  • 它们朝着同一个方向移动
  • 他们总是分开的
  • 所有的数字都在10以下
我不知道其中哪些是需求,哪些不是。不知道。而你正在制作的神经网络的想法就更少了

主要的问题是你需要更多的数据


最后一个音符。人们常说,神经网络擅长“模式匹配”。这是真的。然而,数字序列通常不是“模式匹配”的意思。任何需要算术运算的东西都不会被神经网络很好地服务。它们在算术上不够精确。因此,你永远无法训练一个神经网络,例如识别一个双倍数序列。

在输出字段中,将模式1转换为0,将模式2转换为1。然后确保训练和测试数据中都有0和1个样本,正如@Damien Black所提到的。我想1,2,3,4只是@Xitrium给出的一个例子。假设真实数据不太几何谢谢你的回答,还有一点我想澄清的是,由于神经网络需要真实和错误的数据进行操作,这是否也适用于支持向量机的一类分类?