覃含章 留德华叫兽 王源作者

为什么凸优化这么重要?

编者按:截止到2019年2月20日,这个问题在知乎上有4681人关注,32万人浏览过的问题。据历史纪录观察可知,该问题2014年提出,2015年出现了第一条回答,2018年在运筹OR帷幄的优化板块主编覃含章回答该问题后,登上了知乎热榜。目前的34个回答中,部分回答含金量十分之高,足见答者的功底深厚。为此本公众号特意对其中三个高质量回答进行整理和分析。方便关注该问题的读者获取有用的信息。


原文链接:https://www.zhihu.com/question/24641575

以下整理按照知乎全部回答的默认排序

No.1

作者:覃含章

1.为什么凸优化重要?

凸优化性质好,许多日常生活中的非凸优化问题,目前最有效的办法也只能是利用凸优化的思路去近似求解。

例如:

● 带整数变量的优化问题,松弛之后变成凸优化问题(所以原问题其实是凸优化问题+整数变量);

● 任意带约束的非凸连续优化问题,其对偶问题作为原问题解的一个lower bound,一定是凸的!

● 针对带有hidden variable的近似求解maximum likelihood estimate的EM算法,或者贝叶斯版本里头所谓的variational Bayes(VB) inference。而原本的MLE其实是非凸优化问题,所以EM和VB算法都是找到了一个比较好优化的concave lower bound对这个lower bound进行优化。

这是什么意思呢?

也就是说到今天2019年为止,我们还是只对凸优化问题比较有把握。

当然有人可能要说了,现在各种深度强化学习深度学习的优化问题都是极其复杂的非凸优化问题,不是大家也能解的挺好?

这个问题的回答就更难一些,我个人观点,简单来说是这样,目前对于这些非凸优化问题取得的算法理论方面的突破大体其实归结于找到这些非凸优化问题中“凸”的结构。这也是为什么我们看到一阶算法(SGD, ADAM等)仍然大行其道,而分析这些非凸优化算法的时候其实很多的lemma(引理)仍然是凸优化(凸分析)里的引理或者引申。

举个例子:

我们大家都知道凸函数的各种等价定义。而在Zeyuan Allen-Zhu的一系列非凸优化算法的文章中所谓的非凸性的刻画仍然是基于此衍生出来的:

来源:Allen-Zhu, Zeyuan. Natasha: Faster Non-Convex Stochastic Optimization via Strongly Non-Convex Parameter. International Conference on Machine Learning. 2017.

我们知道它里面这个刻画非凸性的参数 ,如果取成0,那就等价于凸函数的定义,如果取成负的,那么实际上就是所谓strongly convex,而如果是正的,就变成它这里的non-convexity了。实际上,现在非凸优化里面很多的非凸性刻画都是脱胎于凸优化,比如prox regularity之类的,或者一些更弱的convexity定义(这在经典凸分析里就已经有不少研究了,quasi-convex,psuedo-convex等等),这里不再赘述。

个人认为,我们能真正一般化地解决非凸优化问题,那肯定是要对一般的混合整数(线性)规划(MILP, mixed integer linear programming)要有好的办法求解才算。因为任意一个非凸优化问题,都可以用很多的分段线性函数逼近,最后变成一个MILP。当然,因为P!=NP这个猜想的存在,这件事情在理论上肯定是hopeless,但是在实际当中,基于硬件能力的提升,还有比如量子计算机一类的新技术,我个人对人类未来能够在实际中求解MILP还是持一个比较乐观的态度。到那个时候,我觉得我们才能说传统的凸优化理论才是真正过时了。

2. 现有的优化方法不是都能解决(凸优化)吗?那凸优化又有什么用呢?

首先先明确一点,凸优化难吗?嗯相比非凸优化,各种NP-complete问题,凸优化里各种P问题,那肯定是简单的。然而,在实际当中,我们完全不可能满足于有一个“多项式时间算法”就好了。

我们知道,运筹学,优化问题,反映到现实世界里面就是各种数学建模问题。这些问题,普遍地出现在航空业、金融业、广告业、电商零售业、能源业、医疗业、交通业等各个领域。我们必须要明确一点,计算复杂性理论(P,NP这套东西)在实际当中其实是没什么用处的。嗯,NP hard, NP complete问题很难,没有多项式时间算法,但如果你实际的问题规模不太大,比如几十个城市的旅行商问题(TSP, travelling salesman problem),几十x几十的图上的NP-complete问题,是不是很难?然而现在2019年,你在iphone上下个app,一部小小的手机不要几秒钟就能给你算出最优解。(实际上,他们这个app,1000个左右城市的TSP, iphone也顶多要算个几小时就能找到全局最优解,无近似)

