使用多层感知器进行分类

时间:2013-11-26 03:23:29

标签: neural-network classification

我想使用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

2 个答案:

答案 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情况下,您最好配置一个输出节点来表示一个类。 :)