最近花了点时间读了Prateek Jain, Purushottam Kar写的Non-convex Optimization for Machine Learning。
本书主要讲了非凸优化的一些基本算法以及求解具体问题。
第一章概述和基本工具
一、概述
一般的优化问题:Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理 ,对于机器学习,f可以是对应问题的损失函数。
当目标函数核约束集都是凸的时候称为凸优化问题,当两个中有一个不满足凸性,称为非凸问题。书中主要介绍两种非凸情况:1)f(x) 凸,C非凸;2)f(x) 非凸,C凸。
为什么要研究非凸问题?
一些学习任务的自然目标是非凸函数。(例如训练深度神经网络,张量分解等)非凸的模型对问题描述比较准确,但求解算法比较困难。而且有几个非凸优化问题是NP难,不仅具有np难的最优解,而且np难的近似解。

将非凸目标函数松弛成凸函数进行求解,对有些问题可以得到很好的解,但现在的高维问题,凸松弛尽管可以在多项式时间内求解,但对大规模问题的求解往往具有挑战性。

但在一些特定的问题,目标函数或者约束集具有很好的结构,这种非凸问题是可以很好的解决。给两个例子:
稀疏回归:
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
现在遇到的大规模问题中,我们期望p个特征中只有少数特征和我们的问题是相关的,或者我们只有少量的数据,即1)w是稀疏的(非0元的个数很少),2)数据少,n<<p
第二种情况在基因组学和信号处理很常见,这些领域面临严重的数据短缺,用来估计模型的数据点远小于模型参数。
这两种情况都可以通过稀疏恢复估计。数学描述:
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
目标函数是凸的,约束是非凸的。稀疏恢复通常只需n>slog p的数据量,降低了对数据的要求。但稀疏恢复是np难的。
推荐系统:
数学描述成矩阵填充(matrix completion),即只知道矩阵中少量的元素,来估计整个矩阵,如果矩阵没有其他结构,几乎是不可能的。偏好形似的人对不同的评价也是类似的,所以推荐系统中假设矩阵是低秩的(类似于前面向量是稀疏的)数学描述:Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
该函数对(U,V)是非凸的(但对U,V分别是边缘凸的,即Marginal Convexity)
后边介绍了非凸优化问题的经典和现代方法。
经典方法: 凸松弛
修改模型,将问题松弛成一个凸优化问题,例如稀疏线性回归,比较著名的LASSO
这样对问题的描述进行了改变。当问题具有比较好的结构时,松弛问题得到的解也是原来非凸问题的最优解。但对大规模问题求解不具有很好的可扩展性,求解的有效性会下降。
非凸优化方法:
对非凸问题直接求解,如投影梯度法(PGD),交替极小化(AM),期望最大化(EM),随机优化(SGD及其变体),在实际应用中这些算法都可以很快的求解。
二、一些基本的概念
1凸组合,2凸集,3凸函数,4强凸强光滑函数(一类特殊凸函数,对研究非凸算法很重要),5lipschitz函数(lipschitz连续),6 Jensen 不等式,7投影及其性质。
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
当f是可微的,有如下定义,若函数不可微,用次梯度代替梯度。
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
前面不等式表示强光滑,后边不等式表示强凸。对强凸强光滑函数比较直观的理解:
对于凸函数,整个函数都在每一点切线的上方;对于强凸函数,当然满足再切线上方,强凸性给函数在每一点的增长赋予了一个二次下界,即函数上升的速度至少与二次函数一样快。
对于强光滑函数,赋予了一个二次的上界,函数不能增长的太快,由β决定上界。下边的图给出了很形象的描述。
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
另外强光滑函数即为梯度lipschitz连续函数,强凸强光滑函数还有一些其他的不等式
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
点到集合的投影比较直观的理解:找出点到集合最近的点,最近的点即为该点在集合上的投影。
投影的性质:
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
对约束集没有要求,可以凸也可以非凸,这是投影的定义得出的性质。称为0阶性质
下面两个是凸投影的性质,即C是闭凸集,称为1阶性质
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理以上两个性质画图可以很直观的理解
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
三(1)、投影梯度下降求解凸优化问题(PGD算法)
在将PGD应用到非凸优化中,先介绍其在凸优化中的应用。
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
假设可以获得函数的梯度以及可以得到投影算子的解。
凸优化中PGD的收敛性:
对两类目标函数给出收敛性分析,1)梯度有界,2)强凸强光滑函数;
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
Th2.5的证明比较简单,用到了凸投影性质和梯度有界;在证明中定义势函数为:Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理来追踪算法的progress。定理中步长,Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理在算法实现中,T是未知的,在具体实现中可取Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
2) 目标函数强凸强光滑 (POPTION1是最优解,当然2,3也是)
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
1、Th2.6保证算法最后的输出Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理 在执行一定步之后收敛到最优解。
2、2.6给出的阶相对于2.5更快,因为函数具有强凸强光滑性。
3、2.6中取固定步长Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理 ,在实际问题中,β很难获得,但事实上只要Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理 定理仍然成立。为了简化证明,定理取固定步长 Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理,在执行过程中 可以利用线搜索来保证最优的收敛速度。
4、关于2.6的证明。Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
Prateek Jain, Purushottam Kar《Non-convex Optimization for Machine Learning》的总结整理
当条件数比较大时,说明函数对扰动很敏感,函数不稳定,求解起来比较困难(可以理解成不适定的反问题,违反连续依赖性)文中有对条件数进一步的解释。
第二章后边对应的一些练习也是一些重要的结论。
参考文献:对于凸优化,可以参考Boyd的书,B站上上交许志钦老师讲的最优化理论与算法主要讲的这本书可以参考。还有Nesterov的Introductory lectures on convex optimization,Nesterov?对,就是经常出现的Nesterov动量加速那个Nesterov。
明天贴第二章,因为先整理在别的地方,再贴过来有点麻烦。。。

相关文章:

  • 2021-10-03
  • 2021-10-18
  • 2021-12-29
  • 2021-12-08
  • 2021-12-02
  • 2021-04-02
  • 2021-08-30
  • 2022-12-23
猜你喜欢
  • 2021-08-18
  • 2021-06-28
  • 2021-11-27
  • 2021-11-22
  • 2022-12-23
  • 2021-07-20
相关资源
相似解决方案