【问题标题】:Keras Neural Network. PreprocessingKeras 神经网络。预处理
【发布时间】:2018-10-10 17:13:51
【问题描述】:

当我在回归问题中拟合神经网络时,我有这个疑问。我使用 sklearn.preprocessing 中的 ImputersScale 方法预处理了我的训练和测试数据的预测变量(特征),但我没有预处理我的训练数据或测试数据的类或目标。

在我的神经网络架构中,除了最后一层具有 sigmoid 功能的层外,所有层都具有 relu 作为激活函数。我为最后一层选择了 sigmoid 函数,因为预测值介于 0 和 1 之间。

tl;dr: 总之,我的问题是:我应该对神经网络的输出进行处理吗?如果我不使用sigmoid函数,我的输出的值是1。这种情况下,我该怎么做呢?

谢谢

【问题讨论】:

  • 能否分享一下网络初始化代码,基本上kernel_initializerloss也很重要。
  • @Aceconhielo,最后一层必须具有像 sigmoid 或 softmax 这样的激活函数才能预测概率。 Sigmoid 函数的值介于 0 和 1 之间
  • 这是输出层的范围......预测给定类的概率。

标签: python scikit-learn neural-network keras


【解决方案1】:

通常,如果您要进行回归,您应该在最后一层使用线性激活。 sigmoid 函数将“偏爱”接近 0 和 1 的值,因此您的模型将更难输出中间值。

如果您的目标分布是高斯分布或均匀分布,我将使用线性输出层。除非您有非常大的目标,否则不需要进行反处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-10
    • 2018-10-19
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多