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

Batch Normalization

文章目录

  • 一,Norimalize(归一化)的想法:
  • 二,为什么要做归一化?
  • 三,问题来了,如果标准正态分布约束过于严格了怎么办?
  • 四,注意:Test-Time
  • 五,Batch Normalization 放置的位置
  • 六,Batch Normalization的优点
  • 七,Layer Normalization
  • 八,Instance Normalization
  • 九,不同的Normalization的对比

一,Norimalize(归一化)的想法:

-  使得layer的输出为标准正态分布(均值为0,标准差为1)

二,为什么要做归一化?

  • 帮助减少内部 internal covariate shift.

  • Internal Covariate Shift(内部协变量偏移)它指的是在训练深度神经网络时,由于每一层的输入分布在训练过程中不断变化,导致网络的学习变得困难的问题。具体来说,当一个层的输入分布发生变化时,该层需要不断地适应新的输入分布,这会使得网络的训练过程变得不稳定,同时也会影响收敛速度和性能。

  • 把数据拉回标准正态分布,因为神经网络的Block大部分都是矩阵运算,一个向量经过矩阵运算后值会越来越大,为了网络的稳定性,我们需要及时把值拉回正态分布。
    [(https://img-blog.csdnimg.cn/94d3bfd9614f44b5894916a5f9df59f7.png)
    每一个维度来做均值,方差,得到标准正态分布。

三,问题来了,如果标准正态分布约束过于严格了怎么办?

  • 这时候我们的,可学习的scale(缩放因子),shift(平移因子)就闪亮登场了。
  • 这两个可学习的参数将修复我们的恒等式
    在这里插入图片描述

四,注意:Test-Time

  • 我们的均值和方差是在Minibatch的基础上做的。在test阶段,我们只单纯测试一张图片的话是得不到均值和方差的。此时,均值和方差用的就是训练过程中的平均值(average of values seen during training)

  • 当testing的时候batchnorm就变成了一个线性运算(linear operator),可以跟前一层的全连接层或者卷积层融合起来计算。

五,Batch Normalization 放置的位置

  • 通常在全连接层或者卷积层 之后,激活函数之前

六,Batch Normalization的优点

  • 使得更深的网络更简单的训练起来 Makes deep networks much easier to train!
  • 用了batch normalization之后 可以设更大的学习率,让其更快的收敛
  • 网络 对初始化更具有鲁棒性 了(因为做了归一嘛)
  • 在训练的时候有起到 正则化 的效果
  • 在test-time 零开销 :因为可以跟conv做融合嘛,一起计算。

七,Layer Normalization

先来看一下Layer Normalization 与 Batch Normalization的区别
在这里插入图片描述

八,Instance Normalization

在这里插入图片描述

九,不同的Normalization的对比

在这里插入图片描述

http://www.lryc.cn/news/212509.html

相关文章:

  • 计算机网络-IP地址
  • HCIE怎么系统性学习?这份HCIE学习路线帮你解决
  • 香港服务器运行不正常原因简析
  • ActiveMQ
  • navicat15 恢复试用方法
  • 【idea】生成banner.txt
  • 数据缺失值的4种处理方法
  • 如何将普通队列异常消息路由到死信队列
  • MATLAB中perceptron函数用法
  • 使用Python进行数据科学
  • Go语言在硬件开发领域的应用
  • 小程序如何设置首选配送公司
  • 聚观早报 |2024款飞凡R7官宣;小米14新配色材质
  • 【kubernetes】Debian使用Kubeadm部署Kubernetes失败:Connection Refused
  • Wpf 使用 Prism 实战开发Day02
  • 基于本体的军事术语知识图谱构建方法
  • Web APIs——事件委托
  • 【SpringMVC篇】讲解RESTful相关知识
  • HTML基本概念:
  • webpack编译卡住65不动,问题记录
  • 当在本地,向服务器发送信息时,服务器接受信息返回给客户端,此时采用多行读取时,客户端接收不到Server的信息
  • 2310D,Dll,栈跟踪
  • JVS-BI数字大屏设计器:一站式解决方案
  • uniapp 中添加 vconsole
  • 目标检测 YOLOv5 预训练模型下载方法
  • 第16章_变量、流程控制与游标
  • 谁知道腾讯云轻量服务器“月流量”是什么意思?
  • 算法笔记【4】-冒泡排序法改进
  • cocos creator 资源管理
  • 好用的API调试工具推荐:Apipost