为什么神经网络输出不是二进制的?

时间:2014-01-28 11:25:47

标签: matlab machine-learning neural-network

我在MATLAB中使用NPR工具。 我的输入是150000 x 10矩阵,输出是150000 x 1(二进制类)。

当工具给我一个选项时,我使用了GUI并保存了输出。 但输出不是二进制向量而是150000 x 1双。

  1. 我只是想知道为什么它不是二进制当我的目标变量是什么,如果它不是二进制是如何混淆矩阵是情节。 是否使用了简单的圆函数?

  2. 我是否需要在将目标变量提交给NPRTool之前对其进行规范化

2 个答案:

答案 0 :(得分:1)

我不知道NPR工具的具体细节,但是神经网络是在训练期间(在网络的每一层)学习的权重向量的矢量乘法实现的。

它的输出自然是一个实值向量,它(通常)保持通用性不是阈值。为了得到预测的二进制类值,输出将被阈值化为0.5(假设类为0和1),并根据这些值计算混淆矩阵。实值输出还允许您将神经网络的输出视为一种关于分类的置信度值。 0.51将是正数但不是很多,而0.95会更积极。如上所述,我不知道NPR工具如何处理这些值。

关于归一化,我认为0,1已经归一化。

答案 1 :(得分:0)

一般情况下,如果您愿意,也可以将神经网络设置为具有二进制向量输出,但是它可能是多余的,因为您可以仅使用单个输出变量通过输出值-1,1来识别两个类。

所以你可以有:

1)两个输出变量,其中每个变量对应一个类或例如(0,1)对应于类1和(1,0)对应于类2.

2)一个变量,其中输出值-1表示类1,1表示类2。

在第二种情况下,您需要较少的训练点,因为您需要较少的参数。