神經網絡學習(六)MNIST手寫字識別 --- Matlab實現

系列博客是博主學習神經網絡中相關的筆記和一些個人理解,僅爲作者記錄筆記之用,不免有很多細節不對之處。代碼見github

MNIST數據

MNIST 數據集作爲入門數據集, 很多教程都有所介紹。我們這裏利用的數據是從neural networks and deep learning教程獲得到。我們將⽤按照該教程相同的數據分割方法,將60,000個圖像的 MNIST 訓練集分成兩個部分:⼀部分包含50,000個圖像的訓練集(train_data),⽤來訓練我們的神經⽹絡,標籤爲1X10的向量(用argmax函數可以獲得對應數字,matlab中需減去1),和⼀個單獨的10,000個圖像的驗證集(validation_data),它的標籤是一個標量數字。另外的10000個驗證數據(test_data)暫時未使用。適合於Matlab使用的mat格式的數據可以在這裏下載到(沒有積分的朋友可私信我)。

試驗

本節程序可以在這裏下載到。
第三節實現的程序稍加修改就可以直接應用到MNIST手寫字的識別上,隱層我們使用ReLU激活函數,輸出層利用sigmoid函數。下面是網絡結構爲 [784 30 10],學習速率爲2,子數據集大小爲100時的訓練結果:

這裏寫圖片描述

我們可以看到在訓練到5000次時,識別率達到95.96%。後面我們會反覆對這個數據進行試驗,進一步提高識別精度。下面是網絡結構爲 [784 30 30 10]的訓練結果

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章