池化层对神经网络的运算速度有什么影响
虽然加入池化层是为了使网络获得抗扭曲,抗拉伸的特性并不完全是为了计算效率考虑,但加入池化层到底对计算速度有什么影响?这里设计了两个网络做对比,
其中一个是有2个卷积层,2层全连接层的神经网络,另一个是2层卷积层,2层池化层,2层全连接层的神经网络。两个网络都是输入的28*28的图片,收敛条件一样,通过计算迭代次数比较两个网络的效率。
为了方便描述将网络的各层称作 n1*n2*n3*n4 ,比如288*120*80*10 ,n1指288,n4指10.需要经过12851次迭代才能收敛。
可以看到无论是否有池化层,当n3=100,随着n2的增加性能变化不大,当n3=300,随着n2的增加有变慢的趋势,当n3=200时随着n2的增加,性能明显大幅提升。
并且无论是否增加池化层两个网络最优的参数配置都是200*200*10 ,500*200*10,600*200*10.
所以分别对这3个参数做了对比,每个参数都运行了10次,
可以看到没有加池化层的网络最优的参数是600*200*10 共测试10次平均迭代次数2224,有池化层的最优参数是200*200*10,平均只需要1691次迭代就可以收敛。比无池化的网络的最优参数600*200*10的性能提到了23%。如果对比同参数的无池化的200*200*10的2436,则性能提升超过30%。
可见池化层不仅可以使网络获得抗扭曲,抗拉伸的特性,并且对提高收敛速度也有帮助,并且可以改变网络的最佳参数的位置。