BN层计算的为什么不是协方差矩阵的理解

首先介绍一下我的博客AI’Boy,刚刚搭建完成hhhh

Note that the use of minibatches is enabled by computation of per-dimension variances rather than joint covariances; in the joint case, regularization would be required since the mini-batch size is
likely to be smaller than the number of activations being
whitened, resulting in singular covariance matrices.

问题

最近在看Batch Normalization 一文中看到其中提到因为mini-batch中的样本数往往小于样本的维度(也就是图像的尺寸),因此如果求协方差得到的就是奇异协方差矩阵(singular covariance matrices),所以在BN中用的都是每个维度单独的方差。刚开始看的时候对于产生奇异协方差矩阵这一段不是很理解,通过google寻找了相关资料后才弄明白,这里简单的做一个记录。

协方差矩阵的秩

这里首先需要知道一个知识,就是一个协方差矩阵的秩永远小于等于n-1,其中n是样本数。这个知识的证明在这里
我们首先假设样本 xiχ,i=1...n xi 的维度为d,样本集 χ 的协方差矩阵可以写作

C=1n1i=1n(xix^)(xix^)T
(1)
其中 x^=xin ,是所有样本维的均值,是个d*1的向量。然后把 xix^ 写作 zi ,(1)式可以重新写作
C=1n1i=1nziziT
(2)
其中 1n1 这一项并不会改变C的秩,因此就变成了 为什么 rank(ni=1ziziT)n1 的问题。

首先,求和项中每一项 ziziT 的秩均为1(一个d*1和1*d的矩阵相乘秩为1 )。根据上面的代换,易得 zi=0 ,可以重新写成如下的形式:

zn=i=1n1zi
{3}
现在将(3)代入(2)式中,可以重写为:
C=1n1{i=1n1ziziT+(i=1n1zi)znT}=1n1i=1n1zi(zizn)T
(4)
可以看出C的秩其实是由n-1个秩为1的项相加而来,同时这也解释了为什么算协方差是除的是n-1而不是n.

奇异协方差矩阵的由来

当样本数n小于样本维度d时,如果计算样本的协方差矩阵 Cdxd ,有 rank(C)min(n1,d) ,因为 n<d ,所以 rank(C)<d ,因此如果在BN层计算协方差就会产生一个奇异协方差矩阵。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值