Deep learning 如何处理keras中的序号标签?

Deep learning 如何处理keras中的序号标签?,deep-learning,keras,keras-layer,Deep Learning,Keras,Keras Layer,我有整数目标类在1-5范围内的数据,其中一个是最低的,五个是最高的。在这种情况下,我应该把它看作是回归问题,并且在输出层中有一个节点吗? 我的处理方法是: 1-首先,我将标签转换为二进制类矩阵 labels = to_categorical(np.asarray(labels)) 2-在输出层中,我有五个节点 main_output = Dense(5, activation='sigmoid', name='main_output')(x) 3-我在编译时使用“分类交叉熵和均方误差” mo

我有整数目标类在1-5范围内的数据,其中一个是最低的,五个是最高的。在这种情况下,我应该把它看作是回归问题,并且在输出层中有一个节点吗? 我的处理方法是:

1-首先,我将标签转换为二进制类矩阵

labels = to_categorical(np.asarray(labels))
2-在输出层中,我有五个节点

main_output = Dense(5, activation='sigmoid', name='main_output')(x)
3-我在编译时使用“分类交叉熵和均方误差”

model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['mean_squared_error'],loss_weights=[0.2])

还有,谁能告诉我:在这种情况下,使用分类精度和“均方误差”有什么区别

回归和分类是截然不同的事情。如果你将其重新想象为一项回归任务,那么当基本事实为4时预测2的差异将比预测3而不是4的差异更大。如果你有像汽车、动物、人这样的职业,你不在乎这些职业之间的排名。如果图像显示的是一个人,那么预测汽车就像预测动物一样错误

指标根本不会影响您的学习。它只是在损失之外计算的东西,以显示模型的性能。在这里,准确度是有意义的,因为这主要是我们关心的指标。均方误差不能告诉您模型的性能。如果你得到了0.0015的均方误差,听起来不错,但很难想象它的表现如何。相比之下,使用准确度和达到95%的准确度是有意义的


最后一件事,您应该使用softmax而不是sigmoid作为最终输出,以获得最终层中的概率分布。Softmax将为每个类输出总计为1的百分比。然后交叉熵计算网络输出的概率分布与地面真实值之间的差异。

多亏了Thomas Pinetz,我肯定遇到了回归问题,因为我试图得到预测值和观测值之间的差异。以下更改是否会使NN适合回归?1-不使用to_category()2-在输出层,我有一个节点,没有激活。3-损失是“均方误差”。在这种情况下,均方误差是有意义的,因为H.H.H使用顺序尺度。使用顺序尺度,回归和分类都是有意义的。类似的分类损失如<代码>分类>交叉查询> /代码>但不考虑“距离”(即所有错误分类同样错误),因此不使用实际可用的所有信息。