回家划水了一周有半,开始学习。教材链接:
这里还找到一个在线阅读版,打开比较慢。
本书的内容极其丰富,所以做阅读笔记不能如以前那样细致,很多我认为比较trivial的章节会直接跳过。闲话少说我们直接开始。
概念
先介绍几个概念:
Objective: A quantitative measure of the performance of the system under study.
目标函数用数值来衡量优化的效果。
Variables: certain characteristics of the system that the objective depends on.
变量指的是那些可以改变目标函数值的东西。
Constraints: Ways that variables be restricted.
限制条件限制变量的取值。
Modeling: The process of identifying objective, variables and constraints for a given problem.
将一个具体问题抽象成目标函数、变量与限制条件——一个数值问题的过程,称为建模。模型不能太简单也不能太复杂。
Optimization algorithm: An algorithm used to find the solution of the model.
建模完成之后,我们用优化算法来求解。
除此之外还有一些别的名词,各位同学可以细读教材来掌握。我认为学习所有数学相关的内容时掌握基本概念都是很重要的,而我掌握这些概念的方法就是先highlight他们,在之后的阅读中再慢慢地思考这些概念对应着什么。
Mathematical formulation
首先给“优化”一个mathematical speaking的定义:
Optimization is the minimization or maximization of a function subject to constraints on its variables.
所以说优化问题是一个不等号问题,此时此刻我们的脑海中应该已经浮现出了很多工具了。上面提到了一个subject to,很多时候缩写为,所以此非彼。
下面几个定义注意区分标量和矢量:
是变量构成的向量,也叫unknowns或parameters
是目标函数,是一个标量函数。我们的目标是寻找目标函数的最大(最小)值。
是限制条件(限制方程)。的取值必须满足这些方程。
这里要注意区分优化问题与LP问题。优化问题的目标函数不一定是线性函数,限制方程不一定是线性方程。但是由于不论如何二者的变量都可以看作是中的点,故可行域的概念是一样的。
在此假设同学们了解一些线性规划的知识。当限制条件非线性时,可行域的边界由平面变为曲面;当目标函数非线性时,函数的等值面(contours of )由平面变成曲面。
书中给出了一个优化问题的标准形式:
根据与的性质:线性、非线性、凸等可以将问题分类为线性优化、非线性优化、凸优化等。根据变量的多少可以将问题分为大问题(large scale)和小问题。
Continuous versus discrete optimization
这一部分讲到了连续优化与离散优化。我们在了解一个方法的时候要清楚它可以解决什么问题。数学中定理的条件不是随便给的,这些条件往往对应着一些特定的问题。特殊问题的解法不能解决一般的问题。
回到主题,很多时候变量的取值只能是整数或者binary(即0或者1)值,比如需要多少人或者是否需要某种东西。除此之外还有可能将一个有序集的排列也当作变量。此时称优化问题是离散的。
连续问题的可行域一般是不可数无穷的;离散优化问题可以理解成极端的非凸优化问题。虽然凸优化的定义我们还没有了解过,但但就是根据凸集的定义也会觉得这是很直观的。
之后几个部分各位同学可以自己看一下,大概讲了一下本书中哪些部分不讲(雾。
Convexity
凸性是优化理论中非常fundamental的一个概念。理论和实际中,很多问题都因为具有凸性而得以轻松解决。
集合和函数都可以具有凸性,其定义与数学分析中一样。函数是凹(concave)的当且仅当是凸的。
书上第8页提到了凸规划的定义,之后肯定会再讲所以这里不多说了。
Optimization algorithm
优化算法是迭代的,一般都有一个initial guess of the variable,然后再一步步地优化这个解(迭代),直到这个程序停止。迭代的每一步可能会用到上一步变量、函数的值,函数的各阶导数甚至更多信息。好的算法需要有三个性质:
鲁棒性(Robustness): 算法需要在同类问题中广泛适用,对初始值的选取不应过于敏感。
高效性(Efficiency): 算法不应消耗过量的电脑资源。
准确性(Accuracy): 算法不应对数据与(由计算机精度引入的)计算误差过于敏感。
这几个要求有时无法考虑周全。
下一章开始学习无限制条件优化(Unconstrained optimization)的基础。其定义在本章有讲到,在继续之前可以看一眼。
网友评论