可以确定这是个ANN-to-SNN的算法。
深度残差网络的残差网络块:
CNN版本:
做法:用原数据进行3次卷积操作先生成一个结果F(x),然后进行一次卷积生成一个结果identity。最后残差单元的结果就是identity+F(x)。
为什么这么做:因为多次卷积会导致一些细节消失,而且深层网络到最后也存在着梯度消失或者爆炸的问题。这个时候identity的引入,会加强特征效果,减缓训练速度,但在一定程度上也强化了训练速度。

每一次卷积完以后都要进行一次批归一化处理,这个函数使结果x=wx+b各个维度均值为0,且方差为1。
所以他这里一个块的具体操作就是:
卷积 --> 批归一化 --> relu函数处理 --> 卷积 --> 批归一化 --> relu函数处理 --> 卷积 --> 批归一化 = F(x)
= shortcut
最后 结果就是shortcut+F(x)一个残差网络块的结果
批归一化的结果:把所有数据初始化成 均值为0,方差为1,相当于数据的初始化操作,使数据变得更稳定。
批归一化解决的问题:每一层的参数更新会导致上层的输入数据分布发生变化( Internal Covariate Shift),通过层层叠加,高层的输入分布变化会非常剧烈,这就使得高层需要不断去重新适应底层的参数更新。而批归一化处理完以后都把输入数据分布固定。
BN算法过程:
1、计算批处理数据均值。

2、计算批处理数据方差。

本文解析深度残差网络如何转化为SNN,重点讲解了残差块中批归一化的作用,ReLU到IF神经元的替换,以及权重归一化的方法。讨论了批归一化在解决InternalCovariateShift问题和权重转换中的关键步骤。
最低0.47元/天 解锁文章
1345

被折叠的 条评论
为什么被折叠?



