白话向量点积

news/2024/11/20 0:23:06/

白话向量点积

点积(Dot Product)是机器学习中最常见的向量操作。本文将通过简洁易懂的语言配合大量图形为大家介绍点积运算及其背后的数学意义。

在这里插入图片描述

文章目录

    • 背景知识
    • 几何视角
      • 向量的大小
      • Cosine
      • 举例
      • 几何意义
    • 坐标视角
    • 两种视角的等价性
    • 点积的作用
    • 总结

背景知识

对于长度为 n n n 的两个向量 a a a b b b
a = [ a 1 , a 2 , a 3 , … , a n ] b = [ b 1 , b 2 , b 3 , … , b n ] \begin{aligned} a &= [a_1, a_2, a_3,\dots,a_n]\\ b &= [b_1, b_2, b_3,\dots,b_n] \end{aligned} ab=[a1,a2,a3,,an]=[b1,b2,b3,,bn]
点积可以用来表示它们之间的关系。 例如,它们指向同一个方向还是相反的方向? 它们彼此垂直吗?

两个向量进行点积运算的结果是标量,因此点积有时也称为标量积

为了让大家建立对点积工作原理的直觉,我们从其几何定义开始。

几何视角

在这里插入图片描述

点积的几何形式如下:
a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ a \sdot b = \Vert a \Vert \: \Vert b \Vert \cos\theta ab=abcosθ
上面公式包含3个部分:

  • ∥ a ∥ \Vert a \Vert a: 向量 a a a 的大小
  • ∥ b ∥ \Vert b \Vert b: 向量 b b b 的大小
  • θ \enspace\theta\enspace θ: 向量 a , b a,b a,b 之间的夹角

向量的大小

在这里插入图片描述

向量长度直观看上去就是一个用勾股定理计算斜边长度。对于二维向量来说就是 x 2 + y 2 \sqrt{x^2+y^2} x2+y2 ,对于三维向量来说就是 x 2 + y 2 + x 2 \sqrt{x^2+y^2+x^2} x2+y2+x2 。推而广之, n n n 维向量的长度为
∥ v ∥ = v 1 2 + v 2 2 + ⋯ + v n 2 \Vert v \Vert = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2} v=v12+v22++vn2

Cosine

在这里插入图片描述

cos ⁡ θ \cos\theta cosθ 将向量 a a a 投影到向量 b b b 。上图中,向量 a a a 和向量 b b b 指向不同方向,所以 ∥ a ∥ cos ⁡ θ \Vert a \Vert \cos\theta acosθ 将向量 a a a 的一部分投影到向量 b b b 的方向上。反过来视为将向量 b b b 投影到向量 a a a 也可以,

举例

在这里插入图片描述

当向量之间的角度和大小已知时,几何视角很有用,如上例所示。 在这个例子中,计算点积很容易。
∥ a ∥ = ( − 6 ) 2 + 8 2 = 10 ∥ b ∥ = 5 2 + 1 2 2 = 13 θ = 59.5 ° ∴ a ⋅ b = ∥ a ∥ ∥ b ∥ cos ⁡ θ = 10 × 13 × cos ⁡ ( 59.5 ) = 65.9799871849 \begin{aligned} \Vert a \Vert &= \sqrt{(-6)^2+8^2} = 10\\ \Vert b \Vert &= \sqrt{5^2+12^2} = 13\\ \theta &= {59.5}\degree\\\\ \therefore a \sdot b &= \Vert a \Vert \Vert b \Vert \cos\theta\\ &=10 \times 13 \times \cos(59.5) \\ &=65.9799871849 \end{aligned} abθab=(6)2+82 =10=52+122 =13=59.5°=a∥∥bcosθ=10×13×cos(59.5)=65.9799871849

几何意义

上面的结果有什么意义呢?

我们都知道当两个向量指向相同方向时,它们之间的角度为 θ = 0 ° \theta = 0\degree θ= 0 0 0 弧度。 这意味着 cos ⁡ ( θ ) \cos(\theta) cos(θ) 的结果为 1,此时点积最大。如果两个向量指向相反方向时,它们之间的角度为 θ = 180 ° \theta = 180\degree θ=180° π \pi π 弧度。 这意味着 cos ⁡ ( θ ) \cos(\theta) cos(θ) 的结果为 -1,此时点积最小。当 θ = 90 ° \theta = 90\degree θ=90° π / 2 \pi/2 π/2 弧度时, cos ⁡ ( θ ) \cos(\theta) cos(θ) 的结果为 0,此时点积为0。当点积为 0 时,意味着两个向量彼此垂直或正交。

方向关系计算结果
完全同向 + A B +AB +AB
基本同向 < + A B \lt +AB <+AB
垂直 0 0 0
基本反向 > − A B \gt -AB >AB
完全反向 − A B -AB AB

坐标视角

