
1. Introductory Lectures on Convex Optimization Introductory Lectures on Convex Optimization
2. Convex Optimization: Algorithms and Complexity http://arxiv.org/abs/1405.4980
3. nonlinear programming http://www.amazon.com/Nonlinear-Programming-Dimitri-P-Bertsekas/dp/1886529000

前言--正本清源:優化理論(運籌學),研究的是如何求解目標函數在約束條件下的最優解。機器學習、人工智能中的絕大部分問題,到最後基本都會歸結為求解優化問題,因此學習優化理論是非常有必要的。
機器學習中用到的優化,只是整個運籌學(最優化理論)中的一瞥。只需一門Numerical Optimization(數值優化)或Convex Optimization(凸優化)即可。還有更簡單粗暴的,書名直接叫做CONVEX OPTIMIZATION IN ENGINEERING(工程中的凸優化)--機器學習中用到的優化和運籌學相比確實挺“工程”的。
下面是三本書目和下載鏈接(當然是英文原版的,還是免費的):
1,Numerical Optimization,西北大學和美國阿貢實驗室著(他引2w次)
http://www.bioinfo.org.cn/~wangchao/maa/Numerical_Optimization.pdf
2,Convex Optimization,斯坦福和UCLA教授著
https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf
3,CONVEX OPTIMIZATION IN ENGINEERING Modeling Analysis Algorithms,以色列理工教授著
http://www.st.ewi.tudelft.nl/~roos/courses/WI4218/tud00r.pdf
不喜歡看書的小夥伴,推薦Youtube(油管)搜索相關課程(當然你要自學怎麼翻牆咯),很多世界名校的教授都非常無私地把自己上課視頻上傳油管。例如:
斯坦福大學 Stephen Boyd教授在電子工程系(Electrical Engineering )開的Convex Optimization課程(EE 364A,感謝評論區,該課為研究生課程):
https://www.youtube.com/watch?v=McLq1hEq3UY
說實話,運籌學出生的樓主,看到機器學習中的優化理論基本都是直接跳過的,因為實在太基礎了。(噴子莫噴,學完運籌學下絕大部分優化課程再噴也不遲)
運籌學作為專門研究優化理論的學科,其下分支是極為龐大的,那麼機器學習中優化理論只需一門convex optimization的原因在於,機器學習處理數據之龐大,因此基本假設便目標方程和約束空間是convex和continuous。這樣導致運籌學的另外半壁江山nonconvex和integer optimization(NP難問題)在機器學習的領域沒有什麼用武之地。
當然隨著計算機運算效率的提高,也開始有學者把nonconvex和integer optimization應用於機器學習,比如樓主,還有樓主最近一篇paper的合作者之一,機器學習領域的法國國立應用科學學院(INSA)及諾曼底大學的Stephane Canu教授,就是這股潮流其中之二--我們利用混合整數規劃模型直接求解L0範式的優化問題(通常的策略是求解L1或Lp範式--轉化成convex 和continuous)。
因此如果你純粹做機器學習的應用,那麼學convex optimization就行,並且不用太在意理論性的東西,這是運籌學的研究者去研究的;如果搞科研,建議學完convex後可以跟進nonconvex和integer programming,因為以前沒人用,把沒有用過的理論應用過來,效果好就是一個新發現和好paper--歡迎入坑。
如果你想入門機器學習、人工智能,除了優化還有很多其他許多基礎課程,下面給你由淺入深一一列舉:
https://www.zhihu.com/question/50623000/answer/121833512(想學數據分析(人工智能)需要學哪些課程?)
如果對運籌學感興趣,可以看看樓主在下面的回答:
也歡迎參加我2017.6.11號舉辦的“運籌學綜述”知乎live,探討關於運籌學、優化、AI的相關話題:
知乎 Live - 全新的實時問答(大數據人工智能時代的運籌學-知乎Live)
最後希望大家關注樓主的運籌學專欄,瞭解優化理論的本源--運籌學。

