tensorflow - 使用 Sigmoid 激活函数代替线性激活与在损失中使用 sigmoid 的区别

标签 tensorflow loss-function softmax sigmoid

我对损失函数相当陌生,我有一个 800 个二元分类问题(意味着输出端有 800 个神经元不受彼此影响 - 每个神经元的概率为 0 或 1)。现在查看文档:https://www.tensorflow.org/api_docs/python/tf/nn/sigmoid_cross_entropy_with_logits

它似乎使用“logits”,它是具有线性激活函数的网络的输出,并且在损失函数中应用了 Sigmoid(二元分类所需)。

我正在研究软最大激活的损失函数,并应用了类似的方法。我想知道为什么激活函数没有添加到网络输出中,并且损失函数接收线性输出(logits)并在损失函数中应用激活。

最佳答案

没有什么大的原因。损失中使用了sigmoid

  • 让您在其他地方少走一步
  • 确保损失的每个输入都在 (0,1) 之间标准化。

如果您不需要这种便利(实际上对您来说很痛苦),只需使用其他预定义的损失(tf.losses.log_loss)或自己创建一个。 :)

关于tensorflow - 使用 Sigmoid 激活函数代替线性激活与在损失中使用 sigmoid 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56639942/

相关文章:

python - Keras plot_model 没有正确显示输入层

python - TensorFlow - 根据另一个变量的形状动态定义变量的形状

python - 交叉熵损失和逻辑损失之间有什么区别吗?

python - Python中softmax函数的导数

python - tensorflow ffmpeg contrib 输出

python - 保存在 Tensorflow 模型中的自定义文本预处理

python-3.x - 如何在 Keras 中创建自定义损失函数来评估每个时期后的预测?

tensorflow - 平均绝对相对误差作为 tensorflow 中的损失函数(回归问题)

python - 不同的Sigmoid方程及其实现

python - NumPy 中的 Softmax 导数趋近于 0(实现)