天天看點

DL之NN/Average_Darkness/SVM:手寫數字圖檔識别(本地資料集50000訓練集+資料集加4倍)比較3種算法Average_Darkness、SVM、NN各自的準确率

目錄

資料集下載下傳以及展示

代碼實作

設計思路及代碼

1、圖檔灰階平均值識别分類

2、SVM算法

3、神經網絡

4、總結

資料集下載下傳以及展示

DL之NN/Average_Darkness/SVM:手寫數字圖檔識别(本地資料集50000訓練集+資料集加4倍)比較3種算法Average_Darkness、SVM、NN各自的準确率

     在上圖中右側顯示了一張數字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

DL之NN/Average_Darkness/SVM:手寫數字圖檔識别(本地資料集50000訓練集+資料集加4倍)比較3種算法Average_Darkness、SVM、NN各自的準确率

其次,利用SVM算法,我運作出來的準确率是93%左右,具體代碼請點選

SVM:利用SVM算法實作手寫圖檔識别(資料集50000張圖檔)—Jason niu

最後,利用深度學習之神經網絡,我運作出來的準确率是94%左右,具體代碼請點選

NN:利用深度學習之神經網絡實作手寫數字識别(資料集50000張圖檔)—Jason niu

DL之NN/Average_Darkness/SVM:手寫數字圖檔識别(本地資料集50000訓練集+資料集加4倍)比較3種算法Average_Darkness、SVM、NN各自的準确率

1、神經網絡進行手寫數字圖檔識别原理

DL之NN/Average_Darkness/SVM:手寫數字圖檔識别(本地資料集50000訓練集+資料集加4倍)比較3種算法Average_Darkness、SVM、NN各自的準确率

損失函數

DL之NN/Average_Darkness/SVM:手寫數字圖檔識别(本地資料集50000訓練集+資料集加4倍)比較3種算法Average_Darkness、SVM、NN各自的準确率

最後,我們發現神經網絡和SVM的算法學習品質非常高,而傳統的灰階平均值算法則差強人意!

相關文章

DL之NN:利用調用自定義神經網絡network.py檔案(調用mnist_loader.py檔案的load_data_wrapper函數,加載mnist.pkl.gz資料集)實作手寫圖檔識别,準确率94%

Average_Darkness/SVM:手寫數字識别(資料集50000張圖檔訓練集)比較Average_Darkness、SVM各自的準确率