TSP求解app,当然,这得益于Concorde他们家目前行业领先的解大规模TSP底层算法...

与此相对应的,即使是一个P问题,但是如果实际当中你的问题规模超级大呢?实际上反而这个问题会让你更头疼的。

举个例子,比如现在优酷、天猫、京东亚马逊这些个平台,每天你登陆网站,它在推荐栏都需要根据你的历史活动记录决定推荐哪些产品给你。这个在线推荐算法,本质上只是需要求解一个线性规划问题(LP, linear programming, 比一般的凸优化还简单),甚至还不是一个一般的线性规划,有个专门的名字叫做packing LP,这类packing LP理论上可以有跟问题规模呈线性的复杂度的算法(忽略log项,跟排个序差不多...)。听起来是不是很简单?然而,实际这些问题的规模无比巨大,每天这些平台上线人次数以亿记,这些平台可以推荐的商品也是至少百万千万规模的。。而且实际问题还有各种各样的现实约束,比如我们希望我们的算法可以完全在线更新(online,甚至是streaming algorithm),我们的算法需要灵活运用存储数据的数据结构,需要利用计算集群的并行能力,分布式能力,这也是需要非常非常专门的(一阶)优化算法设计的。。这边就不再多说了,因为我个人确实在之前公司实习的时候,发现中国最好的IT公司面对这类海量规模的“简单”LP,实际上远没有能力去完美地求解。

因此你说现有的方法能解决所有的凸优化问题,但从实际的角度其实还差的远。事实上,目前的大公司面对如此规模的优化问题,也就LP还可以勉强接受,像是什么second-order cone prorgamming (SOCP), semidefinite programming (SDP)根本目前实际中都不可能大规模求解。而这两类问题在理论上还仍然都是“线性”的,因为可以写成linear conic programming,所以就更不要说一般的带约束的凸优化问题了。

实际上,在这个方面,无论是求解器(solver)还是更好的理论算法的开发都还有大量的研究空间。比如,SDP实际当中的大规模算法设计目前来看还基本一片空白,有很多很基本的问题都还没有在理论上得到满意的解答(像SDP其实和另一类凸优化问题只有一丝之隔,copositive programming,而这类凸优化问题的计算复杂度却是NP complete的,所以即使是凸优化也未必复杂度就容易!实际上,所有mixed 0/1 nonconvex quadratic program都可以写成copositive program这个凸优化的形式。两者的算法设计也因此都很蛋疼)。。还有这么多没有解决的问题,又如何能说凸优化的问题都已经被“解决”了呢?

至于具体如何把mixed 0/1 nonconvex quadratic program写成凸优化形式,这是个很cute的结果,有兴趣的同学可见我这篇专栏文章的第二部分。

https://zhuanlan.zhihu.com/p/34772469 

随手写写没想到也吐了不少嘈,我这边最后就再总结个几点吧:

做研究过程中,切忌轻易下结论。

实际上,对很多看似已经“解决”的问题,你如果肯花点功夫研究研究,会发现总有很多细节是值得深思的。更不要说直接说一个大的研究领域就已经被“解决”了。我记得前不久还看到NeurlIPs文章的方向汇总,凸优化仍然是优化方向文章里数量最多(还是第二多,具体记不清了)的。因为实际上我前面还有很多没提,比如像现在很火的强化学习(或者说多阶段的随机动态规划)里面还有大量的凸优化问题没搞定。。

基础永远是重要的。

凸优化就是你做非凸优化研究的基础。这么些年来,我自己也逐渐体会,研究当中最常用的,真的还就是那些最基础的微积分线性代数,概率统计的基本功。很多问题,如果你有基础,就都直接不是问题了;反过来,如果当初在学习过程中冒进,去追求最前沿,最时髦,最fancy的topic,却没好好打基础,你可能就会发现很多基本的知识本来都不应该成为障碍,最后却各种让你磕磕绊绊。

作为优化研究者,埋头研究的同时,一定要睁开眼睛看看业界的实际情况。

