Welcome to红飞霸屏总部-比加科技!

15580078970

联系我们

PRPULAR PUSH

ATTEN:
彭经理
phone:
15580078970
QQ:
260208989
ADD:
湖南长沙梅溪湖街道2栋2F

凸优化 百度文库

author:红飞霸屏总部-比加科技

【Font size: big medium smail

time:2020-05-19 12:46:06

本文由红飞霸屏总部-比加科技提供,重点介绍了凸优化 百度文库相关内容。红飞霸屏总部-比加科技专业提供青浦百度优化,小哪吒地图优化百度云,百度地图优化技巧等多项产品服务。公司成立于至今,坚持用服务打动人心,用质量打造口碑,立志成为行业内的领军。

凸优化 百度文库前言:运筹学在国内,远没有统计和人工智能来的普及。相信很多人不知道,运筹学正是研究优化理论的学科(包括凸优化),而人工智能模型最后几乎都能化简成求解一个能量/损失函数的优化问题。

因此,我把它称为人工智能、大数据的“引擎”。

本文的详细版本已发表在 @运筹OR帷幄 专栏:

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

言归正传,为什么凸优化这么重要?凸优化 百度文库

1,首先大家需要知道Convex VS Non-Convex的概念吧?

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

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

2,凸优化-相对简单

凸优化有个非常重要的定理,即任何局部最优解即为全局最优解。

由于这个性质,只要设计一个较为简单的局部算法,例如贪婪算法(Greedy Algorithm)或梯度下降法(Gradient Decent),收敛求得的局部最优解即为全局最优。因此求解凸优化问题相对来说是比较高效的。

另一个侧面,可微分的凸优化问题满足KKT条件,因此容易求解:

【学界】关于KKT条件的深入探讨

这也是为什么机器学习中凸优化的模型非常多,毕竟机器学习处理海量的数据,需要非常高效的算法。

3,非凸优化-非常困难

而非凸优化问题被认为是非常难求解的,因为可行域集合可能存在无数个局部最优点,通常求解全局最优的算法复杂度是指数级的(NP难)。如下图:

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

假设有1w个局部最优点,你至少要投点1w次吧?并且你还要假设每次投点都投到了不同的区域,不然你只会搜索到以前搜索过的局部最优点。

4,为何要学习非凸优化呢?

因为现实生活中,几乎所有问题的本质都是非凸的。凸优化 百度文库

把3中的图看作山川盆地,你在现实中有见过左图这么“光滑”的地形么?右图才是Reality!

5,凸优化为何这么重要呢?

科学的本质便是由简到难,先把简单问题研究透彻,然后把复杂问题简化为求解一个个的简单问题。

例如3中经典的蒙特卡罗投点法,就是在求解一个个的凸优化问题。

假设需要求解1w个凸优化问题可以找到非凸优化的全局最优点,那么凸优化被研究透彻了,会加速凸优化问题的求解时间,例如0.001秒。

这样求解非凸优化问题=求解1w个凸优化问题=10秒,还是可以接受的嘛!

【学界】非凸转成凸、约束转无约-运筹学和支持向量机中的拉格朗日松弛法

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

线性规划是运筹学最基础的课程,其可行域(可行解的集合)是多面体(polyhedron),具有着比普通的凸集更好的性质。

因此是比较容易求解的(多项式时间可解)。

如有兴趣,且听我唠叨一下关于运筹学的四个知乎 Live

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

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

实心黑点组成的集合,是一个离散集,按照1中判断一个集合是否为凸集的技巧,我们很容易验证这个离散集是非凸的。

因此整数规划问题也是一个非凸优化问题,并且它也是NP难的。

那么整数规划的求解思路呢,也遵循了科学研究的本质,即被分解为求解一个个的线性规划(凸优化)问题。

感兴趣的朋友可以搜索参考下文:

【学界】混合整数规划/离散优化的精确算法--分支定界法及优化求解器

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

虽然时间是连续的,但是社会时间却是离散的。例如时刻表,通常都是几时几分,即使精确到几秒,它还是离散的(整数)。没见过小数计数的时刻表吧?

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

8,深度学习为何非凸?

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

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

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

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

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

深度学习中的优化问题,虽然目标函数非常复杂,但是它没有约束阿,是一个无约束优化问题!

大家如果学过运筹学,就知道它由目标函数和约束条件组成,而约束条件,是使得运筹学的优化问题难以求解的重要因素(需要搜寻可行解)。

关于运筹学与人工智能更多的交叉与应用(自动驾驶),参见知乎Live:

理工科的你想要转AI?快上车!

总结:

机器学习、数据科学因为处理数据量庞大,因此研究问题主要的方法还是凸优化模型,原因正是求解高效,问题可以scale。

虽然目前还很小众,但是随着计算机硬件能力的提高,GPU并行计算的流行,以及(非)凸优化算法、模型的进化,想必非凸优化,甚至(混合)整数规划会是未来的研究热点。

这不,最近就有研究智能算法求解深度学习损失函数的paper了~

遗传算法,模拟退火算法,粒子群算法,神经网络等智能算法的作用?

纸上谈兵终觉浅

敬请关注『运筹OR帷幄』公众号,后台回复“学界”,进入运筹学-凸优化文件夹,获取凸优化经典教材。

以上所有博文出自知乎专栏『运筹OR帷幄』:

『运筹OR帷幄』大数据人工智能时代的运筹学

扫二维码关注 @运筹OR帷幄 公众号,加入全球运筹|机器学习|优化理论学者群交流: