【自用】知识点梳理
Wx + b → 全连接层(Linear)exp / sum → Softmax(多分类概率)1/(1+e^-x) → Sigmoid(二分类)Conv2d → 图像卷积LayerNorm → Transformer 大模型必备Multi-Head Attention → 大模型核心Embedding → 词向量。
做题技巧
逻辑公式解答题,代入特殊值求解一下出来了
机器学习算法原理
正则化
正则化越强,模型越泛化,越简单
kmeans
KMeans 聚类核心规则
每次加样本迭代:样本划分到欧式距离最近的簇中心,再更新簇中心。
SVM支持向量机监督分类
一种二分类有监督模型,核心是在特征空间中找到一个最优分离超平面,让两类样本间隔最大
RBF 核(高斯径向基核函数)
定义:最常用的非线性核函数,把低维线性不可分数据映射到高维空间,实现可分。
惩罚参数 C (正则化系数)
含义:控制分类间隔和允许错分样本的权衡系数。
C 越大:
对错分惩罚越重,尽量不允许出错,容易过拟合,决策边界复杂;
C 越小:
对错分宽容,允许部分样本错分,追求间隔更大,容易欠拟合,泛化更好。
核系数 gamma(RBF 核独有)
含义:控制高斯核的作用范围,决定单个样本的影响辐射距离。
gamma 越大:
每个样本影响范围极小,只贴近自己,决策边界细碎扭曲,极易过拟合;
gamma 越小:
样本影响范围大,辐射全局,决策边界平滑简单,容易欠拟合。
朴素贝叶斯 垃圾邮件过滤
核心原理
-
用贝叶斯公式:
P(垃圾邮件∣邮件内容)=P(邮件内容∣垃圾邮件)⋅P(垃圾邮件)P(邮件内容) P(\text{垃圾邮件}|\text{邮件内容}) =\frac{P(\text{邮件内容}|\text{垃圾邮件})\cdot P(\text{垃圾邮件})}{P(\text{邮件内容})} P(垃圾邮件∣邮件内容)=P(邮件内容)P(邮件内容∣垃圾邮件)⋅P(垃圾邮件) -
朴素的含义:
假设邮件里每个单词互相独立(条件独立假设),简化计算。 -
训练阶段
- 收集大量已标注邮件:垃圾邮件、正常邮件
- 统计:
垃圾邮件里各单词出现概率、正常邮件里各单词出现概率
还有垃圾邮件、正常邮件的先验概率
- 预测阶段
新来一封邮件,拆成单词;
用朴素贝叶斯分别算出:
- 它是垃圾邮件的后验概率
- 它是正常邮件的后验概率
谁概率大,就判给哪一类。
深度学习核心层关键代码逻辑 完整梳理
一、全连接层(Linear / Dense)
最基础、最万能的神经网络层
y=Wx+by = Wx + by=Wx+b
对输入做线性变换。
伪代码
function linear(x, W, b):
return W @ x + b
PyTorch 真实代码
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代码
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
代码
sigmoid = nn.Sigmoid()
out = sigmoid(x)
四、ReLU 激活(最常用)
原理
ReLU(x)=max(0,x)ReLU(x) = max(0, x)ReLU(x)=max(0,x)
代码
relu = nn.ReLU()
out = relu(x)
用途
解决梯度消失,90%模型必用。
五、卷积层 CNN(图像必备)
原理
提取图像边缘、纹理、特征
代码
conv = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3)
六、池化层(降维)
最大池化
max_pool = nn.MaxPool2d(kernel_size=2)
平均池化
avg_pool = nn.AvgPool2d(kernel_size=2)
七、LayerNorm(大模型必备!Transformer 核心)
代码
ln = nn.LayerNorm(embedding_dim)
out = ln(x)
用途
稳定训练,所有大模型(GPT、LLaMA)都用。
八、多头注意力 Multi-Head Attention(Transformer 核心)
大模型最关键层!
代码
attention = nn.MultiheadAttention(embed_dim=512, num_heads=8)
out, _ = attention(query, key, value)
用途
让模型理解词语之间的关系。
九、Embedding 层(词向量层)
代码
embedding = nn.Embedding(num_embeddings=10000, embedding_dim=512)
x = torch.randint(0,10000,(32,10))
out = embedding(x)
用途
把单词 → 向量,大模型输入层。
十、一个完整模型示例(把上面全部串起来)
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 分解
任意 矩阵 (A)都可以做 分解:
[A = QR]
- (Q):正交矩阵 / 标准正交列
- (R):上三角矩阵
(Q^TQ=E),正交矩阵自带性质:逆=转置。
作用
- 最小二乘拟合
- 特征值求解(QR迭代)
- 线性方程组求解,数值稳定性远强于LU
- 大模型、机器学习矩阵计算常用
适用范围
方阵、长方形矩阵都可以,比LU适用更广。
延伸知识点
| 对比项 | LU分解 | QR分解 |
|---|---|---|
| 分解形式 | 下三角 × 上三角 | 正交矩阵 × 上三角 |
| 适用矩阵 | 一般仅限方阵 | 任何矩阵都可 |
| 正交性 | 无 | Q是正交阵 |
| 数值稳定性 | 一般 | 很好 |
| 主要用途 | 解线性方程组、行列式 | 最小二乘、特征值、数值计算 |
| 大模型/机器学习 | 用得少 | 用得多 |
最大似然估计
已知样本,反推参数:找一组参数,让当前这批样本出现的概率最大。
步骤1:写出单个样本的概率 / 概率密度
离散分布:分布律 (P(X=x_i;\theta))
连续分布:概率密度 (f(x_i;\theta))
(\theta) 是待估参数(如 (\lambda,\mu,\sigma^2,p))
步骤2:构造似然函数 (L(\theta))
样本独立同分布,联合概率=乘积:
L(θ)=∏i=1nf(xi;θ) L(\theta)=\prod_{i=1}^n f(x_i;\theta) L(θ)=i=1∏nf(xi;θ)
步骤3:取对数,得对数似然 (\ln L(\theta))
乘积变求和,求导方便:
lnL(θ)=∑i=1nlnf(xi;θ) \ln L(\theta) = \sum_{i=1}^n \ln f(x_i;\theta) lnL(θ)=i=1∑nlnf(xi;θ)
步骤4:对参数 (\theta) 求导,令导数=0
dlnL(θ)dθ=0 \dfrac{d\ln L(\theta)}{d\theta} = 0 dθdlnL(θ)=0
步骤5:解方程,解出 θ^{\hat\theta}θ^
就是最大似然估计量。
两个高频必考模板
模板1:指数分布 (f(x)=\lambda e^{-\lambda x})
- 似然:(L(\lambda)=\prod \lambda e^{-\lambda x_i})
- 取对数:(\ln L = n\ln\lambda -\lambda\sum x_i)
- 求导置0:(\dfrac{n}{\lambda}-\sum x_i=0)
- 解得:(\boldsymbol{\hat\lambda = \dfrac{n}{\sum\limits_{i=1}^n x_i} = \dfrac{1}{\bar x}})
模板2:正态分布 (N(\mu,\sigma^2))
直接记住结论不用推:
[
\hat\mu=\bar x,\quad \hat\sigma2=\dfrac1n\sum_{i=1}n (x_i-\bar x)^2
]
模板3:0-1分布(伯努利)
[
\hat p = \bar x
]
一句话口诀
写密度→连乘似然→取对数→求导等于0→解方程
遇到任何分布,按这五步无脑套就行。
需要我给你一道真题,按这个模板完整算一遍示范吗?
python知识点
数值处理 int()可以转整形字符串,带小数点会报错,但是能转小数数字型,截取整数部分
float可以转整形1和小数字符串都可以
更多推荐



所有评论(0)