当我们开始编程的时候,做的第一件事往往是在屏幕上打印“Hello World”。就像编程入门有Hello World,
机器学习入门有MNIST。MNIST是一个入门级的计算机视觉数据集,它包含各种手写的数字图片:
它也包含每一张图片对应的标签,告诉我们这个是数字几。正如这张图片的标签分别为5,0,4,1。
我们将训练一个机器学习模型用于预测图片里面的数字,在此之前,这里会从简单的数学模型开始,这个模型叫
做SoftmaxRegression。然后进一步熟悉加深TensorFlow的使用。
MNIST数据集获取可以在这里下载。下载完以后,数据集被分成两个部分:60000行的训练数据集(mnist.train)
和10000行的测试数据集(mnist.test),这样的分类很重要,在机器学习模型设计时必须有一个单独的测试数
据集不用于训练而是用来评估这个模型的性能,从而更加容易把设计的模型推广到其他数据集上(泛化)。
一如前面所说,每一个MNIST数据单元有两部分组成:一张包含手写数字的图片和一个对应的标签。我们把这些
图片设为“xs”,把这些标签设为“ys”。训练数据集和测试数据集都包含xs和ys,比如训练数据集的图片是
mnist.train.images,训练数据集的标签是mnist.train.labels。
每一张图片包含28X28个像素点。我们可以用一个数字数组来表示这张图片:
我们把这个数组展开成一个向量,长度是28X28=784.。如何展开这个数组(数字键的顺序)不重要,只要保持
图片采用相同的方式展开。从这个角度来看,MNIST数据集的图片就是在784维向量空间里面的点,并且拥有比
较复杂的结构(注意此类数据的可视化是计算密集型的)。
展平图片的数字数组会丢失图片的二维结构信息。这显然是不理想,最优秀的计算机视觉方法会挖掘利用这些结
构信息,我们会在后续的学习中深入研究。但是现在在这里我们忽略这些结构,所介绍的简单数学模型,
softmax回归不会利用这些结构信息。
未完待续