基于Matlab平臺利用Hopfield神經網絡進行數字識別

Hopfield神經網絡是用來重現其學習到的信息圖案的系統,可以用來進行模擬人類記憶的研究。本次將討論如何使用Hopfield神經網絡來實現數字識別。Hopfield神經網絡是一個由許多單元組成的單層網絡,每個單元都互相連接著另一個單元,由于每個單元都采用二元系統,即用數字-1或1來表示單元的狀態,所以本次建立了10x10的數字點陣,其中每一個元素用-1或1 來表示是否顯示數字。

先建立10x10的矩陣,通過設置改變矩陣每一行-1和1的位置,可以建立不同的數字點陣。本次建立了數字3、6和9的數字矩陣,生成的數字點陣如圖1所示。

1.png

基于Matlab平臺利用Hopfield神經網絡進行數字識別的圖2

圖1.生成標準的數字點陣

建立好數字點陣后,開始建立噪聲矩陣。本次采取了隨機產生噪聲的方法,利用MATLAB,噪聲強度為0.1即10%,那么意味著原數字點陣中的元素有10%被替換了。添加噪聲后的數字點陣如圖2所示,數字形狀呈現出不規則的變化,邊緣模糊。

2.png

基于Matlab平臺利用Hopfield神經網絡進行數字識別的圖4

圖2. 隨機輸入噪聲后產生的新的數字點陣

利用MATLAB的newhop命令創建網絡,將帶噪聲的點陣輸入網絡中,網絡輸出結果如圖3所示。輸出的結果為與噪聲點陣結果最接近的目標向量,實現了聯想記憶功能。與最開始建立的標準數字點陣相比,網絡識別結果顯然有差距。且由于數字3、6、9的結構相似,識別出的結果中,6和9的特征雖然較為相似,但是稍加觀察,也能分辨出其中的不同。

3.png

基于Matlab平臺利用Hopfield神經網絡進行數字識別的圖6

圖3. 對比標準數字點陣、噪聲點陣以及識別輸出的數字點陣(1)

重新運行程序后,由于隨機產生的噪聲變化了,輸出的識別結果也產生了變化,如圖4所示。在此次結果中,識別出來的結果相對來說比圖3的結果更加模糊一點,體現了該網絡的不穩定性。但是就其本身的噪聲點陣與識別結果來看,網絡識別復刻出的數字點陣精度體現出了數字的基本特征,且其恢復的效果也是比較可觀的。

4.png

基于Matlab平臺利用Hopfield神經網絡進行數字識別的圖8

圖4. 對比標準數字點陣、噪聲點陣以及識別輸出的數字點陣(2)

在進行數字3、6和9的識別后,本次也嘗試進行了數字1和2的識別。在此次嘗試中,噪聲強度設置為0.3即30%,比數字3、6和9的噪聲強度大20%,其噪聲點陣也可以看出,辨認出數字的基本特征相對來說比3、6和9更加困難,然而其識別結果明顯地表現出數字1和2的特征。

5.png

基于Matlab平臺利用Hopfield神經網絡進行數字識別的圖10

圖5. 數字1、2的識別結果

當比較同一個數字網絡識別多次產生的結果時,可以得出該系統不能穩定地產生識別結果的結論。通過對比數字3、6和9,以及1和2的識別結果情況,可以初步得出,當數字圖像較為簡單時,噪聲強度較大地情況下也能輸出較為清晰的識別結果??偟貋碚f,利用Hopfield神經網絡進行數字識別,可以運用到損壞文物古籍文字識別、交通系統汽車牌照識別、郵政系統編碼識別等方面中。

 最后,有相關需求,歡迎通過微信公眾號聯系我們。

微信公眾號:320科技工作室。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

12
2
1