DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率

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

设计思路及代码

1、图片灰度平均值识别分类

首先,利用图片本身的属性,图片的灰度平均值进行识别分类,我运行出来的准确率是22%左右
利用图片的灰度平均值来进行分类实现手写图片识别(数据集50000张图片)——Jason niu

2、SVM算法

其次,利用SVM算法,我运行出来的准确率是93%左右,具体代码请点击
SVM:利用SVM算法实现手写图片识别(数据集50000张图片)—Jason niu

3、神经网络

最后,利用深度学习之神经网络,我运行出来的准确率是94%左右,具体代码请点击
NN:利用深度学习之神经网络实现手写数字识别(数据集50000张图片)—Jason niu

1、神经网络进行手写数字图片识别原理

损失函数

4、总结

最后,我们发现神经网络和SVM的算法学习质量非常高,而传统的灰度平均值算法则差强人意!

相关文章
DL之NN:利用调用自定义神经网络network.py文件(调用mnist_loader.py文件的load_data_wrapper函数,加载mnist.pkl.gz数据集)实现手写图片识别,准确率94%
Average_Darkness/SVM:手写数字识别(数据集50000张图片训练集)比较Average_Darkness、SVM各自的准确率

(0)

相关推荐