手写数字识别c语言作业,10 行代码,实现手写数字识别

识别手写的阿拉伯数字,对于人类来说十分简单,但是对于程序来说还是有些复杂的。

手写数字识别c语言作业,10 行代码,实现手写数字识别_第1张图片

不过随着机器学习技术的普及,使用10几行代码,实现一个能够识别手写数字的程序,并不是一件难事。这是因为有太多的机器学习模型可以拿来直接用,比如tensorflow、caffe,在python下都有现成的安装包,写一个识别数字的程序,10几行代码足够了。

然而我想做的,是不借助任何第三方的库,从零开始,完全自己实现一个这样的程序。之所以这么做,是因为自己动手实现,才能深入了解机器学习的原理。

1 模型实现

1.1 原理

熟悉神经网络回归算法的,可以略过这一节了。

学习了一些基本概念,决定使用回归算法。首先下载了著名的MNIST数据集,这个数据集有60000个训练样本,和10000个测试样本。每个数字图片都是28*28的灰度图片,所以输入可以认为是一个28*28的矩阵,也可以认为是一个28*28=784个像素值。

这里定义一个模型用于判断一个图片数字,每个模型包括每个输入的权重,加一个截距,最后再做个归一。模型的表达式:

Out5= sigmoid(X0*W0+ X1*W1+……X783*W783+bias)

X0到X783是784个输入,W0到W783是784个权重&#x

你可能感兴趣的:(手写数字识别c语言作业)