神经网络中回归模型输出层的激活函数
Activation function for output layer for regression models in Neural Networks
这些天我一直在试验神经网络。我遇到了一个关于要使用的激活函数的一般性问题。这可能是众所周知的事实,但我无法正确理解。我看到的许多示例和论文都在研究 class 化问题,它们使用 sigmoid(在二进制情况下)或 softmax(在多 class 情况下)作为输出中的激活函数放层,这是有道理的。但是我还没有看到回归模型的输出层使用任何激活函数。
所以我的问题是,我们是否选择在回归模型的输出层中不使用任何激活函数,因为我们不希望激活函数限制或限制值。输出值可以是任何数字,大到几千,所以像 sigmoid 到 tanh 这样的激活函数是没有意义的。还是有其他原因?或者我们实际上可以使用一些针对此类问题的激活函数?
如果你有,比如说,一个 Sigmoid 作为神经网络输出层的激活函数,你将永远不会得到任何小于 0 和大于 1 的值。
基本上,如果您要预测的数据分布在该范围内,您可能会使用 Sigmoid 函数来测试您的预测在训练集上是否表现良好。
更一般地说,在预测数据时,您应该想出以最有效的方式表示数据的函数。
因此,如果您的真实数据不能很好地拟合 Sigmoid 函数,您必须考虑任何其他函数(例如某些多项式函数、周期函数或任何其他函数或它们的组合),但您也应该始终关心如何您将轻松构建成本函数并评估衍生品。
对于线性回归类型的问题,您可以简单地创建没有任何激活函数的输出层,因为我们对无需任何转换的数值感兴趣。
更多信息:
https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/
用于分类:
您可以使用 sigmoid、tanh、Softmax 等
只要使用线性激活函数而不限制输出值范围,除非你对此有一些合理的假设。
这些天我一直在试验神经网络。我遇到了一个关于要使用的激活函数的一般性问题。这可能是众所周知的事实,但我无法正确理解。我看到的许多示例和论文都在研究 class 化问题,它们使用 sigmoid(在二进制情况下)或 softmax(在多 class 情况下)作为输出中的激活函数放层,这是有道理的。但是我还没有看到回归模型的输出层使用任何激活函数。
所以我的问题是,我们是否选择在回归模型的输出层中不使用任何激活函数,因为我们不希望激活函数限制或限制值。输出值可以是任何数字,大到几千,所以像 sigmoid 到 tanh 这样的激活函数是没有意义的。还是有其他原因?或者我们实际上可以使用一些针对此类问题的激活函数?
如果你有,比如说,一个 Sigmoid 作为神经网络输出层的激活函数,你将永远不会得到任何小于 0 和大于 1 的值。
基本上,如果您要预测的数据分布在该范围内,您可能会使用 Sigmoid 函数来测试您的预测在训练集上是否表现良好。
更一般地说,在预测数据时,您应该想出以最有效的方式表示数据的函数。
因此,如果您的真实数据不能很好地拟合 Sigmoid 函数,您必须考虑任何其他函数(例如某些多项式函数、周期函数或任何其他函数或它们的组合),但您也应该始终关心如何您将轻松构建成本函数并评估衍生品。
对于线性回归类型的问题,您可以简单地创建没有任何激活函数的输出层,因为我们对无需任何转换的数值感兴趣。
更多信息:
https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/
用于分类: 您可以使用 sigmoid、tanh、Softmax 等
只要使用线性激活函数而不限制输出值范围,除非你对此有一些合理的假设。