《探秘人工神经网络》教学设计
作者: 张红玉 高士娟 曹恒来
学习内容分析
“人工神经网络”一词是对人脑结构的比喻,其基本组成部分是人工神经元,大量的人工神经元按一定的层次结构连接起来就构建了人工神经网络。在搭建人工神经网络之后,还需要进行训练,调整各特征向量的权值,找到从输入到输出的最佳拟合函数,然后才能正常工作。从早期的单层神经网络到两层神经网络,再到深度神经网络,人工神经网络的结构越来越复杂,算法越来越高明,学习能力也越来越强,这既是人工神经网络的发展历程,也是本节课学生要经历的问题解决过程。在这个过程中,学生能够体验到神经网络强大的学习能力和适应能力,以及人工神经网络往深度拓展的优势,同时也能了解人工神经网络、深度神经网络、深度学习等基本概念的由来。
学习者分析
人工神经网络是从生物神经网络得到启发而建立的极简数学模型。本课的学习对象为高二年级学生,该年级学生对生物神经网络已形成较为清晰的认知,能够较快地迁移理解人工神经网络中所涉及的神经元、神经网络等相关概念,而数学知识储备也足以支撑他们领会权值、损失等关键术语的含义。但是,此阶段的学生在人工神经网络的学习过程中,仍需形象思维的支持。信息时代的学生都具有一定的信息化基础,对数字化工具的接受度较高,因此,可以借助数字化工具化抽象为具体,辅助他们理解人工神经网络的工作原理等抽象知识。
学习目标
①了解人工神经网络的基本结构,知道输入层、隐藏层和输出层的主要功能。
②知道人工神经网络的学习过程和基本工作原理,初步认识深度神经网络。
③在TensorFlow Playground上构建和训练解决二分类问题的人工神经网络。
教学过程
1.情境导入
活动1:训练基于网络相机的吃豆子游戏。
采集样本图像:每个角度拍摄50张图像。
训练神经网络:当loss值(损失值)显示出来,表示训练完成。
测试神经网络:用头部的上下左右动作控制吃豆人吃豆子。
小结:这种图像识别技术的实质是图像四分类(如图1),其背后提供支撑的是人工神经网络。人工神经网络广泛应用于图像识别、语音识别等领域。
设计意图:通过技术游戏导入,吸引学生的注意力,活跃课堂气氛,同时引入该游戏背后的技术—人工神经网络。
2.单层神经网络
TensorFlow Playground是一个在线人工神经网络演示和实验平台,可以用来观察人工神经网络是如何模仿人脑解决分类问题的,教学从简单的二分类问题开始探究。
活动2:人工解决简单的二分类问题。有两组分别标注为蓝色和橙色的数据点,分布在如图2所示的平面内,每个点都具有X1和X2两个特征。
(1)在这个空间内,怎么分开两组数据点?(如果用直线作为分界线,那么这个问题就转变为运用数学方法画一条直线将坐标平面内的两类点分开,如图3所示)
(2)在TensorFlow Playground上,调整X1和X2的Weight(权值,即分隔线方程的系数),画出合适的分隔线,如图4所示。
小结:①人工神经网络的本质是数学计算模型。②人工神经网络的基本组成部分是人工神经元,FEATURES区域的X1、X2是输入神经元,OUTPUT区域的黄蓝色块是输出神经元,如图5所示。
(3)输入神经元与输出神经元之间连接线的权值(以线条的粗细表示权值的绝对值)是可变参数,通过调整权值组合,可以画出合适的分类线。
活动3:训练单层神经网络解决简单二分类问题。
(1)点击运行控制区域的Reset the network按钮重置神经网络,去除人工调整痕迹。
(2)点击运行控制区域的Step按钮逐周期地训练神经网络,观察并记录经过不同训练周期后,人工神经网络的权值变化情况,思考神经网络能否一次得到合适的结果(如表1)?
(3)勾选OUTPUT区域的Show test data选项,观察神经网络能否准确区分测试数据点。点击数据区域的REGENERATE按钮重置数据点的分布,观察人工神经网络能否解决新的同类问题(如图6)?
(4)分析人工神经网络画分类线的过程,将其和人作类比,思考其是如何解决分类问题的?
小结:①这是一个只包括输入层和输出层的最简单的人工神经网络。输入层主要负责把数据输入到神经网络,输出层主要负责输出结果,其中只有输出层发生了计算,所以称为单层神经网络。②人工神经网络需要先经过训练,然后才能工作。训练的过程就是人工神经网络学习的过程,其本质是寻找最佳特征权值。
设计意图:虚拟实验是本课使用的主要学习方法。首先从具象化的神经网络中,通过人工分类的铺垫,引入神经元和权值,帮助学生理解神经网络的本质就是计算模型,同时抽象出单层神经网络模型。活动3是学生探索人工神经网络工作原理的关键,通过记录逐周期实验数据,观察人工神经网络寻找最佳特征权值,理解人工神经网络学习的过程。
3.两层神经网络
上面搭建的单层神经网络能对第1行第2个Exclusive or(异或)数据集进行分类吗?如果不能,该如何解决这个问题呢?
活动4:搭建并训练两层神经网络解决异或二分类问题。
(1)对单层神经网络进行扩充,在输入层和输出层之间新增一个包含8个神经元的隐藏层。
(2)把鼠标浮动在单个神经元上,就可以看到该神经元代表特征的图形化表示(如图7)。观察思考:①隐藏层神经元向输出层神经元传递的特征与输入层神经元的特征一致吗?隐藏层的8个神经元所呈现的特征一样吗?②隐藏层神经元的主要功能是什么?(从输入层获取原始特征,然后加权计算后生成新特征)
(3)点击“运行”按钮,观察该神经网络在学习过程中,隐藏层的8个神经元的权值是怎么变化的(如图8)。(经过不断的训练,有效神经元的权值会变大,无效神经元权值变小,即人工神经网络不仅能生成新的特征,而且能自己学习哪些特征有效,哪些特征无效)
小结:①这里的人工神经网络结构分为三层:输入层、隐藏层和输出层。因为有隐藏层和输出层两层神经元参与计算,所以可以被称作两层神经网络(如图9)。②隐藏层主要用来提取特征,它将上一层的输入加权计算后构成新的特征,再向下一层输出。
设计意图:单层神经网络无法对异或数据集进行分类,在输入层和输出层神经元不变的情况下,需要通过增加神经网络结构的“深度”提升神经网络的性能,从而引入“隐藏层”。通过实验帮助学生理解隐藏层能将上一层的输入加工转化成新的特征,使人工神经网络拥有特征提取能力,同时抽象出两层神经网络模型。
4.多层神经网络
上面搭建的两层神经网络能对第2行第2个Spiral(螺旋)数据集进行分类吗?如果不能,该如何解决这个问题呢?
活动5:搭建并训练多层神经网络解决螺旋二分类问题。请在两层神经网络模型的基础上,按照如表2所示的要求,尝试通过增加隐藏层及隐藏层神经元的个数解决螺旋数据集分类问题。两人一组进行实验,记录实验结果。
小结:①具有多个隐藏层的人工神经网络被称作DNN(深度神经网络)(如图10)。深度神经网络的特征提取能力强大,一般来说,深度神经网络层次越深,学习能力越强。②当层次足够深的时候,可以从其他方面来提升神经网络的性能,激活函数在提升人工神经网络性能方面起着至关重要的作用。③深度学习泛指包含多层隐藏层的深度神经网络,是通过更深的结构和更智能的学习算法,达到更好的数据处理能力的机器学习方法。
设计意图:通过控制变量法进行对比实验。实验1和实验2比较具有不同隐藏层层数的神经网络训练的运行周期数,理解深度神经网络的“深”的含义以及“深”的优势;实验2和实验3比较使用不同激活函数神经网络的训练情况,了解激活函数在提升神经网络性能方面的重要作用。
5.总结(略)
教学反思
人工神经网络的本质是数学计算模型,它的基本结构和基本原理是相对抽象、较难理解的内容。
大部分高中生缺乏相关领域的专业知识,可视化方法的运用让人工神经网络的数据输入、网络结构和结果输出变得形象直观,辅助学生理解人工神经网络的相关知识和工作原理。
笔者首先以吃豆子游戏为切入点,借助图像四分类技术游戏引入人工神经网络技术,然后以解决简单的二分类问题为主线,依托TensorFlow Playground平台,设计了活动2到活动5共四个虚拟实验,环环相扣、层层递进,引导学生在创建人工神经网络、测试分类效果中发现问题,进而通过调整参数、优化结构等方式解决问题,让学生在亲历人工神经网络的搭建、训练、调整过程后,建构起人工神经网络的结构模型与工作原理。学生在解决类似问题的过程中,不断将已有经验迁移至新的问题情境,逐步加深对相关知识的理解,进一步产生学习深度神经网络的兴趣。
点 评
近年来,人工智能的发展推动了社会各领域从数字化、网络化向智能化的跃升。人工神经网络是人工智能领域迅速崛起的一项重要技术,以此为基础的人工智能应用效果惊人,加快了全球范围内的知识更新和技术创新,也深刻地改变了信息社会中人们的生活方式和思维模式。相应的内容也迅速进入基础教育领域,但是,人工智能教育实施过程中也存在着两个方面的问题:一是学习内容过深,一些中小学人工智能教材将大量的抽象模型和理论知识直接呈现给学生,大大超过了中小学生的认知水平,导致学生对课程产生畏难情绪,失去学习的兴趣;二是停留于体验学习水平,学习活动只是进行简单的积木搭建,很少涉及神经网络的基本原理及其组成等内容。
人工智能的本质是解决分类和回归两大问题,本课以分类问题作为切入点,以吃豆子游戏导入,以解决最简单的二分类问题为主线,帮助学生理解和探索人工智能概念和人工智能底层技术。在活动2中,引导学生运用数学知识和纸笔工具进行分析和推演,把解决分类蓝色和橙色点的问题,转变成画一条直线将两类点分开的问题,从而认识到人工神经网络的本质就是数学计算模型,借助TensorFlow Playground人工神经网络在线实验平台,让学生通过手工调整特征向量x1和x2的权值来训练人工神经网络。这种运用仿真、验证等方式解决问题的过程,也正是计算思维养成的过程。
但是,当数据点在特征空间中的分布比较复杂时,通过观察和尝试画分类线是没有效率的,往往也是不可能的。因此,需要通过一些方法,让人工神经网络自己学习得到分类线,这个过程称为训练。在TensorFlow Playground中,每一个小格子代表神经网络中的一个神经元,每一条线代表神经元之间的连接。当单击运行按钮后,以线条的粗细变化表示权重的变化,线条越粗,表示权重越大,输出结果区域可看到边界的变化过程,勾选Show test data用test数据集检验分类的效果,能形象直观地呈现人工神经网络不断优化权重的训练过程。
而且,对于异或和螺旋这样复杂的数据分布,仅靠加权这种线性变换,不能准确画出蓝色和橙色点的分界线。这时就需要在输入和输出之间增加隐藏层以及每层的神经元的个数,学生只需单击加减号就可以自己搭建人工神经网络,避免了复杂的算法和冗长的代码。学生在搭建和训练神经网络的过程中,认识人工神经网络的工作原理及其基本组成,理清了神经网络与深度学习的关系。