【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与机器数学运算(如矩阵乘法、距离计算)的桥梁,广泛应用于机器学习、深度学习、自然语言处理(NLP)、计算机视觉(CV)等领域。
一、AI中向量的核心作用:数据的数学化表征
AI算法(尤其是深度学习)无法直接处理文本、图像等非结构化数据,必须先将其转换为数值向量,使数据具备以下特性:
- 可计算性:向量支持数学运算(如点积、余弦相似度),便于算法提取特征、衡量数据关联度。
- 语义表达:向量的每个维度可隐含数据的潜在特征(如文本的情感倾向、图像的颜色纹理),相近语义的数据在向量空间中距离更近。
- 泛化能力:通过模型训练(如神经网络),向量能捕捉数据的高层抽象特征(如“猫”的图像向量可编码“有毛、四条腿”等共性)。
二、AI中向量的常见类型与生成方式
1. 文本向量(Text Vectors)
- 作用:将词语、句子或文档转换为数值向量,用于语义理解、文本分类、信息检索等。
- 生成方法:
- 传统方法:
- 独热编码(One-Hot Encoding):用稀疏向量表示词语(如“苹果”→[1,0,0,…],“香蕉”→[0,1,0,…]),优点是简单直接,缺点是无法体现词语相关性(所有向量正交,余弦相似度为0)。
- TF-IDF向量:结合词频(TF)和逆文档频率(IDF),衡量词语在文档中的重要性,向量维度为词典大小,缺点是高维稀疏、缺乏语义关联。
- 深度学习方法:
- 词嵌入(Word Embedding):通过神经网络训练生成稠密向量(如Word2Vec、GloVe),例如“国王”−“男人”+“女人”≈“女王”,体现语义类比关系。
- 句/文档嵌入:如BERT的
CLS
向量、Sentence-BERT生成的句向量,通过预训练模型捕捉上下文语义。
- 传统方法:
2. 图像向量(Image Vectors)
- 作用:将图像像素转换为特征向量,用于图像分类、目标检测、图像检索等。
- 生成方法:
- 传统特征工程:手工设计特征(如HOG特征、SIFT特征),向量维度固定(如HOG特征常为36维)。
- 深度学习方法:通过卷积神经网络(CNN)提取高层特征,例如:
- 在ResNet中,输入图像经多层卷积后,最终全连接层的输出即为图像向量(如1000维,对应分类类别);
- 图像检索场景中,可通过对比学习训练模型,生成更具区分度的向量(如FaceNet生成的人脸特征向量)。
3. 音频向量(Audio Vectors)
- 作用:将音频信号转换为向量,用于语音识别、音乐分类等。
- 生成方法:
- 传统方法:提取声学特征(如MFCC、梅尔频谱),向量维度通常为几十维。
- 深度学习方法:通过循环神经网络(RNN)或Transformer处理音频序列,生成上下文相关的向量(如语音识别模型Wav2Vec的输出)。
4. 结构化数据向量(Tabular Vectors)
- 作用:将表格数据(如用户信息、传感器数据)中的数值型/分类型特征转换为向量,用于传统机器学习模型(如随机森林、XGBoost)或深度学习模型(如Wide & Deep)。
- 处理方式:
- 数值型特征:直接作为向量分量(如年龄、收入);
- 分类型特征:通过独热编码、标签编码等转换为数值向量。
三、向量在AI算法中的关键应用
1. 相似度计算与检索
- 核心逻辑:将查询数据(如文本、图像)转换为向量,在向量数据库中检索与查询向量最相似的样本。
- 相似度度量方法:
- 余弦相似度:适用于高维稀疏向量(如文本),衡量向量方向的相似性,公式:
[
\text{cosine相似度} = \frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}| |\mathbf{b}|}
] - 欧氏距离:适用于稠密向量(如图像特征),衡量向量空间中的绝对距离,公式:
[
d(\mathbf{a}, \mathbf{b}) = \sqrt{\sum_{i=1}^n (a_i - b_i)^2}
]
- 余弦相似度:适用于高维稀疏向量(如文本),衡量向量方向的相似性,公式:
- 应用场景:
- 推荐系统:计算用户向量与物品向量的相似度,推荐相似物品;
- 图像检索:输入一张图片,检索数据库中相似的图片(如Google图片搜索);
- 语义搜索:将用户查询转换为向量,匹配文档向量(如BERT + 向量数据库的组合)。
2. 模型输入与特征学习
- 作用:向量是深度学习模型的输入基础,模型通过多层神经网络对向量进行特征变换,提取更抽象的表示。
- 示例:
- 在NLP中,词向量作为Transformer的输入,经自注意力机制生成上下文相关的句向量;
- 在CV中,图像向量(像素值)经CNN卷积层后,逐步提取边缘、纹理、物体部件等特征。
3. 生成模型与向量操作
- 在生成对抗网络(GAN)中,随机噪声向量(如服从正态分布的低维向量)经生成器转换为高维数据(如图像、文本);
- 在文本生成中,通过向量插值(如“男人”向量 + “皇室”向量 ≈ “国王”向量)实现语义编辑。
四、向量的关键技术挑战
1. 维度灾难(Curse of Dimensionality)
- 问题:当向量维度极高时(如百万维),传统距离度量方法效率低下,且数据在高维空间中变得稀疏,相似度计算失去意义。
- 解决方案:
- 降维:通过PCA、t-SNE、UMAP等技术降低向量维度;
- 近似最近邻搜索(ANN):使用向量数据库(如Milvus、Faiss)实现高效检索,通过哈希算法(如LSH)或树结构(如KD树)近似查找相似向量。
2. 向量的语义鸿沟
- 问题:不同模型生成的向量可能存在“语义空间不兼容”问题(如Word2Vec的词向量与BERT的词向量分布不同)。
- 解决方案:
- 迁移学习:在预训练向量基础上,针对特定任务微调模型;
- 跨模态对齐:通过对比学习训练模型,使不同模态数据(如文本和图像)的向量映射到同一语义空间(如CLIP模型)。
3. 向量的可解释性
- 问题:深度学习生成的向量通常是黑箱输出,难以解释每个维度的具体含义。
- 解决方案:
- 可视化技术:通过降维(如t-SNE)将高维向量映射到二维空间,观察数据分布;
- 注意力机制分析:利用模型的注意力权重,分析向量中哪些维度对决策起关键作用(如NLP中的注意力热力图)。
五、总结:向量为何是AI的基石?
在AI领域,向量是数据的“数字指纹”:
- 它将复杂的现实世界数据转化为计算机可处理的数学对象;
- 它通过数值运算实现数据的语义关联度量;
- 它是连接传统算法(如KNN、SVM)与深度学习模型(如Transformer、CNN)的通用语言。
理解向量的本质(结构化的数值表征)和技术细节(生成方法、相似度计算、维度处理),是掌握AI算法(尤其是表征学习、检索系统、生成模型)的核心前提。
相关文章:
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...