我想使用MultiLayer Perceptron和Backprogation算法进行分类。
我有5个类,任何输入数据都属于一个类。(没有多类)
Ex:C1 C2 C3 C4 C5
输入1仅属于C2 输入2仅属于C5
我应该如何为每个输入表示输出层?
input layer Output Layer
input1 : 0 1 0 0 0
input1 : 0 0 0 0 1
or
take only single neuron in output layer.
input layer Output Layer
input1 : 0.4
input1 : 1.0
if <=0.2 C1
if <=0.4 C2
if <=0.6 C3
if <=0.8 C4
if <=1.0 C5
还有其他更好的方法吗?
谢谢, Atish
答案 0 :(得分:2)
您应该用5个二进制输出代表您的5个类。这被称为1-of-C编码,单热编码,虚拟变量,指标......
然后在输出层需要一个softmax activation function,它会将类概率作为输出。此外,您应该使用交叉熵(CE)错误功能。 Softmax + CE将为您提供与输出层中的identity + SSE相同的梯度:dE/da_i = y_i - t_i
。 Softmax + CE已在ImageNet数据集中用于多达20,000个类。
答案 1 :(得分:0)
在许多NN情况下,您最好配置一个输出节点来表示一个类。 :)