0

我要训练一个神经网络(例如前馈网络),其中输出只是一个表示概率的实数值(因此在[0, 1]间隔)。我应该为最后一层(即输出节点)使用哪种激活函数?当标签为概率时训练TensorFlow回归模型

如果我不使用任何激活函数并输出tf.matmul(last_hidden_layer, weights) + biases它可能会导致一些负输出,这是不可接受的,因为输出是概率,因此预测也应该是概率。如果我使用tf.nn.softmaxtf.nn.softplus,则模型在测试集中始终返回0。任何建议?

回答

1

最简单的方法是使用sigmoid激活作为输出,因为这会将任何输出范围挤压到[0,1]范围内。然后为了训练,您可以使用均方误差或类似损失,或二元交叉熵。一般来说,二进制交叉熵可能更好。

+0

谢谢Matias。这是有道理的,但是当我使用sigmoid作为最后一个节点的激活函数时,所有的预测变为零。任何想法? – boomz

+0

@boomz不是从这么少的信息,我想你的网络或培训有问题,我希望你不是初始化权重为零:) –