去年就想看一下優化和泛函變分相關的內容,但沒有空餘的排期,大部分學習時間花在了強化學習方面。
今年,正好近期專案也有需要,凸優化提上了自學日程。
全書700頁,計畫用半年的時間完成一刷。
數學模型min
iniz
ef0(
x)su
bjec
ttof
i(x)
≤bi,
i=1,
2,⋯,
m\begin mininize \ &f_0(x) \\ subject \ to \ &f_i(x)\leq b_i, \ i=1,2,\cdots,m \end
minini
zesu
bjec
tto
f0(
x)fi
(x)
≤bi
,i=1
,2,⋯
,m
線性優化:目標函式和約束函式均為線性函式;
凸優化:目標函式和約束函式均為凸函式;
凸性是較線性更為一般的性質,線性函式是凸函式的乙個特例,因此線性規劃問題也是凸優化問題。
應用
求解
m in
iniz
ef0(
x)=∥
ax−b
∥2
2\begin mininize \ &f_0(x)=\lvert ax-b\rvert _2^2 \end
minini
zef
0(x
)=∥a
x−b∥
22
等效於求解:
a ta
x=at
ba^tax=a^tb
atax=a
tb存在解析解:
x =(
ata)
−1at
bx=(a^ta)^a^tb
x=(ata
)−1a
tb即b
bb左乘a
aa的廣義逆。
可以認為,最小二乘問題的求解是一項(成熟的)技術。
目標函式和約束函式均為線性函式
m in
iniz
ef0(
x)=c
txsu
bjec
ttof
i(x)
=ait
x≤bi
,i=1
,2,⋯
,m
\begin mininize \ &f_0(x)=c^tx \\ subject \ to \ &f_i(x)=a_i^tx\leq b_i, \ i=1,2,\cdots,m \end
minini
zesu
bjec
tto
f0(
x)=c
txfi
(x)
=ait
x≤b
i,i
=1,2
,⋯,m
不存在解析解,但存在很多有效地求解方法:
可以說,求解(大部分)線性規劃問題,也是一項(成熟的)技術。
目標函式和約束函式,都是凸函式。
有效的求解方法:內點法。
雖然有點誇張,如果某個實際問題可以表述為凸優化問題,那麼事實上已經解決了這個問題
目標函式或者約束函式,是非線性,且不一定為凸函式。
區域性優化
全域性優化
例子:最壞情況分析,尋找最壞情況的引數值;
應用
凸優化 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 ...
凸優化 非凸優化
凸 convex vs 非凸的概念,數學定義就不寫了,介紹個直觀判斷乙個集合是否為convex的方法,如下圖 簡單的測試乙個集合是不是凸的,只要任意取集合中的倆個點並連線,如果說連線段完全被包含在此集合中,那麼這個集合就是凸集,例如左圖所示。凸優化有個非常重要的定理,即任何區域性最優解即為全域性最優...
優化問題,凸優化,凸二次優化問題
首先 優化問題通常喜歡求解最小值min 如果要求max就給他轉換過來 如何來判斷乙個函式是否是凸函式呢?對於一元函式f x 我們可以通過其二階導數f x 的符號來判斷。如果函式的二階導數總是非負,即f x 0 則f x 是凸函式對於多元函式f x 我們可以通過其hessian矩陣 hessian矩陣...