MNIST:机器学习中的helloWorld。是一个入门级的计算机视觉数据集。
它包含各种手写数字图片:
上面这4张图片的标签是5,0,4,1。
官方的文档比较啰嗦,简而言之。
最终目的:使用tensorflow训练一个手写体图像识别模型,识别一张手写数字照片。
Step1:MNIST训练图片数据。
图片:28像素X28像素预处理之后的照片。
训练集:55000行
预测集:10000行
交叉验证集:5000行
mnist.train.images 是一个形状为 [55000, 784] 的张量,第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。在此张量里的每一个元素,都表示某张图片里的某个像素的强度值,值介于0和1之间。
one-hot vectors数字n将表示成一个只有在第n维度(从0开始)数字为1的10维向量。
比如,标签0将表示成([1,0,0,0,0,0,0,0,0,0,0])。mnist.train.labels是一个形状 [55000, 10] 的张量。
MNIST_data百度网盘地址:https://pan.baidu.com/s/1cjm7tc
input_data.py百度网盘地址:https://pan.baidu.com/s/1c21zu4C
input_data.py用于下载训练和测试的MNIST数据集的python源码。
step2:softmax regression讲解
我们希望得到10种分类的可能性probabilities,结果才能更好的理解。
就需要使用softmax回归。
第一步:加权求和(线性回归)
这个公式大家都很熟悉。
应用到MNIST上的解释:j是1到784,一共有784*10个权重和10偏移量需要确定。(不理解,给你看张图。)
i表示1到55000个训练样例。
写成