深度学习学习——BN,LN,IN,GN的联系

以下内容思路来自于:
https://zhuanlan.zhihu.com/p/289384231
想要看完整文章的可以看以上内容,本文提供一个精简的说明。
图片的来源是 Group Norm: https://arxiv.org/abs/1803.08494
可以借助这个feature map来进行一个直观的说明,立方体的3个维度为别为batch/ channel/ HW
在这里插入图片描述
BN计算均值和标准差时,固定channel(在一个channel内),对HW和batch作平均;LN计算均值和标准差时,固定batch(在一个batch内),对HW和channel作平均;IN计算均值和标准差时,同时固定channel和batch(在一个batch内中的一个channel内),对HW作平均;GN计算均值和标准差时,固定batch且对channel作分组(在一个batch内对channel作分组),在分组内对HW作平均。

此外知乎文章中还给出了另一个图片,也能比较好的说明问题,如下图所示:
在这里插入图片描述
所以说如果面向的对象是股票时序面板(比如说行是时间,列是各个个股)的话,那应该进行BN的操作,因为不同的channel对应的特征含义不同,然后对于不同的batch而言,在同一个feature map上相同位置对应的股票是同一个股票,所以进行BN操作是合理的,假定我们的特征是(N,C,H,W),即第一个是数据个数,即batch数目,第二个是特征channel,即叠加的不同的channel,如channel1是价格因子,channel2是成交量因子,第三个是时间,表示时间序列,第四个是不同的个股
然后在Pytorch中,可以使用nn.BatchNorm1d,nn.BatchNorm2d等来进行操作
其区别在于:
nn.BatchNorm1d对于特征为(N, C, L)的进行处理,nn.BatchNorm2d对(N, C, H, W)的进行处理
链接在此:https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm1d.html

最后我还是非常建议大家去读一下作者自己的整理:
https://zhuanlan.zhihu.com/p/289384231
以及他所搬运的文章(传送门:从上面的链接进入):
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量化橙同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值