【问题标题】:TensorFlow Regression Loss FunctionTensorFlow 回归损失函数
【发布时间】:2019-02-03 09:55:58
【问题描述】:

我在 TensorFlow 中实现了 2 层(2x20 节点)DNN 自定义回归。 16 个数字输入功能。

总体而言,我对所达到的高精度 (~95%) 感到满意,但我对我的错误预测中有大量不正确的异常值感到沮丧。

我相信答案在于我最小化的损失函数(目前是 MSE)或正则化的使用(我尝试了不同级别的 dropout 和 L2 正则化,但对减少大量不正确的预测几乎没有影响)。

最初我使用分类来解决这个问题,但转而使用回归,希望最小化 MSE 可以减少大量错误预测的发生。

有没有我没有考虑过的更好的损失函数或正则化技术?注意:我使用交叉熵进行分类,但我认为它不适合回归。

【问题讨论】:

    标签: python tensorflow machine-learning deep-learning regression


    【解决方案1】:

    只是一个建议:

    您可以尝试 L1(或 this post 中提到的 MAE)

    loss = Sum_n |y_n - y_n'| 
    

    根据文章,MAE 应该比异常值更稳健。

    您还可以为您的损失函数(如 Lp 范数)尝试更高阶的“范数”或“距离”

    loss = (Sum_n |(y_n - y_n')|^p)^(1/p)

    注意:

    1. | |表示绝对值或模数,仅对 p-odd 是必需的
    2. n 是一个索引,它作为向量在输出的各个组件上运行
    3. y 是您的输出,y' 是“真实”值

    不确定这是否能解决您的问题,但我认为值得尝试。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-24
      • 2018-01-11
      • 2017-12-14
      • 2018-03-03
      • 2018-03-25
      • 2019-07-24
      • 1970-01-01
      • 2019-06-23
      相关资源
      最近更新 更多