Neural network 离散输出的反向传播神经网络

Neural network 离散输出的反向传播神经网络,neural-network,backpropagation,Neural Network,Backpropagation,我正在使用三层反向传播网络完成xor示例。当输出层具有sigmoid激活时,(1,0)的输入可能为1的期望输出提供0.99,而(1,1)的输入可能为0的期望输出提供0.01 但是,如果希望输出是离散的(0或1),我是否只需将阈值设置为0.5?这个阈值是否需要像任何其他权重一样进行训练?当然,你可以在输出神经元后设置一个阈值,使0.5之后的值为1,反之亦然,所有低于0.5的输出值为0。我建议不要用离散化阈值来隐藏连续输出,因为0.4的输出比0.001的值“零”要小,这个差异可以为您提供有关数据的有

我正在使用三层反向传播网络完成xor示例。当输出层具有sigmoid激活时,(1,0)的输入可能为1的期望输出提供0.99,而(1,1)的输入可能为0的期望输出提供0.01


但是,如果希望输出是离散的(0或1),我是否只需将阈值设置为0.5?这个阈值是否需要像任何其他权重一样进行训练?

当然,你可以在输出神经元后设置一个阈值,使0.5之后的值为1,反之亦然,所有低于0.5的输出值为0。我建议不要用离散化阈值来隐藏连续输出,因为0.4的输出比0.001的值“零”要小,这个差异可以为您提供有关数据的有用信息

不使用阈值进行训练,即使用神经元网络的输出计算示例上的错误,而不使用阈值

另一个小细节:你使用传递函数,比如sigmoid?sigmoid函数返回[0,1]中的值,但0和1是渐近线的,即。sigmoid函数可以接近这些值,但永远无法达到这些值。这样做的结果是,你的神经网络不能准确地输出0或1!因此,使用sigmoid乘以略高于1的因子可以纠正这一点。这里讨论了反向传播的这一点和其他一些实际方面