Numerical Optimization和Convex optimization 两本书的选择?
Numerical Optimization和Convex optimization 两本书的选择? - 知乎https://www.zhihu.com/question/49689245
Numerical Optimization和Convex optimization 两本书的选择?
Numerical Optimization和Convex optimization 两本书的选择?
邀请回答 举报
11 个回答
本人优化方向Phd一枚,两本书都很认真的读过。这两本都是很有名的优化入门书籍,都写的很棒,不需要太多基础就能读懂。怎么读看你的需求。
Numerical Optimization我认为是必读的。这本书讲了各种优化算法,对于经典的方法覆盖非常全面。相对于其他优化的入门著作,这本书理论比较少,但把每个算法原理都讲得很明白,而且讲了每种算法在使用中很多practical的问题,这是我认为这本书很好的一个方面(做优化的人大部分数学出身,大牛们一般不屑于去讨论practical issue,但真的用起来的时候,你就会发现这些问题是很重要的)。无论是针对以后做优化方向的研究工作的,还是只是需要应用优化算法的,我觉得都可以读这本书。
Convex Optimization这本书相对来说更加理论一些,介绍的算法比较少。虽然涉及到的理论都是比较初级的,但写的很清楚,例子非常多,如果认真读完并且做下后面的习题,可以帮你打下比较扎实的理论基础。我PhD刚入学时,老板就要求我们先把这本书前几章理论部分刷完。
接下来说一些具体的建议:
- 如果你想知道如何将问题formulate成优化问题、这个优化问题的性质是怎样的能否求到全局最优化、如何将你的问题转换成一个常见形式的优化问题(比如LP、SDP等)以便于利用现有的求解器求解,而并不关心优化算法本身的原理,那么请读Convex Optimization;
- 如果你已经知道了你的问题的数学形式,但想寻求更好的优化算法来有效的求解,那么请读Numerical Optimization;
- 如果你想对优化领域有比较完整的理解,那么这两本书都是要读的。如果这两本书都读完了,想更进一步,Nolinear Programming和Introductory Lectures on Convex Optimization等书会是你很好的选择。
收藏 感谢
同优化phd一枚,本科数学背景。赶的巧,master学了convex optimization,phd一年级学了nonlinear optimization, 反正都死厚就对了。
课程设置上:
convex optimization 那本书当时只节选了第一部分theory和第三部分algorithms, 第二部分applications花了五分钟说个梗概就直接跳过了(傲娇的数学系。。)
numerical optimization 那本书略去了第十,十一,十三,十四章,多加了凸集凸函数,数值误差和对偶的内容。其它的章节都详略差不多的刷了一遍。
其它的章节,就默认我没翻过吧。。
ok, 现在来说对比:
convex optimization
1. 更偏技巧和建模,看完可以长不少见识,有很多将实际问题转化成具体优化问题的例子(现在留下印象最深的是多面体内最大体积球的一个例子,但有更多当时觉的很巧妙的例子)。
2. 全书不见一个定理,都是小标题混着正文冷不丁就证完一个结论,所以需要自己花些时间整理出重点。证明实用为主,是简化或强化假设之后的证明,但是很直观(凸集分离定理证明,第三章算法收敛性证明等)
3. 主要围绕凸优化,问题不局限于实数域变量,会有很多矩阵变量(log(detX)这种鬼)
4. 有很多感觉在其它地方很少看到,也不常用到的内容(Generalized inequalities, Quasiconvex, vector-optimization),可以直接跳过吧。
5. 强推凸集,凸函数和对偶三个章节和课后习题,直观清晰图文并茂的解释了一些并不是很容易理解的概念。课后习题是很好的拓展。
6. 真正的优化算法部分简略粗犷,只介绍了经典的算法框架和收敛结果,在这个部分建议跳入numerical optimization的坑。
7. 网上有Boyd本人和其TA的课程视频,课件内容基本照搬课本,可以观看。
numerical optimization
1. 默认已了解和熟悉基本优化算法。
2. 更偏理论和算法,看完会对数值优化有较为全面的认识(不覆盖全局优化算法,随机下降算法,和启发式算法),图示清楚明白(尽管有些图很乱),算法有详细的伪代码可以逐一实现和体会,更有叙述和讨论很直观的对算法思路和发展予以解释,非常值得阅读。基本不关注建模。
3. 全书结构清晰,章节内容大框架,定理算法例子讨论各有标识,相对很容易找到自己需要的部分。证明严谨全面递进,结论完整。
4. 主要围绕数值优化,包含凸优化中实数变量的部分,但基本不限定在凸优化的范围,处理更general的函数优化。对每一种算法框架都有深入的讨论和延伸。强推第二章无约束优化和第十二章约束优化以建立数值优化理论基础。
5. 在经典算法框架之外,增加很多practical章节以更加实际实用的方式来解决问题。
6. 部分习题略难,相当多的题目是为了完整书中的证明。不过可以找到习题答案,很详尽。
7. 好书好书好书。可以当字典来用。
如果我现在回头看的话,建议是精读convex optimization的第一部分(去掉某些不那么“重要”的内容),了解第三部分,然后转入numerical optimization,精读需要的章节,这是本字典。
题外强推Introductory Lectures on Convex Optimization: A basic course, 简单霸道的四大章,非线性优化,光滑优化,非光滑优化,结构优化。我只看到第二章,但必然是要读完的。这书从high-level来讨论优化问题,有很多“犀利”的观点和技巧,读完第一章已然获益匪浅。
关于随机下降算法,numerical optimization的作者之一Nocedal和其合作者有篇综述文章Optimization Methods for Large-Scale Machine Learning,干货满满,在今年的ICML上有一个tutorial,slides在这里Stochastic Gradient Methods For Large-Scale Machine Learning.
所有的这些书,都是完美精排可以免费下载的,这真是令人感动。
stanford.edu 的页面 convex optimization 730页,size 6M
agh.edu.pl 的页面 numerical optimization 651页,size 5.5M
psu.edu 的页面 Introductory Lectures on Convex Optimization 212页,size 845K
O 啦。
收藏 感谢
收起
题主提到了凸优化,boyd的convex optimization是一个更好的入门教科书,因为本书更好的组织了凸优化的知识体系,向你展示了凸优化理论背后的内涵(对偶理论,包括会给你打基本的凸分析的基础),凸优化广泛的实际应用(最小二乘,线性插值,假设检验,分类,各种几何问题)和针对不同凸优化问题的算法。
相比之下,nocedal和wright的numerical optimization确实对各类凸优化算法总结的更全,然而从对知识结构组织的角度来看我不认为这是一本好的教科书,而更是一本工具书,将各类算法机械的拼凑起来成为了一本字典。如果没有凸优化的big picture在心里,我会比较担心直接上手本书会lost在无边无际的detail中。
所以实际上还是要针对题主的需求。
(i)如果是想先打打知识基础(为做研究做准备),那么boyd的书是起步更好的选择(不过如果题主是想读优化方面PhD的话我觉得这本书不是一定要读的,bertsekas,bertsimas和yinyu ye的教科书都可以作为代替),后续可以考虑选择nemirovski和nesterov这两位优化界巨擘的凸优化讲义作为加深(我个人觉得这两位的讲义是把凸优化理论讲的最透彻的,没有之一);
(ii)另一方面,如果题主单纯只是有特定的应用问题需要求解,那么前面这些理论或许也是多余的,因为优化确实也有非常应用的一面,然而nocedeal的numerical optimization仍然不是必要的,因为如何建模实际上是更重要的,对凸问题我们完全可以在matlab/julia/C++中建模然后交给Gurobi/Mosek这些专业的solver来搞定,这比自己人为写一个内点算法或者一阶算法一般都是要快得多的;即使是问题有特定的结构需要用特定的算法来求解,我们也没必要翻那本numerical optimization一点一点拿个算法出来看(很多特定算法都有更好的单独note可以学习),更何况这本书并没有囊括最近的一些热门的凸优化算法,比如ADMM,对此boyd也有一篇非常好的monograph写的非常简单易懂,还有示范的code。
收藏 感谢
从应用角度来回答。
Numerical optimization是讲述求解优化问题局部解的高效算法,包括各种一阶算法和(拟)二阶算法,比如最速梯度,共轭梯度,BB梯度,牛顿下降,拟牛顿法等。约束优化通常都是转化为一系列无约束优化问题SUMT来处理的,这里有很多的penalty和barrier技巧及对应的Lagrange理论。从每次迭代中确定步长与方向的先后顺序又分出,先确定方向后确定步长的线搜索法和先确定步长后确定方向的信赖域法。内容很庞杂,实际应用很需要经验。
Convex optimization这本书的前部分似乎理论很多,但其实这本书的目的既不在于介绍凸分析的理论,也不在于讲解求解凸问题的内点算法。这本书是面向应用的,重点是让读者学会识别和判断凸问题,或者说凸建模。在Boyd这本书里,讲解了大量的实际问题的凸模型,但都是点到即止,一旦一个问题被识别为是凸的,就基本认为已经解完了,具体的求解过程交给CVX软件和SDPT3、SEDUMI、SCS solver。识别一个凸问题的技巧大体分为三类,基本的凸集凸函数定义和对偶理论,标准的线性规划锥二次规划半定规划几何规划,和Disciplined convex programming(翻译为规范凸优化?就是各种保凸运算准则)。
以上是一个算法应用人员的学习总结,供参考。
收藏 感谢
收藏 感谢
收藏 感谢
综上,对于计算机系出身的,个人推荐Numerical Optimization。
收藏 感谢
最后,读完Numerical Optimization这本书,对于优化的基本理论的理解提升了,但具体怎么写程序还是不会。因此,这里讲一下,如果是外行,直接学些gams,ampl的用法去吧,不要再理论上纠结太多,大概看看就行了。不过请注意,区分局部优化与全局优化的区别。
收藏 感谢
收藏 感谢
收藏 感谢
Numerical Optimization这本书有中文版的吗
收藏 感谢
https://www.zhihu.com/question/49689245
Numerical Optimization和Convex optimization 两本书的选择?相关推荐
- 今天开始学Convex Optimization:引言、第1章基本概念介绍
文章目录 引言 第1章 Introduction 凸优化问题 最小二乘问题 线性规划问题 一个优化问题例子:最佳灯源问题 Chebyshev逼近问题,转化成线性规划 参考资料 2020年我自己希望多看 ...
- 笔记:Tensor RPCA: Exact recovery of corrupted low-rank tensors via convex optimization
Lu, C., et al., Tensor robust principal component analysis: Exact recovery of corrupted low-rank ten ...
- 对凸优化(Convex Optimization)的一些浅显理解
©作者 | 李航前 单位 | EPFL 研究方向 | 计算机图形学与三维视觉 最近学习了一些凸优化课程,整理笔记的同时写下一些自己的理解,向着头秃的道路上越走越远. 凸优化是应用数学的一个基本分支,几 ...
- 机器学习与深度学习神器!凸优化(Convex Optimization)学习必备
Boyd的Convex Optimization是神书,真的想搞科研可以学一下这个书,但这个书理论多,侧重凸分析的基础,花了非常长的篇幅介绍函数的凸性.对偶等,但在机器学习中,至少在刚入门不久的阶段这 ...
- 今天开始学Convex Optimization:第2章 背景数学知识简述
文章目录 第2章 背景数学知识简述 2.1 数学分析和微积分基础 函数性质 集合Sets Norms 线性函数.仿射函数 函数的微分(导数) 2.2 线性代数基础 Matrix Subspaces 正 ...
- 凸优化(convex optimization)第二讲:convex set
Convex opt 第二讲(convex set) Affine set affine set 表示经过两点的一条线,这条线满足: 相较于后面我们要讨论的convex set,这里少了一些限制,是 ...
- 实用线性代数和凸优化 Convex Optimization
If not specified, the following conditions are assumed. X∈Rn∗mA∈Rm∗nX \in R^{n*m} \\ A \in R^{m*n} X ...
- Convex Optimization介绍
最近在看Stephen Boyd的<Convex Optimization>,其中涉及不少数学知识和习题,在此整理一下阅读此书的学习笔记. 因为书上的记号比较详尽,所以在博客中仅摘取一些自 ...
- 读convex optimization (Stephen Boyd):最优化 最小二乘 线性规划 凸优化 非线性规划 (intro part)
for all x, y ∈ Rn and all α, β ∈ R with α + β = 1, α ≥ 0, β ≥ 0. Since any linear program is therefo ...
最新文章
- jSearch(聚搜) v1.1.0 发布,全新视觉体验
- python怎么读文件里的某一行-python如何读取文件中的某几行
- Java Web - 服务器中的过滤器和监听器
- RedisCluster读写分离改造
- 如何理解clone对象
- RabbitMQ(一):简介和基本概念
- 前端学习(3108):react-hello-组件和模块
- [解决方案]ln:无法创建符号链接‘ /usr/bin/python‘:权限不够
- 一个html页面上显示dopost,Java遇见HTML-servlet(一)
- c++ 测试串口速率_山西充放电测试设备实现多台仪器准确通
- 社交网络和物联网技术,拓展了数据采集技术渠道
- 网络监控解决方案及拓扑图
- Flutter 游戏引擎 flame
- 用Python 编写Logistics算法
- 朋友问我c++学到哪了 加愤怒的小鸟 要看到最后
- php开发框架_适用于开发人员的10个PHP框架-最佳
- vite hmr热更新
- 10则极具内涵的程序猿幽默
- cpu压测神器:cpuburn深度指南
- 记录第一次ANN跑BCI Competition iv 2a过程