以编程为核心的机器学习课程教学方法
2022-04-16肖宇
肖 宇
(上海对外经贸大学统计与信息学院 上海 201620)
0 引言
随着大数据与人工智能时代的到来,业界对数据分析相关人才需求激增。数据挖掘、机器学习、统计学习、深度学习和数据库管理等数据分析与处理核心课程备受重视,各高校非计算机类学科也积极跟进,重新布局针对新时代背景下的培养方案。在此背景下,有针对性地重新思考数据分析相关课程的教学方法非常有必要。
机器学习主要研究如何基于计算机自动学习现实世界规律,从而实现对现实场景的解释与预测[1]。机器学习模型与算法是实现人工智能的基础之一,理解其核心概念与背后的理论基础具有基础性意义。相应地,机器学习课程的教学任务重点帮助学生理解机器学习算法背后的前提假设、训练目标、实现过程以及适用场景等。如何在有限学时内完成以上核心内容的有效传递是一个难题[2]。
常用的机器学习教学方法主要从数学角度讲授机器学习算法的模型形式、训练目标、求解算法和应用场景等,缺乏对算法编程实现过程的深入解析。因此可以围绕编程实现展开课程教学,以一种互动的形式传递机器学习模型与算法的核心内容。以下内容首先介绍以编程实现为核心的机器学习教学方法流程,然后通过案例展示了该流程,最后对本文内容进行总结。
1 以编程实现为核心的机器学习教学方法流程
对于算法学习而言,通过某种编程语言实现算法是掌握算法的必要前提之一。因此,提出以编程实现为核心的机器学习教学方法。需要注意的是,以编程实现为核心的机器学习教学并不否认其它环节的重要性,而是强调算法学习的检验与反馈。
以编程实现为核心的机器学习教学方法包含以下流程:
(1)算法的相关概念,即用于算法模型决策可靠性的直觉?算法属于什么类别?算法可以解决什么哪些问题?以线性回归模型为例,该模型来源于经验时间的事件之间的简单影响关系,属于回归模型,可以解决对因变量的预测问题。
(2)算法的数学形式,即如何形式化表示机器学习算法?线性回归模型可以利用向量形式简洁地表示出来,假定了输入变量与输出变量之间存在线性关系,在满足一定条件下可以推断出变量之间的影响关系。在该环节,可以基于不同的编程模式构建线性回归模型,例如基于循环或者基于向量运算计算自变量与权重之间的乘积。
(3)算法的决策准则,即如何算法的目标函数是什么?线性回归模型的决策准则通常包含两种,一种为最小化均方误差,另一种为最大化似然率。从最大化似然率出发,通过一定的数学推导,可以得到与最小化均方误差相同的决策目标函数。在该环节,基于决策准则的数学形式构建函数。
(4)算法的求解方法,即采用何种优化算法寻找决策准则下的最优解;线性回归的求解算法大致可以分为封闭形式解和数值形式解,给学生解释为什么需要利用数值形式迭代逼近最优解。在该环节,分别构建封闭形式解的求值代码,以及数值形式的求值代码。
(5)算法的集中测试。在完成以上对应函数的构建之后,构建人工数据集以测验模型和方法的正确性。具体而言,可以设定输入参数值,经过程序求解过程后验证是否可以推断得到该参数值。
算法的编程实现贯穿于步骤(2)至(5)。其中,前三个步骤中程序与算法数学形式相互印证,以达到从两个角度共同讲解算法,进而加深学生对关键概念理解的目的。步骤(5)结合具体的数据集,检验模型的整体实现。
2 案例:以线性回归为例
为了更加具体、形象的呈现以编程实现为核心的机器学习教学方法,以下以线性回归模型的教学过程为例进行简要说明。算法的Python实现涉及第三方库pytorch。使用pytorch的:
(1)算法的相关概念。线性回归输出是一个连续值,因此适用于解决回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。
(3)算法的决策准则。均方误是回归任务中最常用的性能衡量指标,因此可以让均方误差最小化:,其中m为样本数量。令,对求导可得。算法实现如下:
(4)算法的求解方法。现实任务中f(XTX)往往不是满秩矩阵,而且随着数据量的增加,计算量呈现大幅增长。因此,往往使用梯度下降算法迭代求解。算法实现如下:
(5)算法的集中测试。结合函数linearModel和加入扰动项生成测试数据集,用于验证算法流程的正确性。过程如下:
最后,如果程序运行成功,且估计值与[2,-3.4,4.2]相差较小,则说明流程的正确性;否则,需重新通过单元测试检查程序各环节。
3 结论
本文提出了一种围绕编程实现的教学方法。该方法包含算法的相关概念、算法的数学形式、算法的决策准则、算法的求解方法和算法的集中测试等关键步骤,其中算法的编程实现贯穿在步骤2至5。从学生的整体反馈而言,该教学方法言之有物,可以加深了对机器学习算法的理解。