为何 Non-Convex Optimization (非凸优化)受到了愈来愈大的关注?

前言:运筹学在国内,远没有统计和人工智能来的普及。相信不少人不知道,运筹学正是研究优化理论的学科,而人工智能最后几乎都能化简成求解一个能量/损失函数的优化问题。所以,我把它称为人工智能、大数据的“引擎”。算法

本文的详细版本已发表在个人专栏:机器学习

离散/整数/组合/非凸优化概述及其在AI的应用 - 知乎专栏函数

言归正传,为何非凸优化受到愈来愈多的关注?学习

1,首先你们须要知道Convex VS Non-Convex的概念吧?测试

数学定义就不写了,介绍个直观判断一个集合是否为Convex的方法,以下图:大数据

简单的测试一个集合是否是凸的,只要任意取集合中的俩个点并连线,若是说连线段彻底被包含在此集合中,那么这个集合就是凸集,例如左图所示。优化

 

2,凸优化-相对简单人工智能

凸优化有个很是重要的定理,即任何局部最优解即为全局最优解。因为这个性质,只要设计一个较为简单的局部算法,例如贪婪算法(Greedy Algorithm)或梯度降低法(Gradient Decent),收敛求得的局部最优解即为全局最优。所以求解凸优化问题相对来讲是比较高效的。这也是为何机器学习中凸优化的模型很是多,毕竟机器学习处理大数据,须要高效的算法。设计

 

3,非凸优化-很是困难3d

而非凸优化问题被认为是很是难求解的,由于可行域集合可能存在无数个局部最优势,一般求解全局最优的算法复杂度是指数级的(NP难)。以下图:

最经典的算法要算蒙特卡罗投点法了,大概思想即是随便投个点,而后在附近区域(能够假设convex)用2中方法的进行搜索,获得局部最优值。而后随机再投个点,再找到局部最优势。如此反复,直到知足终止条件。

假设有1w个局部最优势,你至少要投点1w次吧?而且你还要假设每次投点都投到了不一样的区域,否则你只会搜索到之前搜索过的局部最优势。

 

4,非凸优化为什么重要,开始受到重视?

由于现实生活中,几乎全部问题的本质是非凸的。把3中的图看做山川盆地,你在现实中有见过左图这么“光滑”的地形么?右图才是Reality!

 

5,为什么要学凸优化呢?

科学的本质即是由简到难,先把简单问题研究透彻,而后把复杂问题简化为求解一个个d俄简单问题。例如3中经典的投点法,就是在求解一个个的凸优化问题。假设须要求解1w个凸优化问题能够找到非凸优化的全局最优势,那么凸优化被研究透彻了,会加速凸优化问题的求解时间,例如0.001秒。这样求解非凸优化问题=求解1w个凸优化问题=10秒,仍是能够接受的嘛!

机器学习中的优化理论,须要学习哪些资料才能看懂? - 知乎

6,运筹学中线性规划与凸优化的关系

线性规划是运筹学最基础的课程,其可行域(可行解的集合)是多面体(polyhedron),具备着比普通的凸集更好的性质。所以是比较容易求解的(多项式时间可解)。

听我唠叨下知乎第一场有关运筹学的Live:

大数据人工智能时代的运筹学 -- Robin Shen 2017.06.11的知乎Live

7,运筹学中(混合)整数规划与非凸优化的关系

你们或许不知道,(混合)整数规划被称为极度非凸问题(highly nonconvex problem),以下图:

实心黑点组成的集合,是一个离散集,按照1中判断一个集合是否为凸集的技巧,咱们很容易验证这个离散集是非凸的。所以整数规划问题也是一个非凸优化问题,而且它也是NP难的。

那么整数规划的求解思路呢,也遵循了科学研究的本质,即被分解为求解一个个的线性规划问题。感兴趣的朋友能够搜索分支定界法。

 

8,(混合)整数规划为什么重要?

虽然时间是连续的,可是社会时间倒是离散的。例如时刻表,一般都是几时几分,即便精确到几秒,它仍是离散的(整数)。没见太小数计数的时刻表吧?

一样,对现实社会各行各业问题数学建模的时候,整数变量有时是不可避免的。例如:x辆车,y我的。x,y这里即是整数变量,小数是没有意义的。

 

9,深度学习为什么非凸?

深度学习里的损失函数,是一个高度复合的函数。什么叫复合函数?好吧,例如h(x)=f(g(x))就是一个f和g复合函数。

当f,g都是线性的时候,h是线性的。但在深度学习里用到的函数,Logistic, ReLU等等,都是非线性 ,而且很是多。把他们复合起来造成的函数h,即是非凸的。

求解这个非凸函数的最优解,相似于求凸优化中某点的gradient,而后按照梯度最陡的方向搜索。不一样的是,复合函数没法求gradient,因而这里使用Back Propagation求解一个相似梯度的东西,反馈能量,而后更新。

 

10,深度学习的优化问题在运筹学看来是“小儿科”

这句话可能会打脸大部分观众。

深度学习中的优化问题,虽然目标函数很是复杂,可是它没有约束阿!你们若是学过运筹学,就知道它由目标函数和约束条件组成,而约束条件,是使得运筹学的优化问题难以求解的重要因素。

点到为止。欲知详情,请戳:

[指挥若定]大数据和人工智能时代下的运筹学 - 知乎专栏

可是没办法,机器学习、深度学习仍是这么火,因此,顺应时代潮流,写了这个:

想学数据分析(人工智能)须要学哪些课程? - 知乎

总结:

机器学习、数据科学由于处理数据量庞大,所以研究问题主要的方法仍是凸优化模型,缘由正是求解高效,问题能够scale。虽然目前还很小众,可是随着计算机硬件能力的提升,以及GPU并行计算的流行,以及非凸优化算法、模型的进化,想必非凸优化,甚至(混合)整数规划会是将来的研究热点。

相关文章
相关标签/搜索