多元回归神经网络损失函数

时间:2016-07-17 22:41:58

标签: neural-network tensorflow linear-regression

我在Tensorflow中使用完全连接的多层神经网络进行多元回归。给定输入向量(y1,y2),网络预测2个连续浮点变量(x1,x2,...xN),即网络有2个输出节点。有2个输出,网络似乎没有收敛。我的损失函数本质上是预测和真值向量之间的L2距离(每个包含2个标量):

loss = tf.nn.l2_loss(tf.sub(prediction, truthValues_placeholder)) + L2regularizationLoss 

我正在使用L2正则化,丢失正则化,我的激活函数是tanh。

我的问题:L2距离是计算多变量网络输出损失的正确方法吗?是否需要一些技巧才能使多元回归网络收敛(与单变量网络和分类器相对)?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用L2距离进行多元回归。但我也建议尝试绝对的L1距离。

L2的一个问题是它对异常值的敏感性,而L1则是原点的非平滑性。

你可以使用Huber Loss解决这两个问题,the spring data jpa documentation.在原点附近就像L2一样,当你离开原点时就像绝对L1一样。