原文:https://blog.youkuaiyun.com/laolu1573/article/details/79196160
复杂度对模型的影响
- 时间复杂度决定了模型的训练/预测时间。如果复杂度过高,会导致模型训练和预测耗费大量时间,既无法快速的验证想法和改善模型,也无法做到快速的预测。
- 空间复杂度决定了模型的参数数量。由于维度灾难的限制,模型的参数越多,训练模型所需的数据量就越大,而现实生活中的数据集通常不会太大,这会导致模型的训练更容易过拟合。
时间复杂度
时间复杂度即模型的运算次数。
单个卷积层的时间复杂度: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
空间复杂度
空间复杂度即模型的参数数量,体现为模型本身的提及。
Space~O(K^2 * Cin * Cout)
-空间复杂度只与卷积核的尺寸K、通道数C相关。而与输入图片尺寸无关。
-当我们需要裁剪模型时,由于卷积核的尺寸通常已经很小,而网络的深度又与模型的能力紧密相关,不宜过多削减,因此模型裁剪通常最先下手的地方就是通道数。