caffe CNN多元回归:具有非常不同的值范围的输出

caffe CNN multivariate regression: outputs with very different value ranges

我正在使用 Caffe CNN 进行回归(见下图)。

我要预测的值的范围非常不同,例如y1=[0.1:0.2], y2=[1:5],.. yn=[0:15].

Q1:如果我尝试按原样预测“y”,是否会扰乱学习?如果是,为什么? (我已经做了这个实验,结果还可以,但不好)

Q2:我可以通过 sum(ys)=1 来设置 'y's =[0:1] 吗?

Q3: 我可以使用其他损失函数吗? Softmax 或 Logistic,或 Euclidean 是我唯一的选择吗?

我没有答案给你,但我可以提供一些意见。

如果我对你的设置理解正确,你对每个输出都有一个损失函数y_i。每个损失都是一个回归损失,迫使 y_i 在特定范围内。

1. 由于您的输出 "pulling" 到不同的范围,这可能会导致最后一层的权重矩阵对于不同的行具有非常不同的比例。如果您使用的是正则化器(如 ),这可能 "confuse" 试图使权重大致各向同性的学习过程。
为了克服这个问题,您可以放松对最后一层权重的正则化(使用 decay_mult parameter). Alternatively, you can add a "Scale" 层只学习每个输出的比例因子(也可能还有偏差)。

2. 我不明白你想通过这个达到什么目的。你想限制输出吗?您可以通过对每个输出应用 "Sigmoid""Tanh" 激活来获得有界输出,强制每个输出到 [0..1] 或 [-1..1] 范围。 (激活后可以添加"Scale"层)。

3. 您可以对每个输出使用逻辑回归,或探索平滑的 L1 损失(这应该更稳健,尤其是当目标不在 [-1 范围内时) ..1]).