神经网络中回归模型输出层的激活函数

Posted

技术标签:

【中文标题】神经网络中回归模型输出层的激活函数【英文标题】:Activation function for output layer for regression models in Neural Networks 【发布时间】:2018-03-22 16:07:41 【问题描述】:

这些天我一直在试验神经网络。我遇到了一个关于要使用的激活函数的一般问题。这可能是一个众所周知的事实,但我无法正确理解。我看到的许多示例和论文都在研究分类问题,它们要么使用 sigmoid(在二进制情况下)或 softmax(在多类情况下)作为输出层的激活函数,这很有意义。但是我还没有看到在回归模型的输出层中使用了任何激活函数。

所以我的问题是,我们是否选择在回归模型的输出层中不使用任何激活函数,因为我们不希望激活函数限制或限制值。输出值可以是任意数字,大到数千,因此像 sigmoid 到 tanh 这样的激活函数没有意义。还是有其他原因?或者我们实际上可以使用一些针对这类问题的激活函数?

【问题讨论】:

【参考方案1】:

除非你有一些合理的假设,否则只使用线性激活函数而不限制输出值范围。

【讨论】:

【参考方案2】:

对于线性回归类型的问题,您可以简单地创建没有任何激活函数的输出层,因为我们对没有任何转换的数值感兴趣。

更多信息:

https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/

分类: 您可以使用 sigmoid、tanh、Softmax 等。

【讨论】:

【参考方案3】:

如果你在神经网络的输出层有一个 Sigmoid 作为激活函数,你将永远不会得到任何小于 0 和大于 1 的值。

基本上,如果您尝试预测的数据分布在该范围内,您可能会使用 Sigmoid 函数来接近并测试您的预测是否在您的训练集上表现良好。

更一般地说,在预测数据时,您应该想出以最有效方式表示数据的函数。

因此,如果您的真实数据不能很好地拟合 Sigmoid 函数,您必须考虑任何其他函数(例如,一些多项式函数、或周期函数或任何其他函数或它们的组合),但您也应该始终关心您有多容易将构建您的成本函数并评估导数。

【讨论】:

以上是关于神经网络中回归模型输出层的激活函数的主要内容,如果未能解决你的问题,请参考以下文章

深度前馈网络

深度学习入门之神经网络

Logistic回归模型中的e代表啥?

学习笔记TF011:多层神经网络

机器学习---算法学习

小白学习keras教程一基于波士顿住房数据集训练简单的MLP回归模型