小标
2018-10-15
来源 :
阅读 1463
评论 0
摘要:本文主要向大家介绍了机器学习入门之Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
本文主要向大家介绍了机器学习入门之Hulu机器学习问题与解答系列 | 二十三:神经网络训练中的批量归一化,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
来看看批量归一化的有关问题吧!记得进入公号菜单“机器学习”,复习之前的系列文章噢。
今天的内容是
【神经网络训练中的批量归一化】
场景描述
深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数,Dropout比例等,这些参数的选择会显著影响模型最终的训练效果。批量归一化(Batch Normalization, BN)方法从数据分布入手,有效减弱了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力。
问题描述
BN基本动机与原理是什么?
BN的具体实现中怎样恢复前一层学习到的特征分布?
简述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中的公式,其中m=b * w * h,为BN操作中的mini-batch。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号