GPT学习笔记-Embedding的降维与2D,3D可视化

news2024/11/22 14:58:45

嵌入(Embedding)在机器学习和自然语言处理中是一种表示离散变量(如单词、句子或整个文档)的方式,通常是作为高维向量或者矩阵。嵌入的目标是捕捉到输入数据中的语义信息,使得语义相近的元素在嵌入空间中的距离也比较近。

例如,在自然语言处理中,词嵌入是一种将单词或短语从词汇表映射到向量的技术。这些嵌入向量捕捉了词汇之间的语义和语法关系。例如,词嵌入可以捕捉到"king"和"queen","man"和"woman"之间的相似性,并且可以通过向量运算来表示语言的一些特性,如"king" - "man" + "woman" ≈ "queen"。

嵌入的维度是一个重要的参数,它决定了嵌入向量的大小。较小的维度可能无法捕捉到足够的语义信息,而较大的维度可能导致计算复杂性增加和过拟合的风险。嵌入的维度通常是一个需要调整的超参数,它的选择取决于多种因素,包括数据的复杂性(例如,词汇的大小和语言的复杂性)、模型的复杂性、计算资源的可用性,以及特定任务的需求。

在实际应用中,词嵌入的维度通常选取在几十到几百之间,例如,Word2Vec和GloVe等常用的词嵌入方法通常使用50, 100, 200或300维的嵌入。而在一些更复杂的模型(如BERT或GPT)中,嵌入的维度可能会达到几千。

在cookbook里面fine_food_reviews_with_embeddings_1k.csv这个数据集里面我们可以看到embedding如图所示

例子里的embedding维度大概是几百,没细数。

将高维嵌入(如文本嵌入)降维到2D(或3D)主要有两个原因:

  1. 可视化:人类更擅长理解二维或三维的数据,而高维数据往往难以直观理解。通过将高维嵌入降至2D或3D,我们可以直接在平面或空间中可视化数据,比如使用散点图来展示每个数据点。这使我们能够直观地观察数据点之间的相似性和差异性,从而更好地理解数据的分布和结构。

  2. 计算效率:高维数据通常需要更大的计算资源和存储空间。降维到2D或3D可以减少数据的复杂性,提高计算效率,同时也可以减少存储空间的需求。

值得注意的是,降维过程可能会损失一部分信息。因此,选择合适的降维方法(如PCA、t-SNE等)和降维后的维度是非常重要的,需要根据具体的应用需求和数据特性进行选择。

在例子里面有两个数据可视化的代码Visualizing_embeddings_in_3D,Visualizing_embeddings_in_2D,用的分别是PCA和t-SNE.

  1. PCA(主成分分析):PCA是一种线性降维技术,它的目标是找到数据的主要特征方向(称为主成分),并用这些方向来表示数据。PCA通过对数据协方差矩阵进行特征分解,找到最大方差的方向作为第一主成分,然后在与之前的主成分正交的方向中找到最大方差的方向作为下一个主成分,以此类推。PCA的一个主要优点是它可以减少数据的噪声,并保留数据的主要特征。但是,PCA是一种线性技术,可能无法很好地处理非线性关系。

  2. t-SNE(t-分布式随机邻域嵌入):t-SNE是一种非线性降维技术,特别适合于可视化高维数据集。t-SNE的目标是在低维空间中保持高维空间中的相似度关系。具体来说,t-SNE首先在高维空间中计算每对数据点的相似度,然后在低维空间中尽可能地保持这些相似度。t-SNE的一个主要优点是它可以很好地保持数据的局部结构,能够在低维空间中清晰地展示数据的聚类。但是,t-SNE的计算复杂性较高,可能不适合处理大规模数据集,而且t-SNE的结果可能受初始化和超参数的影响。

这两种方法都有各自的优点和局限性,选择哪种方法取决于具体的应用场景和需求。

例子代码执行后的结果。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32+UART串口+DMA收发

目录 1、cubemax端配置 1.1 初始化配置 1.2 GPIO配置 1.3 UART配置 1.3.1 串口基础配置 1.3.2 DMA配置 2、keil端代码设计 2.1 初始化配置 2.2 DMA接收初始化配置 2.3 DMA发送配置 2.4 接收回调函数设置 2.5 回调函数内容代码编写 2.5.1 接收回调函数 2.5.2 发送回调…

最优化理论-最速下降法的推导与应用

目录 1. 引言 2. 最速下降法的基本原理 3. 最速下降法的推导过程 3.1 梯度和梯度下降 3.2 最速下降法的数学表述 4. 最速下降法的应用 4.1 无约束优化问题 4.2 约束优化问题 5. 最速下降法的优缺点 6. 结论 7.代码实现 1. 引言 在最优化理论中,最速下降法…

3W字吃透:微服务网关SpringCloud gateway底层原理和实操

40岁老架构师尼恩的掏心窝: 现在拿到offer超级难,甚至连面试电话,一个都搞不到。 尼恩的技术社群中(50),很多小伙伴凭借 “左手云原生 右手大数据 SpringCloud Alibaba 微服务“三大绝活,拿…

Dock的安装和使用

1、docker基础 三大组件: 仓库、镜像、容器什么是docker: 通俗来讲就是提供服务的容器Docker 两个概念:容器:可以看做空间 例如:磁盘、文件夹 镜像:灵魂 例如:系统、应用 一个镜像可以放在多个容器中(就如同把同一个文件复制到多个磁盘或文件夹一样) 一个容器可以放多个镜…

【Nginx】实战应用(服务器端集群搭建、下载站点、用户认证模块)

