趋近智
在本课程中,我们已经讨论了神经网络的各个组成部分:层、激活函数、损失函数、优化器,以及现在的正则化方法。在构建和训练这些模型时,我们区分两种类型的设置:
可以把参数视为模型获得的内部知识,而超参数则是你在外部做出的选择,关于模型应如何构建以及如何学习。
正确选择这些超参数对模型性能影响很大。正如正则化有助于防止过拟合一样,选择合适的超参数会影响:
不佳的超参数选择可能导致模型训练过慢、陷入次优解、严重过拟合,或者根本无法有效学习。
根据我们已介绍的内容,以下是你将遇到并需要考虑调整的一些最常见的超参数:
选择最佳的超参数组合通常更像是一门艺术而非科学,需要通过实验来完成。挑战在于以下几个因素:
下面看看不同学习率如何影响训练损失:
一张图表,显示了不同学习率下训练损失随周期变化的曲线。良好的学习率表现出稳定收敛,学习率过低则收敛缓慢,而学习率过高则可能导致损失剧烈波动或发散。
超参数是深度学习模型中需要在训练前手动设置的配置值。这些值通常在定义模型架构或配置优化器时进行设置。例如,在PyTorch中:
import torch
import torch.nn as nn
import torch.optim as optim
# 示例超参数
input_size = 784
hidden_size = 128
output_size = 10
learning_rate = 0.001
dropout_prob = 0.5 # 用于Dropout层
# 使用超参数定义模型
model = nn.Sequential(
nn.Linear(input_size, hidden_size),
nn.ReLU(),
nn.Dropout(dropout_prob), # 使用Dropout比率
nn.Linear(hidden_size, output_size)
)
# 使用超参数定义优化器
optimizer = optim.Adam(model.parameters(), lr=learning_rate) # 设置学习率
print(f"模型架构:\n{model}")
print(f"\n优化器:\n{optimizer}")
找到好的超参数是实现深度学习模型高性能的一个重要部分。由于通过试错进行手动调整效率低下且通常效果不佳,尤其是在超参数很多时,因此需要更系统的方法。下一节将介绍自动化此搜索过程的常用策略。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造