基于bp神经网络的数字识别的Matlab实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
'
( k 1 )
对于sigmoid函数:
1 1 e
n
a f (n )
f (n )
'
e
n n 2
(1 e
a (1 a )
)
w
j
( t j a j ) a j (1 a j ) a
( k 1 )
Case 2:隐层权值修正
j
BP 算法
J n
3.2. BP神经网络
3.2.1. BP算法的多层感知器
图2 三层BP网
采用BP算法的多层感知器是至今为止应用最广泛的神经 网络,在多层感知器的应用中,一般习惯将单隐层感知器称 为三层感知器,所谓三层包括了输入层、隐层和输出层。
3.2.1. BP算法的多层感 知器
• 反向传播(Backpropagation)算法:从后向前 (反向)逐层“传播”输出层的误差,以间 接算出隐层误差。分两个阶段:
i
5. 计算并保存各权值修正量: w a w ( t 1) w ( t ) w 6. 修正权值: 7. 判断是否收敛,如果收敛则结束,不收敛 则转至Step 2
ij j i ij ij ij
3.2.2.BP算法过程
图3 BP学习算法的流程图
3.3BP神经网络设计与训练
J n
j
a
( k 1 )
Case 1: 输出层权值修正
局部 梯度
扩展delta 学习规则
BP 算法
j
J n
j
J a
j
a n
j j
(t j a j ) f (n j )
'
w
j
j a
( k 1 )
(t j a j ) f ( n j )a
2.图像预处理
• • • • (1)彩色图像的灰度化,图像输入后一般都是256色彩色图像,灰度化后灰度图像的 RGB值是相等的,灰度值为255的像素为白色,灰度值为0的像素为黑色。 (2)灰度图像的二值化,彩色图像灰度化后每像素只有一个值,即灰度值,二值化就 是根据一定标准将图像分成黑白二色。 (3)梯度锐化,梯度锐化同时对噪声也起一定的去除作用,采取Roberts算子对图像锐 化,可以让模糊的边缘变清楚,同时选用合适阈值可以减弱和消除细小的噪声。 (4)去离散噪声,扫描整个图像,当发现一个黑色像素就考察和它直接或间接相连的 黑色像素有多少,如果大于一定值(具体数值视情况定),就可以认为它非离散 点,否则就认为他是离散点,将其从图像中去掉。 (5)归一化调整, 先得到原来字符的高度,并与系统要求的高度比较,得出高度变换 系数,然后根据这个系数得到变换后应有的宽度,得出高度、宽度后,把新图像 里的点按照插值的方法映射到原图像。 图像输入 灰度转化 二值化 归一化 图1 图像处理流程 图像锐化 去除噪声
基于BP神经网络的数字识别
主要内容
• 1.课题研究背景 • 2 图像预处理 • 3 模式识别 • 4识别效果 • 5总结
1.课题研究背景
近年来,人工神经网络技术取得了巨大的发展,它所 具有的优势:固有的并行结构和并行处理、知识的分布存 储、容错性、自适应性、模式识别能力,为手写体数字识别 开辟了新的途径。 数字识别作为模式识别的一个重要分支,在邮政、税 务、交通、金融等行业的实践活动中有着及其广泛的应用。 数字识别作为模式识别领域的一个重要问题,也有 着重要的理论价值。一方面,阿拉伯数字是世界各国通用 的符号,因此,数字是一个重要枢纽。在符号识别领域, 数字识别为这一领域提供了一个算法研究的平台。另一方 面,数字的识别方法很容易推广到其它一些相关问题,特 别是对英文字母的识别,但到目前为止机器的识别本领还 无法与人的认知能力相比,这仍是一个有难度的开放问题。
1.1.数字识别的发展现状
模式识别 (Pattern Recognition)是对表征事物 或现象的各种形式的(数值的、文字的和逻辑 关系的)信息进行处理和分析,以对事物或现 象进行描述、辨认、分类和解释的过程。它是 信息科学和人工智能的重要组成部分。而数字 识别作为模式识别的一个分支。在日常生活和 科研中具有十分重要的作用。数字识别的算法 一般是采用以知识、神经网络、人工智能为基 础的模板匹配法、轮廓多边形相关、傅立叶系 数法等方法来进行识别的。以上方法识别效率 高,但是实现较为复杂。
3.2.2.BP算法过程
1. 初始值选择 W ( 0 ) 2. 前向计算,求出所有神经元的输出
j j j j
BP 算法
a (t )
j
k
( t a ) a (1 a 3. 对输出层计算δ 4. 反向计算:从后向前计算各隐层δ
j
)
a j (1 a j ) w ji i
•
3.模式识别
3.1.特征提取 经过预处理,把原来大小不同、分布不规律的 各字符变成大小一样、排列整齐的字符。下面要从 预处理完的字符中提取最能体现这一个字符的特征 向量,将提取出的训练样本中的特征向量代入BP网 络中就可以对BP网络进行训练。提取出待识别的样 本中特征向量代入训练好的BP网络中就可以进行识 别。在这里采取逐像素特征提取法,方法是对图像 进行逐行逐列扫描,当遇到黑色像素时,取其特征 值为1,当遇到白色像素时,取其特征值为0。这样 扫描结束后就形成一个维数与图像中像素点的个数 相同的特征向量矩阵。
(1)BP神经网络的设计方法 按照BP神经网络设计方法选用两层BP网络。采用newff函数来建 立BP网络。其输入节点数为16×16=256,隐层传输函数为 Sigmoid函数。假设用一个输出节点表示10个数字,则输出层传 输函数为pureline,隐层节点数为 ,取25。 (2)神经网络仿真程序设计 构造训练样本集,并构成训练所需的输入向量p和目标向量t. 通过画图工具获得数字。本例构造了新宋体12号、8号字体各10 个,黑体12号、8号各10个,及宋体加粗18号字体。 (3)神经网络测试。 由于图像处理的复杂性,对于不同噪声的污染选择不同的方 法,选择没有噪声的数字进行测试。选择训练样本中的任意数 据进行测试,结构非常正确。选择生成的新宋体8号大小的数字 进行测试。结果正确,选择其他类型的字体进行测试,则结果 不是完全正确。
梯度下降(gradient decent) 法
BP 算法
准则函数: sum squared error, SSE
1 2S
J sse
j
S
(t j a j )
2
1 2S
(t a) (t a)
T
权值修正: 梯度下降法
J w
j
w
j
J n
j
n w
j j
j
Байду номын сангаас
w
i ji
J ni ni
'
( k 1 )
a n
j j
a
后层的全部单元 都受nj的影响
j
i
i
f (n j )
nj
aj
( i w
i ' ji
ni
wji i
( k 1 )
w
j
j a
( k 1 )
f ( n j ) )a
δj
wji
δi
局部梯度的 反向传播
4.仿真实验识别效果
图4 数字0的识别效果
图5 数字4的识别效果
5.总结
本课题结合神经网络技术,对数字识别问题进行了 探讨和研究,主要研究成果如下:(1)针对数字数据,首 先进行了灰度化、二值化、平滑去噪、归一化、细化等 常规预处理,然后对处理完的数字图像进行特征提取, 提取了能体现字符特点的特征向量。(2)针对数字识别问 题,研究了BP神经网络分类器的建立和识别过程。 仿真结果表明,对于字体和字号与训练样本集相同 的测试样本,无论图像中的数字在什么位置,都可以识 别出来,而对于字体和字号与训练样本集不同的测试样 本,只有一部分能正确识别。并且对于带有噪声的数字, 运行程序的实验结果是不理想的,所以本课题程序有待 于进一步的整理和调试。为提高识别率,可以增加训练 样本,或通过增加字体的特征向量等途径来解决。
– 正向过程:从输入层经隐层逐层正向计算各单元 的输出。 – 反向过程:由输出层误差逐层反向计算隐层各单 元的误差,并用此误差修正当前层的权值。
正向过程
• 正向过程:
n
(k ) j
BP 算法
a
(k ) j
f (n
(k ) j
)
a
( k 1 ) i
w
(k ) j
a
( k 1 )
i
w
(k ) ij
( k 1 )
对于sigmoid函数:
1 1 e
n
a f (n )
f (n )
'
e
n n 2
(1 e
a (1 a )
)
w
j
( t j a j ) a j (1 a j ) a
( k 1 )
Case 2:隐层权值修正
j
BP 算法
J n
3.2. BP神经网络
3.2.1. BP算法的多层感知器
图2 三层BP网
采用BP算法的多层感知器是至今为止应用最广泛的神经 网络,在多层感知器的应用中,一般习惯将单隐层感知器称 为三层感知器,所谓三层包括了输入层、隐层和输出层。
3.2.1. BP算法的多层感 知器
• 反向传播(Backpropagation)算法:从后向前 (反向)逐层“传播”输出层的误差,以间 接算出隐层误差。分两个阶段:
i
5. 计算并保存各权值修正量: w a w ( t 1) w ( t ) w 6. 修正权值: 7. 判断是否收敛,如果收敛则结束,不收敛 则转至Step 2
ij j i ij ij ij
3.2.2.BP算法过程
图3 BP学习算法的流程图
3.3BP神经网络设计与训练
J n
j
a
( k 1 )
Case 1: 输出层权值修正
局部 梯度
扩展delta 学习规则
BP 算法
j
J n
j
J a
j
a n
j j
(t j a j ) f (n j )
'
w
j
j a
( k 1 )
(t j a j ) f ( n j )a
2.图像预处理
• • • • (1)彩色图像的灰度化,图像输入后一般都是256色彩色图像,灰度化后灰度图像的 RGB值是相等的,灰度值为255的像素为白色,灰度值为0的像素为黑色。 (2)灰度图像的二值化,彩色图像灰度化后每像素只有一个值,即灰度值,二值化就 是根据一定标准将图像分成黑白二色。 (3)梯度锐化,梯度锐化同时对噪声也起一定的去除作用,采取Roberts算子对图像锐 化,可以让模糊的边缘变清楚,同时选用合适阈值可以减弱和消除细小的噪声。 (4)去离散噪声,扫描整个图像,当发现一个黑色像素就考察和它直接或间接相连的 黑色像素有多少,如果大于一定值(具体数值视情况定),就可以认为它非离散 点,否则就认为他是离散点,将其从图像中去掉。 (5)归一化调整, 先得到原来字符的高度,并与系统要求的高度比较,得出高度变换 系数,然后根据这个系数得到变换后应有的宽度,得出高度、宽度后,把新图像 里的点按照插值的方法映射到原图像。 图像输入 灰度转化 二值化 归一化 图1 图像处理流程 图像锐化 去除噪声
基于BP神经网络的数字识别
主要内容
• 1.课题研究背景 • 2 图像预处理 • 3 模式识别 • 4识别效果 • 5总结
1.课题研究背景
近年来,人工神经网络技术取得了巨大的发展,它所 具有的优势:固有的并行结构和并行处理、知识的分布存 储、容错性、自适应性、模式识别能力,为手写体数字识别 开辟了新的途径。 数字识别作为模式识别的一个重要分支,在邮政、税 务、交通、金融等行业的实践活动中有着及其广泛的应用。 数字识别作为模式识别领域的一个重要问题,也有 着重要的理论价值。一方面,阿拉伯数字是世界各国通用 的符号,因此,数字是一个重要枢纽。在符号识别领域, 数字识别为这一领域提供了一个算法研究的平台。另一方 面,数字的识别方法很容易推广到其它一些相关问题,特 别是对英文字母的识别,但到目前为止机器的识别本领还 无法与人的认知能力相比,这仍是一个有难度的开放问题。
1.1.数字识别的发展现状
模式识别 (Pattern Recognition)是对表征事物 或现象的各种形式的(数值的、文字的和逻辑 关系的)信息进行处理和分析,以对事物或现 象进行描述、辨认、分类和解释的过程。它是 信息科学和人工智能的重要组成部分。而数字 识别作为模式识别的一个分支。在日常生活和 科研中具有十分重要的作用。数字识别的算法 一般是采用以知识、神经网络、人工智能为基 础的模板匹配法、轮廓多边形相关、傅立叶系 数法等方法来进行识别的。以上方法识别效率 高,但是实现较为复杂。
3.2.2.BP算法过程
1. 初始值选择 W ( 0 ) 2. 前向计算,求出所有神经元的输出
j j j j
BP 算法
a (t )
j
k
( t a ) a (1 a 3. 对输出层计算δ 4. 反向计算:从后向前计算各隐层δ
j
)
a j (1 a j ) w ji i
•
3.模式识别
3.1.特征提取 经过预处理,把原来大小不同、分布不规律的 各字符变成大小一样、排列整齐的字符。下面要从 预处理完的字符中提取最能体现这一个字符的特征 向量,将提取出的训练样本中的特征向量代入BP网 络中就可以对BP网络进行训练。提取出待识别的样 本中特征向量代入训练好的BP网络中就可以进行识 别。在这里采取逐像素特征提取法,方法是对图像 进行逐行逐列扫描,当遇到黑色像素时,取其特征 值为1,当遇到白色像素时,取其特征值为0。这样 扫描结束后就形成一个维数与图像中像素点的个数 相同的特征向量矩阵。
(1)BP神经网络的设计方法 按照BP神经网络设计方法选用两层BP网络。采用newff函数来建 立BP网络。其输入节点数为16×16=256,隐层传输函数为 Sigmoid函数。假设用一个输出节点表示10个数字,则输出层传 输函数为pureline,隐层节点数为 ,取25。 (2)神经网络仿真程序设计 构造训练样本集,并构成训练所需的输入向量p和目标向量t. 通过画图工具获得数字。本例构造了新宋体12号、8号字体各10 个,黑体12号、8号各10个,及宋体加粗18号字体。 (3)神经网络测试。 由于图像处理的复杂性,对于不同噪声的污染选择不同的方 法,选择没有噪声的数字进行测试。选择训练样本中的任意数 据进行测试,结构非常正确。选择生成的新宋体8号大小的数字 进行测试。结果正确,选择其他类型的字体进行测试,则结果 不是完全正确。
梯度下降(gradient decent) 法
BP 算法
准则函数: sum squared error, SSE
1 2S
J sse
j
S
(t j a j )
2
1 2S
(t a) (t a)
T
权值修正: 梯度下降法
J w
j
w
j
J n
j
n w
j j
j
Байду номын сангаас
w
i ji
J ni ni
'
( k 1 )
a n
j j
a
后层的全部单元 都受nj的影响
j
i
i
f (n j )
nj
aj
( i w
i ' ji
ni
wji i
( k 1 )
w
j
j a
( k 1 )
f ( n j ) )a
δj
wji
δi
局部梯度的 反向传播
4.仿真实验识别效果
图4 数字0的识别效果
图5 数字4的识别效果
5.总结
本课题结合神经网络技术,对数字识别问题进行了 探讨和研究,主要研究成果如下:(1)针对数字数据,首 先进行了灰度化、二值化、平滑去噪、归一化、细化等 常规预处理,然后对处理完的数字图像进行特征提取, 提取了能体现字符特点的特征向量。(2)针对数字识别问 题,研究了BP神经网络分类器的建立和识别过程。 仿真结果表明,对于字体和字号与训练样本集相同 的测试样本,无论图像中的数字在什么位置,都可以识 别出来,而对于字体和字号与训练样本集不同的测试样 本,只有一部分能正确识别。并且对于带有噪声的数字, 运行程序的实验结果是不理想的,所以本课题程序有待 于进一步的整理和调试。为提高识别率,可以增加训练 样本,或通过增加字体的特征向量等途径来解决。
– 正向过程:从输入层经隐层逐层正向计算各单元 的输出。 – 反向过程:由输出层误差逐层反向计算隐层各单 元的误差,并用此误差修正当前层的权值。
正向过程
• 正向过程:
n
(k ) j
BP 算法
a
(k ) j
f (n
(k ) j
)
a
( k 1 ) i
w
(k ) j
a
( k 1 )
i
w
(k ) ij