人工智能之数学基础 线性代数:第一章 向量与矩阵

人工智能之数学基础 线性代数

第一章 向量与矩阵


文章目录

  • [人工智能之数学基础 线性代数](#人工智能之数学基础 线性代数)
  • 前言
  • 一、基本定义
    • [1. 向量(Vector)](#1. 向量(Vector))
    • [2. 矩阵(Matrix)](#2. 矩阵(Matrix))
  • 二、基本运算
    • [1. 向量/矩阵加减法](#1. 向量/矩阵加减法)
    • [2. 标量乘法](#2. 标量乘法)
    • [3. 矩阵乘法(Matrix Multiplication)](#3. 矩阵乘法(Matrix Multiplication))
    • [4. 转置(Transpose)](#4. 转置(Transpose))
    • [5. 逆矩阵(Inverse Matrix)](#5. 逆矩阵(Inverse Matrix))
      • [Python(使用 NumPy):](#Python(使用 NumPy):)
    • [6. 单位矩阵与零矩阵](#6. 单位矩阵与零矩阵)
      • [单位矩阵(Identity Matrix):](#单位矩阵(Identity Matrix):)
      • [零矩阵(Zero Matrix):](#零矩阵(Zero Matrix):)
      • [Python 创建:](#Python 创建:)
  • 三、向量的点积(内积)
  • 四、完整示例代码汇总
  • 五、小结
  • 后续
  • 资料关注

前言

线性代数是数学的一个重要分支,广泛应用于机器学习、计算机图形学、物理学、工程等领域。本文将系统介绍向量矩阵的基本概念、运算规则,并提供 Python(NumPy)实现代码。


一、基本定义

1. 向量(Vector)

  • 定义:向量是一个有序的数字列表,可以表示为行向量或列向量。

    • 行向量: v = [ v 1 , v 2 , ... , v n ] \mathbf{v} = [v_1, v_2, \dots, v_n] v=[v1,v2,...,vn]

    • 列向量: v = [ v 1 v 2 ⋮ v n ] \mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix} v= v1v2⋮vn

  • 维度 :向量中元素的个数称为其维度(如 n n n 维向量)。

2. 矩阵(Matrix)

  • 定义 :矩阵是一个由数字排列成的矩形数组,具有 m m m行和 n n n 列,记作 A ∈ R m × n A \in \mathbb{R}^{m \times n} A∈Rm×n。

    A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ] A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} A= a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn

  • 特殊矩阵

    • 零矩阵 :所有元素为 0 的矩阵,记作 O O O。
    • 单位矩阵 :主对角线元素为 1,其余为 0 的方阵,记作 I n I_n In。
      I 3 = [ 1 0 0 0 1 0 0 0 1 ] I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} I3= 100010001

二、基本运算

1. 向量/矩阵加减法

  • 条件:两个矩阵(或向量)必须具有相同的维度。
  • 规则:对应元素相加(减)。

示例(矩阵):

A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] ⇒ A + B = [ 6 8 10 12 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix},\quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \Rightarrow A + B = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix} A=[1324],B=[5768]⇒A+B=[610812]

Python 实现:

python 复制代码
import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

print("A + B =\n", A + B)
print("A - B =\n", A - B)

2. 标量乘法

  • 将矩阵/向量中的每个元素乘以一个标量(实数)。

Python:

python 复制代码
c = 2
print("c * A =\n", c * A)

3. 矩阵乘法(Matrix Multiplication)

  • 条件 :若 A ∈ R m × n A \in \mathbb{R}^{m \times n} A∈Rm×n, B ∈ R n × p B \in \mathbb{R}^{n \times p} B∈Rn×p,则 A B ∈ R m × p AB \in \mathbb{R}^{m \times p} AB∈Rm×p。
  • 规则 :结果矩阵第 i , j i,j i,j 元素为 A A A第 i i i 行与 B B B 第 j j j 列的点积。

示例:

A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] ⇒ A B = [ 19 22 43 50 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix},\quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \Rightarrow AB = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix} A=[1324],B=[5768]⇒AB=[19432250]

注意:矩阵乘法不满足交换律 (一般 A B ≠ B A AB \ne BA AB=BA)。

Python:

python 复制代码
C = np.dot(A, B)      # 或 A @ B
print("A @ B =\n", C)

4. 转置(Transpose)

  • 定义 :将矩阵的行与列互换,记作 A T A^T AT。
    • 若 A ∈ R m × n A \in \mathbb{R}^{m \times n} A∈Rm×n,则 A T ∈ R n × m A^T \in \mathbb{R}^{n \times m} AT∈Rn×m。
    • ( A T ) i j = A j i (A^T){ij} = A{ji} (AT)ij=Aji

示例:

A = [ 1 2 3 4 5 6 ] ⇒ A T = [ 1 3 5 2 4 6 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} \Rightarrow A^T = \begin{bmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{bmatrix} A= 135246 ⇒AT=[123456]

Python:

python 复制代码
A = np.array([[1, 2], [3, 4], [5, 6]])
print("A^T =\n", A.T)

5. 逆矩阵(Inverse Matrix)

  • 定义 :对于方阵 A ∈ R n × n A \in \mathbb{R}^{n \times n} A∈Rn×n,若存在矩阵 A − 1 A^{-1} A−1 使得:

    A A − 1 = A − 1 A = I n A A^{-1} = A^{-1} A = I_n AA−1=A−1A=In

    则称 A − 1 A^{-1} A−1 为 A A A 的逆矩阵。

  • 存在条件 : A A A必须是可逆的 (非奇异),即 det ⁡ ( A ) ≠ 0 \det(A) \ne 0 det(A)=0。

Python(使用 NumPy):

python 复制代码
A = np.array([[4, 7], [2, 6]])
A_inv = np.linalg.inv(A)
print("A⁻¹ =\n", A_inv)
print("A @ A⁻¹ =\n", np.dot(A, A_inv))  # 应接近单位矩阵

⚠️ 注意:不是所有矩阵都有逆!只有方阵且满秩才有逆。


6. 单位矩阵与零矩阵

单位矩阵(Identity Matrix):

  • 对任意矩阵 A A A(兼容维度),有 A I = I A = A AI = IA = A AI=IA=A。

零矩阵(Zero Matrix):

  • 所有元素为 0,加法单位元: A + O = A A + O = A A+O=A。

Python 创建:

python 复制代码
I3 = np.eye(3)        # 3x3 单位矩阵
O2 = np.zeros((2, 2)) # 2x2 零矩阵
print("I3 =\n", I3)
print("O2 =\n", O2)

三、向量的点积(内积)

  • 两个同维向量 u , v ∈ R n \mathbf{u}, \mathbf{v} \in \mathbb{R}^n u,v∈Rn的点积:
    u ⋅ v = u 1 v 1 + u 2 v 2 + ⋯ + u n v n = u T v \mathbf{u} \cdot \mathbf{v} = u_1 v_1 + u_2 v_2 + \cdots + u_n v_n = \mathbf{u}^T \mathbf{v} u⋅v=u1v1+u2v2+⋯+unvn=uTv

Python:

python 复制代码
u = np.array([1, 2, 3])
v = np.array([4, 5, 6])
dot_product = np.dot(u, v)  # 或 u @ v
print("u · v =", dot_product)  # 输出: 32

四、完整示例代码汇总

python 复制代码
import numpy as np

# 1. 定义向量和矩阵
v = np.array([1, 2, 3])               # 列向量(在 NumPy 中是一维数组)
A = np.array([[1, 2], [3, 4]])        # 2x2 矩阵
B = np.array([[5, 6], [7, 8]])

# 2. 加减法
print("A + B =\n", A + B)
print("A - B =\n", A - B)

# 3. 标量乘法
print("2 * A =\n", 2 * A)

# 4. 矩阵乘法
print("A @ B =\n", A @ B)

# 5. 转置
print("A^T =\n", A.T)

# 6. 逆矩阵(仅方阵)
A_inv = np.linalg.inv(A)
print("A⁻¹ =\n", A_inv)
print("A @ A⁻¹ ≈ I:\n", np.round(A @ A_inv, decimals=10))

# 7. 单位矩阵 & 零矩阵
I = np.eye(2)
O = np.zeros((2, 2))
print("I =\n", I)
print("O =\n", O)

# 8. 向量点积
u = np.array([1, 2])
w = np.array([3, 4])
print("u · w =", u @ w)

五、小结

概念 符号 条件 Python 函数
加法 A + B A + B A+B 同维 A + B
标量乘法 c A cA cA 任意 c * A
矩阵乘法 A B AB AB A 列数 = B 行数 A @ Bnp.dot(A,B)
转置 A T A^T AT 任意 A.T
逆矩阵 A − 1 A^{-1} A−1 方阵且可逆 np.linalg.inv(A)
单位矩阵 I n I_n In --- np.eye(n)
零矩阵 O O O --- np.zeros((m,n))
向量点积 u ⋅ v \mathbf{u} \cdot \mathbf{v} u⋅v 同维 u @ v

本文介绍了线性代数的向量与矩阵,相关的基础来自于求解方程组,方程组的内容不在此论述,可以查阅提供的资料去了解,这些作为基础可以了解不用过于细节,人工智能比如python已经将一些算法在其内部封装,一行代码可能就代表一层模型,不过了解这些有利于更高层次的对人工智能的理解以及更加灵活的调整模型。


后续

python过渡项目部分代码已经上传至gitee,后续会逐步更新。

资料关注

公众号:咚咚王

gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》

《利用Python进行数据分析》

《算法导论中文第三版》

《概率论与数理统计(第四版) (盛骤) 》

《程序员的数学》

《线性代数应该这样学第3版》

《微积分和数学分析引论》

《(西瓜书)周志华-机器学习》

《TensorFlow机器学习实战指南》

《Sklearn与TensorFlow机器学习实用指南》

《模式识别(第四版)》

《深度学习 deep learning》伊恩·古德费洛著 花书

《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》

《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》

《自然语言处理综论 第2版》

《Natural-Language-Processing-with-PyTorch》

《计算机视觉-算法与应用(中文版)》

《Learning OpenCV 4》

《AIGC:智能创作时代》杜雨+&+张孜铭

《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》

《从零构建大语言模型(中文版)》

《实战AI大模型》

《AI 3.0》

相关推荐
攻城狮7号39 分钟前
AI时代的工业数据心脏:如何选择真正面向未来的时序数据库?
大数据·人工智能·时序数据库·apache iotdb·ainode·iotdb mcp
m0_3722570239 分钟前
训练时,位置编码、Q、K 是怎么被优化成具有空间信息的?
人工智能·机器学习
非著名架构师41 分钟前
嵌入业务的“气象智能芯片”:能源与金融企业如何将AI气象组件化为运营核心?
人工智能·深度学习·风光功率预测·高精度光伏功率预测模型·高精度气象数据
asixpm43 分钟前
新品速递 | 亚信电子推出 AX88279A —— 强化智能联网与边缘计算的 USB 3.2 转 2.5G 以太网控制芯片
人工智能·物联网·5g·边缘计算·以太网
一瞬祈望44 分钟前
⭐ 深度学习入门体系(第 2 篇): 为什么神经网络一定需要激活函数?
人工智能·深度学习·神经网络
TracyCoder1231 小时前
语言模型基础技术的开端:N-Gram与Bag-of-words详解
人工智能·语言模型·自然语言处理·n-gram·词嵌入·bag-of-words
擎创夏洛克AIOps1 小时前
智能运维的“地基革命”:数据治理如何支撑大模型智能体?
运维·人工智能·科技
范桂飓1 小时前
人工智能发展史 — RNN/LSTM/GRU/Transformer 序列模型发展历程
人工智能·rnn·lstm
IT_陈寒1 小时前
React性能优化实战:5个被低估的Hooks技巧让你的应用提速30%
前端·人工智能·后端