批量归一化

参考李沐老师的动手深度学习,只作为个人笔记.

文章目录

前言

一、为什么要批量归一化

二、批量归一化

三、批量归一化层

总结


前言

训练深层神经网络是十分困难的,特别是在较短的时间内使他们收敛更加棘手。 本节将介绍批量规范化(batch normalization),这是一种流行且有效的技术,可持续加速深层网络的收敛速度。 


一、为什么要批量归一化

  • 损失函数出现最后,后面的层训练较快.
  • 数据在最底部
  1. 底部的层训练较慢
  2. 底部层一变化,所有都得跟着变
  3. 最后的那些层需要重新学习多次
  4. 导致收敛变慢

1.为什么底部训练模型较慢?

答:因为随着神经网络的加深,数据在下面损失函数在上面,在反向传播时,从上面开始往下传,

梯度在上面的时候比较大越往下,梯度就越容易变小,这就导致上面层的梯度相对于下面层的梯度大,则上面的层收敛更快,下面的层收敛更慢。

2.为什么底部层一变话,所有都得跟着变?

答:因为模型开始是先前向传播在后向传播,下面层权重更新,上面的层就得更新。

3.为什么最后的那些层需要重新学习多次?

答:跟问题1一样.

4.导致收敛变慢?

答:跟问题1一样。

我们可以在学习底部层的时候避免变化顶部层吗?

二、批量归一化

三、批量归一化层

我个人的理解就是把每个特征归一化,对于全连接每列就是特征,对于卷积我们是图片所以特征就是通道维,每个像素点就是一个特征。

总结

  • 批量归一化固定小批量中的均值和方差,然后学习出适合的偏移和缩放
  • 可以加快收敛速度,但一般不改变模型精度

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-09 17:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-09 17:32:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-09 17:32:04       82 阅读
  4. Python语言-面向对象

    2024-01-09 17:32:04       91 阅读

热门阅读

  1. 5《Linux》

    2024-01-09 17:32:04       53 阅读
  2. 2401d,d导入C的问题

    2024-01-09 17:32:04       63 阅读
  3. Nacos与Eureka的区别详解

    2024-01-09 17:32:04       51 阅读
  4. 机器学习:自然语言处理介绍

    2024-01-09 17:32:04       46 阅读
  5. vue2打包后,接口地址可在打包文件中配置

    2024-01-09 17:32:04       62 阅读
  6. 【Artificial Intelligence】

    2024-01-09 17:32:04       51 阅读
  7. 不同波特率传输时间计算

    2024-01-09 17:32:04       55 阅读