这是多类回归的良好对数损失吗?

我需要同时预测多个类别,因此我将这个问题视为对真实输出中的二进制标签/类别进行非线性回归。

鉴于此,损失函数是每个标签的对数损失之和,然后针对批次中的每个示例进行平均。这里是我的损失函数:

prediction = tf.sigmoid(hidden_out)  # 预测输出,从0.0到1.0# 避免极端情况下的无限梯度# 通过将预测从0.005重新映射到0.995:pred = prediction*0.99+0.005 # 对数损失:均值在批次大小上,求和在标签上: loss = tf.reduce_mean(    tf.reduce_sum(        - labels*tf.log(pred) - (1.0-labels)*tf.log(1.0-pred),         reduction_indices=1    ))

我怀疑这里有问题。我正在尝试训练一个带有残差Inception层的深度卷积神经网络。在低学习率下,损失很快就会出现NaN值。

我的对数损失正确吗?有什么建议吗?


回答:

你可以使用已经为多类逻辑回归实现的损失函数,而不是你自己的损失函数:sigmoid_cross_entropy_with_logits。它被精心设计以避免数值问题。

此外,与其裁剪预测,不如裁剪梯度。参见这里,例如。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注