概述:训练机器学习系统时,一个一般的假设是它每次的输入的分布是稳定的。如果不满足这个假设,就是covariate shift,这个通常通过domian adaption解决。在训练一个复杂的机器学习系统时,同样要求这个sub-network对应的输入(activation)分布(distribution)是稳定的,如果不满足这个假设,就是本文提出的internal covariate shift(ICS)。本文CNN训练中,存在的ICS问题提出batch normalizaiton,一方面通过normalization使得每个网络层的输入尽量保持稳定的分布(均值为0以及单位方差),另一方面通过一个线性变化(transform)使得该层的输入在表达能力上也同时保持较好的效果。
对于CNN训练中存在的ICS问题,在原文中通过一个带sigmoid activation function的层进行了说明,具体而言:首先这个中间层的输入是原始数据在先网络(preceding network)上变化后的结果,所以这层的输入首先是跟它前面的网络参数有很大关联,这样的话前面网络参数的变化必然带来这层在输入上的变化,而且这个网络深度越深,这种现象就会被扩大(amplify),从而导致输入的不稳定;另一方面,对于一个sigmoid激活函数,它的导数随着自变量绝对值增大而减小,输入x的很多维上的梯度往往太小而导致梯度不能有效的传播(saturation problem and gradient descent)。之前,解决这个问题的方法包括 using Rectified linear units,care initia
笔记:batch normalization:accelerating deep network training by reducing internal covariate shift
最新推荐文章于 2023-03-13 10:59:02 发布