0


手写数字识别-基于卷积神经网络

🌞欢迎来到机器学习的世界
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

🌟本文由卿云阁原创!

🌠本阶段属于练气阶段,希望各位仙友顺利完成突破

📆首发时间:🌹2021年6月5日🌹

✉️希望可以和大家一起完成进阶之路!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!

2022年 6月27日 天气小雨


🍈 一、必备知识

(1)手写数字

** 机器识图的过程:机器识别图像并不是一下子将一个复杂的图片完整识别出来,而是将一个完整的图片分割成许多个小部分,把每个小部分里具有的特征提取出来(也就是识别每个小部分),再将这些小部分具有的特征汇总到一起,就可以完成机器识别图像的过程了。**

(2)手写识别数据集

  MNIST包含70000张手写数字图像:60000张用于训练;10000张用于测试。 28x28像素的灰度图。

(3)数字的表示(28*28)

在灰色图中会把每一个像素用(0-255之间的数字表示,越接近白色,数字越接近255)

一张图像数据有一个东西叫做颜色通道,比如常见的jpg格式的图像,就三颜色通道(RGB红色、绿色、蓝色)一张有颜色的图像由一个三维数组表示。

(4)矩阵变换

数据集一共60000张,相当于60000张28*28的纸片摞起来。

因为有些函数只能处理二维数据,所以我们要想办法把数据降到二维。

数据集相当于

(60000, 784)的一个矩阵

(5)归一化

 经过归一化处理后,每张图片由1*784的矩阵组成,矩阵中的每一个元素由(0-1)的数字组成。 

(6)标签的表示

把标签用一个一维数组表示。

5

array([0, 0, 0, 0, 0, 1, 0, 0, 0, 0], dtype=uint8)


🍉二. 神经网络

基本介绍

在这里,我们可以把加权看成是树突的作用,把阈值和激活函数看成是细胞核的处理。

得分函数

假设有四个像素点,每一个像素对应一个权重,因为各个点的影响程度不同。

激活函数和损失函数(不同的任务需要不同的损失函数)

神经网络回顾(Neural Network)

一个简单的神经网络模型由三个部分组成,输入层,隐藏层,输出层。

前向传播 Forward propagation

  每个神经元都 对它的输入和权重相乘再相加,然后加上偏置,最后使 用非线性激活函数,重复此 过程,直至传 递到输出层, 得出预测概率。

在这里,我们可以把加权看成是
树突的作用,把阈值和激活函数看成是
细胞核的处理。

输入层表示输入图像(64 维向量)本身。如果将各个点的像素值存储在长度为 64 的一维数组的元 素中,则可以将其视为 64 维数据来处理。下面通过神经网络来学习使用上述方法得到的 64 维数据。

中间层使用 Sigmoid 等非线性函数计算输入层传来的数据。中间层的维度是超参数。使维度变 大可以学习更加复杂的边界,但是容易发生过拟合。本次设置中间层为 16 维。下面的“算法说明” 部分将再次介绍中间层的计算方法、中间层的维度和学习结果的关系。

输出层也同样使用非线性函数计算中间层传来的数据。本次任务是对 0 ~ 9 这 10 个数字进行 分类。因此,输出层输出的是输入手写图像分别为 0 ~ 9 这 10 个数字的概率。

**反向传播 Back propagation **

训练过程:找到使得损失函数最小的权重。

梯度下降:求得每个参数相对于损失函数的偏导,

用偏导数乘以学习率得到需要改变的量,用原权 重减去改变的量,得到新的权重。

再进行正向传播,计算新的损失值,重复此过程

使得损失函数为零或在设定的范围,完成训练。

损失函数loss

a是预测值,y是样本标签值

目的是让损失函数越小越好,我们的目的是找到loss的最小值,loss的值与(w,b)组成,其中,我们用\Theta表示(w,b),loss是关于其的一个函数。

损失函数图像


🍊三、卷积神经网络的介绍

网络结构

卷积神经网络识别图像

  1. 卷积层初步提取特征
  2. 池化层提取主要特征
  3. 全连接层将各部分特征汇总
  4. 产生分类器,进行预测识别

通过CNN来区别两类。

要求我们要区分一些不标准的图片,所以我们要提取特点。

把这些特征提取出来作为卷积核(实际上的卷积核需要计算机不断的寻找)

卷积的过程

11,-1-1,等依次计算,填满该矩阵,填满之后加起来然后除于9的得到一个值,即为选定局域得到的中心值的结果。

得到了7*7像素的特征图 ,(该卷积核作用于该图片上的卷积结果)

特征图上,保留了原始图像的特征,在特征图上体现卷积核的特征位置的点越接近于1.

对提取出来的三个特征的卷积核,与图像卷积,得到三个特征图。

池化的过程

以四个为一组做最大的池化,依次移动方格,得到三张减参特征图

得到三张4*4的减参特征图

激活函数

在这里我们使用relu激活函数(0,和本身)提高运算效率,便于进行非线性运算,

通过对卷积,池化,激活,像搭积木一样的叠加,把99的原始图像变成3张22的特征图。

借助神经网络进行分类,首先把三张2*2的特征图展平,作为神经网络的的输入进行神经网络的计算。

步长是指卷积时,卷积核移动的方格的个数。加边的目的是为了捕捉到边缘的信息。

维度变换 (长宽的变换步长和加边规则是由,厚度是由卷积核的数量)

训练的目的是为了的到卷积核的内容和偏置项。

如果图片是彩色的,用三维数组表示。


本文转载自: https://blog.csdn.net/zzqingyun/article/details/125136909
版权归原作者 卿云阁 所有, 如有侵权,请联系我们删除。

“手写数字识别-基于卷积神经网络”的评论:

还没有评论