一文彻底搞懂深度学习:正则化(Regularization)、归一化(Normalization)
你是否也有这样的困扰?“我的模型在训练集上100分,测试集上却只有60分?”“我的神经网络训练了500轮还是不收敛?别慌!这些问题的根源往往在于两个关键技术:正则化和归一化。正则化就像严格的老师,防止学生死记硬背;归一化则是标准化的教材,让学习更高效。
你是否也有这样的困扰?“我的模型在训练集上100分,测试集上却只有60分?”“我的神经网络训练了500轮还是不收敛?”
别慌!这些问题的根源往往在于两个关键技术:正则化和归一化。正则化就像严格的老师,防止学生死记硬背;归一化则是标准化的教材,让学习更高效。
一、正则化(Regularization)
正则化(Regularization)是什么?
正则化就像一个严格的老师,防止学生过度背书。
正则化的目的是通过引入额外的约束或惩罚项来限制模型的复杂度,从而提高模型在未知数据上的泛化能力。
过拟合的学生不仅记住了知识点,连教材上的错别字、页码都背下来了;正则化后的学生只会记住核心知识,能举一反三。

如何实现正则化?
正则化是通过重新定义损失函数来实现的。新的损失函数由两部分组成:原始的预测损失和一个正则化项。
正则化通过给损失函数"加料",在原有的预测误差基础上,再添加一个基于模型参数计算得出的惩罚项。
原来的损失函数,只看考试成绩;正则化后的损失函数,看考试成绩 + 惩罚项(防止死记硬背)。

L1正则化和L2正则化是最主流的两种正则化技术,前者通过引入权重绝对值的约束来产生稀疏权重(许多权重为零),后者则通过权重平方和的惩罚来控制参数规模(保持权重值较小)。

L1正则化(Lasso): “断舍离大师”
L1正则化在损失函数L中添加L1正则项,即模型参数绝对值之和作为惩罚项
喜欢把不重要的权重直接变成0,这样倾向于产生稀疏权重矩阵,即部分特征权重为零,有助于特征选择。
def l1_regularization(model, lambda_l1):
l1_loss = 0
for param in model.parameters():
l1_loss += torch.norm(param, p=1) # 绝对值之和
return lambda_l1 * l1_loss
# 训练时修改loss计算
loss = criterion(outputs, labels) + l1_regularization(model, 0.001)
L2正则化(Ridge): “均衡发展者”
L2正则化则在损失函数L中添加L2正则项,即模型参数平方和作为惩罚项。
让所有权重都保持在合理范围内,这样倾向于使模型权重均匀分布,有助于防止模型过于复杂,减少过拟合。
def l2_regularization(model, lambda_l2):
l2_reg = torch.tensor(0.0)
for param in model.parameters():
l2_reg += torch.norm(param, p=2) # 平方和
return lambda_l2 * l2_reg
# 在训练循环中手动添加
loss = criterion(outputs, labels) + l2_regularization(model, 0.001)
二、归一化(Normalization)
归一化(Normalization)是什么?
归一化就像给所有数据穿上统一的校服,让它们在同一个"频道"上交流。
小明的身高:175cm,小红的体重:50kg,小李的年龄:20岁,直接比较毫无意义!归一化后,它们都变成了-1到1之间的数字,就能公平比较了。
这样当模型面对来自不同量纲的特征数据时,归一化能够将它们统一转换到相同的数值范围内,比如标准正态分布(均值0,标准差1)。通过这种统一化处理,让神经网络能够更均衡地学习各个特征的重要性。

归一化的过程是什么?
三步法把不同尺度的数据调整到相同标准
- 测量数据范围:找出最大值、最小值、平均值等
- 应用魔法公式:用数学公式把数据"压缩"到标准范围
- 获得标准化数据:所有数据都在同一个尺度上了

常用的归一化有哪些?
主要包括批量归一化(BN)、层归一化(LN)、实例归一化(IN)和组归一化(GN)

批量归一化(Batch Normalization, BN):“班级统一标准”
看这个班级,这一批学生的平均分和分数分布,把所有分数调整到统一标准(平均0,标准差1)。最适合:图像处理任务。
# 卷积网络标准配置
nn.Sequential(
nn.Conv2d(3, 64, 3),
nn.BatchNorm2d(64), # 批量归一化
nn.ReLU()
)
层归一化(Layer Normalization, LN):“个人标准化”
不看其他学生,只看自己各科成绩,把自己的各科成绩标准化。最适合:文本处理、Transformer模型。
# Transformer Block结构
class TransformerLayer(nn.Module):
def __init__(self):
super().__init__()
self.ln1 = nn.LayerNorm(512)
self.ln2 = nn.LayerNorm(512)
实例归一化(Instance Normalization, IN):“独立个体标准”
每个样本完全独立处理,适合每个样本都有独特风格的任务。最适合:图像风格迁移、艺术生成。
# 风格迁移网络片段
style_transfer = nn.Sequential(
nn.Conv2d(3, 128, 3),
nn.InstanceNorm2d(128), # 单样本单通道归一化
nn.AdaptiveAvgPool2d(1)
)
组归一化(Group Normalization, GN):“小组标准化"
把特征分成几个小组,每个小组内部标准化。最适合:医学图像分割、小batch训练。
# 医学图像分割网络
nn.Sequential(
nn.Conv2d(64, 128, 3),
nn.GroupNorm(4, 128), # 128通道分为4组
nn.LeakyReLU()
)
如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

4. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】

更多推荐
所有评论(0)