MNIST机器学习模型的简单理解

以手写数字识别为例,理解MNIST机器学习的模型。

构建机器学习模型的目的是:可以最终通过该模型来识别手写数字图片,分辨出其中包含的数字,当然,识别肯定是存在误差的,包括人类自身识别数字图片也是存在误差的,这个是可以理解的。好的模型构建后,通过大规模的训练,可以让其识别精度约等于1,如果模型构建的不好,其识别精度也会存在一个上限值,当然肯定少于1。

模型构建之后,就像小孩子刚出生,其中的思维基础是有的,但是缺乏的是对客观世界事物的大量认识(在机器学习中,称为训练)。所以,要让这个模型具备识别数字的能力,必须对它进行大规模的训练。要对模型进行训练,需要许多的素材,你得给它看许多张包含数字的图片,并且你要告诉它上面写的是数字几。模型在训练的过程中,通过一些算法,逐渐细微地调整这个模型(就像一部复杂的机器)中某一些细微的参数(就像机器中的零部件)一样,调整这些参数的目的是,以后输入一张图片,将图片中所有像素点放到模型中去计算一遍,就可以得出来这张图片属于0-9中每个数字的概率,当然,mnist可以使用某些函数让这些概率都分布在0%-100%之间,并且它们的总和等于1。

模型构建好并且通过大量训练之后,该模型就可以用来识别数字了,你给它一张数字图片,它就可以告诉你是数字几,当然它一般是把它算出来概率最大的那个数字告诉你。所以关键问题是,如何构建一个好的模型、如何通过某种方式来训练模型和衡量模型训练的好坏结果。

对于第一个问题,如何构建一个好的模型,这里就牵扯到这一层那一层,还有什么核啊、卷积层啊什么东西了,当然是一个研究的大方向和重点,现在还讲不清。

对于第二个问题,如何训练这个模型,这个问题和第三个问题是捆绑在一起的。对模型的每一次训练都要通过某种方式来计算这次训练的好坏,所谓的训练就是细微地调整这个模型中的某一些或者某一个参数值,让最终的输出结果更趋向于正确的结果(即已经标识给它的那个数字),在mnist中,使用“交叉熵”(cross-entropy)的方式作为计算成本函数,通过细微调整参数来计算这个函数的最小值,如果所有涉及到的参数都训练好了,那么也就意味着这个模型已经训练好了。当然,如果细微调整其中的每个参数,哪个往上,哪个往下,如何统筹规划,这就又是一门大学问了,mnist中使用反向传播算法(backpropagation algorithm)来计算最合适的那个参数值。算法的优劣体现在它能不能得到最优解以及算出最优解的时间。

最后,就是评估模型的性能了,这个也主要看两个方面,一个是经过训练后该模型识别数字的正确率,一个是其运行时间,最终运行效果就是我们看到的那些输出:test accuracy 0.9915。

本文为原创,不保留所谓的版权,因为作者是菜鸟,只用来作学习记录,不要用来给人参考和学习的,请理解,本文参考http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值