神经网络和 XOR 作为分类
Posted
技术标签:
【中文标题】神经网络和 XOR 作为分类【英文标题】:Neural network and XOR as a classification 【发布时间】:2018-02-11 23:10:28 【问题描述】:我在某处读到,均方误差损失适用于回归,交叉熵损失适用于分类。
当我尝试将 XOR 训练为具有交叉熵损失的分类问题时,网络未能收敛。
我的设置:
网络为 2-2-2
第一个输出是信号 0,第二个是 1(所以有两类输入)。
交叉熵用于计算网络输出层的误差,而不是均方误差。
作为激活函数,我用的是logsig。
显然,我错过了什么,我的错误在哪里?
【问题讨论】:
请提供代码。 对不起,我不能,我写了自己的lib用于教育目的,所以即使我发布代码,没有lib也将毫无意义。问题是,你知道我思想的缺陷吗?例如,在训练经典异或时,必须使用 tansig 激活,否则将无法收敛。你知道,我正在寻找这种问题,所以我相信,缺少代码不是问题。 这是一个编程网站,如果你没有代码,那问题就跑题了。 【参考方案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"]
几千轮后收敛。所以,我认为您没有遗漏任何内容 - 您的库中可能存在错误
【讨论】:
以上是关于神经网络和 XOR 作为分类的主要内容,如果未能解决你的问题,请参考以下文章