当前位置: 首页 > news >正文

【第五章:计算机视觉-项目实战之图像分类实战】2.图像分类实战-(3)批量归一化(Batch Normalization)和权重初始化的重要性

第五章:计算机视觉(Computer Vision)- 项目实战之图像分类

第二部分:图像分类实战

第三节:批量归一化(Batch Normalization)和权重初始化的重要性


1. 引入背景

在深度神经网络训练中,我们常遇到两个核心问题:

  • 训练不稳定:梯度在传播中可能出现消失或爆炸。

  • 收敛缓慢:学习率难以设置,参数更新震荡明显。

两个关键技术有效缓解这些问题:批量归一化(Batch Normalization, BN)权重初始化


2. 批量归一化(Batch Normalization, BN)

BN 是一种对网络层输入进行归一化的技术,保证数据在每一层都保持稳定分布。

2.1 公式

对一个 mini-batch 的输入 xx,BN 过程如下:


其中:

  • , :mini-batch 的均值与方差

  • ϵ:防止除零的常数

  • γ,β:可学习的缩放和平移参数

2.2 BN 的优势

  • 缓解梯度消失/爆炸:归一化后激活值保持稳定。

  • 加快收敛:训练更高效。

  • 正则化作用:一定程度上减少过拟合。

2.3 PyTorch 示例

import torch.nn as nn# 定义一个带 BN 的卷积层
conv_bn = nn.Sequential(nn.Conv2d(64, 128, kernel_size=3, padding=1),nn.BatchNorm2d(128),nn.ReLU()
)

3. 权重初始化的重要性

即使有 BN,良好的权重初始化仍然至关重要。

3.1 常见初始化方法

  1. Xavier 初始化(Glorot 初始化)
    适合 Sigmoid / Tanh 激活,保持输入输出方差一致。

  2. Kaiming 初始化(He 初始化)
    适合 ReLU 系列激活,避免方差缩小。

  3. 正交初始化
    通过生成正交矩阵保证特征不相关,适合 RNN 等结构。

3.2 PyTorch 示例

import torch.nn as nn
import torch.nn.init as init# 定义一个卷积层
conv = nn.Conv2d(3, 64, kernel_size=3)# Kaiming 初始化
init.kaiming_normal_(conv.weight, mode='fan_in', nonlinearity='relu')# Xavier 初始化
linear = nn.Linear(256, 128)
init.xavier_uniform_(linear.weight)

4. BN 与权重初始化的关系

  • 权重初始化 → 决定网络初始分布

  • BN → 保证训练过程中分布稳定

两者结合,使得深度网络能更高效、更稳定地训练。


5. 小结

  • BN:归一化 + 可学习参数,提升稳定性与收敛速度。

  • 权重初始化:合理初始化防止梯度异常。

http://www.dtcms.com/a/389897.html

相关文章:

  • SQL Server 多用户读写随机超时?从问题分析到根治方案
  • 2.css的继承性,层叠性,优先级
  • OpenStack 学习笔记(四):编排管理与存储管理实践(上)
  • list_for_each_entry 详解
  • Perplexity AI Agent原生浏览器Comet
  • 颈椎按摩器方案开发,智能按摩仪方案设计
  • Sui 学习日志 1
  • 六、Java—IO流
  • 数据库 事务隔离级别 深入理解数据库事务隔离级别:脏读、不可重复读、幻读与串行化
  • 从“纸面”到“人本”:劳务合同管理的数字化蜕变
  • ARM架构——学习时钟7.2
  • VS Code 调试配置详解:占位符与语言差异
  • 锁 相关知识总结
  • caffeine 发生缓存内容被修改以及解决方案-深度克隆
  • rust编写web服务06-JWT身份认证
  • 《怪猎:荒野》制作人:PC平台对日本游戏非常重要
  • 大模型训练框架(二)FSDP
  • MySQL——系统数据库、常用工具
  • 蓝桥杯题目讲解_Python(转载)
  • 性能测试监控实践(九):性能测试时,监控docker微服务资源利用率和分析
  • TCP,UDP和ICMP
  • Python语法学习篇(七)【py3】
  • 网页控制鼠标 查看鼠标位置
  • PIT 定时器
  • 【题解】 [蓝桥杯 2019 省 B] 特别数的和
  • 数字隔离器,串口通信的安全之“芯”
  • 山脊图 (Ridgeline Plot):使用 joypy 库,优雅地比较多组数据的分布情况
  • Linux 进程同步以及僵尸进程等知识介绍
  • Python进程和线程
  • 斐波那契数列的递归和迭代实现