做题技巧

逻辑公式解答题,代入特殊值求解一下出来了

机器学习算法原理

正则化

正则化越强,模型越泛化,越简单

kmeans

KMeans 聚类核心规则
每次加样本迭代:样本划分到欧式距离最近的簇中心,再更新簇中心。

SVM支持向量机监督分类

一种二分类有监督模型,核心是在特征空间中找到一个最优分离超平面,让两类样本间隔最大
RBF 核(高斯径向基核函数)
定义:最常用的非线性核函数,把低维线性不可分数据映射到高维空间,实现可分。
惩罚参数 C (正则化系数)
含义:控制分类间隔和允许错分样本的权衡系数。
C 越大:
对错分惩罚越重,尽量不允许出错,容易过拟合,决策边界复杂;
C 越小:
对错分宽容,允许部分样本错分,追求间隔更大,容易欠拟合,泛化更好。
核系数 gamma(RBF 核独有)
含义:控制高斯核的作用范围,决定单个样本的影响辐射距离。
gamma 越大:
每个样本影响范围极小,只贴近自己,决策边界细碎扭曲,极易过拟合;
gamma 越小:
样本影响范围大,辐射全局,决策边界平滑简单,容易欠拟合。

朴素贝叶斯 垃圾邮件过滤

核心原理

  1. 贝叶斯公式
    P(垃圾邮件∣邮件内容)=P(邮件内容∣垃圾邮件)⋅P(垃圾邮件)P(邮件内容) P(\text{垃圾邮件}|\text{邮件内容}) =\frac{P(\text{邮件内容}|\text{垃圾邮件})\cdot P(\text{垃圾邮件})}{P(\text{邮件内容})} P(垃圾邮件邮件内容)=P(邮件内容)P(邮件内容垃圾邮件)P(垃圾邮件)

  2. 朴素的含义:
    假设邮件里每个单词互相独立(条件独立假设),简化计算。

  3. 训练阶段

  • 收集大量已标注邮件:垃圾邮件、正常邮件
  • 统计:
    垃圾邮件里各单词出现概率、正常邮件里各单词出现概率
    还有垃圾邮件、正常邮件的先验概率
  1. 预测阶段
    新来一封邮件,拆成单词;
    用朴素贝叶斯分别算出:
  • 它是垃圾邮件的后验概率
  • 它是正常邮件的后验概率
    谁概率大,就判给哪一类。

深度学习核心层关键代码逻辑 完整梳理


