2020年我自己希望多看一些基础的理论知识,包括优化理论、微分方程等,重点先从Convex optimization开始看吧。另外,还会多写一些应用算法的基本知识,比如一些经典计算机视觉知识,以及一些新的NLP网络的概念知识。平时时间有限,加油吧!
先从非常经典的《Convex Optimization》开始。其实这本书对我来说有点厚,本身做工程项目研发,太理论的知识用不上。学习这本书的主要目的是理解一下凸优化的基本概念,方便在读一些Paper的时候可以基本看懂理论部分在讲什么。我先计划学前面几章
第一章 Introduction
优化问题的数学定义:
是目标函数,
是不等式约束函数,如果对任意满足约束的向量
,有
,那么称
为优化问题的最优解。
非作者注:general optimization problem是很难求解的,特别是非凸,以及带约束的优化问题求解,都是比较复杂的。我们现在常用的神经网络优化求解,大部分是无约束的非凸优化,即使一些有约束的问题,往往也是做一些放松,然后加到loss function里面去,看成一个整体function来求解。
凸优化问题
本书主要介绍凸优化问题,定义是:对于目标函数以及约束函数都是convex的优化问题,称为convex optimization问题。
本节简单介绍两个非常常用的凸优化例子:最小二乘问题和现行规划问题。
最小二乘问题
基本最小二乘问题特点是:没有约束条件(
),目标函数是若干项的平方和,每一项的形式是
,写成矩阵形式:
这个就是基础线性回归模型,一般写成
,最小化目标是就是(求解是最基础的,E对x求导=0,得到x*):
还有加权最小二乘问题,我们最小化加权的误差值:
其中,加权系数
均大于零,表示每一个子项的重要程度,在统计应用中,当给定的现行观测值包含不同方差的噪声时,我们用加权最小二乘来估计向量x。
在线性回归模型上加上一个变量的L2-norm,是一种常见的正则化技术:可以避免x的数值过大,过大时惩罚项会较大。最小化:
其中 。
线性规划问题
虽然线性规划问题一般没有解析解(也有叫做闭合解,closed form),却存在很多有效的求解方法,包括Dantzing的单纯形法以及内点法,(非作者注:这些都是很经典的优化方法,平时我也很难用到,先mark一下,后面有需要的时候找资料看,本CVX书后面算法部分重点介绍了内点法,似乎作者Stephen Boyd特别看重内点法)。
一个优化问题例子:最佳灯源问题
有m盏灯,要照亮n个板子,每一块板子的光照强度公式如下,是所有灯功率的一个加权和。
问题:在灯的功率限制范围内,达到给定光照强度
,给出最接近的功率方案。
这个目标函数挺有意思,先max,后min——意思是说首先对每一个板子k都检查一下光照强度,是否偏离目标 ,偏离程度中最大的那一项,我们要最小化它的值,所以相当于我们要求每一个板子k的光照强度都尽可能地和目标 接近。怎么解这个优化问题呢?
方法有很多,最后5是构造了一个凸优化问题,有了这个形式以后就可以用一些成熟的凸优化方法来求解,本章节不介绍。
非作者注:很多问题如何构造成一个凸优化问题往往是最难的,如果能构造出来,那么基本上就是认为可以比较容易求解了。
Chebyshev逼近问题,转化成线性规划
再给一个例子:
其实和上面点灯的例子很像,但又不完全一样。原始min-max问题可以认为是让现行回归的值
和
尽可能接近,因此引入一个误差的bound t,限制条件很容看到可以转化为
虽然
,但实际上我们可以看到
,否则上面限制条件就不成立了。因此
和
可以看成是
的一个对称的上下界,我们最小化这个界,就是让值
和
尽可能接近,因此(1.6)和(1.7)是等价的。
第一章就是简单介绍,主要是一些概念,就讲到这里。下次是第二章。
参考资料
[1] Convex Optimization, Stephen Boyd, Lieven Vandenberghe
[2] ECE236B - Convex Optimization (Winter Quarter 2019-20)
[3] ECE236C - Optimization Methods for Large-Scale Systems (Spring 2019)