作者:陆平
1. LeNet-5模型表达式
LeNet-5是卷积神经网络模型的早期代表,它由LeCun在1998年提出。该模型采用顺序结构,主要包括7层(2个卷积层、2个池化层和3个全连接层),卷积层和池化层交替排列。以mnist手写数字分类为例构建一个LeNet-5模型。每个手写数字图片样本的宽与高均为28像素,样本标签值是0~9,代表0至9十个数字。
图1. 单样本视角的LeNet-5模型原理
下面详细解析LeNet-5模型的正向传播过程。
(1)卷积层L1
单样本视角。L1层的输入数据形状大小为
,表示通道数量为1,行与列的大小都为28。输出数据形状大小为
,表示通道数量为6,行与列维都为24。
批量样本视角。设批量大小为m。L1层的输入数据形状大小为
,表示样本批量为m,通道数量为1,行与列的大小都为28。L1层的输出数据形状大小为
,表示样本批量为m,通道数量为6,行与列维都为24。
参数视角。L1层的权重形状大小
为,偏置项形状大小为6。
这里有两个问题很关键:一是,为什么通道数从1变成了6呢?原因是模型的卷积层L1设定了6个卷积核,每个卷积核都与输入数据发生运算,最终分别得到6组数据。二是,为什么行列大小从28变成了24呢?原因是每个卷积核的行维与列维都为5,卷积核(5×5)在输入数据(28×28)上移动,且每次移动步长为1,那么输出数据的行列大小分别为28-5+1=24。
(2)池化层L2
从单样本视角。L2层的输入数据大小要和L1层的输出数据大小保持一致。输入数据形状大小为
,表示通道数量为6,行与列的大小都为24。L2层的输出数据形状大小为
,表示通道数量为6,行与列维都为12。
从批量样本视角。设批量大小为m。L2层的输入数据形状大小为
,表示样本批量为m,通道数量为6,行与列的大小都为24。L2层的输出数据形状大小为
,表示样本批量为m,通道数量为6,行与列维都为12。为什么行列大小从24变成了12呢?原因是池化层中的过滤器形状大小为2×2,其在输入数据(24×24)上移动,且每次移动步长(跨距)为2,每次选择4个数(2×2)中最大值作为输出,那么输出数据的行列大小分别为24÷2=12。
(3)卷积层L3
单样本视角。L3层的输入数据形状大小为
,表示通道数量为6,行与列的大小都为12。L3层的输出数据形状大小为
,表示通道数量为16,行与列维都为8。
批量样本视角。设批量大小为m。L3层的输入数据形状大小为
,表示样本批量为m,通道数量为6,行与列的大小都为12。L3层的输出数据形状大小为