文章目录 Nginx实现服务器端集群搭建Nginx与Tomcat部署环境准备(Tomcat)环境准备(Nginx) Nginx实现动静分离需求分析动静分离实现步骤 Nginx实现Tomcat集群搭建 Nginx高可用解决方案KeepalivedVRRP环境搭建Keepalived配置文件介绍访问测试keepalived之vrrp_script Nginx制作下载…

python中的常见运算符

文章目录 算数运算符赋值运算关系运算符逻辑运算符非布尔值的与或非运算条件运算符(也叫三元运算符)运算符的优先级 算数运算符 加法运算符(如果两个字符串之间进行加法运算,则会进行拼串操作) - 减法运算符 * 乘法运算符(如果将字…

小鹏汽车Q1财报:押注G6、大力降本,明年智驾BOM降半

‍作者 | 德新编辑 | 王博 小鹏汽车本周发了Q1财报,数据不好看,以致于在微博端也发了公开信。 那后续呢? 小鹏第二季度指引是,总交付数量约为2.1 - 2.2万辆,收入预计约为45 - 47亿元;四季度&#xff0c…

Selective Kernel Networks论文总结和代码实现

论文:https://arxiv.org/abs/1903.06586?contextcs 中文版:(CVPR-2019)选择性的内核网络_sk卷积 源码:GitHub - implus/SKNet: Code for our CVPR 2019 paper: Selective Kernel Networks 目录 一、论文出发点 二、论文主要工作 三、SK模…

洛谷——树

洛谷——树 文章目录 洛谷——树树的重心会议题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据范围 思路 树的直径【XR-3】核心城市题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路 [NOI2003] 逃学的小孩题目描述输入格式输出格式样例 #1样例…

Cocos creator实现《滑雪趣挑战》滑雪小游戏资源及代码

Cocos creator实现《滑雪趣挑战》滑雪小游戏资源及代码 最近在学习Cocos Creator,作为新手,刚刚开始学习Cocos Creator,上线了两个微信小游戏,刚刚入门,这里记录一下《滑雪趣挑战》实现及上线过程的过程。 ](https://…

vue实现深拷贝的方法

在 vue中,深拷贝是一个很有用的功能,在不改变原来对象状态的情况下,进行对象的复制。 但要实现深拷贝,需要两个对象具有相同的属性。如果两个对象不同,深拷贝也不能实现。 1.我们将变量A的属性赋给变量B,但…

springboot+java医院门诊挂号系统设计与实现ssm008

本课题的目标是使医院门诊信息管理清晰化,透明化,便于操作,易于管理。通过功能模块的优化组合实现不同的管理细节,使管理过程实现最大程度的自动化与信息化,并能自动对人工操作环节进行复查,使医院门诊挂号系统出错率降至最低。 主…

3、mqtt客户端演示(MQTT通信协议(mosquitto)发布订阅 C语言实现)

可订阅可发布模式 具体代码 客户端1代码&#xff1a;pub.c #include <stdio.h> #include <stdlib.h> #include <mosquitto.h> #include <string.h>#define HOST "localhost" #define PORT 1883 #define KEEP_ALIVE 60 #define MSG_MAX_S…

ChatGPT提示词工程进阶教学

ChatGPT提示词工程 1 两种大型语言模型LLM1.1 基础大模型&#xff08;base LLM&#xff09;1.2 指令调优大模型(Instruction Tuned LLM) 2 如何更清晰、具体地书写提示词2.1 在提示词中使用“定界符”2.2 向模型请求结构化的输出2.3 要求模型检查任务条件是否满足2.4 输入多范例…

uCOSii中的互斥信号量

uCOSii中的互斥信号量 一、互斥型信号量项管理 (MUTUAL EXCLUSION SEMAPHORE MANAGEMENT) OSMutexAccept() 无条件等待地获取互斥型信号量 OSMutexCreate() 建立并初始化一个互斥型信号量 OSMutexDel() 删除互斥型信号量 OSMutexPend() 等待一个互斥型信号量 OSMutexPost…

扬帆起航——Qt自定义控件介绍

文章目录 前言自定义控件的定义自定义控件的好处如何实现自定义控件实现没有自带的控件 如何使用自定义控件测试和优化常见的自定义控件总结 前言 Qt 提供了丰富的控件、工具和库&#xff0c;可以帮助开发人员快速创建现代化的跨平台应用程序。但是对于某些特殊的需求&#xf…

【数据结构】冒泡,快速,直接插入,归并,选择排序

&#x1f38a;专栏【数据结构】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Dream It Possible】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 目录 &#x1f381;冒泡排序 &#x1f3f3;️‍&…

CentOS7.4安装OpenVPN

系统环境 [rootvpn ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 一. 准备工作 [rootvpn ~]# yum -y install openssl-devel openssl pam pam-devel lzo lzo-devel pkcs11-helper pkcs11-helper-devel 二. 安装OpenVPN服务 1. 下载openvpn源码包 [r…

【计算机网络 - 第六章】链路层

目录 一、概述 1、数据链路层提供的服务&#xff1f; 二、差错检测 1、奇偶校验 2、循环冗余校验CRC 三、多路访问链路和协议 1、概述 &#xff08;1&#xff09;多路访问协议 2、信道划分协议 ① 频分多路复用FDM ② 时分多路复用TDM ③ 波分多路复用WDM ④ 码分…

更好看的国产蓝牙耳机,音质也没问题,哈氪零度青春版体验

夏天躲在空调房里戴着耳机听音乐、玩游戏是很多人的日常&#xff0c;这两年国产耳机做得越来越好了&#xff0c;设计也很有新意&#xff0c;像是我现在用的这款哈氪零度青春版&#xff0c;就采用了一种冰封造型设计&#xff0c;视觉效果很新颖&#xff0c;看起来很有立体感&…