数字识别的主要算法

数字识别的主要算法

ID:32426283

大小:166.57 KB

页数:7页

时间:2019-02-04

数字识别的主要算法_第1页
数字识别的主要算法_第2页
数字识别的主要算法_第3页
数字识别的主要算法_第4页
数字识别的主要算法_第5页
资源描述:

《数字识别的主要算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、BP神经网络识别手写数字1.图像的预处理对手写数字图像样本灰度化处理,二值化处理,归一化调整等预处理。其中二值化处理利用greythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。Ibw=im2bw(I1,greythresh(I1));--Ibw为二值化图像的存储矩阵。bw2=edu_imgcrop(Ibw);%找到图像边界[y2tempx2temp]=size(bw);x1=1;y1=1;x2=x2temp;y2=y2temp;%找左边空白cntB=1;while(sum(bw(:,cntB))==y2temp)x1=x1+1

2、;cntB=cntB+1;end%左边cntB=1;while(sum(bw(cntB,:))==x2temp)y1=y1+1;cntB=cntB+1;end%上边cntB=x2temp;while(sum(bw(:,cntB))==y2temp)x2=x2-1;cntB=cntB-1;end%下边cntB=y2temp;while(sum(bw(cntB,:))==x2temp)y2=y2-1;cntB=cntB-1;endbw2=imcrop(bw,[x1,y1,(x2-x1),(y2-y1)]);--对图像进行裁剪,使边框完全贴近字符。归一化处理将图片

3、归一化为28×28像素点阵图。2.特征提取将经过预处理的后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中的特征向量带入BP网络中就可以对网络进行训练。可以采用逐像素特征提取方法提取数字样本的特征向量。归一化后的图像形成一个的布尔矩阵,依次取每列的元素转化为784×1的列矩阵,及数字字符的特征向量。还可以对每幅单个手写体图像进行边缘裁剪后,将裁减后的二值图像转换成5*7即35维的特征向量,转换过程如下:bw_7050=imresize(bw2,[70,50]);forcnt=1:7forcnt2=1:5Atemp=sum(bw_7050(

4、((cnt*10-9):(cnt*10)),((cnt2*10-9):(cnt2*10))));%10*10boxlett((cnt-1)*5+cnt2)=sum(Atemp);endendlett=((100-lett)/100);lett=lett';3.BP神经网络BP神经网络是一个典型的多层神经网络,它包含了输入层,隐藏层和输出层,隐层可以有一层或多层,每层上的神经元称为节点或单元,它们由可修定的权值(w)互连,除了连接输入单元,每个单元还连接一个偏置(b)。3.1输入层神经元个数的确定将数字图像的特征向量作为神经网络的输入,所以神经网络的输入层神经

5、元个数等于特征向量的维数,即28×28=784个输入神经元。要识别10个数字,所以输出选择为10×1的矩阵,即输出节点数为10,输入为0时,第一个神经元为1,其他为0,;输入数字为1时,第二个神经元为1,其他为0;以此类推。3.2隐含层数和神经元个数的确定隐含层数越多,神经网络的学习速度越慢,所以选3层神经网络。隐含层神经元的个数是根据网络收敛性能的好坏来确定的,在总结大量网络结构的基础上,得到经验公式:s=,其中,n为输入层神经元个数,m为输出层神经元个数,可得隐含层神经元个数为15。3.3BP神经网络构造BP算法由两部分组成:信息的正向传递与误差的反向传

6、播。在正向传递中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反向修改各层神经元的权值直到达到期望目标。BP算法属于有监督的学习算法:根据训练样本和期望输出设置合适的权值,不断调整网络连接的权值,使误差达到实际的要求。网络结构初始化:(784,15,10),innum=784,midnum=15,outnum=10;权值初始化:w1=rands(midnum,innum);·····输入层到隐含层b1=ran

7、ds(midnum,1);W2=rands(midnum,outnum);·······隐含层到输出层b2=rands(outnum,1);输出函数:网络预测输出:y(x)=input_train(:,i)隐含层输出:y’=输出层的输出:梯度下降算法反向传播学习规则是基于梯度下降算法的,梯度下降算法是利用梯度下降的方向迭代寻找目标函数的参数的最优值,就是向着减少误差的方向调整。学习效率为。损失函数:求偏导:梯度向量:所以,主要的matlab代码:Innum=785;Midnum=15;Outnum=10;w1=rands(midnum,innum);b1=r

8、ands(midnum,1);W2=rands(mi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。