当前位置: 首页 > backend >正文

one-hot编码VS对象嵌入表示

独热编码(One-Hot Encoding)和嵌入表示(Embedding)是机器学习中对类别数据进行数值化的两种方式,它们在数学上存在等价性。具体来说,独热编码可以被视为一种特殊的嵌入表示,其中每个类别被映射到一个唯一的、正交的向量

1. 独热编码(One-Hot Encoding)

  • 定义:将类别变量转换为二进制向量,每个类别对应向量中的一个位置(索引),该位置值为1,其余位置为0。
    例如,对于类别集合 {猫, 狗, 鸟}

    • 猫 → [1, 0, 0]
    • 狗 → [0, 1, 0]
    • 鸟 → [0, 0, 1]
  • 特点

    • 向量维度等于类别数量 ( C )。
    • 所有向量两两正交(内积为0),即任意两个类别之间的距离相等。

2. 嵌入表示(Embedding)

  • 定义:将类别映射到低维连续向量空间,每个类别对应一个可学习的向量(嵌入向量)。
    例如,将 {猫, 狗, 鸟} 映射到二维空间:

    • 猫 → [0.2, 0.8]
    • 狗 → [0.7, 0.3]
    • 鸟 → [0.4, 0.6]
  • 特点

    • 列的数量就像是每个类的特征比重,比如第一列可以是“动物体型”,第二列可以是“运动敏捷性”(只是人为理解,实际上机器不知道这个)
    • 向量维度 ( d ) 通常远小于类别数量 ( C )(如 ( d=50 ) 或 ( 100 ))。
    • 嵌入向量通过模型训练学习得到,语义相近的类别可能在向量空间中更接近。

3. 独热编码等价于特殊的嵌入表示

当满足以下条件时,独热编码可以被视为嵌入表示的特例:

  1. 嵌入维度等于类别数量(( d = C ))。
  2. 嵌入矩阵为单位矩阵:每个类别对应的嵌入向量是单位矩阵的一行。

4. 为什么说“为每个对象选择不同的嵌入表示”?

  • 核心逻辑:独热编码确保每个类别对应的向量是唯一的(即不同的),且彼此正交。
  • 嵌入视角:若将独热向量视为嵌入矩阵的行,则每个类别确实被分配了一个“不同的嵌入表示”。
  • 等价性:独热编码是嵌入表示的一种极端情况,其中:
    • 嵌入空间维度等于类别数。
    • 嵌入向量之间的距离最大化(正交)。
    • 无需学习(嵌入矩阵固定为单位矩阵)。

5. 实际应用中的差异

尽管数学上等价,但两者在实际应用中有显著区别:

特性独热编码嵌入表示
维度高(等于类别数 ( C ))低(自定义维度)
参数学习无需学习需要通过数据学习嵌入矩阵
语义表达无(所有类别等距)有(相似类别向量更接近)
计算效率高(稀疏矩阵运算)较低(密集矩阵运算,但维度更低)
适用场景类别数较少,或线性模型类别数较多,或深度学习模型

总结

独热编码可以被视为嵌入表示的一种特殊情况,其中:

  1. 每个类别被映射到一个唯一的、正交的向量。
  2. 嵌入矩阵是单位矩阵,无需学习。

这种等价性揭示了两者的数学联系,但实际应用中,嵌入表示因其低维和语义表达能力,更适合处理大规模类别数据(如自然语言处理中的词表)。

one-hot编码可以采用标签平滑LabelSmooth,这样可以让类别表示不那么死板。比如原来是[0,0,1,0],表示物品属于第3类,但是这样丢失了类间关系,使用标签平滑后会变成[0.02,0.01,0.94,0.03],这样还是有类间关系的,判断类别不至于那么绝对。容易看出,上述标签平滑操作就像是把one-hot编码向嵌入表示靠近一样,这也更体现了两者之间的关系。

http://www.xdnf.cn/news/10894.html

相关文章:

  • docker创建postgreSql带多个init的sql
  • 工厂模式与多态结合
  • 通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题
  • 【高等数学】(2)函数
  • MongoDB数据库学习
  • 【JS服务器】JETBRAINS IDEs JS服务器使用什么编译JNI
  • Docker或Docker-Compose时间时区配置
  • 【亲测有效 | Cursor Pro每月500次快速请求扩5倍】(Windows版)Cursor中集成interactive-feedback-mcp
  • 工业智能网关保障冷冻仓储设备无人值守安全运行
  • 当 “欧洲版 Cursor” 遇上安全危机
  • 7.RV1126-OPENCV cvtColor 和 putText
  • 软件架构文档最少编写规范
  • 【软考】计算机系统构成及硬件基础知识
  • 如何在PowerBI中使用Analyze in Excel
  • 1130 - Host ‘xxx.x.xx.xxx‘is not allowed to connect to this MySQL server
  • 网络安全-等级保护(等保)3-0 等级保护测评要求现行技术标准
  • Linux系统-基本指令(5)
  • 大话软工笔记—分离之组织和物品
  • 基于SDN环境下的DDoS异常攻击的检测与缓解
  • C++ Learning string类模拟实现
  • ADI硬件笔试面试题型解析下
  • 晶台光耦在手机PD快充上的应用
  • 古典密码学介绍
  • 物联网数据归档方案选择分析
  • 【Pandas】pandas DataFrame rename_axis
  • Registry和docker有什么关系?
  • Vue.js 后台管理系统
  • java后端生成心电图-jfreechart
  • Java高级 | (二十二)快速应用开发框架——Spring Boot
  • 基于谷歌ADK的 智能产品推荐系统(1): 功能简介