200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 机器学习课程教学案例—简单手写数字识别系统开发

机器学习课程教学案例—简单手写数字识别系统开发

时间:2020-01-14 04:20:15

相关推荐

机器学习课程教学案例—简单手写数字识别系统开发

机器学习课程教学案例—手写数字识别系统开发

摘要:面对机器学习复杂的技术性课程,细化教学目标、贯穿案例驱动的教学方法、强化实践教学应该是最有效的教学方法。一个具体例子能使学生有效掌握精粹、消除疑惑、理解抽象概念。本文通过一个典型且简单的例子讲解这门课程讲述的核心主线。希望能起到理论联系实际、举一反三、逐步深入、提高学生的学习信心的作用。

关键词:机器学习;手写数字识别;案例教学

1.前言

人工智能、机器人、大数据等已经离不开我们的生活。教育部发文,机器人与编程被列入高中必修课。机器人素质教育进入校园,其核心概念是机器学习。机器学习在诸多领域成功的应用与发展,己成为信息处理领域的基础和热点[1][2]。机器学习的相关的课程从研究生教育逐渐进入高中教育阶段。作为一门实践性极强的课程,其内容自然联系到诸多抽象概念和基础课程。虽然,机器学习相关的教学课程及网上课堂很多[3],内容也丰富多样,但缺乏简单易懂的案例教学。将复杂的内容有效教授给学生、以及让学生掌握其精粹、理解其内涵是件艰巨的任务。通过案例场景引出相关概念、技术,以此为主线增强学生的学习信心可能是机器学习课程最有效的教学方法。一个具体案例能有效掌握主题、消除疑惑、理解抽象概念等方面取到举一反三的目标[4]。从多年的教学工作当中发现,大部分教材及参考书,注重抽象概念及普遍理论的讲解。对于具体简单的例子的讲解案例严重缺乏。导致学习过程只是现成工具的套用,最终对抽象概念一知半解,越学越觉得吃力、脱离实践、死记硬背。学习效率差,直接导致厌学。甚至有的学生直接提出“既然有很好的现成工具就不需要学习,直接应用即可”。机器学习方法之多,如HMM、GMM、K-means、SVM、DNN 等等,内容之抽象,很容易导致理论脱离实践。本文采用比较直观的例子“手写数字的识别”作为例子讲解一个以线性分类器为核心的机器学习方法。多维线性函数是SVM、DNN 等效果比较好的机器学方法的基础,直观并易于理解、容易实现。对于初学者是个理想的实践过程。

2. 模型的建立

机器学习的目标可以是各种信息,包括视觉信号及听觉信号等。比较典型的是语音及 文字信息。其中文字图像比较直观,用于机器学习教学效果更好。但是手写数字包含随机变化成分,因为我们知道每个人书写方式、习惯、大小、角度等不会完全一样,相同的数字一个人写两次也不会完全一样。但是每个文字或数字都有固定的模版。我们可以用模版的匹配度量来区分不同数字或进行分类。因此,即需要很好的机器学习模型,有需要大量样本的训练过程。

可以用较复杂的概率统计概念来设计一个模型[3],也可以用简单的线性函数来实现分类过程。机器学习模型需要在训练样本中训练。类似于,一个小孩开始学习认知数字。先让孩子学习各个数字,然后让其辨认一些数字。刚开始,孩子虽然能正确辨认出比较规整的手写数字,也会误判一些写的较潦草的数字。慢慢通过学习(学习各种手写样本)就能不断提高准确率。

机器学习过程需要模型和样本两部分,首先设计一个数学模型,其次在大量样本上学习后调整模型的参数,并用该模型去判断新的手写数字。公式(1)一个线性模型,是另外两个重要机器学习模型的基础,深度神经网络(DNN),和支持向量机(SVM) 。

虽然该例子很简单,但是任何复杂的机器学习模型都是通过对公式(1)~(3)的改变或优化获得的,机器学习的核心思路没变。若将公式(2)换成公式(4),模型就变成了标准的感知器(perceptron)模型。图1 显示的是一个数据(如:数据“3”)的预测模型,10个这样的模型并联成起来就成了识别10个数据的单层原始神经网络模型。

sigmoid(f(X))=1/(1+e^(-f(x)) ) (4)

3. 试验数据准备

图像在计算机中的简单(单色)表示方法是矩阵形式,如图2。这些信号输入机器学习模型时,需要转换成一系列特征向量。特征向量可能是一维的,也可能是二维的。相应的特征数据有有统计特征、钜、方向特征等等,也可能是图像矩阵本身。数据准备过程需要图像的采集、二值化、规范化、细化等过程。最终获得大小规整的数字矩阵。图2显示一个数字矩阵,白色用0表示,黑色用1表示,就能获得2维矩阵。

大家可以自己找几个人进行手写数字的采样和预处理过程。 也可以直接用免费数据MNIST[5],MNIST提供了6万个训练样本,和1万个测试样本,每个样本是一个28*28矩阵。收集样本时要注意,训练样本和测试样本是不同人提供的。

4. 实现过程

模型实现方法比较简单,大家可以用任何编程语言,如:python,C,MATLAB 等,实现。如下我们提供的伪代码。其中 X 是所有训练数据,每行是一个样本,总行数M是总样本数,列数是一维特征向量,长度为N,注意x_0=1,即将矩阵X的第一列全设置成 1,对应的参数 w_0 成为偏移量。 实际信号的特征值长度是N-1。

我门取了20个人的200个样本数据进行训练,并在少量测试数据上进行测试,错误率为22%。这只是一个数字的识别过程,要实现10个手写数字的识别模型,简单的并联即可。

5. 总结

机器学习作为一门实践性极强的课程,其内容自然和诸多抽象概念和基础课程有关。将这些内容有效教授给学生、以及让学生掌握其精粹、理解其 内涵是件艰巨的任务。本文以教学为目的介绍了一个简单且典型的机器学习模型机器设计和训练过程。虽然关于机器学习的书籍及参考资料很多,对于初学者的简单案例教学形式的材料严重缺乏。因此,尽量用通俗易懂的方式讲解了机器学习完整过程,避免了概念的抽象化,注重具体细节和实现过程。难免有不足之处,希望大家批评指正。

参考文献:

[1] 余明华; 冯翔; 祝智庭. 人工智能视域下机器学习的教育应用与创新探索. 远程教育杂志. -05-20

[2] 邓志鸿; 谢昆青. 机器学习课程的教学实践——以北京大学“智能科学与技术”本科专业为例. 计算机教育. -10-10

[3] Christopher Bishop.“Pattern Recognition and Machine Learning”. Springer press,

[4] 李勇. 本科机器学习课程教改实践与探索. 计算机教育. -07-10

[5] /exdb/mnist/

Machine Learning Teaching Case – Handwritten Digit Recognition

Abstract: Machine learning is a complicated subject. The most effective teaching ways for this course must be refinement of teaching methods, using case teaching methods, and emphasize practice. A concrete example help students grasp the pith, clear ambiguity, and understand abstract concepts. This paper explain the essential process of machine learning via a simple and typical example. Hope this will build a bridge between theory and practice, and be an inference for further study, and improve student’s confidence.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。