来自手百问答:
回忆659183e
我建议题目先读两个monograph:一个是Bubeck的《Convex Optimization: Algorithms and Complexity》,接下来再读Bottou、Curtis和Nocedal合作写的《Optimization Methods for Large-Scale Machine Learning》。前者从凸性的基本概念开始介绍,把常用的一阶算法都做了系统的介绍,它不需要任何优化基础就可以读懂;后者介绍了机器学习和优化交叉领域目前最新的研究成果,这个survey非常新,去年才写出来,今年也做过更新,而且作者也很牛,Bottou是在机器学习和优化交叉方向最优秀的几位研究者之一,Nocedal是鼎鼎大名的传统优化大牛(目前在世的人中排前5应该不过分)。认真读过这两个过后,我相信题主看目前主流机器学习优化相关的paper、做一些相关研究毫无问题。当然,如果题目想做好的研究,系统地学习凸优化的东西还是有必要的。这个可以等你入门了再一边做研究一边慢慢细读Convex Optimization、Numerical Optimization、Introductory Lectures on Convex Optimization等书。
百变小卷卷240488a0b
我觉得学习凸优化可以直接看boyd这本书,我之前从国家图书馆借的中文版。大概看了两个月。看着这本书很厚,但是我感觉是偏工具的,跟线性代数学起来感觉不一样,线性代数学完感觉很完整的了解了一个体系。这个感觉就是一个工具。所以看起来也比较快。我觉得就两部分,第一部分(2-5章),就是凸集、凸函数、对偶性,这些概念。然后就是算法(9-11章),无约束最小化,等式约束最小化,内点法。书中第二部分是应用(6-8章)我没有看。我建议直接看书,第一部分(2、3、4、5章):理论,第三部分(9、10、11章):算法。第二部分:应用,可以跳过。
充傲蓉ac1
如果真的是学凸优化的话,boyd这本书很值得细啃,倒是那门公开课给我的感觉很一般,如果没啃过书的话能吸收到的东西很有限,啃完书又很有余力的话看看吧。那么说说这本书,我喜欢它的原因有两个,一是这本书的理论深度刚刚好。我对比另外两本书是rockafellar的凸分析和nocedal的数值最优化,前者是凸理论的巨著经典,后者是计算数学和最优化方向很好的入门书。对于大多数人来说,凸分析太过抽象,缺乏场景来帮助理解,而数值最优化太偏重应用,对于研究的帮助有限,而凸优化这本书相当平衡,对于凸集,对偶这些基础知识讲的足够,同时又有充足的例子给出应用场景。对于这本书,我的建议是先花大力气看前几章,凸集和凸函数,拉格朗日对偶的推导,还有线性规划这些章节的理论基础都吃透。而对于后几章可以选择性的看,毕竟对于机器学习来说这本书里的问题都太老了,全局的算法也几乎都用不到,有了基础后还是要抓紧投入paper,时不时翻一些作为扩充即可。那么好像还是没讲怎么看,这里就要提我喜欢这本书的另一个原因了,就是它的习题。比起它的内容,这本书的题有点难度,很值得一做,不少证明在当时都挺靠近研究前沿的。一般看书我都是两周后试着不翻书本把定理来检验自己的掌握程度的,而这门课我记得是靠作业顶的,当然你也可以都试试。
知乎上的回答:
作者:生如夏花
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我稍微归纳总结一下:
优化方面经典的三本优化著作,可根据自身情况选读
- Convex Optimization Convex Optimization - Boyd and Vandenberghe
- Convex optimization有公开课视频,不想翻墙的话国内优酷网站上也有 (链接:Convex Optimization I Lecture 1),可惜没有字幕,不过正好也可以练一下听力,老师风趣幽默的很;国内有中译本《凸优化》,可以辅助阅读
- Numerical Optimization Numerical Optimization | Jorge Nocedal | Springer
- 经典的一本数值优化的教材,复旦大学吴立德老师讲授数值优化,优酷上也有公开课(链接:吴立德《数值优化》 - 播单 - 优酷视频)
- Nonlinear Programming Dimitri P. Bertsekas, Dimitri P. Bertsekas
- 国内有中译本《非线形规划》挺不错,实验同学正在看说挺通俗易懂的
若是深度学习方面的优化问题话
- 主要还是一阶优化算法,不深究理论从应用角度上看还算简单,强力推荐Bengio的《Deep Learning》的第8章 Optimization for traning deep models (书主页链接:Deep Learning),认真看完该章节便有全局的了解
- 实践的话,斯坦福的CS231n Convolutional Neural Networks for Visual Recognition中的有神经网络训练的slides及notes,简直是良心的课程(链接:CS231n: Convolutional Neural Networks for Visual Recognition)
Optimization是机器学习中非常非常重要的问题,基本上机器学习问题最后都会规约成一个目标函数去求解,optimization便是求解目标函数中参数的重要工具,建议学习时循序渐进,每遇到一个模型,其对应的优化算法搞懂,慢慢将知识串起来!日积月累,便了然于胸了