如果我需要对给予神经网络的对象进行分类,并且有4个类可以从中选择,它如何与sigmoid函数一起工作?
隐藏层中是否应该有4个神经元,每个神经元应该对应每个类?就像第一个神经元给出最大输出一样,比如0.8,那么它是第一类?
或者我应该在输出层中有一个神经元,它将隐藏层的输出作为输入,将它们传递给激活函数,然后将输出分类为:
if (output < 0.25) return class1;
...
if (output <= 1) return class4;
请帮助,我现在已经搜索了很长时间,我已经阅读了很多文章和书中的一些章节,但它从未提起过,这让我疯狂。
答案 0 :(得分:2)
经典方法会对最后一层使用单热编码,即如果一个项属于四个可能的第三类,那么你将它编码为向量[0 0 1 0],所以你的输出层将有四个神经元。
对于训练,你可能想要将输出标准化,使其总和为1 - 即,如果它设法返回[1 2 1 0],那么你将其视为[0.5 1 0.5 0]。
这一切都是指实际的最终层 - 隐藏层的大小几乎是任意的(并且可能比输出层大得多),并且其中的特定神经元的“含义”没有规定,它是从数据中学到的。