在坐标视角下,我们只知道向量的坐标,不知道向量间的夹角,此时点积的代数形式可以不需要角度来计算点积。在坐标视角下,只需每个向量的对应分量相乘,相加后最终结果等同于几何视角的结果。下面是点积的代数形式:
a ⋅ b = [ a 0 b 0 + a 1 b 1 + ⋯ + a n b n ] = ∑ i = 1 n a i b i a \sdot b = [a_0b_0+a_1b_1+\dots+a_nb_n] = \sum_{i=1}^na_ib_i ab=[a0b0+a1b1++anbn]=i=1naibi
还是用上面的例子,用坐标视角计算向量 a , b a, b a,b 的点积
a ⋅ b = ( − 6 ) × 5 + 8 × 12 = − 30 + 96 = 66 a \sdot b = (-6)\times5+8\times12 = -30+96 = 66 ab=(6)×5+8×12=30+96=66
可见结果与几何视角的计算结果非常接近,误差可以忽略不记。

两种视角的等价性

要解释两种视角的等价性,需要引入标准基(Standard basis,也叫自然基或规范基)的概念。数学上,坐标向量空间的标准基是指向量分量只有一个1,其余都为0的向量的向量。举个例子很容易理解,在平面坐标系中,标准基有 2 个向量
e x = ( 1 , 0 ) , e y = ( 0 , 1 ) e_x=(1,0), \quad e_y=(0,1) ex=(1,0),ey=(0,1)
同理三维空间中,标准基有 3 个向量
e x = ( 1 , 0 , 0 ) , e y = ( 0 , 1 , 0 ) , e z = ( 0 , 0 , 1 ) e_x=(1,0,0), \quad e_y=(0,1,0), \quad e_z=(0,0,1) ex=(1,0,0),ey=(0,1,0),ez=(0,0,1)
这里 e x e_x ex x x x 轴同向,且长度为1; e y e_y ey y y y 轴同向; e z e_z ez z z z 轴同向。

标准基可以将任意向量分解为各分量与标准基的线性组合,比如三维空间中的向量 v v v 可以表示为:
v x e x + v y e y + v z e z v_xe_x+v_ye_y+v_ze_z vxex+vyey+vzez
其中 v x , v y , v z v_x, v_y, v_z vx,vy,vz 是向量 v v v 的分量。

标准基中的向量都是正交的且长度为单位长度1,因此正交基具有如下性质:
e i ⋅ e i = 1 e i ⋅ e j = 0 ( i ≠ j ) e_i \sdot e_i = 1\\ e_i \sdot e_j = 0 \quad(i \ne j)\\ eiei=1eiej=0(i=j)
这两个性质很好证明,大家可以自行运用上面讲过几何视角和坐标视角去证明。

有了标准基的概念后,我们可以将向量表示成分量与标准基的线性组合:
a = [ a 1 , a 2 , … , a n ] = ∑ i = 1 n a i e i b = [ b 1 , b 2 , … , b n ] = ∑ i = 1 n b i e i a = [a_1, a_2, \dots, a_n] = \sum_{i=1}^na_ie_i\\ b = [b_1, b_2, \dots, b_n] = \sum_{i=1}^nb_ie_i\\ a=[a1,a2,,an]=i=1naieib=[b1,b2,,bn]=i=1nbiei
由于标准基向量的长度都为1,即 ∥ e i ∥ = 1 \Vert e_i \Vert = 1 ei=1,当向量与标准基点乘时,得到的是向量的各分量:
a ⋅ e i = ∥ a ∥ ∥ e i ∥ cos ⁡ θ i = ∥ a ∥ cos ⁡ θ i = a i a \sdot e_i = \Vert a \Vert \Vert e_i \Vert \cos\theta_i = \Vert a \Vert \cos\theta_i = a_i aei=a∥∥eicosθi=acosθi=ai
这里 a i a_i ai 就是向量 a a a e i e_i ei 方向上的分量。

运用分配律带入点积的几何形式,就得到
a ⋅ b = a ⋅ ∑ i = 1 n b i e i = ∑ i = 1 n b i ( a ⋅ e i ) = ∑ i = 1 n b i a i = ∑ i = 1 n a i b i a \sdot b = a \sdot \sum_{i=1}^nb_ie_i = \sum_{i=1}^nb_i(a \sdot e_i) = \sum_{i=1}^nb_ia_i = \sum_{i=1}^na_ib_i ab=ai=1nbiei=i=1nbi(aei)=i=1nbiai=i=1naibi
上面式子的结果正是点积的代数定义。 所以点积的几何形式与代数形式是等价的。

