卷积神经网络模型复杂度分析

Posted 弓早早o_O

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络模型复杂度分析相关的知识,希望对你有一定的参考价值。

卷积神经网络

卷积神经网络拓扑结构

输入层——>特征提取层——>分类层
特征提取层:卷积层+池化层,可以重复很多次。
分类层:全连接层,隐含层可以有多个。

更细节的拓扑结构:

卷积神经网络传播过程中参数的影响

要思考的问题是,从搭建网络开始,有哪些超参数是需要人为设定的,又是怎么具体影响模型的复杂度的?

卷积层的层数

如果只看卷积层,随着其层数的增加,模型的复杂度也会增加;

池化层的层数

池化层在搭建网络的过程中起到的作用是降低特征图的维度,是用来降低模型的复杂度的。所以,随着池化层层数的增加,模型的复杂度会降低;

全连接层的层数

全连接层有输入层、隐含层、输出层,随着隐含层层数的增加,模型的复杂度会增加;

卷积核的通道数(chanel)

第一,随着chanel的增加,卷积核本身的参数量会增加;
第二,如果当前卷积层的chanel增加,假设后面还有卷积层,那么它的后一个卷积层每一个卷积核的尺寸都会增加;如果当前卷积层是最后一个卷积层,后面连全连接层,那么随着chanel的增加,全连接层的参数量也会增加。
第三,随着当前卷积层的chanel增加,其输出的特征图维度也会增加。

步长

在卷积神经网络传播的过程中,有两个地方提到了步长,一个是卷积运算,一个是池化运算。

以卷积运算为例,如果步长变大,直接导致的就是特征图Feature map的维度变低。但在实际运算中,并不是步长越大越好,如果步长过大,会导致丢失原始图像的特征太多。那么我们选择步长时应该遵循一个“不重不漏”的原则。可以思考一下,选择步长的上限在哪里?其实就是卷积核的尺寸,这样子卷积核扫射的时候是一个紧贴着一个。一般来说,我们选择的步长应该小于等于卷积核尺寸的一半。

池化运算与卷积运算相类似,在这里就不过多解释了。

以上是关于卷积神经网络模型复杂度分析的主要内容,如果未能解决你的问题,请参考以下文章

深度学习深度学习基础知识

深度学习之 TensorFlow:卷积神经网络

《卷积神经网络的Python实现》PDF代码+《解析深度学习卷积神经网络原理与视觉实践》PDF分析

CNN原理

R语言实现CNN(卷积神经网络)模型进行回归数据分析

几种经典的卷积神经网络模型(必须收藏)