Machine learning 神经网络与异或分类
我在某处读到,均方误差损失有利于回归,交叉熵损失有利于分类 当我试图将XOR训练为具有交叉熵损失的分类问题时,网络未能收敛 我的设置: 网络是2-2-2 第一个输出是信号0,第二个输出是信号1,所以有两类输入 交叉熵用于计算网络输出层的误差,而不是均方误差 作为一个激活函数,Im使用logsigMachine learning 神经网络与异或分类,machine-learning,neural-network,Machine Learning,Neural Network,我在某处读到,均方误差损失有利于回归,交叉熵损失有利于分类 当我试图将XOR训练为具有交叉熵损失的分类问题时,网络未能收敛 我的设置: 网络是2-2-2 第一个输出是信号0,第二个输出是信号1,所以有两类输入 交叉熵用于计算网络输出层的误差,而不是均方误差 作为一个激活函数,Im使用logsig 显然,我遗漏了什么,我的错误在哪里?这是Mathematica中这个网络的一个实现: net = NetChain[{2, Tanh, 2, Tanh, 1, LogisticSigmoid}, "In
显然,我遗漏了什么,我的错误在哪里?这是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"]
经过几千轮之后,它们会聚在一起。所以,我不认为你遗漏了什么——你的库中可能有一个bug
请提供代码。很抱歉,我不能,我写我自己的库是为了教育目的,所以即使我发布代码,没有库也毫无意义。问题是,你知道我思想上的缺陷吗?例如,在训练经典异或时,必须使用tansig激活,否则它将无法收敛。你知道,我在寻找这种问题,所以我相信,缺少代码不是问题。这是一个编程网站,如果你没有代码,那么这个问题就离题了。