ResNet网络的亮点:
Batch Normalization是google团队在2015年论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的。通过该方法能够加速网络的收敛并提升准确率。在网上虽然已经有很多相关文章,但基本都是摆上论文中的公式泛泛而谈,bn真正是如何运作的很少有提及。
在图像预处理过程中通常会对图像进行标准化处理,这样能够加速网络的收敛,如下图所示,对于Conv1来说输入的就是满足某一分布的特征矩阵,但对于Conv2而言输入的feature map就不一定满足某一分布规律了(注意这里所说满足某一分布规律并不是指某一个feature map的数据要满足分布规律,理论上是指整个训练样本集所对应feature map的数据要满足分布规律)。而我们Batch Normalization的目的就是使每一个batch的feature map满足均值为0,方差为1的分布规律。
“对于一个拥有d维的输入x,我们将对它的每一个维度进行标准化处理。” 假设我们输入的x是RGB三通道的彩色图像,那么这里的d就是输入图像的channels即d=3,x=(x(1), x(2), x(3)),其中x(1)就代表我们的R通道所对应的特征矩阵,依此类推。标准化处理也就是分别对我们的R通道,G通道,B通道进行处理。
通过上边图1和图2可以看出来,ResNeXt结合了inception与resnet的优点,既有残差结构又对特征层进行了concat。通过图3最后的数据对比,ResNeXt能够保证FLops和参数在同一个量级的前提下,通过更宽或者更深的网络,来提高精度。每一个Block中每一条path在文章中被称为一个cardinality。实验表明,增加cardinality是获得精度的一种更有效的方法。
Aggregated Residual Transformations for Deep Neural Networks 留坑
1、Residual learning
2、Batch Normailization 的原理
Batch Normalization通过一定的规范化手段,把每层神经网络输入值的分布强行拉回到均值为0方差为1的标准正态分布。
深度学习中 Batch Normalization为什么效果好?(留坑,还没有消化掉)
3、为什么分组卷积可以提升准确率?即然分组卷积可以提升准确率,同时还能降低计算量,分数数量尽量多不行吗?
不确定分组卷积是否可以提高准确率,也没在知乎大佬那么搜索比较明确的出处,留坑。
数量拉满,就变成了深度可分离卷积,所以在炼丹过程中要根据实际情况不断的调整。