我已经在TensorFlow中实现了2层(2x20个节点) DNN自定义回归。16数字输入功能。
总的来说,我对所达到的高精度(~95%)感到满意,但我对我的错误预测中大量错误的异常值感到沮丧。
我相信答案要么在于我正在最小化的损失函数(目前是MSE),要么是使用正则化(我尝试过不同级别的辍学和L2正则化,对减少大量错误的预测几乎没有什么影响)。
最初,我使用分类来解决这个问题,但转而使用回归方法,希望最小化MSE将减少大规模错误预测的发生。
是否有一种我没有考虑过的优越的损失函数或正则化技术?注:我使用交叉熵进行分类,但我认为这不适合于回归。
发布于 2018-08-28 09:56:49
只是一个建议:
您可以使用L1 (或这个职位中引用的MAE )进行实验。
loss = Sum_n |y_n - y_n'|
根据这篇文章,MAE应该比离群点更健壮。
你也可以用更高的“范数”或“距离”来测试你失去的功能,比如Lp范数。
loss = (Sum_n |(y_n - y_n')|^p)^(1/p)
注意:
不确定这是否能解决你的问题,但我认为这是值得尝试的。
祝好运!
https://stackoverflow.com/questions/52063402
复制