CNN复杂度分析

更新时间:2023-06-17 08:30:24 阅读: 评论:0

CNN复杂度分析
复杂度对模型的影响
时间复杂度决定了模型的训练/预测时间。如果复杂度过⾼,会导致模型训练和预测耗费⼤量时间,既⽆法快速的验证想法和改善模型,也⽆法做到快速的预测。山的诗
坚持底线思维空间复杂度决定了模型的参数数量。由于维度灾难(cur of dimensionality)的限制,模型的参数越多,训练模型所需的数据量就越⼤,⽽现实⽣活中的数据集通常不会太⼤,这会导致模型的训练更容易过拟合。奇葩说辩手名单
剑齿虎简笔画
时间复杂度
时间复杂度即模型的运算次数。
老年人手抖是什么原因单个卷积层的时间复杂度:Time~O(M^2 * K^2 * Cin * Cout)
注1:为了简化表达式中的变量个数,这⾥统⼀假设输⼊和卷积核的形状都是正⽅形。
注2:严格来讲每层应该还包含1个Bias参数,这⾥为了简洁就省略了。
M:输出特征图(Feature Map)的尺⼨。
K:卷积核(Kernel)的尺⼨。
Cin:输⼊通道数。
Cout:输出通道数。
输出特征图尺⼨⼜由输⼊尺⼨X、卷积核尺⼨K、Padding、 Stride 这四个参数所决定,表⽰如下:
M=(X - K + 2*Padding) / Stride + 1
空间复杂度
空间复杂度即模型的参数数量,体现为模型本⾝的体积。
wps简历模板Space~O(K^2 * Cin * Cout)
- 空间复杂度只与卷积核的尺⼨K、通道数C相关。⽽与输⼊图⽚尺⼨⽆关。
- 当我们需要裁剪模型时,由于卷积核的尺⼨通常已经很⼩,⽽⽹络的深度⼜与模型的能⼒紧密相关,不宜过多削减,因此模型裁剪通常最先下⼿的地⽅就是通道数。
复杂度优化(以Inception系列为例)懂事的孩子
InceptionV1(1*1卷积对通道数降维)
InceptionV1借鉴了Network in Network的思想,在⼀个Inception Module中构造了四个并⾏的不同尺⼨的卷积/池化模块(上图左),有效的提升了⽹络的宽度。但是这么做也造成了⽹络的时间和空间复杂度的激增。对策就是添加 1*1 卷积(上图右红⾊模块)将输⼊通道数先降到⼀个较低的值,再进⾏真正的卷积。
使⽤ 1*1 卷积降维可以降低时间复杂度3倍以上。
另外在空间复杂度上,虽然降维引⼊了三组 1*1 卷积核的参数,但新增参数量仅占整体的 5%,影响并不⼤。
InceptionV1(使⽤GAP代替 Flatten)
全连接层可以视为⼀种特殊的卷积层,其卷积核尺⼨K与输⼊图尺⼨X⼀模⼀样。每个卷积核的输出特征图是⼀个标量点,即M=1。复杂度分析如下:
Time~O(1^2 * X^2 * Cin * Cout)
Space~O(X^2 * Cin * Cout)
可见,与真正的卷积层不同,全连接层的空间复杂度与输⼊数据的尺⼨密切相关。因此如果输⼊图像尺⼨越⼤,模型的体积也就会越⼤,这显然是不可接受的。例如早期的VGG系列模型,其 90% 的参数都耗费在全连接层上。
InceptionV1中使⽤的全局最⼤池化GAP改善了这个问题。由于每个卷积核输出的特征图在经过全局最⼤池化后都会直接精炼成⼀个标量点,因此全连接层的复杂度不再与输⼊图像尺⼨有关,运算量和参数数量都得以⼤规模削减。复杂度分析如下:
Time~O(Cin * Cout)
Space~O(Cin * Cout)
InceptionV2(使⽤两个3*3卷积核级联代替5*5卷积分⽀)
- 根据上⾯提到的⼆维卷积输⼊输出尺⼨关系公式,可知:对于同⼀个输⼊尺⼨,单个 5*5 卷积的输出与两个 3*3 卷积级联输出的尺⼨完全⼀样,即感受野相同。
- 同样根据上⾯提到的复杂度分析公式,可知:这种替换能够⾮常有效的降低时间和空间复杂度。我们可以把⾟⾟苦苦省出来的这些复杂度⽤来提升模型的深度和宽度,使得我们的模型能够在复杂度不变的前提下,具有更⼤的容量。
InceptionV3(使⽤N*1与1*N代替N*N卷积)
- InceptionV3 中提出了卷积的因式分解(Factorization),在确保感受野不变的前提下进⼀步简化。
Xception()
- 我们之前讨论的都是标准卷积运算,每个卷积核都对输⼊的所有通道进⾏卷积。
-
Xception 模型挑战了这个思维定势,它让每个卷积核只负责输⼊的某⼀个通道,这就是所谓的 Depth-wi Separable Convolution。 - 从输⼊通道的视⾓看,标准卷积中每个输⼊通道都会被所有卷积核蹂躏⼀遍,⽽ Xception 中每个输⼊通道只会被对应的⼀个卷积核扫描,降低了模型的冗余度。
- 标准卷积与可分离卷积的时间复杂度对⽐:可以看到本质上是把连乘转化成为相加。
上海交通大学分数线总结
通过上⾯的推导和经典模型的案例分析,我们可以清楚的看到其实很多创新点都是围绕模型复杂度的优化展开的,其基本逻辑就是乘变加。模型的优化换来了更少的运算次数和更少的参数数量,⼀⽅⾯促使我们能够构建更轻更快的模型(例如MobileNet),⼀⽅⾯促使我们能够构建更深更宽的⽹络(例如Xception),提升模型的容量。

本文发布于:2023-06-17 08:30:24,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/974196.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   卷积   复杂度   参数   时间   数量   空间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图