Internal Covariate Shift(ICS)的理解 和 Batch Normalizaton的原理及优点

参考资料:
1.Batch Normalization原理与实战
2.Internal Covariate Shift以及Batch Normalization

  1. Internal Covariate Shift(ICS):
    Batch Normalization 原作者对Internal Covariate Shift的定义是: 在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化.
    我的理解是: 层与层之间的耦合度很高, 底层的参数微弱变化在上层被放大, 导致上层的输入数据 X ( i ) X^{(i)} X(i)的分布变化很大.

  2. ICS导致的问题是:
    a) 上层网络需要不断适应这种分布的变化, 从而降低了学习速率
    b) W和b在训练过程中逐渐变大, 从而使每一层的W*x+b较大, 陷入激活函数(如sigmoid)的梯度饱和区, 导致反向传播中底层的更新梯度(导数连乘得到)非常小, 梯度消失, 收敛速度减慢. 解决办法: 使用非饱和性激活函数, 或者让激活函数的输入分布保持在一个稳定状态来尽可能避免它们陷入梯度饱和区(Batch Normalization).

  3. 解决方案:
    a) 白化(PCA+标准化): PCA白化/ZCA白化
    关于PCA和白化的解释, 参考:
    1. CS231n Convolutional Neural Networks for Visual Recognition
    2. 机器学习(七)白化whitening
    PCA本质上就是做一个坐标变换(旋转)去除特征之间的相关性, 白化是在PCA基础上做坐标缩放得到各向同性的坐标点.
    优 点 : ( 1 ) 使 得 输 入 特 征 分 布 具 有 相 同 的 均 值 与 方 差 ; ( 2 ) 去 除 了 特 征 之 间 的 相 关 性 缺 点 : ( 1 ) 白 化 过 程 计 算 成 本 太 高 ; ( 2 ) 白 化 过 程 由 于 改 变 了 网 络 每 一 层 的 分 布 , 因 而 改 变 了 网 络 层 中 本 身 数 据 的 表 达 能 力 , 造 成 底 层 信 息 丢 失 \begin{aligned} 优点: &(1) 使得输入特征分布具有相同的均值与方差;\\ &(2) 去除了特征之间的相关性\\ 缺点: &(1) 白化过程计算成本太高;\\ &(2) 白化过程由于改变了网络每一层的分布,因而改变了网络层中本身数据的表达能力,造成底层信息丢失 \end{aligned} ::(1)使;(2)(1);(2), b) Batch Normalization原理

    Z [ l ] = W [ l ] A [ l − 1 ] + b [ l ] 注 意 : 偏 置 项 b 可 以 不 添 加 或 设 为 0 , 因 为 规 范 化 会 减 去 均 值 μ = 1 m ∑ i = 1 m Z [ l ] ( i ) σ 2 = 1 m ∑ i = 1 m ( Z [ l ] ( i ) − μ ) 2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值