现在常见的卷积神经网络中卷积核的大小很大程度影响着整个神经网络的参数量。现就这个问题给出一种优化办法,具体数学推导过程如下:
说卷积神经网络卷积核的优化之前先简单的介绍一下卷积核的运算过程:
设一张图片的像素x*x,卷积核是k*k,步长为s
那么经过一层卷积网络后得到图像的像素为,一个7*7的图像经过一个7*7的卷积核提取后的就变成一个1*1像素的图片。那么训练这个模型需要更新49个参数。 当变成3*3的卷积核经过3层,优化的便是27个参数。
本文将给出具体的推到过程怎么从已知的较大的卷积核转换成较小的卷积核,不涉及padding项的计算。
介绍之前先给出几个参数的意义:大卷积核为x*x,卷积核是k*k,步长为s
先介绍由一层大卷积核变成两层卷积的小卷积核的推导过程:
一层大卷积核变成三层卷积的小卷积核的推导过程
一层大卷积核变成四层卷积的小卷积核的推导过程
由上面的推导不难发现当一个大卷积核想换成多层小卷积核是有规律可循的即:
这个公式出现新参数n代表的是大卷积核转换成小卷积后,为达到和大卷积核一样的结果小卷积核需要的层数。
假如大卷积核是7*7步长为1的,可以换成3层3*3步长为1的小卷积核。
本人不是专门做计算机算法的,只是最近看了一下计算机视觉的东西,突然看到这个地方,但是详细讲解的却没有,自己无聊就推导了。希望能给做计算机视觉的朋友一点点帮助。如果有什么不对的地方希望大佬留言指正。