我将训练神经网络(例如,前馈网络),其中输出仅是表示概率的实际值(因此在[0,1]间隔中)。我应该为最后一层(即输出节点)使用哪种激活功能?
如果我不使用任何激活函数并且仅输出tf.matmul(last_hidden_layer, weights) + biases
,则可能导致一些负输出,这是不可接受的,因为输出是概率,因此预测也应该是概率。如果我使用tf.nn.softmax
或tf.nn.softplus
,模型总是在测试集中返回0。有什么建议吗?
答案 0 :(得分:1)
最简单的方法是使用sigmoid激活作为输出,因为这会将任何输出范围压缩到[0,1]范围内。然后,对于训练,您可以使用均方误差或类似损失,或二元交叉熵。通常,二进制交叉熵可能会更好。