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

Ron*_*hen 11 linear-regression neural-network tensorflow

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

loss = tf.nn.l2_loss(tf.sub(prediction, truthValues_placeholder)) + L2regularizationLoss 
Run Code Online (Sandbox Code Playgroud)

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

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

squ*_*ick 3

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

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

您可以使用Huber Loss来解决这两个问题,它的作用类似于原点附近的 L2,当您远离原点时,它的作用类似于绝对 L1。