机器学习与优化基础(Machine Learning and Optimization)

机器学习与优化

引用大佬Pedro Domingos的说法:机器学习其实就是由模型的表示,优化和模型评估三部分组成。将一个实际问题转化为待求解的模型,利用优化算法求解模型,利用验证或测试数据评估模型,循环这三个步骤直到得到满意的模型。

因此,优化算法在机器学习中起着一个承上启下的作用!

一般机器学习中涉及的优化命题可以表示为:

机器学习中の优化算法_人工智能

还有等等等等机器学习算法也是类似的。

优化算法基础
优化算法的阶次

所谓优化算法的阶次其实指的是优化过程利用的是

机器学习中の优化算法_优化算法_02

中的哪些信息。

如果函数形式未知、梯度难以求或不存在的时候常常采用零阶优化算法;在机器学习领域中一般一阶算法使用较多,二阶算法可能收敛更快但计算花费也更大。

优化算法的常见组成
  • 梯度下降

机器学习中の优化算法_人工智能_03

机器学习中の优化算法_机器学习_04

 

  • 对偶(dual)

在求解一个优化命题时,如果其对偶形式便于求解,常常可以通过求解对偶问题来避免直接对原问题进行求解。比如机器学习中典型的SVM就涉及到对偶理论,以及拉格朗日乘子法、KKT条件等概念。首先简单通俗地说说这几个概念是干嘛的

  1. 对偶理论:对偶也就是孪生双胞胎,一个优化命题也就有其对应的兄弟优化命题。
  2. 拉格朗日函数:将原本优化命题的目标函数和约束整合成一个函数。
  3. KKT条件:函数的最优值满足的性质。

如果原问题是凸问题,则KKT条件为充要条件,也就是说满足KKT条件的点也就是原问题和对偶问题的最优解,那就能够在满足KKT条件下用求解对偶问题来替代求解原问题。(具体推导和细节就不展开了,下次可以单独写一篇)

  • 随机化

机器学习中の优化算法_梯度下降法_05

无约束问题的典型算法
  • 梯度下降法

上面提到过了就不重复了。

机器学习中の优化算法_人工智能_06

机器学习中の优化算法_优化算法_07

约束问题的经典算法
  • 投影梯度下降法(Projected gradient descent)

看名字可以知道这个方法的思想其实就是梯度下降再加上投影操作来满足约束。可以理解为是一个两阶段的算法,

第一阶段先进行梯度下降

机器学习中の优化算法_机器学习_08

机器学习中の优化算法_优化算法_09

 

  • 坐标下降法

坐标上升法的思想和ADMM有点点类似的地方,就是在每次优化时只优化一个或者一部分变量,然后固定其他变量,即

机器学习中の优化算法_机器学习_10

这就有点像一个高维坐标系,你一个维度一个维度按顺序优化。

当优化问题遇到大数据

当数据量较大的时候,简单的处理办法就是利用随机化的思想,比如梯度下降法就可以改为随机梯度下降,坐标上升法就可以改为随机坐标上升。

加速优化与展望

所谓的加速优化研究的是在不作出更强假设的情况下改进算法提高收敛速度。常见的比如有重球法(Heavy-Ball method)、Nesterov的加速梯度下降法、加速近端梯度法(APG)、随机方差减小梯度法等等。这些算法可能有点超纲了,感兴趣或者专门研究这类问题的可以参考林宙辰老师的新书

对于大规模优化的一些研究可以从以下几个角度展开:随机优化、分布式优化、异步优化、基于学习的优化等等。