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

人工智能和机器学习之线性代数(二)

人工智能和机器学习之线性代数(二)

本文Linear Algebra 101 for AI/ML – Part 2将通过介绍向量的点积(dot Product)、Embedding及其在相似性搜索中的应用来建立这些基础知识。
将学习EmbeddingEmbedding是表示概念、对象和想法的特殊类型的向量。Embedding在整个现代 人工智能(AI) 中使用,并在大型语言模型、图像生成模型和推荐系统中得到应用。

人工智能和机器学习之线性代数

  • 人工智能和机器学习之线性代数(二)
    • 向量点积(Dot Product)
      • 算法角度
      • 视觉角度
        • 向量的模(Norm)
        • 两种计算方式的示意图
        • 几种向量点积计算结果
    • Embeddings Vector
    • OpenAI 的 CLIP 模型的Embeddings
    • 总结

向量点积(Dot Product)

本文将从两个角度来处理点积:算法角度和视觉角度。

算法角度

计算两个向量点积的算法就是简单地将两个向量按对应元素相乘然后相加。

dotproduct

>>> a = torch.tensor([1.0, 2.0, 4.0, 8.0])
>>> b = torch.tensor([1.0, 0.5, 0.25, 0.125])

>>> torch.dot(a, b)
tensor(4.)

视觉角度

使用点积的余弦公式计算两个向量的点积。

余弦公式

余弦公式的示意图

向量的模(Norm)

向量的模公式

两种计算方式的示意图

点积的可视化

  • 坐标形式:0.00x3.00+3.00x3.00=9.00

  • 余弦公式:3.00x4.25x0.7077=9.02(根号计算取近似值,有一定出入,理论上等于9.00)

几种向量点积计算结果

通过计算向量的点积,可以简单的判断两个对象(用向量表示)是否相似,同向表示相似,反向或垂直表示不相似。

同向相乘

两个向量通常是对齐的,并指向相同的大致方向。从形式上讲,两个矢量之间的角度小于 90°。因此,正点积。

反向相乘

两个向量通常未对齐,并且指向大致相反的方向。从形式上讲,两个矢量之间的角度大于 90° 且小于 270°。因此,负点积。

垂直相乘

两个向量是垂直的。它们既没有对齐也没有错位。因此,点积为零。

Embeddings Vector

Embeddings是经过适当训练的神经网络模型将任何东西转换为向量。

向量的点积如何应用于机器学习?事实证明,关于向量和点积的知识可以应用于ChatGPT 等大型语言模型、DALLE 等图像生成以及 Netflix 等电影推荐系统。

正如我们将在以后的学习中了解到的那样,基于神经网络的 AI应用程序不会直接处理图像、文本、视频和音频。相反,这些输入首先被转换为向量和矩阵,然后这些向量和矩阵被传递到神经网络中,神经网络可以在生成输出(例如聊天机器人响应、合成生成的图像或推荐的电影)之前对它们执行各种数学运算。尽管在人眼中,这些向量和矩阵可能看起来像是随机但有组织的数字列表,但对于神经网络来说,它们包含某种概念。表示这些概念的向量称为Embeddings向量。因为向量中看似随机的数字能够表示从鸟(bird)到电动汽车(electric cars)再到全球化的任何东西,所以我们说这些Embeddings捕获了语义含义。

为了说明这一点,让我们来看看三部流行的电影。假设 《复仇者联盟:终局之战》(The Avengers:Endgame) 的向量表示(3,3),《蜘蛛侠》(Spiderman) 的向量表示(3,1), 《爱乐之城》(La La Land) 的向量表示(-3,-2)。

Embedding

由于《复仇者联盟:终局之战》(The Avengers:Endgame)和《蜘蛛侠》(Spiderman)是漫威超级英雄电影,因此它们的向量将大致对齐,因此它们的点积将为正。然而,电影《爱乐之城》(La La Land)的动作较少,色彩更严肃。因此,它与其他两部电影的点积将为负数。

我们将在后面介绍如何为这些电影生成这些坐标,但现在,假设这些是代表电影的点/向量。如果我们只随机选择向量的值,这些向量对我们来说毫无意义,但如果选择它们的方式是《复仇者联盟:终局之战》和《蜘蛛侠》的向量指向的坐标比《爱乐之城》的坐标更接近,那么这些向量可能会很有用。什么操作会告诉我们两个点靠在一起的程度或两个向量对齐的程度?点积

这在机器学习中是一个有用的概念,因为如果我们有一个经过适当训练的神经网络模型,我们几乎可以将任何东西转换为Embedding。这种使用点积来衡量概念、想法和对象之间相似性的概念(Embedding)将成为我们将构建的相似性搜索引擎的基础。

OpenAI 的 CLIP 模型的Embeddings

CLIP (Contrastive Language-Image Pretraining),在给定图像的情况下预测最相关的文本片段。

Embeddings是通过将单词传递到 OpenAI 的名为 CLIP 的神经网络中来生成的。但从本质上讲,此模型能够接受文本或图像作为输入,并生成Embeddings作为输出。可以确定视觉上靠得很近的单词是属于同一类别。

Embedding Vector

让我们使用经过适当训练的神经网络,从五个不同类别的单词生成Embedding向量。将 5 个不同类别的单词(🌹 flowers、🧪 elements of the periodic table、🎸 music genres、⚽️ sports、🗼 European cities)传递给 CLIP,当我们输入一些单词时,正如预期的那样,Embedding 向量中出现了 5 个不同的聚类。请注意,音乐流派(music genres)聚集在中间,花朵(flowers)的类型一起在左边,体育运动(sports)在右上角,欧洲城市(European cities)在右下角,元素周期表(elements of the periodic table)的元素在左下角。一个例外是 pop 这个词。虽然流行音乐是一种音乐流派,但它也是一个具有多重含义的超载术语,这可能就是它没有明确与其他音乐流派归为一类的原因。

总结

本文学习了计算点积的算法,然后获得了围绕此操作的视觉几何意义。然后,我们了解了一种称为 embeddings 的特殊类型的向量,并探索了由 CLIP 神经网络生成的 embeddings


http://www.kler.cn/news/358773.html

相关文章:

  • Java进阶——数据结构与算法之栈与递归小结(三)
  • 等保测评和等保认证有什么区别
  • Bayes-CNN-LSTM|基于贝叶斯优化的卷积-长短期神经网络多输入数据回归预测
  • 基于静态编译构建微服务应用
  • 【Docker】Docker (Dockerfile)的数据管理和网络通信
  • FPGA实现PCIE采集电脑端视频转SFP光口万兆UDP输出,基于XDMA+GTX架构,提供2套工程源码和技术支持
  • 51单片机的智能热水器控制系统【proteus仿真+程序+报告+原理图+演示视频】
  • 清空docker所有的数据
  • docker 初步理解
  • Axios 基本使用
  • 图书业务流程优化:Spring Boot进销存系统
  • 【排序】3.希尔排序法
  • 【论文速读】P-Tuning:GPT Understands, Too
  • hive_locks字段
  • 基于SpringBoot+Vue+uniapp的时间管理小程序的详细设计和实现(源码+lw+部署文档+讲解等)
  • C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
  • Java--集合(三)之vectorlinkedlisthashset结构
  • git通过ssh方式操作提示Permission denied (publickey). 【解决】
  • 论文阅读-三维结构几何修复(导-4)
  • uniapp 整合 OpenLayers - 加载Geojson数据(在线、离线)