基于Matlab平台利用Hopfield神经网络进行数字识别

Hopfield神经网络是用来重现其学习到的信息图案的系统,可以用来进行模拟人类记忆的研究。本次将讨论如何使用Hopfield神经网络来实现数字识别。Hopfield神经网络是一个由许多单元组成的单层网络,每个单元都互相连接着另一个单元,由于每个单元都采用二元系统,即用数字-1或1来表示单元的状态,所以本次建立了10x10的数字点阵,其中每一个元素用-1或1 来表示是否显示数字。

先建立10x10的矩阵,通过设置改变矩阵每一行-1和1的位置,可以建立不同的数字点阵。本次建立了数字3、6和9的数字矩阵,生成的数字点阵如图1所示。

基于Matlab平台利用Hopfield神经网络进行数字识别_第1张图片

图1.生成标准的数字点阵

建立好数字点阵后,开始建立噪声矩阵。本次采取了随机产生噪声的方法,利用MATLAB,噪声强度为0.1即10%,那么意味着原数字点阵中的元素有10%被替换了。添加噪声后的数字点阵如图2所示,数字形状呈现出不规则的变化,边缘模糊。

基于Matlab平台利用Hopfield神经网络进行数字识别_第2张图片

图2. 随机输入噪声后产生的新的数字点阵

利用MATLAB的newhop命令创建网络,将带噪声的点阵输入网络中,网络输出结果如图3所示。输出的结果为与噪声点阵结果最接近的目标向量,实现了联想记忆功能。与最开始建立的标准数字点阵相比,网络识别结果显然有差距。且由于数字3、6、9的结构相似,识别出的结果中,6和9的特征虽然较为相似,但是稍加观察,也能分辨出其中的不同。

基于Matlab平台利用Hopfield神经网络进行数字识别_第3张图片

图3. 对比标准数字点阵、噪声点阵以及识别输出的数字点阵(1)

重新运行程序后,由于随机产生的噪声变化了,输出的识别结果也产生了变化,如图4所示。在此次结果中,识别出来的结果相对来说比图3的结果更加模糊一点,体现了该网络的不稳定性。但是就其本身的噪声点阵与识别结果来看,网络识别复刻出的数字点阵精度体现出了数字的基本特征,且其恢复的效果也是比较可观的。

基于Matlab平台利用Hopfield神经网络进行数字识别_第4张图片

图4. 对比标准数字点阵、噪声点阵以及识别输出的数字点阵(2)

在进行数字3、6和9的识别后,本次也尝试进行了数字1和2的识别。在此次尝试中,噪声强度设置为0.3即30%,比数字3、6和9的噪声强度大20%,其噪声点阵也可以看出,辨认出数字的基本特征相对来说比3、6和9更加困难,然而其识别结果明显地表现出数字1和2的特征。

基于Matlab平台利用Hopfield神经网络进行数字识别_第5张图片

图5. 数字1、2的识别结果

当比较同一个数字网络识别多次产生的结果时,可以得出该系统不能稳定地产生识别结果的结论。通过对比数字3、6和9,以及1和2的识别结果情况,可以初步得出,当数字图像较为简单时,噪声强度较大地情况下也能输出较为清晰的识别结果。总地来说,利用Hopfield神经网络进行数字识别,可以运用到损坏文物古籍文字识别、交通系统汽车牌照识别、邮政系统编码识别等方面中。

 最后,有相关需求,欢迎通过微信公众号联系我们。

微信公众号:320科技工作室。

你可能感兴趣的:(编程,神经网络,MATLAB,hopfiled,数字识别)