(這是張動圖,戳鏈接查看:http://www.myexception.cn/img/2016/01/17/122257498.gif)
各位前面已經總結了一些經典的優化方面的教科書——經典的線性規劃到凸優化這些是必修的,也是理解從最小二乘到SVM到貝葉斯推斷這些經典算法的基礎,當然是必讀的,這裡不再贅述。
我們特別提一提基於梯度下降的方法,或者說,訓練神經網絡的方法。
• 首先是這篇Overview: An overview of gradient descent optimization algorithms(https://arxiv.org/pdf/1609.04747.pdf 或者http://sebastianruder.com/optimizing-gradient-descent/index.html),這篇文章介紹了現代神經網絡訓練的主要方法:Gradient Descent, Stochastic Gradient Descent, Mini-batch; SGD+Momentum; SGD+ Nesterov Momentum; Adagrad; Adadelta; RMSprop; Adam. 看完以後應該可以在調參過程中選擇優化方法的時候多一些信心。
• 深度神經網絡傾向於使用梯度下降的方法的一個重要原因在於可以比較好的應用於反向傳播。而反向傳播是整個深度學習的基石。在這個方面,最經典的莫過於Hinton在Nature上的這篇Learning representations by back-propagating errors: https://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backprop_old.pdf
• 說到詳細分析反向傳播的文章,就要數LeCun楊立昆老師的這篇Efficient Backprop了:http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf ,這篇文章詳盡地介紹了Backprop的一些tricks,並分析了採用梯度下降(一階方法)和二階方法(Hessian-based)的收斂性質。這篇文章被Neural Networks- Tricks of the Trade一書收錄。
• Bengio的Practical Recommendations for Gradient-Based Training of Deep Architectures (https://arxiv.org/pdf/1206.5533.pdf) 是一篇更加現代的介紹基於梯度的神經網絡訓練(煉丹)方法(Tricks)的文章,同樣被收錄進Neural Networks- Tricks of the Trade。
• CNN的反向傳播推導(當然,在現代的深度學習平臺上因為自動梯度的存在,你基本上不需要知道這些——但是偶爾手動推導一下也不壞,是吧)——還是看楊立昆老師的這篇:Backpropagation applied to handwritten zip code recognition (http://yann.lecun.org/exdb/publis/pdf/lecun-89e.pdf)
• LSTM的反向傳播推導:這個不推薦看Hochreiter/Jurgen Schmidhuber 1997的那一篇了,因為這一篇當中的LSTM沒有forget gate!比較好的一篇介紹在:LSTM: A Search Space Odyssey (https://arxiv.org/pdf/1503.04069.pdf)
• RNN的訓練:基本上,RNN的訓練是非常困難的,問題主要在於梯度消失/梯度爆炸,這個問題可以看Bengio的這篇分析:Learning Long-Term Dependencies with Gradient Descent is Difficult. (http://www-dsi.ing.unifi.it/~paolo/ps/tnn-94-gradient.pdf)。比較有意思的是(可能訓練RNN確實太難),Bengio在2012年帶著Mikolov又做了一篇On the difficulty of training Recurrent Neural Networks (https://arxiv.org/pdf/1211.5063.pdf)
好了,讀到這裡相信你最少對於神經網絡的優化方法有了一個初步的理解——不過在這裡特別提醒,基於梯度下降的方法絕對不是唯一的訓練方法,對於非凸優化咱們雖然很難有效地尋找全局最優點,但還是有些別的辦法的,比如說,基因算法。這個坑就留著等大家來填吧。
本回答來自Emotibot機器學習科學家馬永寧。

我稍微歸納總結一下:
優化方面經典的三本優化著作,可根據自身情況選讀
- 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便是求解目標函數中參數的重要工具,建議學習時循序漸進,每遇到一個模型,其對應的優化算法搞懂,慢慢將知識串起來!日積月累,便了然於胸了!
個人理解,有誤之處,歡迎指正!

在之前的凸優化基礎上推薦一本monograph(基本上就是針對機器學習中的優化理論):
Sébastien Bubeck (2015), "Convex Optimization: Algorithms and Complexity", Foundations and Trends® in Machine Learning: Vol. 8: No. 3-4, pp 231-357.
定位前沿, 條理清晰, 證明嚴謹; Foundations and Trends 出品, 必屬精品.
---------------------------------------------------------------------------------------------------
更加前沿的文章可以跟蹤 NIPS Workshop on Optimization for Machine Learning -- OPT 2015: Optimization for Machine Learning


這個問題還是應該具體一點。題主說的機器學習中的優化是指具體哪種? 機器學習畢竟是交叉學科,涵蓋比較廣,其中由於求解模型參數的算法都可以看做優化,主要有兩類:
1. 採樣
2. 數值優化算法
而且這兩類中的方法種類也不止一倆種,五花八門,所以題主還是應該明確一下具體問題
如果題主只是要看懂某一篇paper的算法,恰好欠缺個別方面的基礎知識,一般可以看引用

力推兩部神著:
1. Jorge Nocedal 和 Stephen Wright 的
Numerical Optimization
非常推薦從這本書入手!這本書邏輯清楚,可讀性強,注重計算的實現,對於理論的深度把握恰當,每個算法都有偽碼,非常適合優化的初學者,也是一本很好的工具書。
2. Boyd 的Convex Optimization
這本書有對應的公開課,斯坦福的machine learning課也推薦大家去學這門課程。這本書稍微多些理論,對於算法的分析也很抽象,覆蓋的內容比較全面。值得一提的是這本書的課後習題非常棒。
鑑於讀磚頭書的時間成本非常高,建議是讀第一本書的無約束優化基礎,線搜索,擬牛頓,約束優化理論,二次規劃章節,再逐漸補上共軛梯度,牛頓,非線性方程等章
第二本書推薦只讀理論的部分,應用和算法部分的內容以後慢補或者從其他材料裡找。

推薦三個資料:
- convex optimization (https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf) 學習這本書最大的好處是不光有免費的online pdf,還有slide,習題答案和課程視頻公開。
- Optimization for Machine Learning 也是很不錯的書籍,相當於是論文集。
- Optimization Methods for Large-Scale Machine Learning (https://arxiv.org/pdf/1606.04838.pdf),在big data的今天,這個好像更實用,裡面探討了從SGD一直探討到了Second Order的方法。
最後對於需要哪些資料,我推薦一個Matrix CookBook (http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3274/pdf/imm3274.pdf)

