课程名称 | 零基础入门深度学习
授课讲师 | 孙高峰 百度深度学习技术平台部资深研发工程师
授课时间 | 每周二、周四晚20:00-21:00
编辑整理 | 孙高峰
内容来源 | 百度飞桨深度学习集训营
出品平台 | 百度飞桨 01 导读 本课程是百度官方开设的零基础入门深度学习课程,主要面向没有深度学习技术基础或者基础薄弱的同学,帮助大家在深度学习领域实现从0到1+的跨越。 从本课程中,你将学习到:
- 深度学习基础知识
- numpy实现神经网络构建和梯度下降算法
- 计算机视觉领域主要方向的原理、实践
- 自然语言处理领域主要方向的原理、实践
- 个性化推荐算法的原理、实践
本文由百度深度学习技术平台部资深研发工程师孙高峰 为大家带来卷积神经网络基础之BN和Dropout。 02 批归一化(Batch Normalization) 批归一化方法方法 (Batch Normalization,BatchNorm)是由Ioffe和Szegedy于2015年提出的,已被广泛应用在深度学习中,其目的是对神经网络中间层的输出进行标准化处理,使得中间层的输出更加稳定。 通常我们会对神经网络的数据进行标准化处理,处理后的样本数据集满足均值为0,方差为1的统计分布,这是因为当输入数据的分布比较固定时,有利于算法的稳定和收敛。 对于深度神经网络来说,由于参数是不断更新的,即使输入数据已经做过标准化处理,但是对于比较靠后的那些层,其接收到的输入仍然是剧烈变化的,通常会导致数值不稳定,模型很难收敛。 BatchNorm能够使神经网络中间层的输出变得更加稳定,并有如下三个优点:
- 使学习快速进行(能够使用较大的学习率)
- 降低模型对初始值的敏感性
- 从一定程度上抑制过拟合
BatchNorm主要思路是在训练时按mini-batch为单位,对神经元的数值进行归一化,使数据的分布满足均值为0,方差为1。 具体计算过程如下:
1. 计算mini-batch内样本的均值 其中表示mini-batch中的第个样本。 例如输入mini-batch包含3个样本,每个样本有2个特征,分别是: 对每个特征分别计算mini-batch内样本的均值: 则样本均值是:
2. 计算mini-batch内样本的方差 上面的计算公式先计算一个批次内样本的均值和方差,然后再对输入数据做归一化,将其调整成均值为0,方差为1的分布。 对于上述给定的输入数据,可以计算出每个特征对应的方差: 则样本方差是:
3. 计算标准化之后的输出 其中是一个微小值(例如),其主要作用是为了防止分母为0。 对于上述给定的输入数据,可以计算出标准化之后的输出:
- 读者可以自行验证由构成的mini-batch,是否满足均值为0,方差为1的分布。
如果强行限制输出层的分布是标准化的,可能会导致某些特征模式的丢失,所以在标准化之后,Batch