当前位置:   article > 正文

MNIST机器学习模型的简单理解_minist模型训练原理

minist模型训练原理

以手写数字识别为例,理解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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/965813
推荐阅读
相关标签
  

闽ICP备14008679号