Glorot初始化方法
Kaiming初始化
Batch Normalization
初始化器的推导依赖一下公式的推导

推导:

其中ni表示输入个数。
根据概率统计知识我们有下面的方差公式:

特别的,当我们假设输入和权重都是0均值时(目前有了BN之后,这一点也较容易满足),上式可以简化为:

进一步假设输入x和权重w独立同分布,则有:

于是,为了保证输入与输出方差一致,则应该有:

对于一个多层的网络,某一层的方差可以用累积的形式表达:

特别的,反向传播计算梯度时同样具有类似的形式:

综上,为了保证前向传播和反向传播时每一层的方差一致,应满足:

但是,实际当中输入与输出的个数往往不相等,于是为了均衡考量,最终我们的权重方差应满足:

学过概率统计的都知道 [a,b] 间的均匀分布的方差为:


以上就是Glorot-Xavier 初始化过程,实际用到的就是最后面这个公式
MSRA -kaiming 初始化推导如下:
首先,用下式表示第L层卷积:

则其方差为:(假设x和w独立,且各自的每一个元素都同分布,即下式中的n_l表示输入元素个数,x_l和w_l都表示单个元素)

当权重W满足0均值时,上述方差可以进一步写为:

对于ReLU激活函数,我们有:(其中f是激活函数)

带入之前的方差公式则有:

由上式易知,为了使每一层数据的方差保持一致,则权重应满足:

的不同,就是它是只考虑前向传播或者只考虑反向传播的,然后使用高斯分布,而没有综合考虑
以上就是深度学习 参数初始化器的过程推导
写在最后,虽然是在实际用的时候是只用最后的公式,但是推导过程才是我们算法工作者关注的,因为最后公式是给施工用的
网友评论