目錄
資料集下載下傳以及展示
代碼實作
設計思路及代碼
1、圖檔灰階平均值識别分類
2、SVM算法
3、神經網絡
4、總結
資料集下載下傳以及展示
在上圖中右側顯示了一張數字1的圖檔,而右側顯示了這個圖檔所對應的像素矩陣,MNIST資料集提供了4個下載下傳檔案。
對手寫資料集50000張圖檔實作阿拉伯數字0~9識别,并且對結果進行分析準确率。從這個頁面獲得的手寫數字的MNIST資料庫具有60000個示例,包括50000張圖檔訓練集和10000張圖檔測試集。它是從NIST獲得的更大集合的子集。數字已被規格化,并以固定大小的圖像為中心。
手寫數字識别也是比較常見的例子了,這個資料集包含有60000張用于訓練的手寫數字的圖檔,10000張用于測試的圖檔,所有圖檔的尺寸都已經被标準化了,并且,尺寸為2828.每個像素值0~1區間内的值,其中0代表白色,1代表黑色,區間内的值表示灰色。為了簡化,每張圖檔已經被轉換成一個 1728的一維數組,表示784個特征(28'28)。
手寫數字資料集下載下傳:
http://yann.lecun.com/exdb/mnist/#檢視手寫數字圖檔資料集的大小等參數
import mnist_loader
import network
training_data, validation_data, test_data = mnist_loader.load_data_wrapper() #調用mnist_loader檔案的load_data_wrapper函數,加載data/mnist.pkl.gz資料集
print("training_data")
print(type(training_data))
print(list(training_data)) #list
print(len(training_data)) #長度
print(training_data[0][0].shape) #x的次元784
print(training_data[0][1].shape) #y的次元10
首先,利用圖檔本身的屬性,圖檔的灰階平均值進行識别分類,我運作出來的準确率是22%左右
利用圖檔的灰階平均值來進行分類實作手寫圖檔識别(資料集50000張圖檔)——Jason niu
其次,利用SVM算法,我運作出來的準确率是93%左右,具體代碼請點選
SVM:利用SVM算法實作手寫圖檔識别(資料集50000張圖檔)—Jason niu
最後,利用深度學習之神經網絡,我運作出來的準确率是94%左右,具體代碼請點選
NN:利用深度學習之神經網絡實作手寫數字識别(資料集50000張圖檔)—Jason niu
1、神經網絡進行手寫數字圖檔識别原理
損失函數
最後,我們發現神經網絡和SVM的算法學習品質非常高,而傳統的灰階平均值算法則差強人意!
相關文章
DL之NN:利用調用自定義神經網絡network.py檔案(調用mnist_loader.py檔案的load_data_wrapper函數,加載mnist.pkl.gz資料集)實作手寫圖檔識别,準确率94%
Average_Darkness/SVM:手寫數字識别(資料集50000張圖檔訓練集)比較Average_Darkness、SVM各自的準确率