虽然我知道需要对输入数据中的功能进行热编码,但输出标签的热编码实际上有什么帮助呢?张量流MNIST教程鼓励对输出标签进行一种热编码。然而,CS231n(斯坦福大学)的第一个任务并没有建议使用一种热编码。选择/不选择一个热编码输出标签的理由是什么?
编辑:不确定下投票的原因,但为了详细说明,我遗漏了softmax函数和交叉熵损失函数,该函数通常用于多项式分类。这与交叉熵损失函数有关吗?话虽如此,即使没有对输出标签进行热编码,也可以计算损失。
发布于 2018-11-14 09:00:31
在输出不是基数的情况下使用一个热向量。假设您将输出编码为整数,每个标签都有一个数字。
整数值之间具有自然的有序关系,机器学习算法可能能够理解和利用这种关系,但您的标签可能是无关的。您的标签可能没有相似之处。对于不存在这种序号关系的分类变量,整数编码不是很好。
事实上,使用这种编码并允许模型假设类别之间的自然排序可能会导致意外的结果,其中模型预测介于类别之间。
这是什么意思?
我们的想法是,如果我们训练一个ML算法--例如神经网络--它会认为猫( 1)介于狗和鸟之间,因为它们分别是0和2。我们不希望这样;这不是真的,这是算法需要学习的额外内容。
当数据在n维空间中编码并且向量具有连续值时,可能会发生同样的情况。结果可能很难解释并映射回标签。
在这种情况下,一次热编码可以应用于标签表示,因为它具有清晰的解释,并且它的值被分开,每个值在不同的维度上。
如果您需要更多信息,或者想从损失函数的角度了解one-hot编码的原因,请参阅https://www.linkedin.com/pulse/why-using-one-hot-encoding-classifier-training-adwin-jahn/
https://stackoverflow.com/questions/51384911
复制相似问题