人工智能入门 数学基础 线性代数 笔记

必备的数学知识是理解人工智能不可或缺的要素,今天的种种人工智能技术归根到底都建立在数学模型之上,而这些数学模型又都离不开线性代数(linear algebra)的理论框架。

线性代数的核心意义:世间万事万物都可以被抽象成某种特征组合,并可以再预配置的规则框架下以静态和动态的方式观察。

基本概念

集合Set

某些特定对象汇总处的集体,而集合中每些元素会有某些共性。

对于集合 { 苹果,橘子,梨 } 来说, 所有元素的共性是它们都是水果;对于集合 {牛,马,羊} 来说,所有元素的共性是它们都是动物。

当然 { 苹果,牛 } 也可以构成一个集合,但这两个元素并没有明显的共性,这样的集合在解决实际问题中的作用也就相当有限。

“苹果”或是“牛”这样的具体概念显然超出了数学的处理范围,因而集合的元素需要进行进一步的抽象——用数字或符号来表示。

标量Scalar

在线性代数中,由单独的数 a 构成的元素被称为标量(scalar):一个标量 a 可以是整数、实数或复数。

向量Vector(去重)

如果多个标量a1、a2、a3、。。。an,按一定顺序组成一个序列,这个序列就可以叫向量(Vector)

向量可以看做是标量的扩展,原始的一个数的标量可以被替代一组向量,带来维度上的增加,给定索引下标才能确定向量中的唯一元素。

矩阵(Matrix)

每个向量都由若干个标量组成,而将向量的所有规格的标量都替换为相同规格的向量,则是矩阵(Matrix)

( a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ) \begin{pmatrix}a_{11} & a_{12} & a_{13} \\a_{21} & a_{22} & a_{23} \\a_{31} & a_{32} & a_{33}\end{pmatrix} a11a21a31a12a22a32a13a23a33

对于向量,矩阵同样增加了维度。

使用矩阵的某个元素,需要使用两个索引。

张量(Tensor)

如果将矩阵中的每个标量元素替换为向量的话,得到的就是张量(tensor),更高阶的矩阵。

举例:

image.png

如果把三阶魔方的每一个小方块看作一个数,它就是个 3×3×3 的张量,3×3 的矩阵则恰是这个魔方的一个面,也就是张量的一个切片。相比于向量和矩阵,张量是更加复杂,直观性也更差的概念。

数学概念魔方类比维度例子
标量(Scalar)单个小方块的颜色0D“红”
向量(Vector)一行或一列1D[红,绿,黄][红, 绿, 黄][红,绿,黄]
矩阵(Matrix)魔方的一个面2D[[红,绿,黄],[红, 绿, 黄],[红,绿,黄]]
张量(Tensor)整个魔方3D3×3×33×3×33×3×3 立方体存储颜色
  • 在计算机存储中,标量占据的是零维数组;
  • 向量占据的是一维数组,例如语音信号;
  • 矩阵占据的是二维数组,例如灰度图像;
  • 张量占据的是三维乃至更高维度的数组,例如 RGB 图像和视频。

数学语言

描述作为数学对象的向量需要有特定的数学语言,范数内积就是代表。

范数(Norm)

范数(norm)是对单个向量大小的度量,描述的是向量自身的性质,其作用是将向量映射为一个非负的数值

对于给定向量:

X = ( X 1 , X 2 , X 3 , … , X n ) \mathbf{X} = (X_1,X_2,X_3,\dots,X_n) X=(X1,X2,X3,,Xn)

通用 L p L^p Lp范数定义:

∣ x ∣ p = ( ∑ i ∣ x i ∣ p ) 1 p |\mathbf{x}|_p = \left( \sum_{i} |x_i|^p \right)^{\frac{1}{p}} xp=(ixip)p1

对⼀个给定向量,

  • L1 范数计算的是向量所有元素绝对值的和(曼哈顿范数),

∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \|\mathbf{x}\|1 = \sum{i=1}^{n} |x_i| x∥1=i=1nxi

计算的是向量所有元素绝对值的和。

  • L2 范数计算的是通常意义上的向量长度, ∥ x ∥ 2 = ∑ i = 1 n x i 2 = x 1 2 + x 2 2 + ⋯ + x n 2 \|\mathbf{x}\|_2 = \sqrt{\sum_{i=1}^{n} x_i^2} = \sqrt{x_1^2 + x_2^2 + \cdots + x_n^2} x2=i=1nxi2 =x12+x22++xn2 计算的是通常意义上的向量长度,即从原点到向量 的直线距离。
  • L∞ 范数计算的则是向量中最大元素的取值。 ∥ x ∥ ∞ = lim ⁡ p → ∞ ∥ x ∥ p = max ⁡ 1 ≤ i ≤ n ∣ x i ∣ \|\mathbf{x}\|_\infty = \lim_{p \to \infty} \|\mathbf{x}\|_p = \max_{1 \leq i \leq n} |x_i| x=limpxp=max1inxi

