神经网络回归:扩展输出或使用线性层



我当前正在尝试使用神经网络进行回归预测。

但是,我不知道最好的处理方法是什么,因为我读到有2种不同的方法可以使用NN进行回归预测。

1)一些网站/文章建议添加最终层,该层是线性的。http://deeplearning4j.org/linear-regression.html

我认为,我的最后一层看起来像:

layer1 = tanh(layer0*weight1 + bias1)
layer2 = identity(layer1*weight2+bias2)

我还注意到,当我使用此解决方案时,我通常会得到一个预测,这是批次预测的均值。当我将tanh或sigmoid用作倒数第二层时,就是这种情况。

2)其他一些网站/文章建议将输出扩展到[-1,1][0,1]范围,并将Tanh或Sigmoid用作最终层。

这两个解决方案是否可以接受?应该喜欢哪一个?

谢谢Paul

我更喜欢第二种情况,在这种情况下,我们将归一化和sigmoid函数用作输出激活,然后将归一化的输出值扩展到其实际值。这是因为在第一种情况下,要输出大值(由于实际值在大多数情况下是较大),因此必须大量映射到输出层的权重。因此,为了更快的融合,必须使学习率更大。但这也可能导致学习较高的学习率,因为我们使用的学习率更高,因此可能会分歧。因此,建议使用标准化目标值,以使权重很小,并且很快学习。因此,简而言之,如果使用较大的学习率,则第一种方法学习缓慢或可能会分歧,另一方面,第二种方法相对更安全,并且可以快速学习。

最新更新