刘东霖
重庆市龙门浩职业中学校
[摘要]2016 年 DeepMind 推出 AlphaGo 一战成名后,人工智能(Artificial Intelligence)在全球迅速崛起,已经影响了我们生活的方方面面,图像识别,语言识别等技术的日益成熟更是为人们 的生活带来了极大的便利。在全球“AI 潮”的背景下,笔者认为应该探索人工智能技术在中等职业学校的教学模式。
[关键词]人工智能 中等职业学校 教学
[正文]
千百年来,人类试图了解智能的机制,并复制到机器上。1950 年 10 月,艾伦·麦席森·图灵发表名为“机器可以思考吗”的论文,成为划时代之作,此后关于人工智能的研究开始兴起。在数十年 的发展中,人工智能潮起潮落,但是人类的希望之火从未熄灭。在 21 世纪的第二个十年,人工智能终于迎来了指数式的增长。2017 年 7 月,国务院发布《新一代人工智能发展规划》,特别强调“加快人工智能创新应用”。文件要求:“广泛开展人工智能科普活动”;“实施全民智能教育项目,在中小学阶段设置人工智能相关课程”;“支持开展人工智能竞赛,开发立体综合教学场、基于大数据 智能的在线学习教育平台”。这就对人工智能教育提出了新的任务和要求。
人工智能技术涉及到认知科学,生物科学,计算机科学,数学,统计学等多学科知识与技能的交叉,是技术含量极高的领域,尤其是一些用到的高等数学算法,远远超出中职学生的知识范围。因此, 本文讨论以“手脑结合”的教学模式,对高级的算法和数学知识只做定性的介绍。在给中职学生提供必要的基础知识后,就动手做一些实验,了解人工智能的原理,体验人工智能的魅力。
一、 人工智能技术的选择
人工智能是一个非常广泛的领域,涵盖很多大的学科,笔者归纳为六个:计算机视觉、自然语言 理解与交流、认知与推理、机器人学、博弈与伦理、机器学习。在中职人工智能教学中,笔者选择机 器学习中的“神经网络”作为教学内容。
研究人员观察生物大脑的架构,其中的基本单元为神经元。虽然神经元有各种形式,但是所有的 神经元都是将电信号沿着轴突,从一端传向另一端。然后,这些电信号从一个神经元传递到另一个神 经元,这就是大脑感知信息的机制。神经元接受一个电信号输入,输出另一个电信号,这看起来和普 通计算机处理数据很像,所以可以通过技术手段,设计“人工神经网络”,模拟大脑的感知机制,这 就是人工智能中的“神经网络”技术,也是目前最流行的“深度学习”技术的基础。
二、 数学知识的准备
人工智能技术要求较强的数学知识,笔者认为以下数学概念与知识是学生需要了解和掌握的:
1.标量(scalar):一个标量就是一个单独的数,它不同于线性代数中研究的其他大部分对象(通常是多个数的数组)。我们用斜体表示标量。标量通常被赋予小写的变量名称。当我们介绍标量时,会明确它们是哪种类型的数。比如,在定义实数标量时,我们可能会说“令 s ∈ R 表示一条线的斜率”;在定义自然数标量时,我们可能会说“令 n ∈ N 表示元素的数目”。
2.向量(vector):一个向量是一列数。这些数是有序排列的。通过次序中的索引,我们可
以确定每个单独的数。通常我们赋予向量粗体的小写变量名称,比如 x。向量中的元素可以通过带脚标的斜体表示。向量 x 的第一个元素是 x1 ,第二个元素是 x2 ,等等。我们也会注明存储在向量中的元素是什么类型的。如果每个元素都属于 R,并且该向量有 n 个元素,那么该向量属于实数集 R 的
n 次笛卡尔乘积构成的集合,记为Rn 。
3.矩阵(matrix):矩阵是一个二维数组,其中的每一个元素被两个索引(而非一个)所确定。我们通常会赋予矩阵粗体的大写变量名称,比如 A。
4.矩阵乘法(matrix product):矩阵乘法是矩阵运算中最重要的操作之一。两个矩阵 A 和 B 的乘积是第三个矩阵 C。为了使乘法定义良好,矩阵 A 的列数必须和矩阵 B 的行数相等。如果矩阵 A 的形状是 m×n,矩阵 B 的形状是 n×p,那么矩阵 C 的形状是 m×p。
5.概率:概率亦称“或然率”。它反映随机事件出现的可能性大小的量度。随机事件是指在相
同条件下,可能出现也可能不出现的事件。设对某一随机现象进行了 n 次试验与观察,其中 A 事件出现了 m 次,即其出现的频率为 m/n。经过大量反复试验,常有 m/n 越来越接近于某个确定的常数。该常数即为事件 A 出现的概率,常用 P (A) 表示。
6.微积分(Calculus):微积分是数学中研究函数的微分、积分以及有关概念和应用的数学分支。它是数学的一个基础学科。内容主要包括极限、微分学、积分学及其应用。微分学包括求导数的运算,是一套关于变化率的理论。它使得函数、速度、加速度和曲线的斜率等均可用一套通用的符号进行讨论。
经过笔者的统计,以上数学知识在中职数学教学中略有涉及,具有一定的基础。
三、 程序语言的选择
人工智能技术需要编写程序实现,笔者选择 Python 语言作为教学语言。
Python 是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。Python 由于其强大的模块机制,在人工智能上有强大的优势。对于人工智能项目的每个需求,Python 都有很多相应的模块库,比如用于科学计算的 Numpy,用于高级计算的 Scipy 以及用于机器学习的 Pybrain,已经成为了人工智能时代的首选语言。
经过笔者小范围实验教学,由于 Python 语言的简洁性、易读性以及可扩展性,中职学生的学习效果比 C 语言要好。
四、 教学项目的选择
当我们开始学习编程的时候,第一件事往往是学习打印"Hello World"。人工智能也有自己的“Hello World”,就是 MNIST。这是一个非常经典的入门项目,笔者选择其作为中职人工智能课程的教学项目。
MNIST 是一个入门级的计算机视觉数据集,它包含各种手写数字图片。
MNIST 也包含每一张图片对应的标签,告诉我们这个是数字几。比如,上面这四张图片的标签分别是 5,0,4,1。在这个教学项目中,需要设计并用 Python 实现一个“神经网络”模型,用于识别图片中的数字。
通过访问 MNIST 数据集的官网“Yann LeCun's website”下载数据集,得到的数据集被分成两部分:60000 行的训练数据集(mnist.train)和 10000 行的测试数据集(mnist.test)。这样的切分很重要,在神经网络模型设计时必须有一个单独的测试数据集不用于训练而是用来评估这个模型的性 能,从而更加容易把设计的模型推广到其他数据集上(泛化)。
MNIST 中每一张图片包含 28 像素×28 像素。我们可以用一个数字矩阵来表示这张图片。
我们把这个矩阵展开成一个向量,长度是 28x28 = 784。如何展开这个向量(数字间的顺序)不重要,只要确保每张图片都采用相同的方式展开。从这个角度来看,MNIST 数据集的图片就是在 784 维向量空间里面的点, 并且拥有比较复杂的结构。这样,我们就通过之前学习的数学知识,将一个识别图片的问题,转换为一个数字处理问题,为人工智能的实验项目做好了数据准备。
五、 总结
综上所述,在中等职业学校中开展人工智能教学,应立足于“通识性、普及性”、弱化高等数学 和算法的理论细节、采用主流,高效的编程语言、选择简单、经典的实验项目,以到达国务院《新一 代人工智能发展规划》中的教学目标。
参考文献:
[1]塔里克·拉希德 Python神经网络编程 人民邮电出版社
[2]汤晓欧、陈玉琨 人工智能基础(高中版) 华东师范大学出版社