我正在使用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距离是计算多元网络输出损耗的正确方法吗?是否需要一些技巧才能使多元回归网络收敛(与单变量网络和分类器相对)?

最佳答案

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

L2的问题之一是其对异常值的敏感性,而L1的问题是起源处的不平滑特性。

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

关于neural-network - 多元回归神经网络损失函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38426617/

10-12 21:11