TensorFlow回归损失函数

时间:2018-08-28 17:26:42

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

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

总体上,我对所获得的高精度(〜95%)感到满意,但是我对错误的预测中很大一部分错误的异常值感到沮丧。

我相信答案在于我正在最小化的损失函数(当前为MSE)或正则化的使用(我尝试了不同水平的辍学和L2正则化,对减少大规模错误预测的影响很小)。

最初,我使用分类法解决了这个问题,但转而使用回归分析,希望将MSE降至最低,从而减少大规模错误预测的发生。

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

1 个答案:

答案 0 :(得分:0)

只是一个建议:

您可以尝试使用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-奇数是必需的
  2. n是一个索引,它作为矢量遍历输出的各个分量
  3. y是您的输出,y'是“ true”值

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

祝你好运!