【问题标题】:Mean absolute relative error as loss function in tensorflow (regression problem)张量流中作为损失函数的平均绝对相对误差(回归问题)
【发布时间】:2019-03-11 20:42:06
【问题描述】:

我正在使用神经网络解决回归问题。 我的目标输出范围从 10-2 到 10-7。在运行了很多案例之后,我想知道是否可以将均方误差损失函数替换为考虑平均绝对相对误差的损失函数。我搜索了 tensorflow 网站并找到了指标 - tf.metrics.mean_relative_error,但在 tf.losses 下找不到任何内容。有什么方法可以实现在张量流中使用相对误差的损失函数?

【问题讨论】:

    标签: tensorflow machine-learning neural-network regression loss-function


    【解决方案1】:

    几乎在所有 tensorflow 教程中,他们都使用自定义函数。

    例如在beginning tutorial 他们编写了一个自定义函数,它 将当前模型与提供的数据之间的增量平方和

    squared_deltas = tf.square(linear_model - y)
    loss = tf.reduce_sum(squared_deltas)
    

    正如您所见,这并不难:您只需要将函数编码为张量格式并使用它们的基本函数。

    注意: 作为一个小小的奖励,您可能需要考虑在更合适的范围内标准化您的输入和预期输出,例如[-0.5, 0.5] 对于少数需要在饱和区域工作的激活函数效果更好。

    【讨论】:

    • 谢谢!我已经对我的目标值(范围从 10-2 到 10-7)尝试了最小最大和稳健的比例转换。我还尝试对我的目标变量使用对数转换,看看这是否能提供更好的结果。但是,我注意到添加了一个不可避免的错误,如果我使用 np.log 进行转换,然后使用 np.exp 进行逆变换。 sklearn/python中有没有现成的函数可以做对数变换?
    猜你喜欢
    • 2020-06-22
    • 2019-11-21
    • 2021-04-10
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2020-10-08
    • 2021-07-13
    • 2019-07-10
    相关资源
    最近更新 更多