1. 程式人生 > >凸優化(Convex Optimization)是什麼?

凸優化(Convex Optimization)是什麼?

”凸優化“ 是指一種比較特殊的優化,是指求取最小值的目標函式為凸函式的一類優化問題。其中,目標函式為凸函式且定義域為凸集的優化問題稱為無約束凸優化問題。而目標函式和不等式約束函式均為凸函式,等式約束函式為仿射函式,並且定義域為凸集的優化問題為約束優化問題 。

一、什麼是凸優化

不嚴格的說,凸優化就是在標準優化問題的範疇內,要求目標函式和約束函式是凸函式的一類優化問題。

二、重要性
“凸優化在數學規劃領域具有非常重要的地位。”

“一旦將一個實際問題表述為凸優化問題,大體上意味著相應問題已經得到徹底解決,這是非凸的優化問題所不具有的性質。”

——《<凸優化>譯者序》
凸優化之所以如此重要,是因為:

1、其應用非常廣泛,機器學習中很多優化問題都要通過凸優化來求解;


2、在非凸優化中,凸優化同樣起到重要的作用,很多非凸優化問題,可以轉化為凸優化問題來解決;


3、如上引用所述,凸優化問題可以看作是具有成熟求解方法的問題,而其他優化問題則未必。

凸優化(Convex Optimization)之所以重要是因為它是所有優化問題中最容易解決的。凸優化包含但不限於線性優化(Linear Optimization)以及一些具有特殊性質的非線性優化(Nonlinear Optimization)。凸優化之所以‘容易’是因為任何可證明的區域性最優解(Local Optimal Solution)都同時為全域性最優解(Global Optimal Solution)。換句話說,一旦你找到了一個區域性最優解,那麼它一定是你能找到中最好的(也就是全域性最優的)。之所以說它重要,我認為有兩點原因:1. 它是所有優化問題中最簡單的,很多複雜的演算法要基於凸優化,因此很重要; 2. 線性優化是所有優化中最為基本的,一般學習優化演算法要從線性優化開始。

1. C++標準模板庫從入門到精通 

2.跟老菜鳥學C++

3. 跟老菜鳥學python

4. 在VC2015裡學會使用tinyxml庫

5. 在Windows下SVN的版本管理與實戰 

7.在VC2015裡使用protobuf協議

8.在VC2015裡學會使用MySQL資料庫