凸最佳化指在凸集中對凸函式進行最佳化的問題,可以說是機器學習的一大基礎:它被廣泛應用在包括線性迴歸,支援向量機等各種傳統機器學習方法中;同時,在深度學習中,loss function 的最佳化雖然是一個非凸最佳化問題,但是直接用凸最佳化方法進行求解,同樣可以得到不錯的結果。

這學期我選修了一門《凸最佳化》,預設的教程是Boyd的 Convex Optimization[1] 。書當然是好書,但是感覺不太適合我。我又進行了一些搜尋,其中有一篇分享凸最佳化學習經驗的我的凸最佳化學習之路[2] 講的很好。我順著這篇文章的思路,又看了一些其他的教程,最終我找到了這個我個人認為最好的教程:39個小時學會凸最佳化[3] (海外的朋友可以看Youtube[4])

這個影片是凌青老師在中科大時開設的課程錄影,主要是介紹凸函式,凸問題以及一些具體演算法。凌老師把複雜的內容講的深入淺出,對於概念,凌老師不但會給出清晰有邏輯的證明思路,同時還會給出一些幾何解釋以及具體的工程應用。當然,凌老師的厲害之處不止在於深入淺出,更在於他的知識淵博,我印象最為深刻的就是關於對偶問題最優解等於原問題最優解一章,凌老師洋洋灑灑,一口氣給出了基於鞍點、經濟學、幾何、多模態最佳化的四種解釋,把四種解釋講得各有不同又有所相連,令人聽得大呼過癮。

凌老師講課邏輯之清晰令人驚歎,我聽凌老師的課,常常想起《讓子彈飛》中“TM什麼叫驚喜”的段落,凸最佳化大喝一聲“湯師爺你說說什麼是驚喜”,凌老師就blabla,把一個複雜問題庖丁解牛,拆解地清清楚楚,讓我們學生就像黃二郎一樣,恍然大悟:“原來這TM就是驚喜。”

凌老師講課也非常幽默,這在講理工科課程的國內老師中非常少見。有時冷不丁地來一句幽默,讓人在苦苦求索時精神為之一振。我一直記著的,就是凌老師說到可行解,說蜀國出征,關羽是最優解,而廖化,就是個可行解。當然,這個優點對比凌老師的其他優點而言,就不值一說了。我可以自信地說,哪怕凌老師的課程省略這些小幽默,你依然會為凌老師展示出的凸最佳化的美而震撼駐足。這些幽默,對其他老師的枯燥課程也許是雪中送炭,但之於凌老師,不過錦上添花而已。

除了以上種種,凌老師身上也散發著一個學人的人格魅力,他的治學嚴謹,關心學生,心懷國計民生等等,都值得我們學習。

我在看這門課的影片時,滿足之於,也發現一個遺憾,即凌老師的板書內容豐富,但網上並沒有對他板書內容的‘畫素級’的總結,只有一些比較概括性的總結。恰巧我在看網課之餘,做了非常詳細的手書筆記,並透過箭頭標出了不同步驟,不同概念之間的關聯。因此在這裡拋磚引玉,分享給大家,希望對大家的凸最佳化學習,有一些幫助。

筆記的地址在我的Github repoCVX-note[5],是紙質筆記的掃描格式,內容包括從仿射開始,一直到第38講的內容(不包括34,35兩節線性代數內容),並附了一個從bilibli網友寫的每個影片的一句話總結;為方便下載,在github上我也留了一個壓縮包,其中包含所有筆記。因為上課時間緊迫,我並未對筆記進行校正,不免有疏漏之處,如果有問題,希望大家可以聯絡我(weiguo@gwu。edu[6]),我會及時修正,謝謝大家。

References

[1]

Convex Optimization:

https://

web。stanford。edu/~boyd/

cvxbook/

[2]

我的凸最佳化學習之路:

http://

deanhan。com/2018/01/17/

convex/#comments

[3]

39個小時學會凸最佳化:

https://www。

bilibili。com/video/av40

868517/

[4]

Youtube:

https://www。

youtube。com/watch?

v=e6Hm3TycnqU&list=PLex0qwR2dnJh_7351A8HmasW1G-__le_S

[5]

CVX-note:

https://

github。com/weiguowillia

m/CVX-note

[6]

weiguo@gwu。edu:

mailto:weiguo@gwu。edu