在机器学习/深度学习考试中,当被问到"你可以调整哪些超参数"时,以下是完整的超参数列表:
一、优化相关超参数
1. 学习率 (Learning Rate)
- 基础学习率:最重要的超参数
- 学习率调度策略 :
- 固定学习率
- 衰减策略:指数衰减、阶梯衰减、余弦退火
- 预热学习率 (Warmup)
- 周期性学习率 (Cyclical LR)
2. 优化器选择
- 基本优化器:SGD, Adam, RMSprop, Adagrad, Adadelta
- Adam变体:AdamW (带权重衰减的Adam)
- SGD参数:动量(momentum)、Nesterov动量
3. 批次大小 (Batch Size)
- 小批次 vs 大批次
- 影响:训练速度、内存使用、泛化能力
4. 训练轮数 (Epochs)
- 早停策略 (Early Stopping)的耐心参数
二、正则化相关超参数
1. 显式正则化
- L1/L2正则化强度 (权重衰减)
- Dropout率:通常0.2-0.5
- 批量归一化:动量和epsilon参数
2. 数据增强
- 增强强度参数(旋转角度、裁剪比例等)
- 增强概率
三、网络架构相关超参数
1. 模型深度与宽度
- 层数 (网络深度)
- 每层的通道数/神经元数 (网络宽度)
- 瓶颈层尺寸
2. 激活函数选择
- ReLU, LeakyReLU (负斜率参数), ELU, SELU, Swish, GELU
- 激活函数的位置 (前/后归一化)
3. 初始化方法
- 初始化分布的参数(标准差、均匀分布范围)
- 初始化策略:Xavier, He, LeCun初始化
四、损失函数相关
1. 损失函数选择
- 分类:交叉熵、焦点损失(Focal Loss)
- 回归:MSE、MAE、Huber损失 (delta参数)
- 多任务学习的损失权重
2. 类别不平衡处理
- 类别权重
- 采样策略参数
五、特定任务/架构的超参数
1. 卷积神经网络 (CNN)
- 卷积核参数 :
- 核大小 (3×3, 5×5, 7×7)
- 步长 (stride)
- 填充 (padding)
- 空洞率 (dilation rate)
- 池化参数 :
- 池化类型 (最大池化、平均池化)
- 池化核大小
- 池化步长
2. 循环神经网络 (RNN)
- 隐藏层维度
- 层数
- 门控机制参数 (如LSTM的遗忘门偏置)
3. Transformer
- 注意力头数
- 隐藏层维度
- 前馈网络维度扩展倍数
- 位置编码类型
4. 自编码器/GAN
- 潜在空间维度
- 生成器和判别器的平衡参数
- GAN的损失函数参数 (如WGAN的权重裁剪)
六、高级/技巧性超参数
1. 梯度处理
- 梯度裁剪阈值
- 梯度累积步数
2. 集成学习
- 集成模型数量
- 多样性增强参数
3. 知识蒸馏
- 温度参数
- 蒸馏损失权重
七、学习率相关细节
学习率调度器参数:
├── StepLR: step_size, gamma
├── MultiStepLR: milestones, gamma
├── ExponentialLR: gamma
├── CosineAnnealingLR: T_max, eta_min
├── ReduceLROnPlateau: factor, patience, threshold
└── CyclicLR: base_lr, max_lr, step_size_up
八、实验设置参数
1. 数据预处理
- 归一化方法 (标准化、最小-最大归一化)
- 输入尺寸调整
2. 训练策略
- 验证集比例
- k折交叉验证的k值
- 随机种子
回答策略建议:
结构化回答示例 :
"超参数可以分为几个主要类别:
- 优化参数:学习率、批次大小、优化器选择等
- 正则化参数:Dropout率、权重衰减强度、数据增强强度
- 架构参数:网络深度/宽度、激活函数、初始化方法
- 任务特定参数:如CNN的卷积核大小、RNN的隐藏层维度等
- 高级技巧:梯度裁剪、学习率调度策略"
强调重要参数 :
"最重要的是学习率 ,因为它直接影响收敛速度和最终性能。其次是正则化参数,它们控制过拟合。网络架构参数虽然重要,但通常基于领域知识选择。"
实用建议 :
"在实际调参中,我会:
- 首先调整学习率和批次大小
- 然后调整正则化强度防止过拟合
- 最后微调架构参数
- 使用自动化工具如网格搜索或贝叶斯优化辅助"