卷积神经网络中有很多执行不同功能的层结构,同时也有很多参数需要学习。其中池化层(包括空间金字塔池化层)、reshape层、softmax层是没有需要学习的参数的,下面我将会盘点CNN中的所有参数。
卷积层
卷积层是CNN的核心,其参数则是卷积核的权值以及各通道的偏置量。其中权值的梯度需要使用反卷积获得,偏置量的梯度则是对应通道的误差之和。
全连接层
全连接层的参数同样也是权值和偏置量。其中权值的梯度是上一层的输出和当前层误差转置的积,而各通道的偏置量则也是对应通道的误差。
BatchNorm层
BN层有一个scale和一个shift参数,也可以看作是权值和偏置量。计算方法相同,在此不再赘述。
激活层
一般的激活层没有参数,但如果激活函数是PReLU则不同了——它需要学习一个x < 0时的权值,方法也是上一层负的输出与对应的当前层误差的积之和。
CNN中的参数有:
- 可学习的参数:卷积层和全连接层的权重、bias、BatchNorm的 等。
- 不可学习的参数(超参数):学习率、batch size、weight decay、模型的深度宽度分辨率等。