如何在多层感知器中使用Sigmoid函数?

如果我需要对神经网络中给定的对象进行分类,并且有4个类别可供选择,那么Sigmoid函数是如何工作的呢?

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

还是应该在输出层设置一个神经元,它将隐藏层的输出作为输入,传递给激活函数,然后根据输出进行分类,如下所示:

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

请帮助我,我已经搜索了很长时间,读了很多文章和书中的一些章节,但从未提到过这个问题,这让我快要崩溃了。


回答:

独热编码

经典方法会在最后一层使用独热编码,即,如果一个项目属于四个可能类别中的第三类,那么你会将其编码为向量[0 0 1 0],因此你的输出层将有四个神经元。

在训练时,你可能需要 normalizing 输出,使其总和为1 – 即,如果它能返回[1 2 1 0],那么你会将其视为[0.5 1 0.5 0]。

这一切都指的是实际的最终层 – 隐藏层的大小几乎是任意的(并且可能远大于你的输出层),并且其中特定神经元的“含义”不是预先设定的,而是从数据中学习的。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注