内积(Inner Product)

范数计算的是单个向量的尺度,内积(inner product)计算的则是两个向量之间的关系。

两个相同维数向量内积的表达式为:

⟨ x , y ⟩ = ∑ i x i ⋅ y i ⟨x,y⟩=\sum_i{xi⋅yi} x,y=ixiyi

即对应元素乘积的求和。内积能够表示两个向量之间的相对位置,即向量之间的夹角

一种特殊的情况是内积为 0,即 ⟨x,y⟩=0。在二维空间上,这意味着两个向量的夹角为 90 ,即相互垂直

⟨ x , y ⟩ = 0 \langle \mathbf{x}, \mathbf{y} \rangle = 0 x,y=0

  • 说明两个向量正交(orthogonal),即互相垂直(夹角90°)
  • 代表线性无关

线性空间和内积空间

线性空间(Linear Space)

如果有一个集合,它的元素都是相同维数的向量,并且我们可以进行加法(vector addition)和数乘(scalar multiplication),这样的集合被称为 线性空间(向量空间)。

例子:

  • 几何上的向量空间:二维空间 R 2 \mathbb{R}^2 R2 和三维空间 R 3 \mathbb{R}^3 R3 都是线性空间。
  • 数据特征空间:比如所有人的身高、体重和年龄组成的三维向量集合。

线性空间特征

线性空间的一个重要特征是能够承载变化。当作为参考系的标准正交基确定后,空间中的点就可以用向量表示。当这个点从一个位置移动到另一个位置时,描述它的向量也会发生改变。点的变化对应着向量的线性变换(linear transformation),而描述对象变化抑或向量变换的数学语言,正是矩阵。

在线性空间中,变化的实现有两种方式:一是点本身的变化,二是参考系的变化。

使某个点发生变化的方法是用代表变化的矩阵乘以代表对象的向量。可是反过来,如果保持点不变。

而是换一种观察的角度,得到的也将是不同的结果,正所谓“横看成岭侧成峰,远近高低各不同”。

内积空间(Inner Product Space)

如果在线性空间中定义了内积运算,则称其为 内积空间,这意味着可以衡量向量之间的角度和相似度。

  • 在几何中,内积描述了向量的夹角

⟨ x , y ⟩ = ∥ x ∥ 2 ∥ y ∥ 2 c o s ⁡ θ ⟨ x , y ⟩ = ∥ x ∥ 2 ∥ y ∥ 2 cos ⁡ θ ⟨x,y⟩=∥x∥2∥y∥2cos⁡θ\langle \mathbf{x}, \mathbf{y} \rangle = \|\mathbf{x}\|_2 \|\mathbf{y}\|_2 \cos\theta x,y=x∥2∥y∥2cosθx,y=x2y2cosθ

这有助于分析向量在某个方向上的投影。

  • 在机器学习中,特征空间中的点代表数据对象,内积用于计算数据对象之间的相似性

高维空间(如深度学习中的向量嵌入空间),所有数据点都可以看作是一个向量,每个点都有一个唯一的向量表示。因此,点和向量是等价的

数据点 ⟺ 特征向量 \text{数据点} \Longleftrightarrow \text{特征向量} 数据点特征向量

概念作用数学表达实际意义
向量(Vector)代表一个对象或行为的特征 x = ( x 1 , x 2 , . . . , x n ) x = ( x 1 , x 2 , . . . , x n ) x = ( x 1 ​ , x 2 ​ , . . . , x n ​ ) x=(x1,x2,...,xn)\mathbf{x} = (x_1, x_2, ..., x_n)x=(x1​,x2​,...,xn​) x=(x1,x2,...,xn)x=(x1,x2,...,xn)x=(x1​,x2​,...,xn)图片、文本、用户行为等数据都可以表示为向量
范数(Norm)衡量向量的大小 ∥ x ∥ p ​ = ( i ∑ ​ ∣ x i ​ ∣ p ) p 1 ∥x∥p​=(i∑​∣xi​∣p)p1 xp=(ixip)p1x_i
内积(Inner Product)衡量两个向量的关系 ⟨ x , y ⟩ = ∑ x i y i ⟨ x , y ⟩ = ∑ x i y i ⟨ x , y ⟩ = ∑ x i ​ y i ⟨x,y⟩=∑xiyi\langle \mathbf{x}, \mathbf{y} \rangle = \sum x_i y_i⟨x,y⟩=∑xi​yi x,y=xiyix,y=xiyix,y=xiyi计算相似性,预测匹配程度

