UA MATH567 高維統計II 隨機向量6 亞高斯隨機向量的應用: 半正定規劃
UA MATH567 高維統計II 隨機向量6 亞高斯隨機向量的應用: 半正定規劃
半正定規劃(semidefinite programming, SDP)是凸優化的一個分支:
max X ⟨ A , X ⟩ s . t . X ≥ 0 , ⟨ B i , X ⟩ = b i , i = 1 , ⋯ , m \max_X \langle A, X \rangle \\ s.t. \ X \ge 0,\langle B_i,X \rangle =b_i, i =1,\cdots,m Xmax⟨A,X⟩s.t. X≥0,⟨Bi,X⟩=bi,i=1,⋯,m
其中
X
≥
0
X \ge 0
X≥0表示
X
X
X半正定,
⟨
A
,
X
⟩
=
t
r
(
A
T
X
)
=
∑
i
,
j
=
1
n
A
i
j
X
i
j
\langle A, X \rangle = tr(A^TX) = \sum_{i,j=1}^n A_{ij}X_{ij}
⟨A,X⟩=tr(ATX)=i,j=1∑nAijXij
顯然目標函式是線性函式、可行域是凸集(所有的半正定矩陣形成的集合是凸集)與凸多面體( ⟨ B i , X ⟩ = b i , i = 1 , ⋯ , m \langle B_i,X \rangle =b_i, i =1,\cdots,m ⟨Bi,X⟩=bi,i=1,⋯,m)的交集,所以可行域也是凸集,因此這是一個凸優化。儘管這是一個凸優化,但它的求解難度也是非常大的,因為決策變數個數是隨著 X X X的維數平方增長的,比如 X X X是 100 × 100 100 \times 100 100×100的矩陣,決策變數就有一萬個,所以半正定規劃很容易變成高維問題。
現在我們想用SDP來解決一個整數規劃(integer programming)的問題,記這個問題為(IP):
max x x T A x x = ( x 1 , ⋯ , x n ) , x i = ± 1 , A T = A \max_x x^TAx \\ x = (x_1,\cdots,x_n),x_i = \pm 1,A^T = A xmaxxTAxx=(x1,⋯,xn),xi=±1,AT=A
解決這個問題最粗暴的思路是遍歷所有可能的 x x x的取值,一共有 2 n 2^n 2n種,顯然這是一個NP演算法,於是我們需要設計一些更優的演算法來降低複雜度。
一種可行的方法是做semidefinite relaxation,考慮
max
∥
X
i
∥
2
=
1
,
i
=
1
,
⋯
,
n
∑
i
,
j
=
1
n
A
i
j
⟨
X
i
,
X
j
⟩
\max_{\left\| X_i \right\|_2 = 1,i=1,\cdots,n} \sum_{i,j=1}^n A_{ij} \langle X_i,X_j \rangle
∥Xi∥2=1,i=1,⋯,nmaxi,j=1∑nAij⟨Xi,Xj⟩
這個問題可以看成是(IP)的一種鬆弛,接下來我們把這個relaxation改寫為SDP,定義
X
=
[
X
i
j
]
,
X
i
j
=
⟨
X
i
,
X
j
⟩
X = [X_{ij}],X_{ij}=\langle X_i,X_j \rangle
X=[Xij],Xij=⟨Xi,Xj⟩,於是relaxation等價於(SDP)
max
X
≥
0
⟨
A
,
X
⟩
s
.
t
.
X
i
i
=
1
=
⟨
B
i
,
X
⟩
\max_{X \ge 0}\langle A, X \rangle \\ s.t. X_{ii}=1 =\langle B_i,X \rangle
X≥0max⟨A,X⟩s.t.Xii=1=⟨Bi,X⟩
其中 B i B_i Bi是selection matrix,只有第 i i i行第 i i i列的元素為1,其他元素為0,作用是選擇某矩陣第 i i i行第 i i i列的元素。記 I N T ( A ) INT(A) INT(A)為整數規劃的解,記 S D P ( A ) SDP(A) SDP(A)為它的semidefinite relaxation的解,根據relaxation的性質
I N T ( A ) ≤ S D P ( A ) INT(A) \le SDP(A) INT(A)≤SDP(A)
定理 I N T ( A ) ≤ S D P ( A ) ≤ 2 K × I N T ( A ) , K ≤ 1.783 INT(A) \le SDP(A) \le 2K \times INT(A),K \le 1.783 INT(A)≤SDP(A)≤2K×INT(A),K≤1.783
下界是自然成立的,但上界的證明極其複雜。為了證明這個定理,我們需要Grothendieck不等式,這裡先敘述一下,下一篇給出Grothendieck不等式的證明。
Grothendieck不等式
A
A
A是
m
×
n
m \times n
m×n的實矩陣,
x
i
,
y
j
∈
{
−
1
,
1
}
x_i,y_j \in \{-1,1\}
xi,yj∈{−1,1},假設
∣
∑
i
,
j
A
i
j
x
i
y
j
∣
≤
1
|\sum_{i,j}A_{ij}x_iy_j| \le 1
∣∑i,jAijxiyj∣≤1,則
∀
H
\forall H
∀H(Hilbert space),
∀
u
i
,
v
j
∈
H
\forall u_i,v_j \in H
∀ui,vj∈H,
∥
u
i
∥
=
∥
v
j
∥
=
1
\left\| u_i \right\|=\left\| v_j \right\|=1
∥ui∥=∥vj∥=1,
∣
∑
i
,
j
A
i
,
j
⟨
u
i
,
v
j
⟩
∣
≤
K
,
K
≤
1.783
|\sum_{i,j}A_{i,j}\langle u_i,v_j \rangle| \le K,K \le 1.783
∣i,j∑Ai,j⟨ui,vj⟩∣≤K,K≤1.783
推論 假設
A
A
A是對稱矩陣,
x
i
∈
{
−
1
,
1
}
x_i \in \{-1,1\}
xi∈{−1,1},假設
∣
∑
i
,
j
A
i
j
x
i
x
j
∣
≤
1
|\sum_{i,j}A_{ij}x_ix_j| \le 1
∣∑i,jAijxixj∣≤1,則
∀
H
\forall H
∀H(Hilbert space),
∀
u
i
,
v
j
∈
H
\forall u_i,v_j \in H
∀ui,vj∈H,
∥
u
i
∥
=
∥
v
j
∥
=
1
\left\| u_i \right\|=\left\| v_j \right\|=1
∥ui∥=∥vj∥=1,
∣
∑
i
,
j
A
i
,
j
⟨
u
i
,
v
j
⟩
∣
≤
2
K
,
K
≤
1.783
|\sum_{i,j}A_{i,j}\langle u_i,v_j \rangle| \le 2K,K \le 1.783
∣i,j∑Ai,j⟨ui,vj⟩∣≤2K,K≤1.783
說明
從Grothendieck不等式到它的推論,我們只需要說明
∣
∑
i
,
j
A
i
j
x
i
x
j
∣
≤
1
|\sum_{i,j}A_{ij}x_ix_j| \le 1
∣∑i,jAijxixj∣≤1可以推出
∣
∑
i
,
j
A
i
j
x
i
y
j
∣
≤
2
|\sum_{i,j}A_{ij}x_iy_j| \le 2
∣∑i,jAijxiyj∣≤2,然後根據Grothendieck不等式就可以得到推論了。
根據這個推論,我們可以直接得到上面的定理:
S
D
P
(
A
)
≤
2
K
×
I
N
T
(
A
)
,
K
≤
1.783
SDP(A) \le 2K \times INT(A),K \le 1.783
SDP(A)≤2K×INT(A),K≤1.783
相關文章
- UA MATH567 高維統計II 隨機向量5 亞高斯隨機向量H5隨機
- UA MATH567 高維統計II 隨機向量1 隨機向量的範數H5隨機
- UA MATH567 高維統計II 隨機向量2 各向同性的隨機向量H5隨機
- 向量(高階的隨機化應用)隨機
- UA MATH567 高維統計III 隨機矩陣7 亞高斯矩陣的應用:Stochastic Block Model與社群發現 問題描述H5隨機矩陣ASTBloC
- UA MATH567 高維統計I 概率不等式8 亞指數範數H5
- MATLAB中如何生成指定範圍的隨機整數向量Matlab隨機
- UA MATH567 高維統計I 概率不等式7 亞指數性與亞指數分佈H5
- 隨機過程(高斯隨機過程、譜分析、白噪聲)隨機
- JavaScript隨機數的應用JavaScript隨機
- UA MATH567 高維統計I 概率不等式10 Bernstein不等式H5
- UA MATH567 高維統計I 概率不等式11 Azuma不等式H5
- 支援向量機之線性可分向量機
- 初識隨機規劃:一個小小例子隨機
- 計算機程式的思維邏輯 (34) – 隨機計算機隨機
- 支援向量機
- 尤拉計劃695:隨機長方形隨機
- 應用:隨機生成驗證碼隨機
- 尤拉計劃697:隨機衰減序列隨機
- 支援向量機(SVM)
- c++ 一維向量,和二維向量的基本使用C++
- CWE-329: 密碼分組連結模式未使用隨機初始化向量密碼模式隨機
- 尤拉計劃701:隨機連線區域隨機
- 運用JS 實現隨機點名 (隨機點名)JS隨機
- 感知機與支援向量機 (SVM)
- SVM——支援向量機(完整)
- SVM_支援向量機
- 支援向量機SVM:從數學原理到實際應用
- python生成隨機數、隨機字串Python隨機字串
- java_隨機數(統計例項)Java隨機
- 【java】隨機生成6位的數字Java隨機
- 【概率論】一維隨機變數隨機變數
- 機器學習:支援向量機(SVM)機器學習
- 機器學習——支援向量機(SVM)機器學習
- Python爬蟲隨機UserAgent庫,讓你不再手動敲UA!Python爬蟲隨機
- 6. 整合學習&隨機森林隨機森林
- 對SVM支援向量機(1)
- [譯] 支援向量機(SVM)教程