计算机模式识别论文手写数字识别Word文档格式.docx
《计算机模式识别论文手写数字识别Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机模式识别论文手写数字识别Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
输出ypj(j=1,2,⋯,q),其误差为
式中
为期望输出.P个样本的全局误差为将式
(3)代入得
输出层权值的变化采用累计误差BP算法调整wjk使全局误差E变小,即
式(5)中η为学习率.现定义误差信号为
将式(3)代入可得第一项为
第二项为输出层传递函数f2(x)的偏微分
将式(7)和(8)代入可得误差信号为
则输出层各神经元权值△wjk调整公式将式(9)代入可定义为
在得到输出层权值调整公式后,需要定义隐层权值△vki调整公式
根据输出层各神经元权值△wjk调整公式推导过程,可得△vki为
.
四、BP算法的实现程序代码
以VC++为手段,在BP神经网络的基础上进行编程以实现手写数字的识别,以下是部分实验代码:
1.//
MainFrm.cpp
:
implementation
of
the
CMainFrame
class
2.//
2005.1.13-16:
02
By
Superman
3.
4.#include
"
stdafx.h"
5.#include
DSPLIT.h"
6.
7.#include
MainFrm.h"
8.#include
DynSplitView2.h"
9.
10.#ifdef
_DEBUG
11.#define
new
DEBUG_NEW
12.#undef
THIS_FILE
13.static
char
THIS_FILE[]
=
__FILE__;
14.#endif
15.
16./////////////////////////////////////////////////////////////////////////////
17.//
18.
19.IMPLEMENT_DYNCREATE(CMainFrame,
CFrameWnd)
20.
21.BEGIN_MESSAGE_MAP(CMainFrame,
22.
//{{AFX_MSG_MAP(CMainFrame)
23.
ON_WM_CREATE()
24.
//}}AFX_MSG_MAP
25.END_MESSAGE_MAP()
26.
27.static
UINT
indicators[]
28.{
29.
ID_SEPARATOR,
//
status
line
indicator
30.
ID_INDICATOR_CAPS,
31.
ID_INDICATOR_NUM,
32.
ID_INDICATOR_SCRL,
33.};
34.
35./////////////////////////////////////////////////////////////////////////////
36.//
construction/destruction
37.
38.CMainFrame:
CMainFrame()
39.{
40.
TODO:
add
member
initialization
code
here
41.
42.}
43.
44.CMainFrame:
~CMainFrame()
45.{
46.}
47.
48.int
CMainFrame:
OnCreate(LPCREATESTRUCT
lpCreateStruct)
49.{
50.
if
(CFrameWnd:
OnCreate(lpCreateStruct)
==
-1)
51.
return
-1;
52.
53.
(!
m_wndToolBar.CreateEx(this,
TBSTYLE_FLAT,
WS_CHILD
|
WS_VISIBLE
CBRS_TOP
54.
CBRS_GRIPPER
CBRS_TOOLTIPS
CBRS_FLYBY
CBRS_SIZE_DYNAMIC)
||
55.
!
m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
56.
{
57.
TRACE0("
Failed
to
create
toolbar\n"
);
58.
fail
59.
}
60.
61.
m_wndStatusBar.Create(this)
62.
m_wndStatusBar.SetIndicators(indicators,
63.
sizeof(indicators)/sizeof(UINT)))
64.
65.
bar\n"
66.
67.
68.
69.
Delete
these
three
lines
you
don'
t
want
toolbar
70.
be
dockable
71.
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
72.
EnableDocking(CBRS_ALIGN_ANY);
73.
DockControlBar(&
m_wndToolBar);
74.
75.
0;
76.}
77.
78.BOOL
PreCreateWindow(CREATESTRUCT&
cs)
79.{
80.
if(
CFrameWnd:
PreCreateWindow(cs)
)
81.
FALSE;
82.
Modify
Window
or
styles
by
modifying
83.
CREATESTRUCT
cs
84.
85.
TRUE;
86.}
87.
88./////////////////////////////////////////////////////////////////////////////
89.//
diagnostics
90.
91.#ifdef
92.void
AssertValid()
const
93.{
94.
AssertValid();
95.}
96.
97.void
Dump(CDumpContext&
dc)
98.{
99.
Dump(dc);
100.}
101.
102.#endif
//_DEBUG
103.
104./////////////////////////////////////////////////////////////////////////////
105.//
message
handlers
106.
107.
108.BOOL
OnCreateClient(LPCREATESTRUCT
lpcs,
CCreateContext*
pContext)
109.{
110.
a
splitter
with
1
row,
2
columns
111.
m_wndSplitter.CreateStatic(this,
1,
2))
112.
113.
Splitter
window\n"
114.
115.
116.
117.
first
pane
-
default
view
in
column
0
118.
m_wndSplitter.CreateView(0,
0,
119.
pContext->
m_pNewViewClass,
CSize(320,
150),
pContext))
120.
121.
pane\n"
122.
123.
124.
125.
second
an
input
126.
127.
RUNTIME_CLASS(CDynSplitView2),
CSize(0,
0),
128.
129.
130.
131.
132.
133.
activate
134.
SetActiveView((CView*)m_wndSplitter.GetPane(0,0));
135.
136.
137.}
编程结束后,利用鼠标在屏幕上移动形成手写数字,由程序负责进行识别。
下图为演示结果:
五、结果与分析
神经网络的训练过程是识别字符的基础,十分重要,直接关系到识别率的高低.输送训练样本至BP神经网络训练,在梯度方向上反复调整权值使网络平方和误差最小.为使网络对输入向量有一定鲁棒性,可先用无噪声的样本对网络进行训练,直到其平方和误差最小,再用含噪声的样本进行训练,保证网络对噪声不敏感.训练完毕,把待识别数字送BP神经网络中进行仿真测试
权值初始化为(-1,1)之间的随机数,期望误差为0.01,最大训练步数5000,动量因子为0.95,隐层和输出层均采用“logsig”函数,手写数字的识别结果如图2(a)~(e)所示,以数字4为例给出处理过程
对1000个手写数字(每个数字取100幅不同的图像)进行识别,其识别结果如表1所示.
六、结论
针对传统的手写数字识别中识别率和可靠性不高的情况,提出了将BP神经网络应用于数字识别,并通过实验,证实BP神经网络算法识别率较高,具备可行性.。
随着国家信息化进程的加速,手写数字识别的应用需求将越来越广泛,因此应当加强这方面的研究工作。
应用系统的性能的关键与瓶颈仍然在于手写数字识别核心算法性能上,最终目标是研究零误识率和低拒识率的高速识别算法。
在实际应用中,没有任何一种方法可以达到100%的识别正确,我们要做的是充分发掘新的、更适宜实际问题的算法,以便能尽可能好地解决实际的手写识别问题,使该技术得到最大程度的应用。
参考文献.
(1) 张猛等.手写体数字识别中图像预处理的研究[J].微计算机信息,2006
(2) PandyaAS,MacyRB.神经网络模式识别及其实现[M].徐勇,荆涛译.北京:
电子工业出版社,1999.
(3) 朱小燕等.手写体字符识别研究[J].模式识别与人工智能,2000
(4) 马少平等.基于模糊方向线索特征的手写体汉字识别[J].清华大学学报,1997
(5)边肇祺张学工《模式识别》,清华大学出版社
(6)蔡自兴,徐光祜编著人工智能及其应用清华大学出版社