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

Neural network caffe CNN多元回归:具有非常不同值范围的输出,neural-network,regression,caffe,conv-neural-network,pycaffe,Neural Network,Regression,Caffe,Conv Neural Network,Pycaffe,我使用Caffe CNN进行回归(参见下图) 我想要预测的值的范围非常不同,例如y1=[0.1:0.2],y2=[1:5],。。yn=[0:15] Q1:如果我试图预测y的现状,会不会影响学习?如果是,为什么?(我已经做了这个实验,结果还可以,但不太好) Q2:我可以通过求和(ys)=1来设置'y's=[0:1]吗 Q3:我可以使用其他损失函数,例如Softmax或Logistic,或者欧几里德是我唯一的选择吗?我没有答案,但我可以提供一些观察结果 如果我正确理解了您的设置,您的每个输出都有一

我使用Caffe CNN进行回归(参见下图)

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

Q1:如果我试图预测y的现状,会不会影响学习?如果是,为什么?(我已经做了这个实验,结果还可以,但不太好)

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


Q3:我可以使用其他损失函数,例如Softmax或Logistic,或者欧几里德是我唯一的选择吗?

我没有答案,但我可以提供一些观察结果

如果我正确理解了您的设置,您的每个输出都有一个丢失函数
y\u I
。每个损失都是特定范围内的回归损失

1。由于您的输出“拉”到不同的范围,这可能会导致最后一层的权重矩阵对于不同的行具有非常不同的比例。如果使用正则化器(如),则可能会“混淆”试图使权重大致各向同性的学习过程。
若要克服此问题,可以放松最后一层权重上的正则化(使用参数)。或者,您可以添加一个层,以便仅了解每个输出的比例因子(也可能是偏差)

2.我不明白你想通过这个来实现什么。您正在尝试绑定输出吗?通过对每个输出应用
“Sigmoid”
“Tanh”
激活,强制每个输出到[0..1]或[-1..1]范围,可以获得有界输出。(您可以在激活后添加
“缩放”
层)


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

感谢您的回答@shai。不,每个输出没有单独的损耗。我有一个欧几里得(Y,O);Y=[y1,y2,…,Yn],地面真值输出O=[o1,o2,…,on]。这是个问题吗?@NimaHatami我想这是等效的。另一方面,每个输出有不同的损耗允许每个输出有不同的损耗重量,因此“关注”有问题的组件为2供电。是,我正在尝试绑定输出[0,1]。我认为这样可以避免不同的范围。