Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化

Posted peizhe123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化相关的知识,希望对你有一定的参考价值。

来看看批量归一化的有关问题吧!记得进入公号菜单“机器学习”,复习之前的系列文章噢。

 

今天的内容是

【神经网络训练中的批量归一化】

 

场景描述

深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数,Dropout比例等,这些参数的选择会显著影响模型最终的训练效果。批量归一化(Batch Normalization, BN)方法从数据分布入手,有效减弱了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力。

 

问题描述

  1. BN基本动机与原理是什么?

  2. BN的具体实现中怎样恢复前一层学习到的特征分布?

  3. 简述BN在卷积神经网络中如何使用?

 

背景知识:统计学习,深度学习

 

解答与分析

1. BN的基本动机与原理是什么?

神经网络训练过程的本质是学习数据分布,训练数据与测试数据的分布不同将大大降低网络的泛化能力,因此我们需要在训练开始前对所有输入数据进行归一化处理。

然而随着网络训练的进行,每个隐层的参数变化使得后一层的输入发生变化,从而每一批(batch)训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大了训练的复杂度以及过拟合的风险。

Batch Normalization方法是针对每一批数据,在网络的每一层输入之前增加归一化处理(均值为0,标准差为1),将所有批数据强制在统一的数据分布下,即对该层的任意一个神经元(不妨假设为第k维) 技术分享图片 采用如下公式:

技术分享图片

 

2. BN的具体实现中怎样恢复前一层学习到的特征分布?

按照上式直接进行归一化会导致上层学习到的数据分布发生变化,以sigmoid激活函数为例,BN之后数据整体处于函数的非饱和区域,只包含线性变换,破坏了之前学习到的特征分布。为了恢复原始数据分布,具体实现中引入了变换重构以及可学习参数γ,β:

技术分享图片

其中

技术分享图片

分别为输入数据分布的方差和偏差,对于一般的网络,不采用BN操作时,这两个参数高度依赖前面网络的学习到的连接权重(对应复杂的非线性)。而在BN操作中提取出来后,γ,β变成了该层的学习参数,与之前网络层的参数无关,从而更加有利于优化的过程。

完整的Batch Normalization网络层的前向传导过程公式如下:

技术分享图片

 

3. 简述BN在卷积神经网络中如何使用?

卷积神经网络中每一层操作后得到一系列特征图(feature maps),卷积层上的BN同样使用类似权值共享的策略,将每张特征图做为一个处理单元,即全连接网络中的单个神经元,进行归一化操作。

具体实现中,假设网络训练中每个batch包含b个样本,特征图个数为f,特征图的宽高分别为w, h,那么,每个特征图所对应的全部神经元个数为b * w * h,利用这些神经元我们可得到一组学习参数γ,β用于对该特征图进行BN操作。详细过程可参考问题2中的公式,其中mb * w * h,为BN操作中的mini-batch。

 


 

下一题预告

【随机梯度下降法】

 

场景描述

深度学习得以在近几年迅速占领工业界和学术界的高地,重要原因之一是数据量的爆炸式增长。如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,而深度学习算法因其强大的表示能力,性能得以持续增长,甚至在一些任务上超越人类。因此有人戏称,“得数据者得天下”。

技术分享图片

经典的优化方法,例如梯度下降法,每次迭代更新需要用到所有的训练数据,这给求解大数据、大规模的优化问题带来了挑战。掌握基于大量训练数据求解模型的方法,对于掌握机器学习,尤其是深度学习至关重要。

 

问题描述

针对训练数据量过大的问题,当前有哪些优化求解算法?

 

以上是关于Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化的主要内容,如果未能解决你的问题,请参考以下文章

Hulu机器学习问题与解答系列 | 二十四:随机梯度下降法

Hulu机器学习问题与解答系列 | 二十一:分类排序回归模型的评估

Hulu机器学习问题与解答系列 | 二十二:特征工程—结构化数据

Hulu机器学习问题与解答系列 | 十五:多层感知机与布尔函数

Hulu机器学习问题与解答系列 | 第七弹:非监督学习算法与评估

Hulu机器学习问题与解答系列 | 第六弹:PCA算法