数学建模 - 数学模型
一、总论
无论是数学建模比赛,还是数学建模课,我都太过于关注工具的使用了,经常因为学会了 matlab 的又一高级特性或者 python 的又一个库而兴奋半天,但是实际上一点有用的知识都没有学习。
数学建模,重要的不是计算机,或者是某个方法,换句话说,解决问题不是数学建模的精髓,将实际问题抽象成一个数学问题,即 “建模” 的过程,才是本质。我们学习诸多的方法,不是为了学习其原理,而是为了拓展视野,意识到原来还可以这样建模。
无论是数学建模比赛,还是数学建模课,我都太过于关注工具的使用了,经常因为学会了 matlab 的又一高级特性或者 python 的又一个库而兴奋半天,但是实际上一点有用的知识都没有学习。
数学建模,重要的不是计算机,或者是某个方法,换句话说,解决问题不是数学建模的精髓,将实际问题抽象成一个数学问题,即 “建模” 的过程,才是本质。我们学习诸多的方法,不是为了学习其原理,而是为了拓展视野,意识到原来还可以这样建模。
回答 4.1.5 疑问中的疑问,
问题 1 —— 第二个矩阵计算为何出错,
问题 2 —— MAC.v 是否有修改的必要
第一个矩阵出错的原因是在第二个矩阵计算中,在第一个矩阵中涉及到了负数
[[ 111, 25, 32, 66, -12, -99, -28, 16, -95], |
动态规划具有以下三个明显特性:
虽然这三个特性都被称为 “动态规划” 的特性,但是 “无后效性” 和 “最优子结构” 并非是动态规划的专利。对于 “无后效性”,应该是所有的分治算法都具有这个特性,如果我们必须掌握子问题的求解过程,那么显然我们就没必要将大问题分治为小问题。对于 “最优子结构”,虽然 “最优” 二字将问题划定成了 “最优化算法” 的范畴,但是如果扩充最优化的定义,会发现依然几乎所有分治算法都满足具有最优子结构的定义。
这篇文章写得实在是太好了图解链接 。
这两种东西是不一样的,np.array 也可以有多维,但是它的 * 就是点对点乘法,而 @ 是点乘。但是对于 np.matrix 来说,无论是 * 还是 @ 都是点乘,sp.Matrix 同理。有如下演示
这次作业的神经网络是比上一次作业复杂的,上一次作业是 “多层感知机(MLP)”,这一次的作业是 “卷积神经网络(CNN)”。运算从原来的矩阵乘法变成了卷积,网络结构也更加复杂,所以这次的作业是允许使用框架的。
这次作业的难点本质上是对于卷积网络的理解上,TensorFlow 可以提供卷积的计算方式还有后窥修正,所需要书写的只是网络结构。次难点是 TensorFlow 的工作机理,其实一开始做的时候如果能对 TensorFlow 有一个好的理解,写起来大概 40 分钟就够了(但是学习上面这俩东西花了整整一天)。