史丹佛大學凸優化課程筆記-0

鄰澤居士發表於2018-02-21

凸優化課程-0

凸優化的重要性

首先,在現實生活中,如果對實際問題進行建模,直接符合凸優化條件的問題很少很少,少的可憐,我們在機器學習中、深度學習中所謂的模型正好符合凸優化模型的情況是經過無數先輩幾十年的沉澱轉化而來的,現今的機器學習、深度學習,所謂的智慧,其實也只是資料進行建模,kNN、貝葉斯、決策樹、SVM做超平面分隔、k聚簇等等只是在使用統計學的方法來做決策,其實只是概率(對已發生事件的頻率統計)選擇來進行決策而已,而解決這些問題的過程當中,存在著無數約束條件:等式+不等式。求解ƒ(x),使得等式+不等式符合條件,經過先輩們的改善、切合,發現轉化為凸優化可以解決這類問題。但是還有著大量的問題沒法解決,例如NP問題,目前是無解的,因為它涉及的約束條件、可能性太多,計算過於複雜。我們沒法直接將它轉化為凸優化。

其次,凸優化的重要在於它是一個相對而言被嚼爛的資料模型,對凸優化的問題我們在基礎數學上面已經有了很多解決方法,例如可以將凸優化問題Lagerange做對偶化,然後用Newton、梯度下降演算法求解等等。再次,現有的優化方法不是都解決了的,還是有很多問題是沒有解決的,例如NP問題,如果轉化為可解問題,如何對這些問題做近似優化處理,這就需要遇到具體問題的時候具體去分析,而且建立一個近似可解的優化模型需要我們對優化本身理解透徹。一個對水墨、顏料都不懂的畫家如何能夠創造出新穎的畫風?

最後,回答末尾一個問題,凸優化的作用在於思維方式的轉變,跟計算機思維方式一樣,計算機從業人員在遇到問題的時候習慣了通過電腦去協助解決問題,而他們的價值不在於知道聽得懂別人告訴他如何解決問題,而是遇到現實問題的時候都會將問題拆分成機器可以實現的方式去解決:例如遇到購物,阿里巴巴建立了網站、app、c/s系統、b/s系統,用網際網路建立資訊流,建立帝國。遇到查詢問題,百度建立了搜尋引擎。這種思維方式才是最重要的。。同樣,凸優化的價值也在於思維轉變,遇到現實生活問題的時候,我們必然要對問題進行建模,然後抽象問題,利用機器去幫助我們解決問題,那麼,當問題的計算量接近無窮大的時候我們如何去解決?這就需要我們抽離問題抽象結構,想辦法將轉換成“凸優化問題”,因為凸優化已經被嚼爛,所以只要問題轉化成凸優化,我們就可以分佈迭代去運算,於是才有了機器學習、深度學習這一門門的交叉科學。凸優化是數學領域的重要分支,而電腦科學僅僅是數學這門基礎科學的延伸而已,基礎科學才是王道!!! C#、Java固然是被封裝成了便於人類使用的高階語言,但是總有些功能是“已有實現”沒有封裝好的,這時就需要我們迴歸更加原始語言C、彙編去程式設計。。深究底層、精通基礎科學才是從容面對所有問題的解決王道,學會別人解決過的問題只能讓你解決相同的問題,現實是無限可能的,總有未解決過的問題等著你,凸優化,你值得擁有

凸優化史丹佛課程網站

https://lagunita.stanford.edu/courses/Engineering/CVX101/Winter2014/courseware/7206c57866504e83821d00b5d3f80793/a87df9fb325c4bf49c3cd10a1681a6eb/

國內視訊下載連結,與我個人進行的字幕翻譯

連結:https://pan.baidu.com/s/1o9z2YXs 密碼:pq20

字幕翻譯github專案
https://github.com/zangzelin/convex_optimization_subtitle_file


相關文章