【问题标题】:What kind of activation is used by ScikitLearn's MLPClasssifier in output layer?ScikitLearn 的 MLPClasssifier 在输出层使用什么样的激活?
【发布时间】:2019-08-15 16:43:27
【问题描述】:

我目前正在处理具有给定类标签 0 和 1 的分类任务。为此,我使用 ScikitLearn 的 MLPClassifier 为每个训练示例提供 0 或 1 的输出。但是,我找不到任何文档,MLPClassifier 的输出层到底在做什么(哪个激活函数?编码?)。

由于只有一个类的输出,我假设使用了 One-hot_encoding 之类的东西。这个假设正确吗? MLPClassifier 是否有任何解决此问题的文档?

【问题讨论】:

    标签: scikit-learn neural-network mlp


    【解决方案1】:

    out_activation_ 属性将为您提供 MLPClassifier 的输出层中使用的激活类型。

    From Documentation:

    out_activation_ : 字符串 输出激活函数的名称。

    activation 参数只是设置隐藏层的激活函数。

    激活: {‘identity’, ‘logistic’, ‘tanh’, ‘relu’},默认‘relu’ 隐藏层的激活函数。

    输出层由this 代码段内部决定。

    # Output for regression
    if not is_classifier(self):
        self.out_activation_ = 'identity'
    # Output for multi class
    elif self._label_binarizer.y_type_ == 'multiclass':
        self.out_activation_ = 'softmax'
    # Output for binary class and multi-label
    else:
        self.out_activation_ = 'logistic'
    

    因此,对于二元分类,它将是 logistic,对于多类,它将是 softmax

    要了解有关这些激活的更多详细信息,请参阅here

    【讨论】:

      【解决方案2】:

      docs 中有大部分信息。 MLP 是一个简单的神经网络。它可以使用多个激活函数,默认为relu

      它不使用 one-hot 编码,而是需要输入带有类标签的 y(目标)向量。

      【讨论】:

      • 你好乔希,谢谢你的回答。我知道我可以选择relu、identity、tanh和logistic,但我的问题是关于输出层的。通常,对于多层分类,您将获得每个类的概率或类似 [100]、[001]、... 的东西。 MLPClassifier 给我一个输出。那么在输出层是如何处理的呢?这实际上是我的问题。
      猜你喜欢
      • 1970-01-01
      • 2017-05-26
      • 2019-08-02
      • 1970-01-01
      • 2019-06-16
      • 2019-12-17
      • 2020-03-15
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多