点积的作用

  1. 物理中很多量都是矢量(既有大小也有方向),这些矢量可以通过点积连接。比如:
    功 = ( 力 ⃗ ) ⋅ ( 距离 ⃗ ) \text{功} = (\vec{力}) \sdot (\vec{距离}) =( )(距离 )

  2. 可以计算两个向量的夹角,比如:
    u ⃗ = ( 81 , − 15 ) v ⃗ = ( 22 , 37 ) 无需作图,通过代数形式可以计算得: u ⃗ ⋅ v ⃗ = 81 × 22 + ( − 15 ) × 37 = 1227 再根据几何形式有: ∥ u ∥ = 8 1 2 + ( − 15 ) 2 = 81.09 ∥ v ∥ = 2 2 2 + 3 7 2 = 43.05 ∥ u ∥ ∥ v ∥ = 3491 cos ⁡ θ = u ⃗ ⋅ v ⃗ ∥ u ∥ ∥ v ∥ = 1227 3491 = 0.351475222 θ = cos ⁡ − 1 ( 0.351475222 ) = 69.42 ° \vec{u} = (81, -15)\\ \vec{v} = (22, 37) \\ \text{无需作图,通过代数形式可以计算得:}\\ \vec{u}\sdot\vec{v} = 81 \times 22+(-15)\times37 =1227\\ \text{再根据几何形式有:}\\ \Vert u\Vert = \sqrt{81^2+(-15)^2} = 81.09\\ \Vert v\Vert = \sqrt{22^2+37^2} = 43.05\\ \Vert u\Vert \Vert v\Vert = 3491 \\ \cos\theta = \frac{\vec{u}\sdot\vec{v}}{\Vert u\Vert \Vert v\Vert} = \frac{1227}{3491} = 0.351475222 \\ \theta = \cos^{-1}(0.351475222) = 69.42\degree u =(81,15)v =(22,37)无需作图,通过代数形式可以计算得:u v =81×22+(15)×37=1227再根据几何形式有:u=812+(15)2 =81.09v=222+372 =43.05u∥∥v=3491cosθ=u∥∥vu v =34911227=0.351475222θ=cos1(0.351475222)=69.42°

总结

点积是机器学习中最常见的向量操作。上面内容为了简单易懂可能在数学上有失严谨,全面严谨的讲解建议大家系统性地学习一下线性代数,这里推荐 Gilbert Strang 老爷子的 Introduction to Linear Algebra,这本书是我读过对初学者最友好的线性代数书。


http://www.ppmy.cn/news/140739.html

相关文章

T440p重装64位windows系统

1.下载win64位系统 在msdn我告诉你上找到正确的win64位操作系统&#xff0c;下载镜像系统文件至本地。下载的镜像文件不用解压等操作。 2.制作winPE U盘启动盘 准备好一个容量大于4G的U盘&#xff0c;从老毛桃winpe官网下载winpe工具箱制作软件&#xff0c;winpe工具箱安装完…

T440p黑苹果 BIOS设置

Bios Settings&#xff08;开机按 F1&#xff09; 安装MacOS必须执行以下配置 In Security menu, set the following settings: Security > Security Chip: must be Disabled,Memory Protection > Execution Prevention: must be Enabled,Virtualization > Intel V…

t440p安装黑苹果+win10双系统记录

软件准备 DiskGenius, win10 设置t440bios 安装MacOS必须执行以下配置 In Security menu, set the following settings: Security > Security Chip: must be Disabled, Memory Protection > Execution Prevention: must be Enabled, Virtualization > In…

thinkpad t440p不亮机故障修复

2020-03-04日&#xff0c;笔者的thinkpad t440p笔记本出现彻底无法开机&#xff0c;黑屏现象&#xff0c;此时无法进bios设置&#xff0c;无法启动操作系统。在此之前约1年半前系统出现cpu风扇噪音异常偏大现象&#xff1b;在此约半年前系统偶发性出现按开机键后无法立即开机启…

Thinkpad T440p安装Linux的种种问题

From: http://blog.csdn.net/quqi99/article/details/25320181 Thinkpad T440p里使用了一些最新的硬件&#xff0c;这些硬件厂商对Linux高度不兼容, 下面是安装ubuntu 14.04与win8双系统时遇到的一些问题。 1, 要在BIOS&#xff08;F1键&#xff09;里disable掉UEFI Security B…

报错:dll不是有效的win32应用程序

学习如何创建并调用动态库时&#xff0c;新建了一个项目用于调用自己创建的动态库&#xff0c;如下&#xff1a; 其中Dll3是新创建的动态库&#xff0c;text3是新建的另一个项目用于调用Dll3动态库&#xff0c;运行时报错如下&#xff1a; 原因在于Dll3动态库是默认的启动项目…

Melodyne 5 修音软件夏季促销

今年的大型更新和升级促销活动从2023年5月31日中午开始&#xff0c;持续到2023年6月30日午夜。 MELODYNE的简化版本ESSENTIAL 版基本是人手一份的必备的东西&#xff0c;但是只有ESSENTIAL 简化版在实际使用中往往是不够的&#xff0c;如果想升级到更高的版本&#xff0c;那就…

Spring Boot中使用WebSocket

文章目录 为什么要用WebSocket&#xff1f;WebSocket的握手阶段Spring Boot中使用WebSocket添加WebSocket依赖服务器代码编写WebSocketSession如何获取用户信息&#xff1f;创建管理类管理用户与会话客户端代码 为什么要用WebSocket&#xff1f; 我们往往需要一些这样的场景&a…