[人工智能-深度学习-13]:神经网络基础 - 逻辑分类标签与OneHot编码

2023-11-05

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120585934


目录

第1章 逻辑分类概述

第2章 分类编码的诉求

第3章 OneHot编码


第1章 逻辑分类概述

所谓逻辑分类,分为2分类和多分类,其中二分类是逻辑分类的基础。

二分类的本质上就是其标签值不是任意值,而是确定性的二进制数值:0或1, 0表示“不是”该分类,1表示为“是”该分类。

多分类是基于二分类的,在多分类中,为了支持底层的标签依然是0或1,为了保持与分类的一致性,在多分类中采用了一种称为OneHot的编码方式。

第2章 分类编码的诉求

如上图,有10个数字,即10种分类,每个样本标签为0-9, 0-9的标签,可以多种编码方式:

(1)使用0-9的数值对0-9的标签进行编码,这是最自然的一种编码方式,但这种编码方式做逻辑分类中遇到了严重的问题:无法通过Yi_pred  - Yi表示预测值与标签值的距离。

 在上图中,首先看标签值本身,按理说0-9个标签是相互独立的,他们的距离是相等的。

然后实际上0和9的距离是最大的。相邻数值之间的距离是1,直观上看,我们很难说1就比9更靠近0. 但如果从上述标签的编码数值来看,1-0 =1, 9-0=9, 数值上1更靠近0,但从逻辑分类上看,1和9与0的距离是一样的!!!因此上述的编码方式,不适合逻辑分类。

其二,比如sigmod函数的输出值Yi_pred始终落在【0,1】之间,按照上述编码,Yi_pred到0和1的始终要不到9的距离近。这很显然不符合我们的分类需求。

其三,如果神经元的输出,没有sigmod,可以是任何值,比如10000,从数值距离上看,10000比9更近,但很难说,它就是“9的”输出!!!

因此,需要一种全新的编码方式,OneHot编码。

第3章 OneHot编码

OneHot编码, 任何分类对应的标签都用“1”表示,只是所处的维度不同,他们所在的维度,通过在OneHot编码中的下标索引来区分。

如图形”0“的维度使用下标0,如果其下标对应的二进制比特是1,则表示为图形”0“

如图形”1“的维度使用下标1,如果其下标对应的二进制比特是1,则表示为图形”1“

如图形”2“的维度使用下标2,如果其下标对应的二进制比特是1,则表示为图形”2“

如图形”2“的维度使用下标3,如果其下标对应的二进制比特是1,则表示为图形”3“

 上述是多分类的示意图:

(1)每一个分类都有自己独立的标签Yi  (OneHot编码)。

(2)每一个分类的标签编码后的值都是数值1.

(3)每一个分类都有自己独立的输出Yi_pred。

(4)每个独立的输出都在[0,1]之间,其输出值的大小了与标签值相似的程度,输出预测值,越接近于1,表明与该分类越相似。sigmod和softmax函数就得到这样的效果,sigmod是针对单个二分类情形,而softmax是针对多分类情形,确保每个维度的输出在[0,1]之间。

(5)对于某个输入,其loss是每个维度相似度(距离)的汇总。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120585934

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[人工智能-深度学习-13]:神经网络基础 - 逻辑分类标签与OneHot编码 的相关文章

随机推荐