数学+AI兴趣小组基于数学课程内容中的核心知识点,开展与人工智能技术的连接扩展,依托Matlab、Python、C++等编程工具,制定分阶段实践内容,让学生感受数学知识在未来应用实践中的作用,同时增强学生学习数学知识的兴趣和热情,凸显数学核心课程的价值。
数学教学内容改革(补充)
一、目的和意义
目标:
基于以下数学内容中的核心知识点,开展与机器学习(或其他人工智能课程)的连接,提前让学生感受数学知识在未来实践中的应用,同时增强学生学习数学知识的兴趣和热情,凸显数学核心课程的价值。
过程:
1.院内、班级宣传,召集学生参与,可以通过组成兴趣小组的形式,实现数学实践小组的划分。或者以兴趣班的形式召集整个年级开展。预估70人左右参与。
2.与数学课程负责老师沟通,掌握学生数学内容学习的程度,结合其他课程,如Matlab、Python、C++编程等,制定分阶段实践内容。
3.学育导师和实践老师(刘日升、张平平等,可添加)在学生课程学习阶段(最好是刚学习完对应的核心知识点后),召集兴趣小组或整个年级,开展数学基础理论回顾,简要讲解机器学习对应内容,布置相应的探索性质的应用实践。
4.在规定的时间内(可能最多一星期,甚至几天内),要求学生查找资料,进行数学理论在相应任务上的探索,形成PPT 或者代码等素材,进行分组汇报。
5.教师点评和讲解(可以邀请深度学习、机器学习、Python编程等相关老师一起),答疑解惑。重点是帮助学生理清思路,通过理论和技术引导,使学生弄清楚数学课程中学习到的理论是如何套用或者应用到实际任务中的。
考核:
1.评分机制(100分制):重点考核学生对数学知识点的掌握程度、对机器学习问题的理解程度、能否利用数学理论解决简单的机器学习问题,同时结合机器学习任务进行代码实现和提交,最后结合PPT的讲解、讨论的积极度等打分。写报告,写代码,做演讲,这三部分4:4:3。
2.奖励机制:。。。。
成效:
1.激发学生学习数学的热情,让他们提前接触未来可能遇到的问题,促进数学课程的学习,避免产生两张皮的结果。
2.保存相关材料资源、录制视频,构建数字文库,供后续生源使用。
二、核心课程—知识点—对应实战
1. 高等数学课程
函数论:
函数、极限-泰勒展开式、连续性与导数(梯度)、偏导数、方向导数
实战1:XGBoost的优化。
实战2:梯度下降法(对应SGD/RMSprop/Adam)、拉格朗日乘子法求函数的最小值。
微积分:
定积分、牛顿-莱布尼兹公式
实战1:利用离散积分模拟卷积过程。
曲率及网格编辑
2. 线性代数课程
向量、矩阵、行列式、矩阵的秩、内积正交
实战1:最小二乘线性回归、几何解释过程。
特征值、特征向量、特征分解、奇异值分解(SVD)
实战1:利用SVD 对图像进行压缩(数据降维/人脸识别)。
实战2:利用SVD 推荐商品。
3. 最优化课程
线性规划,单纯形方法,灵敏度分析、多元线性回归
实战1:股票价格预测。
实战2:个人医保费用预测。
最优性条件,KKT条件、使用导数的优化方法
实战1:利用SVM实现二分类、多分类。
实战2:利用牛顿法、共轭梯度法实现卷积权重的学习。
4. 概率统计课程
条件概率、独立性、随机变量、边缘分布
实战1:计算Softmax的概率分布,标签光滑原理。
大数定律、中心极限定理、贝叶斯估计、最大似然估计、最大后验估计
实战1:用户满意度预测。
实战2:最大似然法求解模型参数。
实战3:垃圾邮件分类。
实战4:条件随机场实现图像分割。
正态分布、二项分布、泊松分布、均匀分布、卡方分布、Beta分布
实战1:估算棒球运动员的击中率。
实战2:Dropout正则化方法。
假设检验、Z检验、T检验、卡方检验
实战1:男女生体检数据的假设检验。
实战2:种族对求职是否有影响。
相关分析、皮尔森相关系数、斯皮尔曼等级相关、方差分析
实战1:利用皮尔逊相关系数进行特征选择。
实战2:连锁餐饮用户评级分析。
三、操作样例
1.数学理论
回顾:函数极限标准定义:设函数f(x),|x|大于某一正数时有定义,若存在常数A,对于任意ε>0,总存在正整数X,使得当x>X时,|f(x)-A|<ε成立,那么称A是函数f(x)在无穷大处的极限。
设函数f(x)在x0处的某一去心邻域内有定义,若存在常数A,对于任意ε>0,总存在正数δ,使得当|x-xo|<δ时,|f(x)-A|<ε成立,那么称A是函数f(x)在x0处的极限。
2.机器学习原理
切入:XGBoost的优化
首先,给学生讲解XGBoost的基本原理
接下来,可以让他们思考下,为什么要对目标函数做二阶泰勒展开呢?
基于此,我们思考XGBoost使用二阶泰勒展开的目的。
这里其实有两个问题,为什么做泰勒展开?为什么是二阶?
在公式(3)中,最后得到的目标函数是一个二次函数,二次函数好处是非常方便求极值。
那么,如何得到这样的一个二次函数呢?
如果按照最小二乘法推导,直接使用MSE损失函数,即使不做泰勒展开,XGBoost的目标函数展开就是一阶项+二阶项的形式,同样能够得到(3)的式子。
然而,其他类似这样的目标函数,就不能表示成这种形式。这个时候,将目标函数进行二阶泰勒展开,就可以复用后续的推导。也就是说,通过二阶泰勒展开,我们可以自定义损失函数,只要二阶可导即可,增强了模型的扩展性。
进阶:梯度下降法
引入盲人下山,我们目标是最小化损失函数,参数迭代公式为:
3.代码实践
代码可以是Matlab、Python、C++编程,实践导师给出某种语言的标准代码,最后给学生讲解,供学生参考。