目录标题
- 机器学习基础知识概览
- 激活函数 (Activation Functions)
- 损失函数 (Loss Functions / Cost Functions)
- 优化器 (Optimizers)
- 正则化 (Regularization)
- 调度器 (Schedulers / Learning Rate Schedulers)
- 指标函数 (Metric Functions)
- 其他重要概念
- 训练流程
机器学习基础知识概览
激活函数 (Activation Functions)
激活函数是神经网络中的一个关键组成部分,它引入了非线性。如果没有激活函数,即使是多层神经网络也只会执行线性变换,从而限制了其学习复杂模式的能力。激活函数决定了神经元的输出。
常见类型:
- Sigmoid 函数: 将输入压缩到 0 到 1 的范围。它曾经很流行,但在深度网络中容易出现梯度消失问题。
- ReLU (Rectified Linear Unit) 函数: 当输入大于 0 时,输出等于输入;当输入小于等于 0 时,输出为 0。ReLU 是目前最常用的激活函数,因为它计算简单且能有效缓解梯度消失问题。
- Leaky ReLU 函数: 解决了 ReLU 在输入为负时“死亡”的问题,即在输入为负时,输出一个小的非零梯度。
- Tanh (Hyperbolic Tangent) 函数: 将输入压缩到 -1 到 1 的范围,是 Sigmoid 的改进版,但仍可能面临梯度消失。
- Softmax 函数: 主要用于多分类问题的输出层,它将一组实数转换为概率分布,所有输出值的和为 1。
Name (英文) | 中文名称 | Formula(公式) | Feature(特点) | Usage(用途) |
---|---|---|---|---|
Sigmoid | S型函数 | σ(x)=11+e−x\sigma(x) = \frac{1}{1+e^{-x}}σ(x)=1+e−x1 | 输出范围 (0,1),梯度消失问题 | 二分类输出层 |
Tanh | 双曲正切 | tanh(x)=ex−e−xex+e−x\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}tanh(x)=ex+e−xex−e−x | 输出范围 (-1,1),居中对称 | 隐藏层 |
ReLU | 线性整流函数 | f(x)=max(0,x)f(x) = \max(0, x)f(x)=max(0,x) | 稀疏激活,训练快,可能“死亡神经元” | 隐藏层 |
Leaky ReLU | 带泄漏的ReLU | f(x)=xf(x) = xf(x)=x if x>0x > 0x>0 else 0.01x0.01x0.01x | 避免神经元完全失活 | 隐藏层 |
Softmax | 归一化函数 | exi∑jexj\frac{e^{x_i}}{\sum_j e^{x_j}}∑jexjexi | 输出为概率分布,适合多分类 | 多分类输出层 |
损失函数 (Loss Functions / Cost Functions)
损失函数衡量模型预测值与真实值之间的差异。它的目标是量化模型的不准确性,并在训练过程中通过最小化损失来提高模型的性能。选择合适的损失函数对于特定任务至关重要。
常见类型:
- 均方误差 (Mean Squared Error, MSE): 适用于回归任务,计算预测值与真实值差的平方的平均值。它对较大的误差给予更大的惩罚。
- 平均绝对误差 (Mean Absolute Error, MAE): 同样适用于回归任务,计算预测值与真实值差的绝对值的平均值。MAE 对异常值不敏感。
- 交叉熵 (Cross-Entropy): 主要用于分类任务。
- 二元交叉熵 (Binary Cross-Entropy): 用于二分类问题。
- 分类交叉熵 (Categorical Cross-Entropy): 用于多分类问题,当标签是独热编码时。
- 稀疏分类交叉熵 (Sparse Categorical Cross-Entropy): 同样用于多分类问题,当标签是整数编码时。
- Hinge Loss: 主要用于支持向量机 (SVM) 分类器,特别是用于最大间隔分类。
Loss Function 损失函数 | 公式 | 任务及用途 | 说明 | 符号定义 |
---|---|---|---|---|
Mean Squared Error (MSE) 均方误差 | MSE=1n∑i=1n(yi−y^i)2\displaystyle \text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2MSE=n1i=1∑n(yi−y^i)2 | 回归任务 | 计算预测值与真实值差的平方的平均值,对大误差敏感,惩罚较大偏差。 | nnn:样本数量 yiy_iyi:真实值 y^i\hat{y}_iy^i:预测值 |
Mean Absolute Error (MAE) 平均绝对误差 | MAE=1n∑i=1n∣yi−y^i∣\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} \left | y_i - \hat{y}_i \right |MAE=n1∑i=1n∣yi−y^i∣ | MAE 只用于回归任务,不适合分类 | 其鲁棒性和对离群点不敏感,相较于 MSE 在梯度优化时不够平滑(不可导点在 yi=y^iy_i = \hat{y}_iyi=y^i),计算预测值与真实值差的绝对值平均值,对异常值更鲁棒。 | 同上 |
Binary Cross-Entropy 二元交叉熵 | −[ylog(y^)+(1−y)log(1−y^)]\displaystyle -\left[ y \log(\hat{y}) + (1 - y) \log(1 - \hat{y}) \right]−[ylog(y^)+(1−y)log(1−y^)] | 二分类任务 | 用于 0/1 二分类问题,衡量预测概率与真实标签的差异,常配 sigmoid。 | y∈{0,1}y \in \{0,1\}y∈{0,1}:真实标签 y^\hat{y}y^:预测概率(取值[0,1]) |
Categorical Cross-Entropy 分类交叉熵 | −∑i=1Cyilog(y^i)\displaystyle -\sum_{i=1}^{C} y_i \log(\hat{y}_i)−i=1∑Cyilog(y^i) | 多分类任务(独热编码标签) | 多分类常用损失函数,标签为 one-hot,模型输出为 softmax 概率。 | CCC:类别数 yi∈{0,1}y_i \in \{0,1\}yi∈{0,1}:标签的 one-hot 编码 y^i\hat{y}_iy^i:类别 iii 的预测概率 |
Sparse Categorical Cross-Entropy 稀疏分类交叉熵 | 与分类交叉熵公式相同,标签为整数形式 | 多分类任务(稀疏整数标签) | 用于标签为整数形式的多分类,更高效节省内存。 | 标签为整数,表示类别索引,预测概率同上 |
Hinge Loss Hinge 损失 | Hinge=max(0,1−y⋅y^)\displaystyle \text{Hinge} = \max(0, 1 - y \cdot \hat{y})Hinge=max(0,1−y⋅y^) | SVM / 最大间隔分类任务 | 用于支持向量机分类,推动模型扩大类间间隔,标签通常为 −1-1−1 与 +1+1+1。 | y∈{−1,+1}y \in \{-1, +1\}y∈{−1,+1}:真实标签 y^\hat{y}y^:预测得分(实数) |
优化器 (Optimizers)
优化器是调整模型权重和偏置以最小化损失函数的算法。它们指导着模型在训练过程中如何“学习”。
常见类型:
- 梯度下降 (Gradient Descent, GD): 最基本的优化器,沿着损失函数梯度的负方向更新权重。
- 批量梯度下降 (Batch Gradient Descent): 使用整个训练集计算梯度,更新一次权重。计算成本高,但收敛稳定。
- 随机梯度下降 (Stochastic Gradient Descent, SGD): 每次使用一个样本计算梯度,更新一次权重。速度快,但波动性大。
- 小批量梯度下降 (Mini-batch Gradient Descent): 介于批量梯度下降和随机梯度下降之间,每次使用一小批样本计算梯度。兼顾了速度和稳定性,是实践中最常用的方法。
- 动量 (Momentum): 引入“动量”项,帮助 SGD 克服局部最小值并加速收敛。
- Adagrad (Adaptive Gradient Algorithm): 根据参数的历史梯度自适应地调整学习率。对频繁更新的参数降低学习率,对不频繁更新的参数提高学习率。
- RMSprop (Root Mean Square Propagation): Adagrad 的改进版,解决了 Adagrad 学习率单调递减的问题。
- Adam (Adaptive Moment Estimation): 结合了动量和 RMSprop 的优点,是目前最流行和最有效的优化器之一。
Name (英文) | 中文名称 | Feature(特点) | Usage(用途) |
---|---|---|---|
SGD | 随机梯度下降 | 简单,基础,更新慢 | 小数据、入门 |
Momentum | 动量法 | 增加惯性,避免震荡,收敛更快 | 中等复杂度任务 |
AdaGrad | 自适应梯度 | 学习率自动调整,对稀疏特征有效 | 自然语言处理 |
RMSProp | 平均方根传播 | 改进 AdaGrad,避免学习率快速下降 | 序列建模 |
Adam | 自适应矩估计 | 综合 Momentum + RMSProp,主流高效优化器 | 推荐使用 |
正则化 (Regularization)
正则化技术旨在防止模型在训练数据上过拟合 (Overfitting),从而提高模型在新数据上的泛化能力。过拟合发生时,模型在训练集上表现良好,但在未见过的数据上表现差。
常见类型:
- L1 正则化 (Lasso Regression): 在损失函数中添加权重绝对值之和的惩罚项。它倾向于使一些权重变为零,从而实现特征选择。
- L2 正则化 (Ridge Regression / Weight Decay): 在损失函数中添加权重平方和的惩罚项。它倾向于使权重变小,但不使其变为零。
- Dropout: 在神经网络训练过程中,随机地“关闭”一些神经元(及其连接)。这迫使网络学习更鲁棒的特征,减少对特定神经元的依赖。
- Early Stopping (早期停止): 监控模型在验证集上的性能,当验证损失停止下降甚至开始上升时,提前停止训练。
- 数据增强 (Data Augmentation): 通过对现有训练数据进行变换(如图像旋转、翻转、裁剪等)来创建新的训练样本,从而增加训练数据的多样性。
Name (英文) | 中文名称 | Formula(公式) | Feature(特点) |
---|---|---|---|
L2 Regularization | L2 正则化 | λ∑w2\lambda \sum w^2λ∑w2 | 抑制大权重,适合多数模型 |
L1 Regularization | L1 正则化 | λ∑w\lambda \sum wλ∑w | 稀疏化模型,特征选择 |
Dropout | 随机失活 | 每次训练随机屏蔽部分神经元 | 防止依赖特定路径,增加泛化能力 |
Early Stopping | 提前停止 | 验证损失不再下降则停止训练 | 控制训练时间,避免过拟合 |
调度器 (Schedulers / Learning Rate Schedulers)
调度器(也称为学习率调度器)用于在训练过程中动态调整学习率。一个合适的学习率策略可以显著影响模型的训练速度和最终性能。
常见类型:
- 步长衰减 (Step Decay): 每隔一定数量的 epoch,将学习率乘以一个固定因子(如 0.1)。
- 指数衰减 (Exponential Decay): 学习率按照指数形式衰减。
- 余弦退火 (Cosine Annealing): 学习率按照余弦函数的形式周期性地下降和上升,有助于模型跳出局部最优。
- 多项式衰减 (Polynomial Decay): 学习率按照多项式函数的形式衰减。
- ReduceLROnPlateau: 当模型的性能(例如验证损失)在一定数量的 epoch 内没有改善时,降低学习率。
Name (英文) | 中文名称 | Feature(特点) |
---|---|---|
StepLR | 阶梯下降 | 每隔若干步将学习率乘以一个常数 |
ExponentialLR | 指数衰减 | 每步指数下降 |
ReduceLROnPlateau | 验证集不下降则衰减 | 更智能,常用于验证损失不变时 |
CosineAnnealingLR | 余弦退火 | 余弦变化,前期下降快,后期平稳 |
Linear Warmup & Decay | 线性预热 + 下降 | 常用于 BERT 微调,先慢慢升高后线性衰减 |
指标函数 (Metric Functions)
指标函数用于评估模型的性能。它们提供了关于模型在特定任务上的表现的定量衡量标准。与损失函数不同,指标函数通常更具可解释性,更接近我们对模型性能的直观理解,并且不一定需要可微。
常见类型:
- 准确率 (Accuracy): 在分类任务中,正确预测的样本数占总样本数的比例。
- 精确率 (Precision): 在分类任务中,被预测为正例的样本中,真实为正例的比例。衡量模型预测正例的准确性。
- 召回率 (Recall / Sensitivity): 在分类任务中,所有真实正例中,被模型正确预测为正例的比例。衡量模型识别正例的能力。
- F1 分数 (F1 Score): 精确率和召回率的调和平均值,综合考虑了两者。
- ROC 曲线和 AUC (Area Under the Receiver Operating Characteristic Curve): 用于评估二分类模型的性能,特别是当类别不平衡时。AUC 值越大,模型性能越好。
- R² 分数 (R-squared / Coefficient of Determination): 在回归任务中,衡量模型解释因变量方差的能力。
- 均方根误差 (Root Mean Squared Error, RMSE): MSE 的平方根,与原始数据单位一致,更具可解释性。
📊 分类任务指标(Classification):
Name (英文) | 中文名称 | Formula(公式) | 说明(中文) |
---|---|---|---|
Accuracy | 准确率 | TP+TNTotal\frac{TP + TN}{Total}TotalTP+TN | 总体预测正确的比例 |
Precision | 精确率 | TPTP+FP\frac{TP}{TP + FP}TP+FPTP | 预测为正中真正为正的比例 |
Recall | 召回率 | TPTP+FN\frac{TP}{TP + FN}TP+FNTP | 所有实际为正中预测为正的比例 |
F1 Score | 调和平均值 | 2PRP+R\frac{2PR}{P + R}P+R2PR | 平衡精确率和召回率 |
AUC-ROC | 曲线下面积 | 曲线面积越大越好 | 衡量分类能力强弱 |
📈 回归任务指标(Regression):
Name (英文) | 中文名称 | Formula(公式) | 说明 |
---|---|---|---|
MSE | 均方误差 | 1n∑(y−y^)2\frac{1}{n} \sum (y - \hat{y})^2n1∑(y−y^)2 | 对大误差敏感 |
RMSE | 均方根误差 | MSE\sqrt{MSE}MSE | 单位与原量纲相同,易解释 |
MAE | 平均绝对误差 | 1n∑∣y−y^∣\frac{1}{n} \sum | y - \hat{y} |n1∑∣y−y^∣ | 更鲁棒,对异常点影响小 |
R² Score | 决定系数 | 1−SSESST1 - \frac{SSE}{SST}1−SSTSSE | 越接近 1 表示拟合越好 |
其他重要概念
- 数据集 (Dataset): 训练和测试模型的数据集合。通常分为训练集 (Training Set)、验证集 (Validation Set) 和测试集 (Test Set)。
- 训练集: 用于训练模型。
- 验证集: 用于在训练过程中评估模型性能,调整超参数,并进行早期停止。
- 测试集: 用于在模型训练完成后,评估模型的最终泛化能力。
- 特征 (Features): 用于描述样本的属性或变量。
- 标签 (Labels) / 目标 (Targets): 模型需要预测的输出值。
- 模型 (Model): 学习数据模式的算法或结构(例如神经网络、决策树等)。
- 超参数 (Hyperparameters): 在训练过程开始之前设置的参数,例如学习率、批次大小、网络层数、隐藏单元数量等。它们影响模型的学习过程。
- 欠拟合 (Underfitting): 模型未能充分学习训练数据的模式,导致在训练集和测试集上都表现不佳。通常是模型复杂度不足或训练时间不够导致的。
- 过拟合 (Overfitting): 模型在训练数据上表现非常好,但对新数据的泛化能力差。通常是模型过于复杂或训练数据量不足导致的。
- 偏差 (Bias): 模型对真实关系过于简化的假设所导致的误差。高偏差通常对应着欠拟合。
- 方差 (Variance): 模型对训练数据中随机性噪声的敏感程度。高方差通常对应着过拟合。
- 偏差-方差权衡 (Bias-Variance Trade-off): 在降低偏差和降低方差之间进行平衡,以获得最佳的模型泛化能力。
训练流程
Raw Data(原始数据)
↓
Preprocessing(预处理)
↓
Train/Validation/Test Split(划分训练、验证、测试集)
↓
Model Definition(模型构建) → Activation Function(激活) → Loss(损失) → Optimizer(优化) → Regularization(正则)
↓
Train(训练) → Scheduler(调度器) → Evaluate(评估指标)
↓
Tune(调参) → Save(保存模型) → Deploy(部署)