输出标签的一个热编码



虽然我理解对输入数据中的特性进行热编码的必要性,但对输出标签进行热编码实际上有什么帮助?张量流MNIST教程鼓励对输出标签进行一次热编码。然而,CS231n(stanford(中的第一个赋值并不建议使用一个热编码。选择/不选择一个热编码输出标签的理由是什么?

编辑:不确定否决的原因,但只是为了详细说明,我错过了提及softmax函数和交叉熵损失函数,这通常用于多项式分类。这和交叉熵损失函数有关吗?话虽如此,即使没有一个热编码的输出标签,也可以计算损失。

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

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

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

这是什么意思?

这个想法是,如果我们训练一个ML算法,例如神经网络,它会认为猫(1(介于狗和鸟之间,因为它们分别是0和2。我们不希望那样;这不是真的,算法需要额外学习。

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

在这种情况下,一次性编码可以应用于标签表示,因为它具有清晰的解释,并且其值是分开的,每个值都在不同的维度上。

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

最新更新