CNN 三大算子: CONV + BN +RELU

1、为什么 BN

指导思想:
机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的。
具有统一规格的数据, 能让机器学习更容易学习到数据之中的规律。

具体原因:
随着网络加深,数据经过激活层后趋向两侧,梯度趋于消失,分布在敏感激活区域(中间部分)的数据减少。不利于网络收敛。BN 将数据从新拉回标准正态分布。

如何 BN

减均值,除方差,乘scale, 加shift

3、反归一化

归一化有好有坏,如何取舍,最好让网络自己学习决定

反 Normalize : 乘scale, 加shift

反向操作, 将 normalize 后的数据再扩展和平移. 原来这是为了让神经网络学习扩展参数 gamma, 和 平移参数 β。

这样就可以用学习得到的 gamma 和 belt 来抵消一些 没有用的normalization 的操作.

核心思想应该是想找到一个线性和非线性的较好平衡点,既能享受非线性的较强表达能力的好处,又避免太靠非线性区两头使得网络收敛速度太慢

BN 缺陷:
但是需要计算均值与方差,不适合动态网络或者RNN。计算均值方差依赖每批次,因此数据最好足够打乱

4、BatchNorm的推理(Inference)过程

问题:推理只输入一个instance, 对其他 batch 数据无感,如何求 mean 和 var ?
方案:用全局统计量代替 Mini-Batch数据的统计量。全局 mean 和 var 在训练过程通过移动平均法就统计好,保存。
running_mean = momentum * running_mean + (1 - momentum) * x_mean

训练时:
推理时,等价:


所以BN 层有4个参数,保留了2个固定统计参数 和 两个学习参数,推理时合并成两个参数;只做一次运算,运算速度很快。

BN 运算速度取决节点个数。

5、BN 在 输入 NCHW 时的参数

BN是在channel上进行,且每个channel有独立的scale和shift;比如输入是 n × c × h × w,则mean和var是在每个channel上进行计算,即在 n × h × w 上;同样 γ和 β也是在channel上的可学习的参数。所以,BN共有 2 × c 个参数

5 、 几个问题

BN训练时为什么不用全量训练集的均值和方差呢?

用全量训练集的均值和方差容易过拟合,对于BN,其实就是对每一批数据进行归一化到一个相同的分布,而每一批数据的均值和方差会有一定的差别,而不是用固定的值,这个差别实际上能够增加模型的鲁棒性,也会在一定程度上减少过拟合。

深度学习中的 BN (BatchNormalization)理解相关推荐

  1. 【Attention】深度学习中的注意机制:理解序列模型中的注意机制How Attention works in Deep Learning

    [学习资源] How Attention works in Deep Learning: understanding the attention mechanism in sequence model ...

  2. 深度学习中的IoU概念理解

    1.什么是IoU(Intersection over Union) IoU是一种测量在特定数据集中检测相应物体准确度的一个标准.IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(boundi ...

  3. 关于深度学习中三维矩阵的理解(RGB图像的输入)

    #! /usr/bin/env python # -*- coding: utf-8 -*-""" =================================== ...

  4. 卷积为什么如此强大?理解深度学习中的卷积

    译自Tim Dettmers的Understanding Convolution in Deep Learning有太多的公开课.教程在反复传颂卷积神经网络的好,却都没有讲什么是"卷积&qu ...

  5. 深度 | 理解深度学习中的卷积

    译者按:本文译自 Tim Dettmers 的 Understanding Convolution in Deep Learning.有太多的公开课.教程在反复传颂卷积神经网络的好,却都没有讲什么是「 ...

  6. 理解深度学习中的卷积

    译者按:本文译自 Tim Dettmers 的 Understanding Convolution in Deep Learning.有太多的公开课.教程在反复传颂卷积神经网络的好,却都没有讲什么是「 ...

  7. 如何理解深度学习中的卷积?

    原文地址: http://www.yangqiu.cn/aicapital/2382000.html 译自Tim Dettmers的Understanding Convolution in Deep ...

  8. 干货|一文全解深度学习中的卷积

    来源:1024深度学习 概要:卷积现在可能是深度学习中最重要的概念.正是靠着卷积和卷积神经网络,深度学习才超越了几乎其他所有的机器学习手段. 译自Tim Dettmers的Understanding ...

  9. 卷积为什么如此强大?一文全解深度学习中的卷积

    卷积为什么如此强大?一文全解深度学习中的卷积 2018年05月10日 15:52:41 七月在线实验室 阅读数:17112 作者:Tim Dettmers(Understanding Convolut ...

最新文章

  1. “叽里呱啦”说英语,这家公司要用AI增值语言输出能力
  2. 计算机控制系统康波答案,计算机控制系统(康波)第4章部分参考答案[1]
  3. Ubuntu 中python 升级到3 后apt-get 一直报错
  4. 同样是查询语言,它和 SQL 竟然有这么多不同
  5. 局域网只能看到一部分电脑_win10 网上邻居看不到其它电脑、共享不了文件
  6. 【华为云实战开发】8.如何快速搭建C#网站并实现持续集成?
  7. python获取图片大小_如何在pygame(python)中获取图片大小
  8. Android IPC数据在内核空间中的发送过程分析
  9. 亿级爆款背后,网易云音乐的生长之道
  10. 计算机桌面软件图标没了,手把手教你电脑桌面图标都不见了怎么办
  11. Air202学习 四 (模块mqtt通信控制继电器)
  12. JDK8中Lambda 表达式语法糖脱糖[非原创]
  13. 网络基本知识【数据传输流程】
  14. 2022年电子造粒计数器市场前景分析及研究报告
  15. OpenGL核心技术之延迟着色器提升版
  16. 你真的了解USB吗?USB充电大揭秘(二)
  17. 这个年龄计算程序相当不科学,体验还是差差哒
  18. golang中关于读写锁、互斥锁的理解
  19. 互联网大厂的年终奖(华为分红400亿,腾讯每人发股票 )
  20. Navicat Premium 12并安装

热门文章

  1. matlab关于年月日的程序,自己编的小程序!Matlab日期计算
  2. 单元测试整理(一)——单元测试是什么,有什么好处
  3. phpyun人才招聘系统接入阿里云短信
  4. 高阶篇:4.3)FTA故障树分析法-DFMEA的另外一张脸
  5. 【往届已检索】第二届电子、信息与计算技术前沿国际会议征稿中
  6. dmc matlab程序,DMC信道容量迭代算法(Matalab实现)
  7. 2017第三届美亚杯全国电子数据取证大赛个人赛write up
  8. 电脑公司特别版8.5操作系统出来了;下载地址
  9. 《写作的诞生》读后感
  10. 红米note电信版_标注2014910_官方线刷包_救砖包_解账户锁