当然,总有一部分优化大师是不在乎实际应用的(然而Nesterov, Nemirovski这样的人也是有应用文章的),有志做令人高山仰止的大师的就可以忽略我这条了。我只是想说,对于大多数做优化的人,我们实际上应该都是希望自己做的东西可以用在业界的实际问题当中。那么这个时候除了学理论知识,真的我们应该多hands on,get your hands dirty。我自己的体会是,往往都是在实际写代码求解问题的时候才会对很多知识有更深刻的理解,并且能找到真正值得研究的有意思的问题。

convexity is sexy~

No.2

作者: 留德华叫兽

前言:运筹学在国内,远没有统计和人工智能来的普及。

相信很多人不知道,运筹学正是研究优化理论的学科(包括凸优化),而人工智能模型最后几乎都能化简成求解一个能量/损失函数的优化问题。因此,我把它称为人工智能大数据的“引擎”。(本文的详细版本已发表在@运筹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这里便是整数变量,小数是没有意义的。

9. 深度学习为何非凸?

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

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

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

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

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

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

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

关于运筹学人工智能更多的交叉与应用(自动驾驶

参见知乎Live:理工科的你想要转AI?快上车!

总结

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

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

这不,最近就有研究智能算法求解深度学习损失函数的paper:遗传算法模拟退火算法,粒子群算法,神经网络等智能算法的作用?

No.3

作者:王源(运筹优化博士,机器学习半吊子)

之前看过Nesterov的 Introductory Lectures on Convex Programming 颇有一些收获,再这里就把Nesterov 关于凸函数的观点简单的解读一下。

这个条件被称为一阶必要条件,什么是必要条件呢,就是满足这个条件的不一定是最优解,而不满足的一定不是最优解。如果把在茫茫人海中寻找到你的最佳伴侣比喻成找到优化问题的最优解,那么这个一阶必要条件就相当于一个筛选条件,例如有房有车的。没房没车的人肯定不是最佳伴侣,下面仅仅在有房有车的人当中找最佳伴侣,这样事情会变得简单一些了。

一阶必要条件可以帮我们筛选掉一些肯定不是局部最优解的,让问题变得简单,但是这个一阶必要条件有两个致命伤:一是它是一个必要条件啊,必要条件多多少少看着就让人有点不爽。我们辛辛苦苦用梯度法,拟牛顿法或者共轭梯度法找到了一个满足必要条件的点,然后一阶必要条件告诉我们,这个点可能是最优解,也可能不是。二是该条件是针对局部最优解的,根本没谈全局最优的事情,能不能找到全局最优只能看运气喽,梯度法的初始点选得好兴许能找到,也兴许没找到。概括以上两点就是局部最优不一定,全局最优全靠碰。”

那么到这里肯定就想问一下,有没有办法让这个一阶必要条件变成充要条件,同时让局部最优变成全局最优的情况呢?

答案是有的,对一些特殊一点的而言,一阶必要条件会变成充要条件。那这类性质非常好的函数长什么样呢?

答案是 凸函数。

也就是说对于是可微的凸函数而言,一阶必要条件就变成了充要条件,同时局部最优也升格为全局最优。如果各位想看该命题的严谨证明的话 参考Introductory Lectures on Convex Programming 的chapter2即可。

到此为止,我们可以自信满满的说若是可微还是凸函数的话,满足的点,一定是全局最优解。哈哈,梯度法,拟牛顿法或者共轭梯度法等基于梯度的算法都可以完完全全保证能收敛到全局最优解上去。

所以说对优化问题而已 凸函数的性质简直好到爆炸啊。个人感觉这就是凸优化为何那么重要的原因之一吧。套用一句经典话语:优化问题的分水岭不是线性和非线性,而是凸和非凸。

参考文献

Nesterov, Yurii. "Introductory lectures on convex programming volume i: Basic course." Lecture notes (1998).

Allen-Zhu, Zeyuan. Natasha: Faster Non-Convex Stochastic Optimization via Strongly Non-Convex Parameter. International Conference on Machine Learning. 2017.

运筹OR帷幄
运筹OR帷幄

『运筹OR帷幄』是大数据人工智能时代的运筹学,普及运筹学和优化理论,及其在人工智能和供应链中的应用。

理论凸优化
4
相关数据
亚马逊机构

亚马逊(英语:Amazon.com Inc.,NASDAQ:AMZN)是一家总部位于美国西雅图的跨国电子商务企业,业务起始于线上书店,不久之后商品走向多元化。目前是全球最大的互联网线上零售商之一,也是美国《财富》杂志2016年评选的全球最大500家公司的排行榜中的第44名。

https://www.amazon.com/
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

凸优化技术

凸优化,或叫做凸最优化,凸最小化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。凸优化在某种意义上说较一般情形的数学最优化问题要简单,譬如在凸优化中局部最优值必定是全局最优值。凸函数的凸性使得凸分析中的有力工具在最优化问题中得以应用,如次导数等。 凸优化应用于很多学科领域,诸如自动控制系统,信号处理,通讯和网络,电子电路设计,数据分析和建模,统计学(最优化设计),以及金融。在近来运算能力提高和最优化理论发展的背景下,一般的凸优化已经接近简单的线性规划一样直捷易行。许多最优化问题都可以转化成凸优化(凸最小化)问题,例如求凹函数f最大值的问题就等同于求凸函数 -f最小值的问题。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

线性规划技术

在数学中,线性规划(Linear Programming,简称LP)特指目标函数和约束条件皆为线性的最优化问题。

运筹学技术

运筹学,是一门应用数学学科,利用统计学和数学模型等方法,去寻找复杂问题中的最佳或近似最佳的解答。运筹学经常用于解决现实生活中的复杂问题,特别是改善或优化现有系统的效率。研究运筹学的基础知识包括矩阵论和离散数学,在应用方面多与仓储、物流等领域相关。因此运筹学与应用数学、工业工程专业密切相关。

随机动态规划技术

随机动态规划本质上还是动态规划,只不过加入了随机的变量而已,和随机规划(stochastic programming)还是有本质上的不同。我们平时用的什么基因算法,退火算法,蚁群算法等等都是放弃探索一些可能解,然后把注意力集中在探索那些更有可能存在最优解的解集,以此来减少运算时间。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

模拟退火算法技术

模拟退火是一种通用概率算法,用来在固定时间内寻求在一个大的搜寻空间内找到的最优解。模拟退火是S. Kirkpatrick, C. D. Gelatt和M. P. Vecchi在1983年所发明。而V. Černý在1985年也独立发明此算法。

微积分技术

微积分(Calculus)是高等数学中研究函数的微分(Differentiation)、积分(Integration)以及有关概念和应用的数学分支。它是数学的一个基础学科。内容主要包括极限、微分学、积分学及其应用。微分学包括求导数的运算,是一套关于变化率的理论。它使得函数、速度、加速度和曲线的斜率等均可用一套通用的符号进行讨论。积分学,包括求积分的运算,为定义和计算面积、体积等提供一套通用的方法 。

线性代数技术

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

共轭梯度法技术

共轭梯度法(Conjugate Gradient)是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点,共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一。

拟牛顿法技术

拟牛顿法是一种以牛顿法为基础设计的,求解非线性方程组或连续的最优化问题函数的零点或极大、极小值的算法。当牛顿法中所要求计算的雅可比矩阵或Hessian矩阵难以甚至无法计算时,拟牛顿法便可派上用场。

遗传算法技术

遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。 遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解可抽象表示为染色体,使种群向更好的解进化。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

京东机构

京东(股票代码:JD),中国自营式电商企业,创始人刘强东担任京东集团董事局主席兼首席执行官。旗下设有京东商城、京东金融、拍拍网、京东智能、O2O及海外事业部等。2013年正式获得虚拟运营商牌照。2014年5月在美国纳斯达克证券交易所正式挂牌上市。 2016年6月与沃尔玛达成深度战略合作,1号店并入京东。

知乎机构

知乎作为中文互联网知名知识内容平台,致力于构建一个人人都可接入的知识分享网络,让人们便捷地与世界分享知识、经验和见解,高效获得可信赖的解答。 目前,知乎已经覆盖「问答」社区、一站式知识服务平台「知乎大学」、短内容分享功能「想法」等一系列产品和服务,并建立了包括音频、视频在内的多元媒介形式。截止 2018 年 8 月底,知乎用户数已突破 2 亿,回答数超过 1.2 亿。未来,知乎进一步加大对 AI 技术和应用的投入,构建一个由 AI 驱动的智能社区,让知识普惠每一个人。

https://www.zhihu.com
量子计算技术

量子计算结合了过去半个世纪以来两个最大的技术变革:信息技术和量子力学。如果我们使用量子力学的规则替换二进制逻辑来计算,某些难以攻克的计算任务将得到解决。追求通用量子计算机的一个重要目标是确定当前经典计算机无法承载的最小复杂度的计算任务。该交叉点被称为「量子霸权」边界,是在通向更强大和有用的计算技术的关键一步。

暂无评论
暂无评论~