首先,我们我们知道深度学习中网络的计算量代表时间复杂度,参数量代表空间复杂度。

从ResNet的论文中可知(ResNet论文可在这个文章中的第六部分找到)152层的残差网络在时间复杂度上和VGG16是一样大的。

接下来我们先对VGG16的计算量(时间复杂度)和参数量(空间复杂度)都进行估算。(VGG网络的相关知识可以在这篇文章中了解)

我们以VGG16的第一层卷积为例:

输入图像224 * 224 * 3,输出224 * 224 * 64,卷积核大小为3 * 3.

计算量: Times = 224 * 224 * 3 * 3 * 64=8.7 * 10^7

参数量: Space = 3 * 3 * 3 * 64=1728

我们再对最后一层卷积进行计算:

输入 14 * 14 * 512,输出 14 * 14 * 512,卷积核大小为3 * 3

计算量: Times = 14 * 14 * 3 * 3 * 512 * 512 = 4.6 * 10^8

参数量: Space = 3 * 3 * 512 * 512 = 2.4 * 10^6

我最后对最后一层全连接层进行计算:

全连接层可以看成是一种特殊的卷积层,上层为1 * 1 * 4096,下层为 1 * 1 * 1000,使用的是1 * 1的卷积核进行卷积。

计算量: Times = 1 * 1 * 1 * 1 * 4096 * 1000 = 4 * 10^6

参数量: Space = 1 * 1 * 4096 * 1000 = 4 * 10^6

VGG16网络总结:

卷积层的时间复杂度大致是在同一数量级的。

随着网络深度的加深,卷积层的空间复杂度快速上升(每层的空间复杂度是上一层的两倍)。

全连接层的空间复杂度比卷积层的最后一层还大。

说了以上的内容,我们回过头来再看问题:VGG16核ResNet152哪个参数量更多?

应该是VGG16参数量更多,因为ResNet152是用了Bottleneck Design结构,这个结构有两个1 * 1 和一个3 * 3的卷积组成,大大缩减了参数量。(关于Bottleneck可以参考这篇文章的第一部分)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