【问题标题】:Neural network and XOR as a classification神经网络和 XOR 作为分类
【发布时间】:2018-02-11 23:10:28
【问题描述】:

我在某处读到,均方误差损失适用于回归,交叉熵损失适用于分类。

当我尝试将 XOR 训练为具有交叉熵损失的分类问题时,网络未能收敛。

我的设置:

  • 网络为 2-2-2

  • 第一个输出是信号 0,第二个是 1(所以有两类输入)。

  • 交叉熵用于计算网络输出层的误差,而不是均方误差。

  • 作为激活函数,我用的是logsig。

显然,我错过了什么,我的错误在哪里?

【问题讨论】:

  • 请提供代码。
  • 对不起,我不能,我写了自己的lib用于教育目的,所以即使我发布代码,没有lib也将毫无意义。问题是,你知道我思想的缺陷吗?例如,在训练经典异或时,必须使用 tansig 激活,否则将无法收敛。你知道,我正在寻找这种问题,所以我相信,缺少代码不是问题。
  • 这是一个编程网站,如果你没有代码,那问题就跑题了。

标签: machine-learning neural-network


【解决方案1】:

这是这个网络在 Mathematica 中的实现:

net = NetChain[{2, Tanh, 2, Tanh, 1, LogisticSigmoid}, "Input" -> {2}];

eps = 0.01;
data = {{0, 0} -> {eps}, {1, 0} -> {1 - eps}, {0, 1} -> {1 - eps}, {1,
      1} -> {eps}};

trained = 
 NetTrain[net, data, CrossEntropyLossLayer["Binary"], 
  MaxTrainingRounds -> Quantity[5, "Minutes"], TargetDevice -> "GPU"]

几千轮后收敛。所以,我认为您没有遗漏任何内容 - 您的库中可能存在错误

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 2017-01-30
    • 2023-03-23
    • 2014-05-09
    • 2015-07-21
    • 2015-02-04
    • 2019-03-15
    • 2016-05-13
    • 2012-03-28
    相关资源
    最近更新 更多