Machine learning 这是多类回归的良好对数损失吗?
我一次要预测多个类,因此我将问题视为二进制标签/类上的非线性回归,并将其视为真实输出 也就是说,损失函数是每个标签的日志损失的总和,然后对批次中的每个示例进行平均。这是我的损失函数:Machine learning 这是多类回归的良好对数损失吗?,machine-learning,tensorflow,classification,regression,deep-learning,Machine Learning,Tensorflow,Classification,Regression,Deep Learning,我一次要预测多个类,因此我将问题视为二进制标签/类上的非线性回归,并将其视为真实输出 也就是说,损失函数是每个标签的日志损失的总和,然后对批次中的每个示例进行平均。这是我的损失函数: prediction = tf.sigmoid(hidden_out) # Prediction output, from 0.0 to 1.0 # Avoid infinite gradients for extreme cases # by remapping the prediction from 0.0
prediction = tf.sigmoid(hidden_out) # Prediction output, from 0.0 to 1.0
# Avoid infinite gradients for extreme cases
# by remapping the prediction from 0.005 to 0.995:
pred = prediction*0.99+0.005
# Log loss: mean is on batch_size, sum is on labels:
loss = tf.reduce_mean(
tf.reduce_sum(
- labels*tf.log(pred) - (1.0-labels)*tf.log(1.0-pred),
reduction_indices=1
)
)
我怀疑这有问题。我试图训练一个具有剩余初始层的深度卷积神经网络。我在学习率较低的情况下很快就得到了一些损失的NaN
值
我的日志丢失正确吗?有什么建议吗?您可以使用已经用于多类逻辑回归的损失,而不是您的损失:。它被精心设计以避免数值问题
此外,与其剪切预测,不如剪切渐变。例如,请参见。哦,非常感谢!我认为这个损失函数只存在于
softmax
xent的API中。