这学期博主想凑一门3学分的课,选课时一看有门《应用数学》,心想应用数学经常听到,感觉会是比较简单的数学,于是没怎么细想就报了。结果没想到遭报应了。
应用数学与其说应用,不如说是纯数。且知识跨度相当大,从集合论到泛函,从图论到优化,从组合数学到离散数学,无所不穷其极。更折磨的是,这门课的考勤率是100%,且每一周都有一次课堂作业,每三周又有一次课后习题,简直令人瞠目结舌。
但是不得不说,应用数学所研究的内容,都很有应用场景。在学习的途中,我常常会想到这个和机器学习算法或者线性代数领域有诸多异曲同工之处。具体来说有以下几点:
Banach压缩算法是一个压缩算法,一个迭代算法如果能构造出Banach压缩,那其解便具有唯一性和收敛性。一个典型应用是根据雅可比矩阵的无穷范数性质,来快速判断线性方程组解的存在性和迭代收敛条件。
变分法是我觉得很有趣的一个知识点。有趣,不仅在其诞生的故事是那么生动(牛顿匿名信解最速降线),更在于它可以巧解很多物理问题,甚至可以用来证明两点之间线段最短,非常“应用”。这个也许可以应用在高性能计算与工程问题结合的地方,目前纯线性代数还没有应用的场景。
最优化理论是和机器学习领域相关性最强的部分。在此之前我还没有对收敛速度、共轭梯度这些概念的了解。在看到一维搜索的时候,我就想到机器学习中的梯度下降迭代,只不过机器学习中使用的下降步长是一个固定值,而一维搜索是直接沿着梯度找到最优解,最优解的求解可以通过斐波那契法或者黄金分割法收敛迭代得到。而对于求多元函数极值,在之前学习机器学习的时候,我只知道有各种的梯度下降法来求极值,如随机梯度下降,无外乎都是只计算函数的梯度.......而应用数学提供的方法五花八门,有牛顿法、阻尼牛顿法、拟牛顿法、FR共轭梯度法。这些算法有的只计算梯度(梯度等于泰勒展开的一次项),有的还需要计算海森矩阵(泰勒展开的二次项),不同算法的收敛速度、内存开销、计算复杂度各有优劣。
这么一想,报这个课也算有用,尽管这些方法在实际工程中已经不再使用,但无疑大大拓宽了博主的视野。