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中。