BN和IN(affine仿射, track_running_stats)

BN,IN都是这个公式

 其中μ和σ是running_mean和running_var(方差variance)

γ和β(gamma, beta) 是weight和bias, 也被称作缩放和平移参数

对于BN来说,只有γ和β才是learnable params

这是稍微复杂的写的BN的过程

 仿射(affine)指的就是最后一步

如果affine=False 则固定γ=1,β=0,并且不能学习被更新

如果 track_running_stats=True,表示跟踪整个训练过程中的batch的统计特性,得到方差和均值,而不只是仅仅依赖与当前输入的batch的统计特性。相反的,如果track_running_stats=False那么就只是计算当前输入的batch的统计特性中的均值和方差了。

为什么会有gamma, beta这两个参数?

      让BN能够把feature通过学习可以缩放成一个任意 方差为某个值,均值为某个值的东西(李沐)

      如果单纯地使用前三个公式,有可能会影响一些层的表达能力,例如,如果使用激活函数使用sigmoid,那么这个操作会强制输入数据分布在sigmoid接近线性的部分,接近线性的模型显然不好(影响整个模型的表达能力)。所以文中说把前三个公式作为基本变换(单位变换),加上放缩γ和平移β后再拿来使用,这两个参数是可以学习的。

      在极端情况下,即]时,经过BN层的数据没有变化。即

做BN的时候,每个channel都会做BN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值