向量变换(linear transformation)

矩阵作用到向量 Ax=y

假设我们有一个矩阵A和一个向量x,它们的乘积定义为:

A x = y A\mathbf{x} = \mathbf{y} Ax=y

这表示矩阵 A 对向量 x 进行了某种变换,结果是一个新的向量 y(维度与x 相同)。

示例

如果矩阵 A 是一个 旋转矩阵,那么它的作用可能是旋转向量 x 而不改变其长度。
如果矩阵 A 是一个 缩放矩阵,那么它可能是将向量的长度按比例放大或缩小。

特征向量与特征值

有一种特殊情况:如果矩阵 AAA 作用在某个向量 xxx 上后,得到的结果仍然是它自己的缩放版本,即:

A x = b x A\mathbf{x} = b \mathbf{x} Ax=bx

那么,x 就被称为 矩阵 A 的特征向量(eigenvector),而 b 就是对应的特征值(eigenvalue)

直观理解

  • 特征向量 是在矩阵变换下方向不变的向量,只可能被拉伸或缩短,而不会被旋转到其他方向。
  • 特征值 是拉伸或缩短的比例因子。

示例

假设:
A = [ 2 0 0 3 ] , x = [ 1 0 ] A= \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix}, \quad x = \begin{bmatrix} 1 \\ 0 \end{bmatrix} A=[2003],x=[10]

计算矩阵乘法:
image-20250205184945550

我们发现:

  • 向量 x = [ 1 0 ] x = \begin{bmatrix} 1 \\ 0 \end{bmatrix} x=[10]没有改变方向,只是被拉伸了 2 倍。
  • 这意味着 x 是 A 的特征向量,对应的特征值是 2。

要点

  • 线性代数的本质在于将具体事物抽象为数学对象,并描述其静态和动态的特性;
  • 向量的实质是 n 维线性空间中的静止点;
  • 线性变换描述了向量或者作为参考系的坐标系的变化,可以用矩阵表示。
  • 矩阵的特征值和特征向量描述了变化的速度与方向。

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

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

相关文章

C# Winform怎么设计串口,客户端和相机控件界面显示

