神经网络复杂度分析

参考:https://zhuanlan.zhihu.com/p/31575074

对于改善模型的复杂度也算是神经网络的一个创新点。

1、复杂度分析:模型本身的复杂度分析,计算平台上的理论计算性能。

2、时间复杂度:模型的运算次数,用FLOPs(浮点运算次数)衡量。

        单个卷积层的参数量:

                卷积核的宽和高相乘,乘以原始图像的深度,乘以卷积核的个数。

        单个卷积层的时间复杂度:

                卷积核的边长的平方*卷积核输出的特征图边长*输入通道数*输出通道数

输出特征图的尺寸:(输入特征图的尺寸-卷积核的大小+2padding)/s;

        卷积神经网络整体的时间复杂度:

                层内相乘,层间相加。

3、空间复杂度:总参数量+各层输出特征图(指输入单个样本,模型完成一次前向传播过程所发生的内存交换总量)

       参数量:模型所带参数的层的所有权重参数总量。(模型体积),只计算权重

        各层输出特征图:实时运算过程中,每层计算出的特征图的大小。

4、时间复杂度决定模型的训练和预测时间。

                如果复杂度过高,会导致模型训练和预测耗费大量时间。

空间复杂度决定模型的参数数量。

                 由于维度灾难存在,所以模型的参数越多,训练所需要的数据量就越大,现实生活数据集通常不会很大,容易导致过拟合。

5、降低复杂度的方式:

        添加1x1的卷积层;

        利用2个3x3的卷积核代替一个5x5的卷积核;

        利用GAP(全局平均池化)代替flatten(全连接)。

你可能感兴趣的:(神经网络,神经网络)