一、手写数字识别的背景介绍
利用到MNIST数据集,数据集下载网址:
http://yann.lecun.com/exdb/mnist/
1、图像格式介绍:
每一张图片包含28*28个像素,每一个数组展开成一个向量,长度是28*28=784(一行接着一行)。
60000个训练图像是一个形状为[60000,784]的张量,第一个维度数字用来索引图片,第二个维度数字用来索引每张图片的像素点。图片里某个像素的强度值介于0-1之间。
2、数据集的标签:
介于0-9的数字,可以转化成“one-hot vectors”。比如标签0表示为([1,0,0,0,0,0,0,0,0,0]),比如标签3表示为([0,0,0,1,0,0,0,0,0,0])
3、神经网络的构建:
加隐藏层效果会更好,但是这里是入门项目,就不加了。
4、Softmax函数
上图中,p1,p2,p3分别表示标签为1,5,3的概率,显然需要选择标签为5,因为概率最大。
二、线性回归入门(这里用了一个非线性回归的例子)
注意:当Jupyter报错“SyntaxError: invalid syntax”时,检测该报错的上一行是否少了括号。
优化过程中,不断改变:Weights_L1,biases_L1,Weights_L2,biases_L2
结果图如下:
三、MNIST数据集分类简单版本
代码如下:
网友评论