深度学习相关概念:批量归一化

简介: 在训练过程中,每层输入的分布不断的变化,这使得下一层需要不断的去适应新的数据分布,这就会让训练变得非常复杂而且缓慢。为了解决这个问题,就需要设置更小的学习率、更严格的参数初始化。通过使用批量归一化(Batch Normalization, BN),在模型的训练过程中利用小批量的均值和方差调整神经网络中间的输出

1.为什么需要批量归一化


 在训练过程中,每层输入的分布不断的变化,这使得下一层需要不断的去适应新的数据分布,这就会让训练变得非常复杂而且缓慢。为了解决这个问题,就需要设置更小的学习率、更严格的参数初始化。通过使用批量归一化(Batch Normalization, BN),在模型的训练过程中利用小批量的均值和方差调整神经网络中间的输出,从而使得各层之间的输出都符合均值、方差相同高斯分布,这样的话会使得数据更加稳定,无论隐藏层的参数如何变化,可以确定的是前一层网络输出数据的均值、方差是已知的、固定的,这样就解决了数据分布不断改变带来的训练缓慢、小学习率等问题。


2.批量归一化


2.1批量归一化和权重初始化


 批量归一化是直接对神经元的输出进行批归一化,作用对象是每一层网络的输出。权重初始化是调整权值分布使得输出与输入具有相同的分布,作用对象是每一层网络的权重


573e4927cf604e508a08011f02f05695.png


2.2 批量归一化与梯度消失


 批量归一化经常插入到全连接层后,非线性激活前。这样可以优化全连接层的输出,避免其梯度消失。


2e7dc6076b884aeb9a80f0eae837cd48.png


2.3批量归一化算法


 小批量梯度下降算法回顾:每次迭代时会读入一(批数据,比如32个样本;经过当前神经元后会有32个输出值.)


批归一化操作:对这32个输出进行减均值除方差操作;可保证当前神经元的输出值的分布符合0均值1方差。


image.png


2.4批量归一化算法改进


image.png


 批量归一化其实就是前三步,最后加了一步,第四补平移缩放,是为了把数据按照一个新的均值、一个新的方差进行调整。


 这就是批量归一化的一个改进,为什么要这么改进呢?它前三步输出的这个值还是不好呢?实际上我们是很难确定0均值,1方差一定是对的,0均值,1方差就一定对分类有帮助吗?未必!所以我们更希望算法对分类的贡献来自行决定(让算法自己去学习),到底应该把数据的均值和方差设为多少会对分类效果会更好一些。所以在第四步引入了两个可学习参数, γ 是我希望这个数据方差映射到了新的方差上去, β是我希望这个数据映射到新的均值上去,这样yi 输出的神经网络自己选择的一个均值和方差,这就是批量归一化最重要的一个步,通过这个改进,就可以让网络变得更加好。


γ、β这不是超参数, γ 、β是神经网络需要学习的,让神经网络自己去确定什么样的均值和方差合适这个分类任务。所以批量归一化做的时候先把数据归一化到0均值1方差,然后再以期望的方差和期望的均值去映射,这就是批量归一化的整个的操作流程。


2.5单样本测试


单张样本测试时,均值和方差怎么设置?


 训练的时候是有批的,测试的时候怎么测试的时候我给你一个样本你计算出来的时候只有x 1 ,要想得到一个样本的预测值,就必须得到image.png,但在第三步中image.png,γ、β是学好的参数,但是均值和方差怎么办?


 这里告诉大家一个结论:


 x 1 在预测的时候是没法算的,只能在累加学习的时候,把每一批的均值和方差加和求平均,得出来的值就作为预测的时候的均值和方差。所以就可以得到μ B  、σ B  ,这样就可以计算x 1  ,最终通过image.png得到预测值。


36c49280fce7474bae96abcbb0140507.png

目录
相关文章
|
7月前
|
机器学习/深度学习 自然语言处理 算法
深度学习算法概念介绍
深度学习算法概念介绍
|
12天前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
63 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
23天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
48 8
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】30. 神经网络中批量归一化层(batch normalization)的作用及其Pytorch实现
【从零开始学习深度学习】30. 神经网络中批量归一化层(batch normalization)的作用及其Pytorch实现
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
通过深度学习实践来理解深度学习的核心概念
通过实践,不仅可以加深对深度学习概念的理解,还能发现理论与实际之间的差距,进而对模型进行改进和优化。实践中遇到的问题(如梯度消失、过拟合、训练效率低等)能促使你深入思考,进而更加全面地掌握深度学习的核心概念。
53 4
|
3月前
|
机器学习/深度学习 分布式计算 数据可视化
对深度学习概念的基础理解与认识
一、神经网络的组成 人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 感知机是1957年,由Rosenblatt提出会,是神经网络和支持向量机的基础。 感知机是有生物学上的一个启发,他的参照对象和理论依据可以参照下图:(我们的大脑可以认为是一个神经网络,
对深度学习概念的基础理解与认识
|
6月前
|
机器学习/深度学习 算法 数据可视化
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
|
5月前
|
机器学习/深度学习 人工智能 并行计算
现代深度学习框架构建问题之线性代数的常见概念定义如何解决
现代深度学习框架构建问题之线性代数的常见概念定义如何解决
52 3
|
5月前
|
机器学习/深度学习 自然语言处理 算法
深度学习的关键概念和网络结构
度学习是人工智能和机器学习的一个重要分支,它通过模拟人脑神经元的工作方式来处理复杂的模式识别和数据分析任务。深度学习已经在许多领域取得了显著的成果,如图像识别、语音识别和自然语言处理。
77 1
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之深度学习算法概念
深度学习算法是一类基于人工神经网络的机器学习方法,其核心思想是通过多层次的非线性变换,从数据中学习表示层次特征,从而实现对复杂模式的建模和学习。深度学习算法在图像识别、语音识别、自然语言处理等领域取得了巨大的成功,成为人工智能领域的重要技术之一。
97 3