1.感知机神经网络
我们要用计算机模仿神经网络连接关系,让计算机具备感性思维。
首先,需要准备数据,数据量越大越好,要构成特征和标签对。如要识别猫, 就要有大量猫的图片和这个图片是猫的标签,构成特征标签对。
随后,搭建神经网络的网络结构,并通过反向传播,优化连线的权重,直到模型的识别准确率达到要求,得到最优的连线权重,把这个模型保存起来。
最后,用保存的模型,输入从未见过的新数据,它会通过前向传播,输出概率值,概率值最大的一个,就是分类或预测的结果。图 1 展示了搭建与使用神经网络模型的流程。
图 1 搭建与使用神经网络示意图
1.1 网络搭建与正、反向传播
我们搭建包含输入层与输出层的神经网络模型,通过对输入值乘权值,并于偏置值求和的方式得到输出值,图示如下。
图 2 神经网络简要模型
由图 2 可知输出 y = x ∗w+ b ,即所有的输入 x 乘以各自线上的权重 w 求和加上偏置项b得到输出y 。搭建好基本网络后,需要输入特征数据,并对线上权重 w 与偏置b 进行初始化。 w,b 初始化矩阵,最初的参数 w 和b 可以是自己设置的数字,也是随机产生的,现在输出的结果是蒙的。 为了修正这一结果,我们用损失函数,定义预测值 y 和标准答案(标签) _ y 的 差距,损失函数可以定量的判断当前这组参数 w 和b 的优劣,当损失函数最小时,即可得到最优w的值和b的值。
损失函数的定义有多种方法,均方误差就是一种常用的损失函数,它计算每个前向传播输出 y 和标准答案 _ y的差求平方再求和再除以 n 求平均值,表征了网络前向传播推理结果和标准答案之间的差距。
通过上述对损失函数的介绍,其目的是寻找一组参数 w 和b 使得损失函数最小。为达成这一目的,我们采用梯度下降的方法。损失函数的梯度表示损失函数 对各参数求偏导后的向量,损失函数梯度下降的方向,就是是损失函数减小的方向。梯度下降法即沿着损失函数梯度下降的方向,寻找损失函数的最小值,从而得到最优的参数。梯度下降法涉及的公式如下:
w t+1= w t
bt+1 = bt−lr∂loss/∂bt
wt+1·x+b= bt+1 → y
上式中,lr 表示学习率,是一个超参数,表征梯度下降的速度。如学习率设置 过小,参数更新会很慢,如果学习率设置过大,参数更新可能会跳过最小值。 上述梯度下降更新的过程为反向传播,下面通过例子感受反向传播。利用如 下公式对参数 w 进行更新。
wt+1 = wt −lr∂loss/∂wt
设损失函数为(w+1)2,则其对w的偏导数为2w+2。设w在初始化时被随机初始化为 5,学习率设置为 0.2。则我们可按上述公式对w进行更新:第一次参数为 5,按上式计算即5−0.2×(2×5+ 2) =2.6。同理第二次计算得到参数为 1.16,第三次计算得到参数为 0.296…… 画出损失函数(w+1)2的图像,可知w =-1时损失函数最小,我们反向传播优化参数的目的即为找到这个使损失函数最小的w =-1值。
2.LeNet卷积神经网络
卷积神经网络结构上的三大特性:
1.局部连接 2.权重共享 3.下采样 ,都是为了减少网络参数,加快训练速度 。
图 3 CNN简要模型
LeNet-5是Yann LeCun等人在多次研究后提出的最终卷积神经网络结构,一般LeNet即指代LeNet-5。LeNet-5包含七层,不包括输入,每一层都包含可训练参数(权重),当时使用的输入数据是3232像素的图像。下面逐层介绍LeNet-5的结构,并且,卷积层将用Cx表示,子采样层则被标记为Sx,完全连接层被标记为Fx,其中x是层索引。
层C1是具有六个5×5的卷积核的卷积层(convolution),特征映射的大小为28×28,这样可以防止输入图像的信息掉出卷积核边界。C1包含156个可训练参数和122304个连接。
层S2是输出6个大小为14×14的特征图的子采样层(subsampling/pooling)。每个特征地图中的每个单元连接到C1中的对应特征地图中的2×2个邻域。S2中单位的四个输入相加,然后乘以可训练系数(权重),然后加到可训练偏差(bias)。结果通过S形函数传递。由于2×2个感受域不重叠,因此S2中的特征图只有C1中的特征图的一半行数和列数。S2层有12个可训练参数和5880个连接。
层C3是具有16个5×5的卷积核的卷积层。前六个C3特征图的输入是S2中的三个特征图的每个连续子集,接下来的六个特征图的输入则来自四个连续子集的输入,接下来的三个特征图的输入来自不连续的四个子集。最后,最后一个特征图的输入来自S2所有特征图。C3层有1516个可训练参数和156 000个连接。
层S4是与S2类似,大小为2×2,输出为16个55的特征图。S4层有32个可训练参数和2000个连接。
层C5是具有120个大小为5×5的卷积核的卷积层。每个单元连接到S4的所有16个特征图上的5×5邻域。这里,因为S4的特征图大小也是5×5,所以C5的输出大小是1×1。因此S4和C5之间是完全连接的。C5被标记为卷积层,而不是完全连接的层,是因为如果LeNet-5输入变得更大而其结构保持不变,则其输出大小会大于1×1,即不是完全连接的层了。C5层有48120个可训练连接。
F6层完全连接到C5,输出84张特征图。它有10164个可训练参数。这里84与输出层的设计有关。
图 4 LeNet论文中模型图解
卷积5×5的卷积核(主要效果提取特征信息) 压缩效果 6个通道(水平 垂直 边 角等)全连接层120个节点。
注:(飞桨笔记)