复盘:卷积神经网络、池化、乘法运算操作、RNN/transformer/CNN复杂度

复盘:卷积神经网络、池化、乘法运算操作、RNN/transformer/CNN复杂度

提示:互联网大厂笔试


卷积神经网络,针对某一个batch数据)数据维度[N,C,W,H]进行BN操作,则该batch中的均值和方差数量为:

C,N,NC,WH?

作用
BN层一般放在线性层或卷积层后面,激活函数前面,作用如下:

1.加快网络收敛;
因为每层的数据都转换为同一的分布,这样会加快训练速度。

2.防止梯度爆炸和梯度消失;
因为BN会使非线性变换函数的输入值落入对输入比较敏感的区域。

解决的问题是梯度消失与梯度爆炸。
关于梯度消失,以sigmoid函数为例子,sigmoid函数使得输出在[0,1]之间。
在这里插入图片描述

事实上x到了一定大小,经过sigmoid函数的输出范围就很小了,参考下图
在这里插入图片描述
如果输入很大,其对应的斜率就很小,我们知道,其斜率(梯度)在反向传播中是权值学习速率。所以就会出现如下的问题,
在这里插入图片描述

3.防止过拟合,提升泛化能力。
因为BN求均值和方差是基于同一个batch内的样本,使网络不会朝一个方向学习。

BN计算过程:
在这里插入图片描述
一张图一个通道的话,一个batch就N个数据,一个均值,一个方差
C个通道就C个均值和方差

为什么会有放缩系数γ和平移系数β ?
因为归一化不可避免的会改变数据的分布,
从而可能会对激活函数只使用了其线性部分,限制了模型的表达能力
引入参数γ 和β 可以使网络的输出重构原始特征的表达能力

训练阶段
在训练阶段,BN会对batch内的每个样本做归一化,
每一层特征图会计算出Channel个均值和方差。
训练时计算的均值和方差会不断按加权累积下来,通过移动平均的方法来近似得到整个样本集的均值和方差。

这里假设通道数为1,batch为4,即大小为[4,1,3,3] (n,c,h,w)。

特征图里的值,作为BN的输入,这里简化输出只有一个channel,
也就是这一个4x3x3个数值通过BN计算并保存均值与方差,
并通过当前均值与方差计算归一化的值,
最后根据γ,β以及归一化得值计算BN层输出。

假如输入是c=3个通道,就是在通道的维度上进行bn,所以会有c=3个γ,β参数。

训练过程中共会产生(图片总数/batchsize)组 γ β 。

在反向传播时,利用γ 和β求梯度从而改变训练权重

预测阶段
在预测阶段,很可能不是按batch预测的,
通常只有一个样本,那么BN层中的均值和方差都是固定的,那就需要用到训练时的均值和方差通过移动平均而得到。

因此答案就是C个均值与方差!


池化层的作用个,哪个不是池化层的作用?

池化的作用:
缓解模型过拟合
保持一定的平移不变性
减小图像尺寸,进行数据降维

但是池化的作用不是上采样 ,而是下采样

1.池化层主要的作用
(1)首要作用,下采样(downsampling)

(2)降维、去除冗余信息、对特征进行压缩、简化网络复杂度、减小计算量、减小内存消耗等等。各种说辞吧,总的理解就是减少参数量。缓解模型过拟合

(3)实现非线性(这个可以想一下,relu函数,是不是有点类似的感觉?)。

(4)可以扩大感知野。

(5)可以实现不变性,其中不变形性包括,平移不变性、旋转不变性和尺度不变性。

在这里插入图片描述


CNN的卷积中,s步长,p是padding,一共需要多少次乘法操作?

在这里插入图片描述
这个问题我之前学过,讲过:
卷积神经网络参数量和计算量的计算

k*k次乘法,这是一次卷积的计算量:

多少次卷积???
在这里插入图片描述
h-k+p/s + 1 w-k+p/s + 1

C个输入特征图上进行卷积运算的次数为Ci

C个相加需要C-1次加法
在这里插入图片描述

输出O个特征图需要计算的次数
在这里插入图片描述
本题不看加法C-1舍弃
就是oci[h-k+p/s + 1 * w-k+p/s + 1] × k方
在这里插入图片描述

RNN时间复杂度

transformer时间复杂度

CNN时间复杂度

在这里插入图片描述
N=T的话,就是T序列长度,d是向量维度的话。

**o(t^2*d)**就是self-attention的复杂度

o(t*d^2)RNN时间复杂度,不是t方×d哦!!!笔试容易在这搞你
o(t*d^2)RNN时间复杂度,不是t方×d哦!!!笔试容易在这搞你
o(t*d^2)RNN时间复杂度,不是t方×d哦!!!笔试容易在这搞你

CNN:o(tkd^2) = o(ktd^2),问题不大

transformer中self-attention线性性模块的复杂度o(t*d^2)


总结

提示:重要经验:

1)o(t*d^2)是RNN时间复杂度,不是t方×d哦!!!笔试容易在这搞你
2)CNN计算量要属性,先算卷积核一次卷积,然后看看特征图需要多少次卷积,然后看看通道数乘法,加法,输出乘法
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冰露可乐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值