机器学习算法原理
kmeans
KMeans 聚类核心规则
每次迭代:样本划分到欧式距离最近的簇中心,再更新簇中心。
深度学习核心层关键代码逻辑 完整梳理
一、全连接层(Linear / Dense)
最基础、最万能的神经网络层
y=Wx+by = Wx + by=Wx+b
对输入做线性变换。
伪代码
function linear(x, W, b):
return W @ x + b
PyTorch 真实代码
python
import torch
import torch.nn as nn
# 定义:输入10维,输出20维
fc = nn.Linear(in_features=10, out_features=20)
# 使用
x = torch.randn(32, 10) # 32个样本,每个10维
out = fc(x) # 输出 shape: (32,20)
用途
所有模型必备:特征变换、映射、输出logits。
二、Softmax 激活层(你题目考的)
把输出变成概率分布 ,总和=1
Softmax(zi)=ezi∑ezjSoftmax(z_i)=\frac{e^{z_i}}{\sum e^{z_j}}Softmax(zi)=∑ezjezi
伪代码
function softmax(logits):
exp_vals = exp(logits)
return exp_vals / sum(exp_vals)
PyTorch代码
python
softmax = nn.Softmax(dim=-1)
probs = softmax(logits) # 输出概率
用途
分类任务、大模型生成下一个词的最后一层。
三、Sigmoid 激活(二分类专用)
原理
σ(x)=11+e−x\sigma(x)=\frac{1}{1+e^{-x}}σ(x)=1+e−x1
输出 0~1
代码
python
sigmoid = nn.Sigmoid()
out = sigmoid(x)
四、ReLU 激活(最常用)
原理
ReLU(x)=max(0,x)ReLU(x) = max(0, x)ReLU(x)=max(0,x)
代码
python
relu = nn.ReLU()
out = relu(x)
用途
解决梯度消失,90%模型必用。
五、卷积层 CNN(图像必备)
原理
提取图像边缘、纹理、特征
代码
python
conv = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3)
六、池化层(降维)
最大池化
python
max_pool = nn.MaxPool2d(kernel_size=2)
平均池化
python
avg_pool = nn.AvgPool2d(kernel_size=2)
七、LayerNorm(大模型必备!Transformer 核心)
代码
python
ln = nn.LayerNorm(embedding_dim)
out = ln(x)
用途
稳定训练,所有大模型(GPT、LLaMA)都用。
八、多头注意力 Multi-Head Attention(Transformer 核心)
大模型最关键层!
代码
python
attention = nn.MultiheadAttention(embed_dim=512, num_heads=8)
out, _ = attention(query, key, value)
用途
让模型理解词语之间的关系。
九、Embedding 层(词向量层)
代码
python
embedding = nn.Embedding(num_embeddings=10000, embedding_dim=512)
x = torch.randint(0,10000,(32,10))
out = embedding(x)
用途
把单词 → 向量,大模型输入层。
十、一个完整模型示例(把上面全部串起来)
python
class Model(nn.Module):
def __init__(self):
super().__init__()
self.embedding = nn.Embedding(10000, 128)
self.linear1 = nn.Linear(128, 256)
self.relu = nn.ReLU()
self.linear2 = nn.Linear(256, 10)
self.softmax = nn.Softmax(dim=-1)
def forward(self, x):
x = self.embedding(x)
x = self.linear1(x)
x = self.relu(x)
x = self.linear2(x)
x = self.softmax(x)
return x
十一、必考总结
- Wx + b → 全连接层(Linear)
- exp / sum → Softmax(多分类概率)
- max(0,x) → ReLU
- 1/(1+e^-x) → Sigmoid(二分类)
- Conv2d → 图像卷积
- LayerNorm → Transformer 大模型必备
- Multi-Head Attention → 大模型核心
- Embedding → 词向量
线性代数关键梳理
一、jacobi迭代
线性方程组:{ 4x + y = 6, x + 3y = 3 }
初始解 (x0, y0) = (0, 0),进行一次 Jacobi 迭代后,(x1, y1) 是:
步骤1:方程组变形
方程组:
{4x+y=6x+3y=3 \begin{cases} 4x + y = 6 \\ x + 3y = 3 \end{cases} {4x+y=6x+3y=3
Jacobi迭代规则:用旧迭代值代入,逐个解新值,互不干扰 。
变形解出 x,yx,yx,y:
\\begin{cases} x = \\dfrac{6 - y}{4}\\\[6pt\] y = \\dfrac{3 - x}{3} \\end{cases}
步骤2:代入初始值 (x0,y0)=(0,0)(x_0,y_0)=(0,0)(x0,y0)=(0,0)
x_1 = \\dfrac{6 - y_0}{4} = \\dfrac{6-0}{4} = 1.5\\\[6pt\] y_1 = \\dfrac{3 - x_0}{3} = \\dfrac{3-0}{3} = 1
延伸知识点
-
Jacobi迭代核心特点
用上一轮全部旧值一次性算出本轮所有新值,更新互不影响。
-
对比高斯-赛德尔 Gauss-Seidel
GS算出一个新值立刻用新值代入下一个变量,收敛比Jacobi快。
-
迭代收敛条件
系数矩阵严格对角占优 ,Jacobi、GS都一定收敛。
本题:∣4∣>∣1∣, ∣3∣>∣1∣|4|>|1|,\ |3|>|1|∣4∣>∣1∣, ∣3∣>∣1∣,严格对角占优,迭代收敛。
二、特征向量线性组合
同一特征值的特征向量,非零线性组合仍是该特征值的特征向量。
不同特征值的特征向量相加,一定不是特征向量。
一个特征值 λ\lambdaλ,线性无关的特征向量个数 = 基础解系向量个数 = 几何重数
三、实对称矩阵
定义
实对称矩阵满足两个条件:
- 矩阵里所有元素都是实数(不是复数);
- 矩阵等于自己的转置:
AT=A\boldsymbol A^T = AAT=A
沿着主对角线 (左上到右下)两边对称 。
位置 ((i,j)) 的元素 = 位置 ((j,i)) 的元素。
例子:
A=[123256369] A= \begin{bmatrix} 1 & 2 & 3\\ 2 & 5 & 6\\ 3 & 6 & 9 \end{bmatrix} A= 123256369
看:第1行第2列 = 第2行第1列 都是2;
第1行第3列 = 第3行第1列 都是3,完全对称。
简单判断方法
- 对角线元素随便;
- 对角线上下镜像相等;
- 全是实数。
延伸必背性质
- 实对称矩阵特征值全是实数;
- 不同特征值 对应的特征向量互相正交;
- 实对称矩阵一定可以正交对角化;
- 实对称矩阵的秩 = 非零特征值个数;
- 大模型、机器学习里的协方差矩阵都是实对称矩阵。
四、正交矩阵
n阶实方阵 (Q) ,满足:
QTQ=QQT=E Q^T Q = QQ^T = E QTQ=QQT=E
就叫正交矩阵。
- 逆矩阵等于转置:
Q−1=QT Q^{-1} = Q^T Q−1=QT
不用算繁琐的逆,直接转置就是逆,这是最大特点。 - 矩阵的列向量(行向量) :
两两互相正交 ,且长度为1(标准正交基)。
简单例子
Q=(100−1) Q= \begin{pmatrix} 1 & 0\\ 0 & -1 \end{pmatrix} Q=(100−1)
转置等于自身,(Q^TQ=E),是正交矩阵。
核心性质
- 行列式:(|Q|=\boldsymbol{\pm 1})
- 任意两行/两列内积为0(正交);自身内积为1(单位长度)。
- 正交矩阵相乘,结果还是正交矩阵。
- 实对称矩阵正交对角化,用的就是正交矩阵。
- 向量乘正交矩阵,只旋转、不拉伸、不改变长度。
五、奇异值分解
基本定义
任意一个 m×nm\times nm×n 实矩阵 AAA ,都可以做奇异值分解:
A=UΣVT A = U\Sigma V^T A=UΣVT
- UUU:m×mm\times mm×m 正交矩阵(左奇异向量)
- Σ\SigmaΣ:m×nm\times nm×n 对角矩阵 ,对角线上是奇异值 σ1≥σ2≥⋯>0\sigma_1\ge \sigma_2\ge\cdots>0σ1≥σ2≥⋯>0
- VVV:n×nn\times nn×n 正交矩阵(右奇异向量)
通俗理解
SVD 就是把任意矩阵,拆解成:旋转 + 拉伸 + 再旋转 。
不像特征值分解只能方阵、还要可对角化 ;
SVD 任意矩阵都能分解,这是最大优势。
奇异值和特征值的关系(必考)
对任意矩阵 AAA:
- 算 ATAA^TAATA 或 AATAA^TAAT,都是实对称方阵
- ATAA^TAATA 的特征值开平方,就是 AAA 的奇异值
σ=λATA \sigma = \sqrt{\lambda_{A^T A}} σ=λATA
** SVD 有什么用(延伸知识)** - 数据降维 PCA
PCA 本质就是 SVD;用前几个大奇异值,保留主要信息。 - 图像压缩
只保留前 k 个奇异值,就能用少量数据还原图片。 - 推荐系统、协同过滤
用户-物品评分矩阵用 SVD 分解做推荐。 - 最小二乘、伪逆求解
解线性方程组、机器学习拟合底层全靠 SVD。 - 大模型词向量降维、矩阵近似
QR分解和LU分解
LU 分解
. 定义
方阵 (A) 拆成:
A = LU
-
(L):下三角矩阵(对角线全1,左下有数、右上全0)
-
(U):上三角矩阵(左上到右下有数、左下全0)
作用
解线性方程组 (Ax=b):
- 拆 (A=LU)
- 先解 (Ly=b)
- 再解 (Ux=y)
比直接高斯消元更快,适合多次解同系数矩阵、不同右端项。
适用条件
方阵、顺序主子式都不为0 ;
需要行交换时叫 PLU分解(P是置换矩阵)。
特点
- 只是三角拆分,无正交性
- 只能方阵
- 数值稳定性一般
QR 分解
任意 (m\times n) 矩阵 (A) 分解:
A = QR
- (Q):正交矩阵 / 标准正交列
- (R):上三角矩阵
(Q^TQ=E),正交矩阵自带性质:逆=转置。
作用
- 最小二乘拟合
- 特征值求解(QR迭代)
- 线性方程组求解,数值稳定性远强于LU
- 大模型、机器学习矩阵计算常用
适用范围
方阵、长方形矩阵都可以,比LU适用更广。
延伸知识点
| 对比项 | LU分解 | QR分解 |
|---|---|---|
| 分解形式 | 下三角 × 上三角 | 正交矩阵 × 上三角 |
| 适用矩阵 | 一般仅限方阵 | 方阵、长方矩阵都可 |
| 正交性 | 无 | Q是正交阵 |
| 数值稳定性 | 一般 | 很好 |
| 主要用途 | 解线性方程组、行列式 | 最小二乘、特征值、数值计算 |
| 大模型/机器学习 | 用得少 | 用得多 |