全连接层
BP(back propagation)算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。
**误差值:**将输出值和所期望的值进行对比,可以得到误差值。
实例:利用BP神经网络做车牌数字识别
读入一张彩色的RGB图像,可以看到每一个像素里都包含了三个值,即RGB分量。
首先进行灰度化,灰度化之后得到中间这幅图,它的每一个像素值都只有一个分量了。
再进行二值化处理,得到黑白图像,也就是最右边的这个图像。
用一个五行三列的滑动窗口 对整个图像进行滑动,每滑动一个地方就计算白色的像素占整个像素的比例。按照这个方法遍历整个图像就得到了一个5×5的矩阵。
接着我们将5×5的矩阵按行进行展开,并把它拼接成一个行向量。一行一行的展开后得到一个一行25列的行向量。这样我们可以把这个行向量当成我们输入神经网络的输入层。
有了输入层后,我们来看下我们的**输出层。**one-hot编码是我们常用的对标签进行编码的一种方式。比如说如图我们期望他们输出的是0到9这么十个数值。
onehot好像是除了目标其余全部写0,比如一行10个位置,分别代表0-9,如果推测目标是8,那么就在第九个空位写1,其余九个空位全部写0。
我们有了输入和期望的输出,就能对网络进行训练了。
卷积层
卷积特性
- 拥有局部感知机制
- 权值共享
对比普通的BP神经网络(理解全连接层的全值共享)
参数
连接层之间的权重参数
输入特征矩阵
- 卷积核的channel与输入特征层的channel相同
- 输出的特征矩阵channel与卷积核个数相同
激活函数
为什么要引入激活函数
引入非线性因素,使其具备解决非线性问题的能力。
建议
训练过程当中,建议不要一开始就使用特别大的学习率进行学习,这样很可能导致很多神经元失活。
几个因素决定卷积后的尺寸
池化层
和卷积层比较类似,但是和卷积层比起来会简单很多。
poolsize:池化核大小
stride:步距大小