首先我们必须把这个类创建好 INIAPI using System; using System.Text; using System.Runtime.InteropServices;namespace Ini {public class IniAPI{#region INI文件操作/** 针对INI文件的API操作方法,其中的节点(Section)、键(KEY&#x…

在 Windows 上使用 ZIP 包安装 MySQL 的详细步骤

以下是使用官方 ZIP 包在 Windows 上安装 MySQL 的详细步骤,确保能通过 mysql -uroot -p 成功连接。 步骤 1:下载 MySQL ZIP 包 访问 MySQL 官方下载页面: https://dev.mysql.com/downloads/mysql/选择 Windows (x86, 64-bit), ZIP Archive&…

el-table表格点击单元格实现编辑

使用 el-table 和 el-table-column 创建表格。在单元格的默认插槽中,使用 div 显示文本内容,单击时触发编辑功能。使用 el-input 组件在单元格中显示编辑框。data() 方法中定义了 tableData,tabClickIndex: null,tabClickLabel: ,用于判断是否…

Windows逆向工程入门之汇编环境搭建

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 Visual Studio逆向工程配置 基础环境搭建 Visual Studio 官方下载地址安装配置选项(后期可随时通过VS调整) 使用C的桌面开发 拓展可选选项 MASM汇编框架 配置MASM汇编项目 创建新项目 选择空…

手写一个C++ Android Binder服务及源码分析

手写一个C Android Binder服务及源码分析 前言一、 基于C语言编写Android Binder跨进程通信Demo总结及改进二、C语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.h代码实现3.2 BnHelloService.c…

DeepSeekMoE 论文解读:混合专家架构的效能革新者

论文链接:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models 目录 一、引言二、背景知识(一)MoE架构概述(二)现有MoE架构的问题 三、DeepSeekMoE架构详解(一&a…

[每周一更]-(第133期):Go中MapReduce架构思想的使用场景

文章目录 **MapReduce 工作流程**Go 中使用 MapReduce 的实现方式:**Go MapReduce 的特点****哪些场景适合使用 MapReduce?**使用场景1. 数据聚合2. 数据过滤3. 数据排序4. 数据转换5. 数据去重6. 数据分组7. 数据统计8.**统计文本中单词出现次数****代码…

【C++高并发服务器WebServer】-13:多线程服务器开发

本文目录 一、多线程服务器开发二、TCP状态转换三、端口复用 一、多线程服务器开发 服务端代码如下。 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>s…

「vue3-element-admin」告别 vite-plugin-svg-icons!用 @unocss/preset-icons 加载本地 SVG 图标

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …

C#中深度解析BinaryFormatter序列化生成的二进制文件

C#中深度解析BinaryFormatter序列化生成的二进制文件 BinaryFormatter序列化时,对象必须有 可序列化特性[Serializable] 一.新建窗体测试程序BinaryDeepAnalysisDemo,将默认的Form1重命名为FormBinaryDeepAnalysis 二.新建测试类Test Test.cs源程序如下: using System; us…

深度学习在医疗影像分析中的应用

引言 随着人工智能技术的快速发展&#xff0c;深度学习在各个领域都展现出了巨大的潜力。特别是在医疗影像分析中&#xff0c;深度学习的应用不仅提高了诊断的准确性&#xff0c;还大大缩短了医生的工作时间&#xff0c;提升了医疗服务的质量。本文将详细介绍深度学习在医疗影像…

计算机领域QPM、TPM分别是什么并发指标,还有其他类似指标吗?

在计算机领域&#xff0c;QPM和TPM是两种不同的并发指标&#xff0c;它们分别用于衡量系统处理请求的能力和吞吐量。 QPM&#xff08;每分钟请求数&#xff09; QPM&#xff08;Query Per Minute&#xff09;表示每分钟系统能够处理的请求数量。它通常用于衡量系统在单位时间…

【安当产品应用案例100集】036-视频监控机房权限管理新突破:安当windows操作系统登录双因素认证解决方案

一、机房管理痛点&#xff1a;权限失控下的数据泄露风险 在智慧城市与数字化转型浪潮下&#xff0c;视频监控系统已成为能源、金融、司法等行业的核心安防设施。然而&#xff0c;传统机房管理模式中&#xff0c;值班人员通过单一密码即可解锁监控画面的操作漏洞&#xff0c;正…

Unity抖音云启动测试:如何用cmd命令行启动exe

相关资料&#xff1a;弹幕云启动&#xff08;原“玩法云启动能力”&#xff09;_直播小玩法_抖音开放平台 1&#xff0c;操作方法 在做云启动的时候&#xff0c;接完发现需要命令行模拟云环境测试启动&#xff0c;所以研究了下。 首先进入cmd命令&#xff0c;CD进入对应包的文件…

< OS 有关 > 利用 google-drive-ocamlfuse 工具,在 Ubuntu 24 系统上 加载 Google DRIVE 网盘

Created by Dave On 8Feb.2025 起因&#xff1a; 想下载 StableDiffusion&#xff0c;清理系统文件时把 i/o 搞到 100%&#xff0c;已经删除到 apt 缓存&#xff0c;还差 89MB&#xff0c;只能另想办法。 在网上找能不能挂在 Google 网盘&#xff0c;百度网盘&#xff0c;或 …

【LITS游戏——暴力DFS+剪枝优化】

题目 代码 #include <bits/stdc.h> using namespace std; using pll pair<int, int>; #define x first #define y second const int N 51; pll d[4][4][4] {{{{0, 0}, {1, 0}, {2, 0}, {2, 1}}, {{0, 0}, {1, 0}, {1, -1}, {1, -2}}, {{0, 0}, {0, 1}, {1, 1},…

Redisson全面解析:从使用方法到工作原理的深度探索

文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细…

用Python进行websocket接口测试

这篇文章主要介绍了用Python进行websocket接口测试&#xff0c;帮助大家更好的理解和使用python&#xff0c;感兴趣的朋友可以了解下 我们在做接口测试时&#xff0c;除了常见的http接口&#xff0c;还有一种比较多见&#xff0c;就是socket接口&#xff0c;今天讲解下怎么用P…

【RocketMQ 存储】- 同步刷盘服务 GroupCommitService

文章目录 1. 前言2. 参数3. 队列相关4. 核心逻辑 run4.1 waitForRunning4.2 doCommit4.3 flush 5. 小结 本文章基于 RocketMQ 4.9.3 1. 前言 RocketMQ 存储部分系列文章&#xff1a; 【RocketMQ 存储】- RocketMQ存储类 MappedFile【RocketMQ 存储】- 一文总结 RocketMQ 的存…

基于yolov11的阿尔兹海默症严重程度检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的阿尔兹海默症严重程度检测系统是一种创新的医疗辅助工具&#xff0c;旨在通过先进的计算机视觉技术提高阿尔兹海默症的早期诊断和病情监测效率。阿尔兹海默症是一种渐进性的神经退行性疾病&#xff0c;通常表现为认知障碍、记忆丧失和语言障碍等症状…