AI 基础原理与底层算法
从数学基础到机器学习核心算法,理解 AI 的真正工作原理
一、AI 的数学基础
1.1 线性代数:AI 的语言
AI 处理的所有数据本质上都是数字矩阵:
- 一张 100×100 的灰度图片 = 100×100 的矩阵
- 一个词向量 = 1×768 的矩阵
- 一批 1000 个样本,每个 768 维 = 1000×768 的矩阵
核心运算:
矩阵乘法:C = A × B
A (m×n) × B (n×p) = C (m×p)
例:100 个样本 × 784 维输入 × 784×128 权重矩阵 = 100×128 输出
为什么矩阵乘法如此重要? 因为神经网络每一层的计算本质上就是矩阵乘法:output = input × weights + bias
1.2 微积分:梯度下降的灵魂
AI "学习"的过程就是优化——找到让误差最小的参数。
导数:函数的变化率。如果 f(x) = x²,则 f'(x) = 2x
- 导数为正 → 函数在上升
- 导数为负 → 函数在下降
- 导数为零 → 可能是最低点或最高点
偏导数:多变量函数对某一个变量求导
- ∂L/∂w₁ 表示损失 L 对权重 w₁ 的变化率
- 沿着偏导数的反方向更新参数,损失就会减小——这就是梯度下降
1.3 概率与统计:不确定性的数学
AI 的输出几乎都是概率:
- "这张图是猫的概率为 0.95"
- "这句话下一个词是'的'的概率为 0.3"
关键概念:
- 概率分布:所有可能结果的概率之和为 1
- 交叉熵损失:衡量预测分布与真实分布的差距
- 贝叶斯定理:根据新证据更新概率判断
二、核心机器学习算法
2.1 线性回归 — 最简单的预测
目标:找一条直线 y = wx + b,最拟合数据点
损失函数:L = (1/n) Σ(yᵢ - ŷᵢ)² (均方误差 MSE)
更新规则:w = w - α × ∂L/∂w (α 为学习率)
应用:房价预测、成绩预测、温度趋势
2.2 逻辑回归 — 分类的基础
目标:用 Sigmoid 函数把线性输出压缩到 0~1 之间
σ(z) = 1 / (1 + e⁻ᶻ)
z > 0 → σ(z) > 0.5 → 预测为正类
z < 0 → σ(z) < 0.5 → 预测为负类
应用:垃圾邮件检测、疾病诊断、考试通过/不通过
2.3 决策树 — 像人一样做判断
天气好吗?
/ \
是 否
/ \
温度>30? 下雨吗?
/ \ / \
是 否 是 否
| | | |
不去 去 不去 去
优点:可解释性强,不需要特征缩放
缺点:容易过拟合 → 解决方案:随机森林、GBDT
2.4 支持向量机(SVM)
核心思想:找到一个超平面,使两类数据之间的间隔(margin)最大
- 线性可分:直接找最大间隔超平面
- 线性不可分:用核函数把数据映射到高维空间
核函数:RBF 核、多项式核、Sigmoid 核
2.5 K 近邻(KNN)
思想极其简单:判断一个新样本,看离它最近的 K 个样本多数属于哪类
- K=1:容易受噪声影响
- K 太大:边界模糊
- 常用 K=3~10
三、深度学习核心架构
3.1 全连接神经网络(MLP)
输入层(784) → 隐藏层1(128) → 隐藏层2(64) → 输出层(10)
ReLU ReLU Softmax
前向传播:每一层做 z = Wx + b,然后过激活函数
反向传播:用链式法则从输出层向输入层逐层计算梯度,更新参数
激活函数:
| 函数 | 公式 | 特点 |
| Sigmoid | 1/(1+e⁻ˣ) | 输出 0~1,用于二分类输出层 |
| ReLU | max(0,x) | 计算快,缓解梯度消失 |
| Tanh | (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ) | 输出 -1~1 |
| Softmax | eˣⁱ/Σeˣʲ | 多分类输出层,输出概率分布 |
3.2 卷积神经网络(CNN)— 图像识别之王
核心思想:用卷积核(小矩阵,如 3×3)在图片上滑动,提取局部特征
5×5 图片 3×3 卷积核 → 3×3 特征图
[1,0,1, [1,0,1, [?, ?, ?
0,1,0, × 0,1,0, = ?, ?,
1,0,1] 1,0,1] ?, ?, ?]
CNN 的标准结构:
- 卷积层 → 提取特征(边缘、纹理、形状)
- 池化层 → 降维(Max Pooling 取最大值)
- 全连接层 → 分类
经典 CNN 架构演进:
| 模型 | 年份 | 创新 |
| LeNet-5 | 1998 | 第一个 CNN,手写数字识别 |
| AlexNet | 2012 | ReLU + Dropout + GPU 训练 |
| VGGNet | 2014 | 用小卷积核(3×3)堆叠 |
| GoogLeNet | 2014 | Inception 模块,多尺度特征 |
| ResNet | 2015 | 残差连接,解决深层网络退化 |
3.3 循环神经网络(RNN)— 序列数据处理
问题:普通神经网络无法处理变长序列(句子、语音、时间序列)
RNN 的解决:引入隐藏状态 hₜ,每一步都依赖上一步的状态
hₜ = tanh(Wₕ × hₜ₋₁ + Wₓ × xₜ + b)
LSTM(长短期记忆):解决 RNN 的梯度消失问题
- 遗忘门:决定丢弃哪些旧信息
- 输入门:决定存入哪些新信息
- 输出门:决定输出什么
3.4 Transformer — 现代 AI 的基石
2017 年 Google 论文 "Attention Is All You Need" 提出
核心创新:自注意力机制(Self-Attention)
Q(Query)= X × Wq "我在找什么?"
K(Key) = X × Wk "我有什么?"
V(Value)= X × Wv "我的内容是什么?"
Attention(Q,K,V) = softmax(QKᵀ / √dₖ) × V
为什么 Transformer 如此重要?
- 并行计算:不像 RNN 必须逐步处理,Transformer 可以并行处理整个序列
- 长距离依赖:注意力机制可以直接关注序列中任意位置的信息
- 可扩展性:增大模型参数和数据量,性能持续提升(Scaling Law)
四、训练技巧与优化
4.1 损失函数
| 任务 | 常用损失 |
| 回归 | MSE(均方误差)、MAE(平均绝对误差) |
| 二分类 | 二元交叉熵(BCE) |
| 多分类 | 分类交叉熵(CE) |
4.2 优化器
| 优化器 | 特点 |
| SGD | 最基础,随机梯度下降 |
| SGD + Momentum | 加入动量,加速收敛 |
| Adam | 自适应学习率,最常用 |
| AdamW | Adam + 权重衰减,大模型标配 |
4.3 防止过拟合
- Dropout:训练时随机"关闭"一部分神经元
- 数据增强:旋转、翻转、裁剪训练图片
- 早停法:验证集损失不再下降时停止训练
- 正则化:L1/L2 正则化限制参数大小
五、Python 实战:用 Scikit-learn 实现经典算法
# 鸢尾花分类 — 机器学习入门经典
from sklearn.datasets import load_iris
from sklearn.modelselection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载数据
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.3, random_state=42
)
# 训练 KNN 分类器
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
# 预测与评估
y_pred = knn.predict(X_test)
print(f"准确率: {accuracy_score(y_test, y_pred):.2%}")
参考资源
- 3Blue1Brown 神经网络系列视频 — 最直观的神经网络可视化讲解
- 吴恩达 Machine Learning 课程 — 经典入门课程
- 动手学深度学习(d2l.ai) — 李沐团队中文深度学习教材
- Scikit-learn 官方文档 — 机器学习算法库
- PyTorch 官方教程 — 深度学习框架