【问题标题】:How to use a sigmoid function in multi-layer perceptron?如何在多层感知器中使用 sigmoid 函数?
【发布时间】:2017-10-07 01:29:19
【问题描述】:

如果我需要对提供给神经网络的对象进行分类,并且有 4 个类可供选择,那么它如何与 sigmoid 函数一起工作?

我应该在隐藏层中有 4 个神经元,每个神经元都应该对应于每个类吗?如果第一个神经元输出最大,比如 0.8,那么它就是第一类?

或者我应该在输出层有一个神经元,它将隐藏层的输出作为输入,将它们传递给激活函数,然后将输出分类为:

if (output < 0.25) return class1;
...
if (output <= 1) return class4;

请帮忙,我已经搜索了很长时间,并且我已经阅读了很多文章和书籍中的一些章节,但从未提出过,这让我发疯了。

【问题讨论】:

    标签: machine-learning neural-network classification perceptron


    【解决方案1】:

    单热编码

    经典方法会为最后一层使用 one-hot 编码,即,如果一个项目属于四个可能的第 3 类,那么你会将它编码为向量 [0 0 1 0],所以你的输出层会有四个神经元。

    对于训练,您可能希望将输出归一化,使其总和为 1 - 即,如果它设法返回 [1 2 1 0],那么您会将其视为 [0.5 1 0.5 0]。

    这都是指实际的最后一层 - 隐藏层的大小几乎是任意的(并且可能比输出层大得多),并且没有规定其中特定神经元的“含义”,它是从数据中学习的。

    【讨论】:

    • 哦,原来如此明显。现在我知道如何使用它了。非常感谢你,伙计!
    猜你喜欢
    • 2015-02-18
    • 2013-04-20
    • 2017-06-13
    • 2013-01-08
    • 2015-08-14
    • 2023-03-03
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    相关资源
    最近更新 更多