“工程应用”导向的类脑计算实验教学研究
作者: 陈琪 何毓辉 邱亚琴
[摘 要] 针对“类脑计算与芯片”课程学生对抽象的深度学习理论理解困难且动手能力不足的情况,设计了以工程应用为导向的类脑计算教学实验:以BP神经网络为例,开发了基于深度学习的数码管数字识别实验;并在课堂上采用工程应用型一体化教学模式:在教学中以实际应用为案例,做到理论知识与工程应用结合;在训练单元采取“基础训练+项目驱动”的方式,评价方式采用过程和结果综合考核。通过该实验及教学模式的革新,学生加深了对深度学习原理的理解,熟悉了利用嵌入式平台进行“云端训练+边缘推断”深度学习工程应用的开发流程;提高了学习的主观能动性和工程实践能力。
[关键词] 工程应用型;深度学习;边缘人工智能
[基金项目] 2020—2024年国家重点研发计划重点专项项目“非易失性存算一体忆组器件与电路研究”(2019YFB2205100);2024—2027年华中科技大学教学研究项目“类脑集成电路芯片人才培养体系构建”(2023069)
[作者简介] 陈 琪(1986—),女,湖北汉川人,硕士,华中科技大学集成电路学院工程师,主要从事脑计算研究;邱亚琴(1964—),女,山西运城人,学士,华中科技大学集成电路学院实验中心副主任(通信作者),主要从事电子器件应用研究。
[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2024)24-0128-05 [收稿日期] 2023-05-26
“类脑计算与芯片”是针对微电子专业学生开设的前沿课程,课程围绕深度学习及其硬件实现展开,广受学生好评。深度学习是一门理论结合实际的学科[1],目前“类脑计算与芯片”课程教学没有相应的实验平台和实验课程支撑,纯课堂教学存在理论问题深、学生不好理解、学生动手能力不强的问题。以工程应用为导向,开设既能充分理解神经网络模型和训练算法,又关注深度学习硬件实现的实验势在必行,也符合高水平新工科创新人才培养的需求[2]。
一、研究背景
近年来,以“云端计算+边缘推断”为代表的类脑神经网络应用受到越来越多的关注,边缘人工智能(Edge Intelligence)极大地扩展了人工智能应用场景[3],引起工业界和学术界极大的兴趣[4]。谷歌、微软、英特尔、IBM等企业都开始涉足该领域,如辅助认知[5]、视频分析[6]、智慧家居[7]等。然而,边缘端设备的计算和存储能力有限,大规模神经网络模型通常采用的方案是在云端进行训练,将训练好的模型部署到边缘端进行推断。
嵌入式系统Arduino作为一种边缘端常用的处理与控制器,能够部署一定规模的神经网络。本课程实验从深度学习开发应用角度,设计了多个实验实践项目。本项目以BP神经网络的监督学习为例,利用嵌入式平台Arduino设计了数码管数字识别的实验。
教学方式上一改传统实验教学中以教师为中心、以课堂为依托的教学模式,探索和构建以学生为教学主体,以工程意识、实践技能和创新设计能力培养为核心,以工程应用为导向的新型实验教学模式。
二、实验项目的设计
(一)实验平台硬件原理与设计
实验硬件系统整体原理如图1所示。Arduino通过USB接口与上位机通信。同时利用SRAM进行存储。实验采用共阴极八段数码管,使用74HC595芯片扩展数字接口。74HC595的Q0-Q7端口分别连接到数码管的8个阳极端,通过输出电平的高低控制数码管点亮与否。
(二)实验平台软件原理与设计
实验的软件系统是整个实验的核心部分,主要分为全连接神经网络的结构设计、监督学习方式的网络模型训练测试。
1.全连接神经网络结构设计。本实验网络为具有一个隐藏层的全连接神经网络,采用误差反向传播算法的训练方式,构成了BP(back propagation)神经网络。全连接神经网络基础结构如图2所示,具有7个输入神经元,10个隐藏神经元,4个输出神经元,层与层之间的每个神经元都有权重连接,输入层和隐藏层都有一个偏置。
在全连接神经网络中,输入神经元是显示数字时每段数码管的电平高低,输入是七段数码管电平。输出神经元采用的是数字对应的4比特的二进制编码,0~9对应的是0000~1001。神经网络的作用就是将数码管的电平编码为输入后经过运算得到显示数字的二进制输出,由于输出是sigmoid激活函数[8]归一化后范围为0~1的模拟值,sigmoid函数以点(0,0.5)中心对称,大于0.5的值为“1”,小于0.5的值为“0”。因此,数码管的电平可识别出显示的数字。考虑结果的可视化,将二进制输出解码为另一个数码管的控制电平,可直观判断测试是否通过。
2.基于监督学习的网络模型训练测试。监督学习最重要的特征是其采用的是带标签的数据,利用带标签的数据训练来调整分类器的性能[9]。基于监督学习的神经网络训练目的是通过优化权重参数使损失函数最小,实验使用mini-batch梯度下降算法优化网络参数,相较于随机梯度下降法(SGD)[10]容易陷入局部最优的特点,mini-batch梯度下降算法更贴近整体的梯度,计算量更小,目前大多数神经网络的训练都采用mini-batch梯度下降算法[11]。
对于监督学习的全连接神经网络,收敛速度是一个重要的指标。神经网络训练测试原理如图3所示。在训练中隐藏层和输出层激活函数均采用sigmoid函数,权重以及偏置的初始化方法是对以0为中心,标准差为(nin)-1/2的截断正态分布中抽取样本[12]。
3.网络模型的导入部署。在PC机中利用TensorFlow模块搭建全连接神经网络模型,使用反向传播算法对模型进行训练。将训练好的模型权重参数写入Arduino工程文件,并根据Arduino芯片支持的数据类型,执行了浮点小数向定点小数的转换,然后在Arduino工程文件中调用上述权重参数构建神经网络的前向传播过程,将编写完成的Arduino工程文件写入Arduino的SRAM中,即可利用Arduino处理器执行神经网络的前向传播运算,见图4。
4.实验结果。神经网络超参数设置的不同对其收敛速度影响较大,实验探究了隐藏神经元数量、输入编码及输出标签三个参数值对收敛速度的影响并进行优化。
经实测分析和优化,最终选定隐藏神经元数量为10,输入以-1,1编码0,1,输出以0.4,0.6编码0,1时,既能保证Arduino开发板算力,又能较大程度改善神经网络的性能。此时训练1 400次,即可达到训练准确率为100%。
三、实验项目的实施——工程应用导向的实验教学模式
实验项目的实施采用工程应用导向的新型教学模式。其核心内涵是“案例教学—目标训练—评价”三个环节。以工程应用为案例涵盖教学内容,充分调动学生的主观能动性,大力提倡问题启发式、讨论式的教学方法,鼓励学生积极思考参与。拓展多媒体视频、网上资源等多方位教学手段,鼓励学生通过自主学习查阅解决相关问题。实验训练环节改变原有“原理验证”的模式,即只关注整个工程应用的原理,缺乏工程实践操作流程的整体认知。现在革新为以工程应用为目标的训练,项目驱动环节以工程项目完整的操作流程为训练任务,鼓励学生自行设计,培养学生的工程意识、创新意识和能力。评价环节结合过程和结果从实践技能、自学能力、创意性、工程项目完成度评价学生的综合能力。整个课堂始终将学生置于学习的主体地位。
(一)工程案例的确定
工程案例的选择是否恰当是教学关键。要依据教学内容选择工程应用场景,难易程度适中。案例中既要包含教学的基本知识点,又要贴近生活实际,从而激发学生的兴趣,调动他们解决问题的积极性。“类脑计算与芯片”是面向大三微电子和集成电路专业学生开设的前沿探索课程。教学的主体内容是深度学习及其硬件实现。我们在设计课程实验时,以智能驾驶为应用场景,探讨深度学习相关理论如何实现车道保持、交通标志牌识别、行人避让等功能。通过提出一系列专业问题,例如,交通标志牌识别中“深度学习哪一方面的应用能实现交通标志牌识别功能?(图像识别)”“图像识别对应的知识点是什么?(卷积神经网络,监督学习)”“如何搭建卷积神经网络模型?”“如何进行模型训练?”“智能小车需要有哪些结构?”“智能小车实现上述功能需要哪些操作流程?”,循序渐进地引导学生思考讨论求知。通过将理论问题延伸到实际工程应用,避免了单独讲授出现枯燥、难以理解的教学局面,也使具体的理论知识自然融入实际工程应用。在学生理解神经网络原理的基础上,简单介绍针对具体问题的神经网络模型的建立,如何完成训练及在嵌入式芯片上实现功能,了解完成一个实际工程应用的全过程。
(二)实验训练的方式
实验训练环节采用“基础训练+项目驱动”的方式。以“数码管数字识别”为例,基础训练即按照深度学习工程项目开发流程“云端训练+边缘推断”方式,完成仿真环境下的数字识别训练,理解实验原理;后续写入嵌入式芯片,搭建数码管数字识别电路,完成实际应用;实验平台硬件包括PC机配置、Arduino开发板、74HC595芯片和数码管,实验软件平台包括TensorFlow、编程语言Python。项目驱动环节学生自主命题,结合数码管数字识别这一功能,自行设计应用场景,鼓励学生大胆创新、体现创意。对优秀的团队以“大创项目”的方式,从“课内向课外延伸”,开发一个完整的工程应用项目。
(三)实验课程评价方式
课堂的教学目标在于以学生为主体,培养其实践技能、工程意识和创新能力。考核方式也相应地进行了改革,采用过程和结果综合考核的方式。“评价”环节包括工程应用的完成度、训练过程体现的熟练度、自主学习查阅的能力。工程应用的完成度体现在功能要完整,要符合现实使用情况。训练过程体现的熟练度体现在电路接线是否规范,通信设置是否正确,程序的编写编译运行下载调试是否熟练掌握。自主学习查阅的能力体现在团队能否通过沟通讨论查阅资料独立解决问题。实验室积极创设了学习资料和协作环境,提供了学习视频和开源电子资源,《类脑计算实验指导手册》编制了基础训练的任务和程序包。授课过程只介绍基本原理和工程应用的操作流程,训练过程中全程自主完成,并能自学运用教师没讲过的新指令的学生自主学习能力越强。
结语
“类脑计算与芯片”课程实验革新传统教学模式,以工程应用为导向,完成BP神经网络的数码管数字识别实验,阐述了边缘人工智能应用开发的流程“云端训练+边缘推断”;学生可充分理解原理并运用于实践。后续总体设计了基于卷积神经网络的交通标志牌识别,基于强化学习的车道保持等相关实验实践项目。这样的实践项目和教学方式极大地激发了学生的学习热情,也锻炼了学生的综合工程实践能力,为后续更复杂的神经网络算法及其硬件实现的学习和工程开发应用打下坚实基础。
参考文献
[1]胡越,罗东阳,花奎,等.关于深度学习的综述与讨论[J].智能系统学报,2019,14(1):1-19.
[2]李德毅,马楠.智能时代新工科:人工智能推动教育改革的实践[J].高等工程教育研究,2017(5):8-12.
[3]ZHOU Z, CHEN X, LI E, et al. Edge intelligence: paving the last mile of artificial intelligence with edge computing[J].Proceedings of the IEEE,2019,107(8):1738-1762.
[4]莫梓嘉,高志鹏,苗东.边缘智能:人工智能向边缘分布式拓展的新触角[J].数据与计算发展前沿,2020,2(4):16-27.
[5]HA K, CHEN Z, HU W, et al. Towards wearable cognitive assistance[C]//Proceedings of the 12th annual international conference on mobile systems, applications, and services,2014:68-81.