关于CNN中激活函数对计算时间的影响

时间:2018-04-15 10:21:46

标签: machine-learning neural-network deep-learning conv-neural-network activation-function

目前我正在阅读以下论文:&#34; SqueezeNet:AlexNet级精度,参数减少50 x,型号尺寸<0.5 MB&#34;

在4.2.3(激活功能层)中,有以下语句:

  

激活功能的后果几乎完全如此   受限于训练阶段,对训练阶段影响不大   推理过程中的计算要求。

我理解激活功能的影响如下。 在卷积运算处理之后,将激活函数(ReLU等)应用于特征映射的每个单元。我认为此时的处理与训练模式和推理模式中的处理相同。为什么我们可以说它对培训有很大影响,对推理影响不大?

有人可以解释一下。

1 个答案:

答案 0 :(得分:0)

  

我认为此时的处理与训练模式和推理模式中的处理相同。

你是对的,激活功能的处理时间是一样的。 但培训时间测试时间之间仍存在很大差异:

  • 训练时间涉及对多个时期应用前向传递,其中每个时期通常由整个训练数据集组成。即使对于小型数据集,例如MNIST(由60000个训练图像组成),这也占据了数万个调用。确切的运行时间影响取决于许多因素,例如: GPU允许并行进行大量计算。但无论如何,它通常比测试时的调用次数大几个数量级,而通常只需要处理一个批次一次。

  • 除此之外,你不应该忘记向后传递,其中激活的衍生物也适用于相同数量的历元。对于某些激活,衍生物可能明显更昂贵,例如elu vs reluelu有可学习的参数需要更新)。

最后,你可能会在推理时间忽略5%的减速,因为无论如何神经网络的推断它都非常快。但您可能会关心架构的额外几分钟到几小时的培训,特别是如果您需要对多个模型进行交叉验证或超参数调整。