我已经在TensorFlow中实现了2层(2x20节点)DNN自定义回归。 16种数字输入功能。
总体上,我对所获得的高精度(〜95%)感到满意,但是我对错误的预测中很大一部分错误的异常值感到沮丧。
我相信答案在于我正在最小化的损失函数(当前为MSE)或正则化的使用(我尝试了不同水平的辍学和L2正则化,对减少大规模错误预测的影响很小)。
最初,我使用分类法解决了这个问题,但转而使用回归分析,希望将MSE降至最低,从而减少大规模错误预测的发生。
是否有我没有考虑过的高级损失函数或正则化技术?注意:我使用交叉熵进行分类,但是我认为它不适用于回归。
答案 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)
注意:
不确定是否可以解决您的问题,但我认为值得尝试。
祝你好运!