以目标检测和分类任务为例理解One-Hot Code

在目标检测和分类任务中,每一个类别都需要一个编码来表示,同时,这个编码会用来计算网络的loss。比如有猫,狗,猪三种动物,这三种动物相互独立,在分类中,将其中任意一种分类为其他都同等的错误。

在这种情况下,我们比如将猫为0,狗为1,猪为2。就会出现一个问题,三者之间两两距离不同。 这在参与损失计算的时候是完全不能接受的:互相独立的标签之间,竟然出现了不对等的情况。

因此,需要有一种表示方法,将互相独立的标签表示为互相独立的数字,并且数字之间的距离也相等。

那么我们可以利用向量的正交性,也就是猫1,0,0,狗0,1,0,猪0,0,1。那么三者是相互独立的。也就是正交的。

可以这么理解,比如某个物体的分类为70%为猫,20%为狗,10%为猪。那么就有输出向量为0.7,0.2,0.1,这个向量可以理解为在One-Hot编码构成的向量空间中的一个具体值,那么在计算loss的时候,将该值和其groundtruth对应的向量进行比对。在训练中,如果该物体真的为猫,那么其groundtruth就是1,0,0,loss应该抑制后两个概率而增加第一位的概率。

例如这里假设一种loss计算 L o s s = ( G r o u n d T r u t h − 0.5 ) ⋅ P r e d i c t Loss=(GroundTruth-0.5)\cdot Predict Loss=(GroundTruth−0.5)⋅Predict就能够得到一个分数,这个分数的提升就代表着第一类的预测得分增大和后两项的减小。

One-Hot的缺点

当分类数量很大的时候,由于要保证各个分类的正交性,会产生维度爆炸的问题。

相关推荐
leoZ2312 分钟前
本地跑大模型实战(七):llama.cpp 性能调优,让推理更快更省
java·人工智能·spring·生成对抗网络·语言模型·自然语言处理·llama
To_OC11 分钟前
我把《天龙八部》塞进向量数据库后,终于搞懂了 RAG 到底是个啥
人工智能·llm·agent
蜡台30 分钟前
AI Agent(智能体)入门基础教程
人工智能
Akir.weiwen1 小时前
Token 层差异:从颜色值到语义状态的三层跃迁
人工智能·设计规范
迷迭香yy1 小时前
集合竞价数据挖掘实战:用Python构建开盘信号识别系统
人工智能·python·数据挖掘
大模型momo2 小时前
Spring AI 实战:多 Agent 协作实战 —— 分工拆解复杂旅游行程任务
人工智能·spring·ai·agent·旅游
小程故事多_802 小时前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析
人工智能·算法
冬奇Lab2 小时前
开源项目第176期:Better Harness — 不审查 diff,审查工作流本身,给 AI 编程 Agent 的五维评估框架
人工智能·开源·agent
冬奇Lab2 小时前
代码库知识库系列(07):混合检索 BM25 + 向量——Q8 还是失败,而且总分退步了
人工智能
ajassi20002 小时前
AI语音智能体开发日记(十一)为智能设备“声”临其境——详解音频资源自动化生成流程
人工智能·ai·ai编程