【深度学习基础】batch、layer normalization区别

本博客总结一下各种normalization

1 normalization

1.1 batch normalization

1.1 motivation

介绍normalization 之前先说一下,为什么需要normalization。

covariate shift问题:
每个隐藏层的输入的分布不一致,导致神经网络很难训练

计算方法:
每个batch 里面

batch:
原理:
https://www.cnblogs.com/skyfsm/p/8453498.html
计算细节:
https://blog.csdn.net/c2a2o2/article/details/83410273

why
从梯度的角度考虑,

缺点:

  • 1、不适合RNN。序列长度不可知,但BZ需要某一层的所有输出。计算时很麻烦。

  • 2、依赖mini batch大小,在大批量时候效果好,不适合在线学习。

2 layer normalizaiton

2.1 motivation

bn的缺点:
1、BN 需要依赖batch,在online learning这种场景不适用
2、不适用rnn,因为在rnn中,如果测试序列比train的序列大,这部分序列没办法用

一般搭配RNN使用?(why)

3、面试题

1 BN有什么缺陷
2 作者:蒋豆芽
链接:https://www.nowcoder.com/discuss/692404?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网

3 除了BN,改激活函数还有什么解决梯度消失的么

  • 预训练加微调

  • 梯度剪切

使用合理的参数初始化方案,如He初始化

使用 ReLU、LReLU、ELU、maxout 等激活函数

sigmoid函数的梯度随着x的增大或减小和消失,而ReLU不会。

使用批规范化BN

残差结构

  1. 加了BN的sigmond还会不会梯度消失
    有可能。

我们假设一种极端的情况。初始权重全为0。

2 pooling

  • max pooling
  • agv pooling
  • min pooling

2.1 pooling的作用

降维

2.2 Pooling 层如何进行反向传播和梯度更新?

对于 max pooling 只对 max value 处进行梯度更新,其它都为 0;对于 average pooling 对之前的 pooling 位置处的所有元素做更新,更新值为 average pooling 层对应位置上的梯度除以采样个数(比如 2x2 pooling 则对应 4)

mean pooling

mean pooling 的前向传播就是把一个 patch 中的值求取平均来做 pooling,那么反向传播的过程也就是把某个元素的梯度等分为 n 份分配给前一层,这样就保证池化前后的梯度(残差)之和保持不变,还是比较理解的,图示如下 :

在这里插入图片描述

max pooling

max pooling 也要满足梯度之和不变的原则,max pooling 的前向传播是把 patch 中最大的值传递给后一层,而其他像素的值直接被舍弃掉。那么反向传播也就是把梯度直接传给前一层某一个像素,而其他像素不接受梯度,也就是为 0。所以 max pooling 操作和 mean pooling 操作不同点在于需要记录下池化操作时到底哪个像素的值是最大,也就是 max _id,这个变量就是记录最大值所在位置的,因为在反向传播中要用到,那么假设前向传播和反向传播的过程就如下图所示 :

在这里插入图片描述

————————————————
版权声明:本文为CSDN博主「烟雨人长安」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Matrix_cc/article/details/105485488

Max Pooling和 Average Pooling的区别,使用场景分别是什么?

https://blog.csdn.net/ytusdc/article/details/104415261

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值