一、全连接层(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+ex1
输出 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

十一、必考总结

  1. Wx + b → 全连接层(Linear)
  2. exp / sum → Softmax(多分类概率)
  3. max(0,x) → ReLU
  4. 1/(1+e^-x) → Sigmoid(二分类)
  5. Conv2d → 图像卷积
  6. LayerNorm → Transformer 大模型必备
  7. Multi-Head Attention → 大模型核心
  8. 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
$$


延伸知识点

  1. Jacobi迭代核心特点
    上一轮全部旧值一次性算出本轮所有新值,更新互不影响。

  2. 对比高斯-赛德尔 Gauss-Seidel
    GS算出一个新值立刻用新值代入下一个变量,收敛比Jacobi快。

  3. 迭代收敛条件
    系数矩阵严格对角占优,Jacobi、GS都一定收敛。
    本题:∣4∣>∣1∣, ∣3∣>∣1∣|4|>|1|,\ |3|>|1|∣4∣>∣1∣, ∣3∣>∣1∣,严格对角占优,迭代收敛。


二、特征向量线性组合

同一特征值的特征向量,非零线性组合仍是该特征值的特征向量。
不同特征值的特征向量相加,一定不是特征向量。
一个特征值 λ\lambdaλ,线性无关的特征向量个数 = 基础解系向量个数 = 几何重数

三、实对称矩阵

定义
实对称矩阵满足两个条件:

  1. 矩阵里所有元素都是实数(不是复数);
  2. 矩阵等于自己的转置:
    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,完全对称。

简单判断方法

  • 对角线元素随便;
  • 对角线上下镜像相等
  • 全是实数。

延伸必背性质

  1. 实对称矩阵特征值全是实数
  2. 不同特征值对应的特征向量互相正交
  3. 实对称矩阵一定可以正交对角化
  4. 实对称矩阵的秩 = 非零特征值个数;
  5. 大模型、机器学习里的协方差矩阵都是实对称矩阵

四、正交矩阵

n阶实方阵 (Q),满足:
QTQ=QQT=E Q^T Q = QQ^T = E QTQ=QQT=E
就叫正交矩阵

  1. 逆矩阵等于转置:
    Q−1=QT Q^{-1} = Q^T Q1=QT
    不用算繁琐的逆,直接转置就是逆,这是最大特点。
  2. 矩阵的列向量(行向量)
    两两互相正交,且长度为1(标准正交基)。

简单例子
Q=(100−1) Q= \begin{pmatrix} 1 & 0\\ 0 & -1 \end{pmatrix} Q=(1001)
转置等于自身,(Q^TQ=E),是正交矩阵。


核心性质

  1. 行列式:(|Q|=\boldsymbol{\pm 1})
  2. 任意两行/两列内积为0(正交);自身内积为1(单位长度)。
  3. 正交矩阵相乘,结果还是正交矩阵。
  4. 实对称矩阵正交对角化,用的就是正交矩阵。
  5. 向量乘正交矩阵,只旋转、不拉伸、不改变长度

五、奇异值分解

基本定义
任意一个 m×nm\times nm×n 实矩阵 AAA,都可以做奇异值分解:
A=UΣVT A = U\Sigma V^T A=UΣVT

  • UUUm×mm\times mm×m 正交矩阵(左奇异向量)
  • Σ\SigmaΣm×nm\times nm×n 对角矩阵,对角线上是奇异值 σ1≥σ2≥⋯>0\sigma_1\ge \sigma_2\ge\cdots>0σ1σ2>0
  • VVVn×nn\times nn×n 正交矩阵(右奇异向量)

通俗理解
SVD 就是把任意矩阵,拆解成:旋转 + 拉伸 + 再旋转
不像特征值分解只能方阵、还要可对角化
SVD 任意矩阵都能分解,这是最大优势。

奇异值和特征值的关系(必考)
对任意矩阵 AAA

  1. ATAA^TAATAAATAA^TAAT,都是实对称方阵
  2. ATAA^TAATA 的特征值开平方,就是 AAA奇异值
    σ=λATA \sigma = \sqrt{\lambda_{A^T A}} σ=λATA
    ** SVD 有什么用(延伸知识)**
  3. 数据降维 PCA
    PCA 本质就是 SVD;用前几个大奇异值,保留主要信息。
  4. 图像压缩
    只保留前 k 个奇异值,就能用少量数据还原图片。
  5. 推荐系统、协同过滤
    用户-物品评分矩阵用 SVD 分解做推荐。
  6. 最小二乘、伪逆求解
    解线性方程组、机器学习拟合底层全靠 SVD。
  7. 大模型词向量降维、矩阵近似

六 QR分解和LU分解

LU 分解
. 定义
方阵 (A) 拆成:
[A = LU]

  • (L):下三角矩阵(对角线全1,左下有数、右上全0)

  • (U):上三角矩阵(左上到右下有数、左下全0)

    作用
    解线性方程组 (Ax=b):

  1. 拆 (A=LU)
  2. 先解 (Ly=b)
  3. 再解 (Ux=y)
    比直接高斯消元更快,适合多次解同系数矩阵、不同右端项

适用条件
方阵、顺序主子式都不为0
需要行交换时叫 PLU分解(P是置换矩阵)。

特点

  • 只是三角拆分,无正交性
  • 只能方阵
  • 数值稳定性一般

QR 分解

任意 矩阵 (A)都可以做 分解:
[A = QR]

  • (Q):正交矩阵 / 标准正交列
  • (R):上三角矩阵
    (Q^TQ=E),正交矩阵自带性质:逆=转置。

作用

  1. 最小二乘拟合
  2. 特征值求解(QR迭代)
  3. 线性方程组求解,数值稳定性远强于LU
  4. 大模型、机器学习矩阵计算常用

适用范围
方阵、长方形矩阵都可以,比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=1nf(xi;θ)

步骤3:取对数,得对数似然 (\ln L(\theta))
乘积变求和,求导方便:
ln⁡L(θ)=∑i=1nln⁡f(xi;θ) \ln L(\theta) = \sum_{i=1}^n \ln f(x_i;\theta) lnL(θ)=i=1nlnf(xi;θ)

步骤4:对参数 (\theta) 求导,令导数=0
dln⁡L(θ)dθ=0 \dfrac{d\ln L(\theta)}{d\theta} = 0 dθdlnL(θ)=0

步骤5:解方程,解出 θ^{\hat\theta}θ^
就是最大似然估计量


两个高频必考模板

模板1:指数分布 (f(x)=\lambda e^{-\lambda x})

  1. 似然:(L(\lambda)=\prod \lambda e^{-\lambda x_i})
  2. 取对数:(\ln L = n\ln\lambda -\lambda\sum x_i)
  3. 求导置0:(\dfrac{n}{\lambda}-\sum x_i=0)
  4. 解得:(\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和小数字符串都可以

Logo

更多推荐