美国高中数学
国内高中有不少已开设了人工智能课程。我个人观点:中学生与其学具体的深度学习框架或编程技巧,不如花时间学些机器学习所依赖的基本数学方法。例如,作为对比,来看一门真实的美国高中数学课(不是必修课)。这门课所讲的就是机器学习中很重要的最优化方法,对学生未来进入机器学习领域特别有价值。
另:通常认为中国中小学数学很难,美国中小学数学很容易。可在美国,对数学有兴趣的学生并不受这个规律的限制。大家可以翻翻下面的课程大纲,看其中有多少内容是自己在高中时就能搞懂的。
课程名称
最优化或数学规划(Mathematical Optimization)
课程背景
这门课程最早是由库比蒂诺高中(Cupertino High School)的数学老师Julia Roberts(大明星茱莉娅·罗伯茨?Julia编程语言?似乎无关)和斯坦福大学航空航天教授Mykel Kochenderfer在2014年联合设计的。
课程目标
增加学生与应用数学领域前沿问题的接触机会,包括最优化(Optimization)方法以及相关的编程技能;
增加对STEM(科学、技术、工程、数学)感兴趣的学生数量与类型;
为学生未来的STEM学习打下更好的基础。
直观感受
详细展开课程大纲前,看几张课件截图,大家直观感受一下这门课的难度:
课程结构
课程一共有五个单元。前三个单元只要求学生代数基础扎实,且拥有安装了Julia编程语言的电脑。最后两个单元需要Calculus AB水平的微积分知识。整个课程的教学时长估计在23周左右。
(按:有关Calculus AB水平,一位中学时就是美国学霸的朋友这样解释说,“Calculus AB是屌丝Calculus,我们学霸当年都瞧不起的,正经的都学AP Calculus BC。”)
课程大纲
(按:翻译仓促,外加一些专业术语在中文世界不统一,以下部分错漏难免)
第一单元:导论
1.1 最优化:关于课程的概述
1.2 矢量:定义和应用
1.3 迭代和递归1:定义和例子,包括斐波那契数列程序
1.4 迭代和递归2:割线法(Secant method)
1.5 迭代和递归3:寻找包含最大值/最小值的三点区间
1.6 Julia编程语言初步:如何获取,基本运算
1.7 Julia的 If-Else 结构,测试条件
1.8 循环结构:Julia的for循环和while循环
1.9 数组:定义,命令和运算
1.10 割线法:学生编写割线法求解方程的程序
第二单元:无界(Unbounded)情况下的最优化,无微积分基础
2.1 导论:定义,局部最优值和全局最优值
2.2 三点区间:学生编写寻找三点区间的程序
2.3 局部最小值,暴力搜索法(Brute Force):学生编写暴力搜索法寻找局部最小值的程序
2.4 局部最小值,黄金分割搜索法(Golden Section intervals):学生编写黄金分割搜索法寻找局部最小值的程序
2.5 局部最小值,斜率法:学生编写斜率法寻找局部最小值的程序
2.6 最大化和最小化:学生把寻找最小值的程序修改为寻找最大值的程序。
2.7 全局最小值,测试点法:通过在一个区间上的测试点寻找全局最小值
2.8 全局最大值,锯齿法(Shubert-Piyavskii方法):函数曲线的斜率,寻找全局最大值的锯齿法
2.9 三维空间的最优化问题概论:两个自变量的函数,三维作图
2.10 三维曲面的最小值,暴力搜索法:两个自变量时的基本最小化技术
2.11 Hooke-Jeeves模式搜索法
2.12 循环坐标(Cyclic Coordinates):截面,循环坐标搜索法(按:请参考坐标下降法Coordinate Descent)
2.13 扩展:最大化,四维空间中的三自变量问题
2.14 随机方法1:定义,收敛,蒙特卡洛方法
2.15 随机方法2:模拟退火算法,遗传算法
第三单元:线性规划
3.1 约束最优化(Constrained Optimization)概论:约束(Constraints),可行域(Feasible Region),角点(Corner Points)及图示
3.2 矩阵运算:基本运算,矩阵的逆
3.3 高思消元法(Gaussian Elimination,Row Reduction):Julia中的数组命令,使用高思消元法
3.4 线性规划导论:单纯形法(Simplex Method)
3.5 单纯形法:转轴操作(Pivoting)
3.6 单纯形法:选择顶点(Pivot)
3.7 两个完整问题:柠檬汁问题和农场问题
3.8 通过构建对偶(Duality)来解决最小化问题:构建对偶矩阵
3.9 非标准约束下的最优化问题
第四单元:无界情况下的最优化,有微积分基础
4.1 基于微积分的最优化:概论,数值微分(Numerical Derivatives)
4.2 辛普森积分法(Simpson’s Rule)
4.3 牛顿法(Newton’s Method)求根
4.4 Julia编程语言的包,锯齿法
4.5 基于微积分的函数作图(Curve Sketching):函数作图中的一阶和二阶导数
4.6 用函数的凹凸性(Concavity)验证最大值/最小值
4.7 梯度(Gradients):两个或多个自变量时的微积分,梯度的概念,寻找梯度
4.8 梯度的应用:梯度的计算,梯度的含义
4.9 两个或多个自变量时的二阶导数:黑塞矩阵(Hessian matrix)
4.10 黑塞矩阵的应用:行列式,特征值,凹凸性
4.11 基于梯度的最优化1:最陡下降法(Steepest Descent),使用Julia的微积分包
4.12 基于梯度的最优化2:共轭梯度法(Conjugate Gradient)
4.13 扩展:最大化,全局最大值/最小值,四维或更高维度
第五单元:约束最优化,有微积分基础
5.1 导论:背景,为两自变量问题构建和绘制可行域
5.2 非线性约束最小化:基础,下降方向与可行方向锥(Cone)
5.3 非线性约束最小化,阶段1:使用最陡下降法
5.4 非线性约束最小化,阶段2:矢量归一化(Normalization)和角部区域(Corner Regions)
5.5 非线性约束最小化的完整过程
5.6 惩罚函数法(Penalty Functions):利用平方损失函数(Quadratic Loss Functions)求解最优化问题
5.7 内点惩罚函数法(Interior Penalty Functions):利用内惩罚函数(Barrier Functions)求解最优化问题
5.8 帕累托最优(Pareto Optimality):帕累托集(Pareto front),帕累托改进(Pareto improvements)
5.9 马尔可夫决策过程(Markov Decision Process,MDPs):马尔可夫性质(Markov Property),马尔可夫决策过程,部分可观察马尔可夫决策过程(Partially Observable Markov Decision Process,POMDPs)
课程链接
课程全部课件、源码、工具、参考资料都在文章最后的【阅读原文】链接里,需要者请自取。