卷积神经网络 (convolutional neural network,CNN)
包含卷积层的网络都可以认为是卷积神经网络
卷积神经网络的过程
卷积神经网络的应用场景
Classification(图像分类)
Retrieval(图像检索)
Detection(目标检测)
Segmentation(图像分割)
self-driving cars(自动驾驶)
Image Captioning(图像描述)
Transfer learning(图像风格迁移)
全连接层
全连接层 :由大量神经元连接而成(模仿人类神经元得到)
BP神经网络
将输出值和期望的输出值作比较即可得到误差值,对每个节点求其偏导数即可得到每个误差梯度。
车牌识别实例
一、图像预处理
读取的RGB图像中每个像素中都包含三个分量表示(R,G,B)对应数值,进行灰度化后图像中将只包含一个分量,在进行二进制化将得到第三幅二进制黑白图像(0:表示黑色,255:表示白色)。
滑块遍历图像
采用五行三列的窗口(滑块)在二进制图像上滑动,每滑动一次就计算一次白色像素的占比,并进行记录,按此方法遍历真个图像。
若滑块越界:
1.在右侧不上一列或一行0;
2.提前检测若会发生越界则改变滑块大小;
按行列展开
将此行向量作为神经网络的输入层
有了输入层,需要有期望的输出层;
one-hot是其中一种编码方式,得到每个数值的one-hot编码。
二十五个输入,十个输出,隐藏层个数可以自行定义;
卷积层
CNN(卷积神经网络),一个卷积核(有初始值),在image上滑动,步距为1(每次滑动距离为1);将对应位置的值与卷积核的值相乘再相加并记录,即为卷积特征;
局部感知机制:即卷积核在整个图像中滑动因此具有局部感知特性。
普通BP神经网络和卷积神经网络的对比;
权值共享:可以使得所需参数大幅降低
当输入为RGB彩色图片时则有三个颜色分量,每个卷积核的深度与颜色分量相同(一个卷积核即一层卷积层),把卷积核每个维度与图片颜色分量矩阵进行滑动相乘再相加(如:卷积核1中三个维度第一次对应位置相乘再相加的总和为1),得到各个输出矩阵,将所有输出矩阵进行拼接得到输出特征矩阵(实例中输出矩阵层数为2)。
积核的深度(通道)与输入特征层的深度(通道)一致(即输入特征矩阵的层数决定卷积核的层数,卷积核的个数不一定);
卷积输出的特征矩阵深度(通道)与卷积核的个数保持一致(即卷积核个数决定输出矩阵的层数)
加偏移量bias(偏置)即在各个输出矩阵的各个位置上加偏移量;
激活函数
为解决非线性问题因此引入激活函数
Sigmod激活函数当数值很大或只接近零时梯度无线接近于0,且求导较为复杂;
Relu激活函数目前使用较多,求导简单,反向传播时一个交大的梯度经过会导致偏导后权重分布中心小于零,导致该处导数始终为0,反向传播进入失活状态。在训练过程中建议不要一开始使用大学习率进行学习。
越界
越界padding处理方法,在后面进行补0操作。
卷积后的尺寸
N=(W-F+2p)/S+1
池化层(下采样层)
最大下采样层:取每步中的最大值
评价下采样:取每步中的平均值
池化层和卷积层的区别
- 没有训练参数;
- 只改变特征矩阵的大小(W,H),不改变层数(channel);
- 一般池化大小和步距相同;(一般为2则特征矩阵变为原来一半大小);
有错误希望大家指正!