深度学习面试题22:批量归一化在实践中的应用

目录

  指数移动平均

  BN在卷积网络中的使用

  参考资料



假设已经训练好一个带有BN操作的卷积神经网络,但是在使用它预测时,往往每次只输入一个样本,那么经过该网络时,计算平均值和方差的意义就不大了,常采用的策略是计算训练阶段的平均值和方差的指数移动平均,然后在预测阶段使用它们作为BN操作时的平均值和方差。


指数移动平均

假设变量xt随时间t变化,按照以下规则定义其指数移动平均值

假设α=0.7

当t=1时,x1=5,则ema(1)=x1=5

当t=2时,x2=10,则ema(2)=α*ema(1)+(1-α)*x2=0.7*5+(1-0.7)*10=6.5

当t=3时,x3=15,则ema(3)=α*ema(2)+(1-α)*x3=0.7*6.5+(1-0.7)*15=9.05

当t=4时,x4=20,则ema(4)=α*ema(3)+(1-α)*x4=0.7*9.05+(1-0.7)*20=12.335

经过四次运算后,最后的移动平均值为12.335

对应代码为:

import numpy as np
import matplotlib.pyplot as plt
t = [1,2,3,4]
x = [5,10,15,20]
res = [x[0]]
for i in x[1:]:
    a = 0.7*res[-1]+0.3*i
    res.append(a)
plt.plot(t,x,"r")
plt.plot(t,res,"b")

换一个复杂一点的图像观测指数移动平均,可以发现,他在会保留原来的走势,并且适应新的走势:

import numpy as np
import random
import matplotlib.pyplot as plt
random.seed(20190725)
t = np.linspace(-5,5,100)
x = [-i**2+random.random()*15 for i in t]
res = [x[0]]
for i in x[1:]:
    a = 0.7*res[-1]+0.3*i
    res.append(a)
plt.plot(t,x,"r")
plt.plot(t,res,"b")

返回目录


BN在卷积网络中的使用

以下图BN操作为例说明:

每个BN层最终都会保存一对最终的均值和方差,可以用于测试阶段

返回目录


参考资料

《图解深度学习与神经网络:从张量到TensorFlow实现》_张平

Batch Normalization_ Accelerating Deep Network Training by Reducing Internal Covariate Shift

返回目录

原文地址:https://www.cnblogs.com/mfryf/p/11381373.html

时间: 2024-08-27 05:57:15

深度学习面试题22:批量归一化在实践中的应用的相关文章

深度学习面试题27:非对称卷积(Asymmetric Convolutions)

目录 产生背景 举例 参考资料 产生背景 之前在深度学习面试题16:小卷积核级联卷积VS大卷积核卷积中介绍过小卷积核的三个优势: ①整合了三个非线性激活层,代替单一非线性激活层,增加了判别能力. ②减少了网络参数. ③减少了计算量 在<Rethinking the Inception Architecture for Computer Vision>中作者还想把小卷积核继续拆解,从而进一步增强前面的优势 返回目录 举例 一个3*3的卷积可以拆解为:一个3*1的卷积再串联一个1*3的卷积,实验证

深度学习面试题29:GoogLeNet(Inception V3)

目录 使用非对称卷积分解大filters 重新设计pooling层 辅助构造器 使用标签平滑 参考资料 在<深度学习面试题20:GoogLeNet(Inception V1)>和<深度学习面试题26:GoogLeNet(Inception V2)>中对前两个Inception版本做了介绍,下面主要阐述V3版本的创新点 使用非对称卷积分解大filters InceptionV3中在网络较深的位置使用了非对称卷积,他的好处是在不降低模型效果的前提下,缩减模型的参数规模,在<深度学

深度学习面试题13:AlexNet(1000类图像分类)

目录 网络结构 两大创新点 参考资料 第一个典型的CNN是LeNet5网络结构,但是第一个引起大家注意的网络却是AlexNet,Alex Krizhevsky其实是Hinton的学生,这个团队领导者是Hinton,于2012年发表论文. AlexNet有60 million个参数和65000个 神经元,五层卷积,三层全连接网络,最终的输出层是1000通道的softmax.AlexNet利用了两块GPU进行计算,大大提高了运算效率,并且在ILSVRC-2012竞赛中获得了top-5测试的15.3%

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络 资源获取链接:点击这里 第1章 课程介绍 本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 1-1 课程导学 第2章 目标检测算法基础介绍 本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-sta

深度学习之目标检测常用算法原理+实践精讲

第1章 课程介绍本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 第2章 目标检测算法基础介绍本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-stage.two-stage.多任务网络).相关算法的基本流程.算法性能的评价指标.不同算法的优缺点和性能比较等,并结合实际的应用场景和案例来介绍目标检测算法的重要性和实用

深度学习面试题21:批量归一化(Batch Normalization,BN)

目录 BN的由来 BN的作用 BN的操作阶段 BN的操作流程 BN可以防止梯度消失吗 为什么归一化后还要放缩和平移 BN在GoogLeNet中的应用 BN在GoogLeNet中的应用 BN的由来 BN是由Google于2015年提出,论文是<Batch Normalization_ Accelerating Deep Network Training by Reducing Internal Covariate Shift>,这是一个深度神经网络训练的技巧,主要是让数据的分布变得一致,从而使得

深度学习面试题16:小卷积核级联卷积VS大卷积核卷积

目录 感受野 多个小卷积核连续卷积和单个大卷积核卷积的作用相同 小卷积核的优势 参考资料 感受野 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小.再通俗点的解释是,特征图上的一个点对应输入图上的区域,如下图所示: 返回目录 多个小卷积核连续卷积和单个大卷积核卷积的作用相同 像LeNet.AlexNet网络,都是用了较大的卷积核,目的是提取出输入图像更大邻域范围的信息,一般是卷积与池化操

深度学习面试题20:GoogLeNet(Inception V1)

目录 简介 网络结构 对应代码 网络说明 参考资料 简介 2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名.VGG获得了第二名,这两类模型结构的共同特点是层次更深了.VGG继承了LeNet以及AlexNet的一些框架结构,而GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VG

深度学习面试题12:LeNet(手写数字识别)

目录 神经网络的卷积.池化.拉伸 LeNet网络结构 LeNet在MNIST数据集上应用 参考资料 LeNet是卷积神经网络的祖师爷LeCun在1998年提出,用于解决手写数字识别的视觉任务.自那时起,CNN的最基本的架构就定下来了:卷积层.池化层.全连接层.如今各大深度学习框架中所使用的LeNet都是简化改进过的LeNet-5(-5表示具有5个层),和原始的LeNet有些许不同,比如把激活函数改为了现在很常用的ReLu. 神经网络的卷积.池化.拉伸 前面讲了卷积和池化,卷积层可以从图像中提取特