机器学习和深度学习中参数概览
目录
1. 模型参数(Learnable Parameters)
1.1 神经网络中的核心参数
1.2 归一化层参数
1.3 其他特殊参数
2. 超参数(Hyperparameters)
2.1 优化相关超参数
2.2 训练流程超参数
2.3 模型结构超参数
2.4 正则化超参数
3. 传统机器学习模型的参数
3.1 线性模型
3.2 支持向量机(SVM)
3.3 决策树
3.4 集成模型(如随机森林、XGBoost)
4. 其他重要概念
4.1 可学习参数 vs. 固定参数
4.2 模型容量与参数量
4.3 参数初始化
5. 总结表格
关键区别:模型参数 vs. 超参数
常见问题
Q:为什么深度学习模型的参数量通常比传统模型大?
Q:如何选择超参数?
Q:为什么有些层没有参数?
以下是机器学习和深度学习中参数的全面概览,按类型、作用和示例分类整理,帮助你系统理解不同场景下的参数:
1. 模型参数(Learnable Parameters)
定义:在训练过程中通过优化器自动学习的参数,直接影响模型的输出。
1.1 神经网络中的核心参数
参数类型 | 所属层/模块 | 作用 | 示例 |
---|---|---|---|
权重(Weights) | 全连接层、卷积层、门控层 | 控制输入对输出的影响程度 | 线性回归的 ww,卷积核的参数 |
偏置(Bias) | 全连接层、卷积层、门控层 | 允许模型平移输出,增强表达能力 | 线性回归的 bb,每个卷积核的偏置 |
嵌入参数 | 嵌入层(Embedding Layer) | 将离散符号映射到连续向量空间 | BERT的词向量矩阵 |
注意力参数 | 自注意力层(Transformer) | 计算不同位置的注意力权重 | Q、K、V 的权重矩阵(如 WQ,WKWQ,WK) |
门控参数 | LSTM/GRU | 控制信息流动(记忆、遗忘、输出) | LSTM的遗忘门权重 WfWf 和偏置 bfbf |
1.2 归一化层参数
参数类型 | 所属层 | 作用 | 示例 |
---|---|---|---|
缩放因子(Gamma) | 批量归一化(BatchNorm) | 控制归一化后的数据缩放比例 | γγ(类似权重) |
偏移量(Beta) | 批量归一化(BatchNorm) | 控制归一化后的数据偏移量 | ββ(类似偏置) |
1.3 其他特殊参数
- 位置编码(Positional Encoding):在Transformer中为序列提供位置信息(如可学习的位置向量)。
- 残差连接参数:残差网络(ResNet)中跳跃连接的权重(如果存在)。
- 解码器参数:生成模型(如GPT)中解码器的权重和偏置。
2. 超参数(Hyperparameters)
定义:由开发者手动设置的参数,控制训练过程,但不直接参与模型学习。
2.1 优化相关超参数
参数类型 | 作用 | 示例 |
---|---|---|
学习率(Learning Rate) | 控制参数更新的步长 | lr=2e-5 (BERT微调常用值) |
优化器类型 | 选择优化算法(如Adam、SGD) | optimizer=torch.optim.Adam |
权重衰减(Weight Decay) | 正则化强度(类似L2正则化) | weight_decay=0.01 |
2.2 训练流程超参数
参数类型 | 作用 | 示例 |
---|---|---|
批量大小(Batch Size) | 每次迭代的样本数量 | batch_size=32 |
训练轮次(Epochs) | 遍历整个数据集的次数 | num_epochs=10 |
早停(Early Stopping) | 根据验证损失停止训练的条件 | patience=3 (连续3轮无提升则停止) |
2.3 模型结构超参数
参数类型 | 作用 | 示例 |
---|---|---|
隐藏层大小 | 神经网络中每层神经元的数量 | hidden_dim=256 |
卷积核大小 | 卷积层的滤波器尺寸 | kernel_size=3 (3x3卷积核) |
注意力头数 | Transformer的多头注意力数量 | num_heads=8 |
2.4 正则化超参数
参数类型 | 作用 | 示例 |
---|---|---|
Dropout概率 | 随机丢弃神经元的概率 | dropout=0.5 |
L1/L2正则化系数 | 控制权重的稀疏性或平滑性 | l2_reg=0.001 |
3. 传统机器学习模型的参数
3.1 线性模型
- 参数:权重(Weights)和偏置(Bias)。
- 例子:
- 线性回归:y=w1x1+w2x2+⋯+by=w1x1+w2x2+⋯+b。
- 逻辑回归:分类问题中的权重和偏置。
3.2 支持向量机(SVM)
- 参数:
- 权重向量(ww):定义决策边界的方向。
- 偏置(bb):决策边界的偏移量。
3.3 决策树
- 参数:
- 分割点(Split Points):特征阈值(如“年龄 > 30”)。
- 叶节点值(Leaf Values):分类或回归的预测值。
3.4 集成模型(如随机森林、XGBoost)
- 参数:
- 树的结构参数:分割点、叶节点值。
- 超参数:树的数量、最大深度、学习率(梯度提升树)。
4. 其他重要概念
4.1 可学习参数 vs. 固定参数
- 可学习参数:通过反向传播更新(如权重、偏置)。
- 固定参数:手动设置或通过固定规则计算(如池化层的窗口大小)。
4.2 模型容量与参数量
- 参数量:模型复杂度的指标,通常深度学习模型(如BERT)的参数量可达亿级。
- 过拟合风险:参数过多可能导致过拟合,需通过正则化或早停缓解。
4.3 参数初始化
- 作用:影响训练收敛速度和稳定性。
- 常见方法:
- 权重初始化:Xavier、He初始化(针对不同激活函数)。
- 偏置初始化:通常初始化为0或小常数。
5. 总结表格
类型 | 示例参数 | 所属模型/层 | 作用 |
---|---|---|---|
模型参数 | 权重、偏置、嵌入向量、注意力权重 | 神经网络、Transformer、LSTM | 学习输入与输出之间的映射关系 |
超参数 | 学习率、批量大小、隐藏层大小 | 全局训练配置、模型结构设计 | 控制训练过程和模型复杂度 |
传统模型参数 | 线性回归的权重、决策树的分割点 | 线性回归、SVM、决策树 | 定义模型的决策规则 |
关键区别:模型参数 vs. 超参数
类别 | 定义 | 是否可学习 | 调整方式 |
---|---|---|---|
模型参数 | 通过训练数据学习的参数 | 是 | 优化器自动调整(如Adam) |
超参数 | 开发者手动设置的训练控制参数 | 否 | 人工或超参数搜索工具(如网格搜索) |
常见问题
Q:为什么深度学习模型的参数量通常比传统模型大?
- 原因:
- 深度学习模型(如CNN、Transformer)需要捕捉复杂模式,需更多参数。
- 例如,BERT的参数量约1.1亿,而线性回归只有几十个参数。
Q:如何选择超参数?
- 方法:
- 经验法则:学习率从 1e−31e−3 开始尝试,批量大小从32/64开始。
- 交叉验证:通过验证集选择最佳组合。
- 自动化工具:使用
optuna
、Ray Tune
进行超参数优化。
Q:为什么有些层没有参数?
- 例子:
- 池化层:通过固定规则(如取最大值)下采样,不涉及学习。
- 激活层:如ReLU仅执行 f(x)=max(0,x)f(x)=max(0,x),无需参数。