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各自的准确率