如何在多层感知器中使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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