一种输出标签的热编码

时间:2018-07-17 15:13:51

标签: machine-learning classification one-hot-encoding

虽然我知道需要对输入数据进行一种热编码功能,但是对输出标签进行一种热编码实际上有什么帮助?张量流MNIST教程鼓励对输出标签进行一种热编码。但是,CS231n(stanford)中的第一个分配不建议一个热编码。选择/不选择一个热编码输出标签的背后原理是什么?

编辑:不确定降低投票率的原因,但是只是为了详细说明,我错过了提及softmax函数以及通常在多项式分类中使用的交叉熵损失函数。它和交叉熵损失函数有关吗? 话虽如此,即使没有对输出标签进行热编码,也可以计算出损耗。

1 个答案:

答案 0 :(得分:1)

在输出不是基数的情况下使用一个热向量。假设您将输出编码为整数,并为每个标签赋予一个数字。

整数值之间具有自然的有序关系,并且机器学习算法可能能够理解和利用这种关系,但是您的标签可能不相关。您的标签可能没有相似之处。对于不存在这种序数关系的类别变量,整数编码不好。

实际上,使用此编码并允许模型假设类别之间的自然顺序可能会导致意外结果,其中模型预测介于类别类别之间。

那是什么意思?

这个想法是,如果我们训练一种ML算法(例如神经网络),它将认为猫(即1)位于狗和鸟之间,因为它们分别为0和2。我们不想要那个;这不是真的,这是算法学习的另一件事。

当数据在n维空间中编码并且向量具有连续值时,可能会发生同样的情况。结果可能很难解释并映射回标签。

在这种情况下,可以对标签表示法使用一键编码,因为它具有清晰的解释并且其值在不同的维度上是分开的。

如果您需要更多信息,或者希望从损失函数的角度看一眼编码的原因,请参见https://www.linkedin.com/pulse/why-using-one-hot-encoding-classifier-training-adwin-jahn/