凸優化 非凸優化

2021-10-04 22:03:33 字數 748 閱讀 2938

凸(convex) vs 非凸的概念,數學定義就不寫了,介紹個直觀判斷乙個集合是否為convex的方法,如下圖:

簡單的測試乙個集合是不是凸的,只要任意取集合中的倆個點並連線,如果說連線段完全被包含在此集合中,那麼這個集合就是凸集,例如左圖所示。

凸優化有個非常重要的定理,即任何區域性最優解即為全域性最優解。由於這個性質,只要設計乙個較為簡單的區域性演算法,例如貪婪演算法(greedy algorithm)或梯度下降法(gradient decent),收斂求得的區域性最優解即為全域性最優。因此求解凸優化問題相對來說是比較高效的。這也是為什麼機器學習中凸優化的模型非常多,畢竟機器學習處理大資料,需要高效的演算法。

而非凸優化問題被認為是非常難求解的,因為可行域集合可能存在無數個區域性最優點,通常求解全域性最優的演算法複雜度是指數級的(np難)。如下圖:

最經典的演算法要算**蒙特卡羅投點法(monte carlo algorithm)**了,大概思想便是隨便投個點,然後在附近區域(可以假設convex)用2中方法的進行搜尋,得到區域性最優值。然後隨機再投個點,再找到區域性最優點。如此反覆,直到滿足終止條件。

假設有1w個區域性最優點,你至少要投點1w次吧?並且你還要假設每次投點都投到了不同的區域,不然你只會搜尋到以前搜尋過的區域性最優點…

凸優化 python解決凸優化問題

1 安裝cvx包 用pip安裝cvxopt 1.2.1 cp36 cp36m win amd64.whl和cvxpy 1.0.9 cp36 cp36m win amd64.whl 因為我是python3.6所以是cp36 cvxpy cvxopt 參考 2 遇到問題 error microsoft ...

凸優化 最優化 凸集 凸函式

原文 我們知道壓縮感知主要有三個東西 訊號的稀疏性,測量矩陣的設計,重建演算法的設計。那麼,在重建演算法中,如何對問題建立數學模型並求解,這就涉及到了最優化或凸優化的相關知識。在壓縮感知中,大部分情況下都轉換為凸優化問題,並通過最優化方法來求解,因此了解相關知識就顯得尤為重要了。主要內容 問題引出 ...

凸優化1 什麼是凸優化問題

去年就想看一下優化和泛函變分相關的內容,但沒有空餘的排期,大部分學習時間花在了強化學習方面。今年,正好近期專案也有需要,凸優化提上了自學日程。全書700頁,計畫用半年的時間完成一刷。數學模型min iniz ef0 x su bjec ttof i x bi,i 1,2,m begin minini...