【机器学习 / 深度学习】基础教程
阶段一:机器学习 / 深度学习基础教程
定位:针对准备进入 AI多智能体开发 的初学者,打牢机器学习与深度学习的基础。
一、为什么需要学习机器学习/深度学习
在进入智能体(Agent)开发之前,必须具备一定的 机器学习和深度学习 基础。
原因有三:
- 智能体的核心决策模型 基于大规模语言模型(LLM),而 LLM 本质上是深度学习的产物。
- 多智能体系统的优化与调度 需要理解过拟合、泛化、表示学习等概念。
- 在实际工程中,即使调用开源框架(如 LangChain、MetaGPT),也需要对底层模型的工作原理有基本认识,否则无法进行问题诊断与优化。
因此,第一阶段的学习目标是:理解机器学习基本范式、掌握神经网络主流结构、熟悉 PyTorch/TensorFlow 框架的基本用法。
二、机器学习基础
2.1 机器学习的基本定义
机器学习(Machine Learning, ML)指的是 让计算机通过数据学习规律,而不是显式编程。
Tom Mitchell 的经典定义:
如果一个程序在某任务 T 上的性能度量 P 随着经验 E 的增加而提升,那么它就是在进行学习。
公式化表示:
- 任务 T:例如图像分类、语音识别、推荐系统。
- 性能度量 P:准确率、召回率、均方误差等。
- 经验 E:训练数据集。
2.2 监督学习
监督学习(Supervised Learning)是最常见的机器学习范式。
-
定义:通过带有标签的数据集来训练模型,学习从输入到输出的映射关系。
-
数据特征:每个样本都有输入
X
和目标输出Y
。 -
常见任务:
- 分类(Classification):输入一张图片,判断是猫还是狗。
- 回归(Regression):输入房屋特征,预测房价。
数学形式:
已知训练数据集 D={(xi,yi)}i=1nD = \{(x_i, y_i)\}_{i=1}^nD={(xi,yi)}i=1n,学习一个函数 f(x)f(x)f(x),使得预测值 y^=f(x)\hat{y} = f(x)y^=f(x) 尽量接近真实值 yyy。
例子:猫狗分类
- 输入:像素矩阵(图片)。
- 输出:类别标签(猫=0,狗=1)。
- 模型:逻辑回归、神经网络。
2.3 无监督学习
无监督学习(Unsupervised Learning)则不依赖于标签。
-
定义:输入数据没有标注,目标是探索数据的结构、分布、规律。
-
常见任务:
- 聚类(Clustering):将客户分为不同群体。
- 降维(Dimensionality Reduction):如 PCA、t-SNE。
- 密度估计:建模数据的分布。
例子:客户分群
- 输入:客户的消费特征(年龄、收入、购买习惯)。
- 输出:自动划分为不同群体(高价值用户、潜在流失用户等)。
2.4 过拟合与泛化
过拟合(Overfitting):模型在训练数据上表现极好,但在测试数据上表现很差。
- 本质:模型学到了“噪声”而不是“规律”。
- 典型特征:训练误差很低,但验证误差很高。
泛化能力(Generalization):模型在新数据上的表现能力。
- 高泛化能力的模型,意味着它学到的是 通用规律 而不是仅仅记住了训练数据。
防止过拟合的方法:
- 增加数据量(Data Augmentation)。
- 正则化(L1/L2、Dropout)。
- 提前停止(Early Stopping)。
- 模型简化(减少参数量)。
例子:
- 一个学生死记硬背练习题(过拟合),考试遇到新题就不会。
- 另一个学生掌握了解题方法(泛化),即使换题型也能解答。
三、神经网络基础
深度学习(Deep Learning)是机器学习的一个分支,核心思想是通过 神经网络(Neural Network) 进行特征自动学习。
3.1 神经网络的基本结构
感知机(Perceptron) 是最简单的神经网络单元。
公式:
y=f(∑i=1nwixi+b) y = f(\sum_{i=1}^n w_i x_i + b) y=f(i=1∑nwixi+b)
其中:
- xix_ixi:输入特征
- wiw_iwi:权重
- bbb:偏置
- fff:激活函数(Sigmoid, ReLU 等)
多个感知机层叠,就形成了多层感知机(MLP)。
3.2 卷积神经网络(CNN)
CNN 擅长处理图像。
-
核心思想:利用卷积核提取局部特征,减少参数量。
-
典型结构:
- 卷积层(Convolutional Layer):提取特征。
- 池化层(Pooling Layer):下采样,减少维度。
- 全连接层(Fully Connected Layer):输出分类结果。
例子:识别手写数字(MNIST)。
输入:28x28 像素灰度图。
输出:0-9 的数字类别。
3.3 循环神经网络(RNN)
RNN 适合处理序列数据(文本、语音)。
- 核心思想:引入“记忆”,上一时刻的输出会影响当前时刻的计算。
- 问题:长序列训练容易出现梯度消失或爆炸。
- 改进模型:LSTM、GRU。
例子:情感分析。
输入:“I love this movie.”
输出:情感标签(正向)。
3.4 Transformer
Transformer 是当前大模型(如 GPT-4、Claude)的核心架构。
-
核心创新:自注意力机制(Self-Attention)。
-
优势:
- 并行计算能力强。
- 更适合长距离依赖建模。
-
典型应用:机器翻译、文本生成、图像描述。
例子:
输入:“Translate ‘你好世界’ to English。”
输出:“Hello World.”
四、主流框架:PyTorch 与 TensorFlow
4.1 PyTorch
特点:
- 动态计算图,调试更灵活。
- 更接近 Python 风格,代码直观。
- 研究社区应用广泛。
简单例子(线性回归):
import torch
import torch.nn as nn
import torch.optim as optim# 数据
x = torch.randn(100, 1)
y = 3 * x + 2 + 0.1 * torch.randn(100, 1)# 模型
model = nn.Linear(1, 1)# 损失与优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)# 训练
for epoch in range(1000):y_pred = model(x)loss = criterion(y_pred, y)optimizer.zero_grad()loss.backward()optimizer.step()print("学习到的权重和偏置:", model.weight.item(), model.bias.item())
4.2 TensorFlow / Keras
特点:
- 静态图模式,适合部署到生产环境。
- 企业应用多,生态丰富。
- Keras 封装简洁,适合快速实验。
例子(线性回归):
import tensorflow as tf# 数据
x = tf.random.normal((100, 1))
y = 3 * x + 2 + 0.1 * tf.random.normal((100, 1))# 模型
model = tf.keras.Sequential([tf.keras.layers.Dense(1)
])# 编译
model.compile(optimizer='sgd', loss='mse')# 训练
model.fit(x, y, epochs=1000, verbose=0)# 查看参数
w, b = model.layers[0].get_weights()
print("学习到的权重和偏置:", w, b)
4.3 PyTorch vs TensorFlow 对比
特点 | PyTorch | TensorFlow/Keras |
---|---|---|
编程风格 | 动态图,像写 Python | 静态图,适合大规模部署 |
社区 | 学术研究主流 | 工业界应用广泛 |
学习曲线 | 上手容易 | Keras 简单,TF 稍复杂 |
调试 | 灵活易调试 | 部署工具链完善 |
结论:
- 如果你是 研究/实验驱动,推荐 PyTorch。
- 如果你是 企业级部署,推荐 TensorFlow。
五、学习路径建议(阶段一)
-
理论入门
- 学习监督/无监督学习、过拟合、泛化的基本概念。
-
神经网络核心结构
- 学会 MLP、CNN、RNN、Transformer 的基本原理。
- 建议在 Kaggle/MNIST 数据集上做小实验。
-
框架实操
- PyTorch:实现线性回归、手写数字识别。
- TensorFlow/Keras:实现文本分类、图像分类。
-
小项目练习
- 猫狗分类器(CNN)。
- 电影评论情感分析(RNN/LSTM)。
- 英文到中文翻译(Transformer)。