日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent

發(fā)布時(shí)間:2025/4/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

UA MATH567 高維統(tǒng)計(jì)專(zhuān)題3 含L1-norm的凸優(yōu)化2 Proximal Gradient Descent

    • Proximal Gradient Descent的公式推導(dǎo)
    • Proximal Operator
      • Indicator function
      • LASSO
      • Nuclear Norm

對(duì)于平滑的凸函數(shù),寫(xiě)一個(gè)梯度下降的求最值的算法非常簡(jiǎn)單(上一講介紹梯度下降但還在施工中);但非平滑的函數(shù)求不出梯度,這時(shí)可以用Proximal Gradient Descent代替梯度下降求它的最值。

Proximal Gradient Descent的公式推導(dǎo)

假設(shè)F(x)F(x)F(x)是一個(gè)非平滑的凸函數(shù),它可以被分解為一個(gè)平滑函數(shù)f(x)f(x)f(x)和一個(gè)形式相對(duì)比較簡(jiǎn)單的函數(shù)g(x)g(x)g(x)
F(x)=f(x)+g(x)F(x)=f(x)+g(x)F(x)=f(x)+g(x)

假設(shè)?f(x)\nabla f(x)?f(x)是L-Lipschitz函數(shù),則
F(x)≤F^(x,xk)=f(xk)+??f(xk),x?xk?+L2∥x?xk∥22?upperboundoff(x)+g(x)F(x) \le \hat F(x,x_k) \\=\underbrace{f(x_k)+\langle \nabla f(x_k),x-x_k \rangle +\frac{L}{2} \left\| x-x_k \right\|^2_2}_{upper\ bound\ of\ f(x)}+g(x)F(x)F^(x,xk?)=upper?bound?of?f(x)f(xk?)+??f(xk?),x?xk??+2L?x?xk?22???+g(x)

Proximal gradient descent的思路用F^(x,xk)\hat F(x,x_k)F^(x,xk?)的最小值點(diǎn)作為xk+1x_{k+1}xk+1?
xk+1=arg?min?xF^(x,xk)=arg?min?x??f(xk),x?xk?+L2∥x?xk∥22+g(x)=arg?min?xL2∥x?xk+?f(xk)L∥22+g(x)=arg?min?xL2∥x?wk∥22+g(x)x_{k+1}=\argmin_{x} \hat F(x,x_k) \\ =\argmin_{x} \langle \nabla f(x_k),x-x_k \rangle +\frac{L}{2} \left\| x-x_k \right\|^2_2+g(x) \\ =\argmin_{x}\frac{L}{2} \left\| x-x_k+\frac{\nabla f(x_k)}{L} \right\|^2_2+g(x) \\ = \argmin_{x}\frac{L}{2} \left\| x-w_k\right\|^2_2+g(x)xk+1?=xargmin?F^(x,xk?)=xargmin???f(xk?),x?xk??+2L?x?xk?22?+g(x)=xargmin?2L??x?xk?+L?f(xk?)??22?+g(x)=xargmin?2L?x?wk?22?+g(x)

其中
wk=xk??f(xk)Lw_k=x_k-\frac{\nabla f(x_k)}{L}wk?=xk??L?f(xk?)?

如果g(x)g(x)g(x)可以忽略,那上式的解就是xk+1=wkx_{k+1}=w_kxk+1?=wk?,這樣操作起來(lái)就很容易;但即使g(x)g(x)g(x)不能忽略,它的形式也比較簡(jiǎn)單,所以這個(gè)最優(yōu)化應(yīng)該也不難解。

定義 Proximal Operator:稱(chēng)凸函數(shù)ggg的proximal operator為
proxg(w)=arg?min?xg(x)+12∥x?w∥22prox_g(w)=\argmin_x \ g(x)+\frac{1}{2}\left\| x-w\right\|^2_2proxg?(w)=xargmin??g(x)+21?x?w22?

評(píng)注 在這個(gè)定義的幫助下,我們可以把Proximal Gradient Descent用兩個(gè)公式表示出來(lái):
wk=xk??f(xk)Lxk+1=proxg/L(wk)w_k=x_k-\frac{\nabla f(x_k)}{L} \\ x_{k+1}=prox_{g/L}(w_k)wk?=xk??L?f(xk?)?xk+1?=proxg/L?(wk?)

Proximal Operator

現(xiàn)在我們有了Proximal Gradient Descent的公式,假設(shè)關(guān)于目標(biāo)函數(shù)F(x)F(x)F(x)的分解F(x)=f(x)+g(x)F(x)=f(x)+g(x)F(x)=f(x)+g(x)已經(jīng)找出來(lái)了,那么要寫(xiě)出最小化F(x)F(x)F(x)的算法,我們只需要確定ggg的Proximal Operator就可以了,下面介紹幾個(gè)常見(jiàn)的例子:

Indicator function

g(x)=ID(x)={0,x∈D+∞,x?Dg(x)=I_D(x)= \begin{cases} 0, x \in D \\ +\infty , x \notin D\end{cases}g(x)=ID?(x)={0,xD+,x/?D?

其中DDD是凸閉集;
proxg(w)=arg?min?xg(x)+12∥x?w∥22=arg?min?xID(x)+12∥x?w∥22=arg?min?x∈D∥x?w∥22=PD(w)prox_g(w)=\argmin_x \ g(x)+\frac{1}{2}\left\| x-w\right\|^2_2 \\ = \argmin_x \ I_D(x)+\frac{1}{2}\left\| x-w\right\|^2_2 \\ = \argmin_{x \in D}\left\| x-w\right\|^2_2 = P_D(w)proxg?(w)=xargmin??g(x)+21?x?w22?=xargmin??ID?(x)+21?x?w22?=xDargmin?x?w22?=PD?(w)

其中PD(x)P_D(x)PD?(x)wwwDDD中的投影。

LASSO

g(x)=λ∥x∥1,x∈Rdg(x)=\lambda \left\|x \right\|_1,x \in \mathbb{R}^dg(x)=λx1?,xRd

proxg(w)=arg?min?xg(x)+12∥x?w∥22=arg?min?xλ∥x∥1+12∥x?w∥22=arg?min?x∑i=1dλ∣xj∣+12(xj?wj)2=arg?min?x1,?,xdλ∣xj∣+12(xj?wj)2=(sign(wj)max?{∣wj∣?λ,0})d×1=(soft(wj,λ))d×1prox_g(w)=\argmin_x \ g(x)+\frac{1}{2}\left\| x-w\right\|^2_2 \\ = \argmin_x \lambda \left\|x \right\|_1+\frac{1}{2}\left\| x-w\right\|^2_2 \\ = \argmin_x \sum_{i=1}^d \lambda |x_j|+\frac{1}{2}(x_j-w_j)^2 \\ = \argmin_{x_1,\cdots,x_d} \lambda |x_j|+\frac{1}{2}(x_j-w_j)^2 \\ = (sign(w_j)\max\{|w_j|-\lambda,0\})_{d \times 1} = (soft(w_j,\lambda))_{d \times 1}proxg?(w)=xargmin??g(x)+21?x?w22?=xargmin?λx1?+21?x?w22?=xargmin?i=1d?λxj?+21?(xj??wj?)2=x1?,?,xd?argmin?λxj?+21?(xj??wj?)2=(sign(wj?)max{wj??λ,0})d×1?=(soft(wj?,λ))d×1?

也就是entry-wise soft-threshold of wjw_jwj?,用proximal gradient descent可以寫(xiě)LASSO的算法(但實(shí)際上肯定是R package效率更高,比如glmnet之類(lèi)的包),下面是用R寫(xiě)的一個(gè)示例(僅作參考,要使用需要自行優(yōu)化調(diào)試)

soft.threshold <- function(x,tau){len0 = length(x)y = rep(0,len0)for(index0 in 1:len0){if(x[index0]>=tau){y[index0] = x[index0]-tau}if(x[index0]<=-tau){y[index0] = x[index0]+tau}}return(y) }PGLasso <- function(y,X,lambda,beta0,L,maxiter,eps){## L >= max eigen value if X'X## choose an appropriate value for L as input numiter = 0dis = 1while((numiter < maxiter) & (dis >= eps)){w = beta0 - (1/L)*t(X)%*%(X%*%beta0 - y)beta = soft.threshold(w,lambda/L)dis = norm(beta - beta0,type = "2")beta0 = betanumiter = numiter + 1}return(beta0) }

這里簡(jiǎn)單介紹一下PGLasso的思路:
min?xF(β)=12∥y?Xβ∥22?f(β)+λ∥β∥1?g(β)\min_x F(\beta)= \underbrace{\frac{1}{2}\left\| y -X\beta \right\|_2^2}_{f(\beta)}+\underbrace{\lambda \left\| \beta\right\|_1}_{g(\beta)}xmin?F(β)=f(β)21?y?Xβ22???+g(β)λβ1???

其中?f(β)=XTXβ?XTy\nabla f(\beta)=X^TX\beta-X^Ty?f(β)=XTXβ?XTy,我們需要計(jì)算它的Lipschitz范數(shù)
∥?f(β)??f(β′)∥2=∥XTX(β?β′)∥2≤∥XTX∥2∥β?β′∥2≤∥XTX∥1∥β?β′∥2=λ1(XTX)∥β?β′∥2\left\| \nabla f(\beta)-\nabla f(\beta') \right\|_2 = \left\| X^TX(\beta-\beta') \right\|_2 \\ \le \left\|X^TX \right\|_2 \left\| \beta-\beta' \right\|_2 \le \left\|X^TX \right\|_1 \left\| \beta-\beta' \right\|_2 \\ = \lambda_1(X^TX)\left\| \beta-\beta' \right\|_2?f(β)??f(β)2?=?XTX(β?β)?2??XTX?2?β?β2??XTX?1?β?β2?=λ1?(XTX)β?β2?

因此?f(β)\nabla f(\beta)?f(β)的Lipschitz范數(shù)為λ1(XTX)\lambda_1(X^TX)λ1?(XTX),我們可以把它作為LLL用在算法中,也可以取一個(gè)比λ1(XTX)\lambda_1(X^TX)λ1?(XTX)稍微大一點(diǎn)點(diǎn)的常數(shù)作為LLL(但收斂會(huì)稍微變慢一點(diǎn)),代入Proximal gradient descent的公式:
wk=βk?1L?f(βk)=βk?XTL(Xβk?y)βk+1=proxg/L(wk)=soft(wk,λ/L)w_k = \beta_k-\frac{1}{L}\nabla f(\beta_k)=\beta_k-\frac{X^T}{L}(X\beta_k-y) \\ \beta_{k+1} = prox_{g/L}(w_k)=soft(w_k,\lambda/L)wk?=βk??L1??f(βk?)=βk??LXT?(Xβk??y)βk+1?=proxg/L?(wk?)=soft(wk?,λ/L)

這就是PGLasso這個(gè)函數(shù)的思路。

用模擬數(shù)據(jù)試一下這個(gè)算法,輸出solution path。

DGP <- function(n,d,s,sigma,sigma_epsilon){noise <- mvrnorm(1,rep(0,n),sigma_epsilon*diag(1,n,n))beta <- rbinom(d,1,s/d)*runif(d,-1,1)U <- sigma*diag(1,d,d)X = mvrnorm(n,rep(0,d),U)y = X%*%beta+noiseSimulation.data <- list(y = y,X = X,beta = beta)return(Simulation.data) }library(MASS) set.seed(2021) Data <- DGP(100,10,3,1,0.2) lambda = seq(1,50,1) beta.path = matrix(rep(0,100*50),100,50) L = max(eigen(t(Data$X)%*%(Data$X))$values) start1 <- Sys.time() for(i in 1:50){beta.path[,i] = PGLasso(Data$y,Data$X,lambda[i],rep(1,10),L,100,1e-6) } end1 <- Sys.time() print(start1-end1) colors = c("pink","green","yellow","orange","purple","red","blue","wheat","brown","grey") for (kk in 1:10) {plot(beta.path[kk,]~lambda, type = "l", col = colors[kk],xlab = "lambda", ylab = "coordinates of beta",xlim = c(-1,51),ylim = c(-0.6,0.15))par(new = T) }

Nuclear Norm

g(x)=λ∥x∥?,x∈Rd1×d2g(x)=\lambda \left\|x\right\|_*,x \in \mathbb{R}^{d_1 \times d_2}g(x)=λx??,xRd1?×d2?


proxg(w)=Usoft(Σ,λ)VTprox_g(w)=Usoft(\Sigma,\lambda)V^Tproxg?(w)=Usoft(Σ,λ)VT

其中U,Σ,VU,\Sigma,VU,Σ,Vw∈Rd1×d2w\in \mathbb{R}^{d_1 \times d_2}wRd1?×d2?的SVD,w=UΣVTw=U\Sigma V^Tw=UΣVT;簡(jiǎn)單推導(dǎo)如下:
proxg(w)=arg?min?xg(x)+12∥x?w∥F2=arg?min?xλ∥x∥?+12∥x?w∥F2=arg?min?xλ∥UTxV∥?+12∥UTxV?Σ∥F2prox_g(w)=\argmin_x \ g(x)+\frac{1}{2}\left\| x-w\right\|^2_F \\ = \argmin_x \ \lambda \left\|x\right\|_*+\frac{1}{2}\left\| x-w\right\|^2_F \\ = \argmin_x \ \lambda \left\|U^TxV\right\|_*+\frac{1}{2}\left\| U^TxV-\Sigma\right\|^2_F proxg?(w)=xargmin??g(x)+21?x?wF2?=xargmin??λx??+21?x?wF2?=xargmin??λ?UTxV???+21??UTxV?Σ?F2?

其中
12∥UTxV?Σ∥F2=12(∥UTxV∥F2+∥Σ∥F2?2?UTxV,Σ?)\frac{1}{2}\left\| U^TxV-\Sigma\right\|^2_F = \frac{1}{2}(\left\| U^TxV\right\|^2_F+\left\| \Sigma\right\|^2_F-2\langle U^TxV,\Sigma \rangle)21??UTxV?Σ?F2?=21?(?UTxV?F2?+ΣF2??2?UTxV,Σ?)

根據(jù)von Neumann(1927)不等式,
?UTxV,Σ?≤?σ(x),σ(Σ)?\langle U^TxV,\Sigma \rangle \le \langle \sigma(x),\sigma(\Sigma) \rangle?UTxV,Σ??σ(x),σ(Σ)?

當(dāng)且僅當(dāng)UTxV=diag(σ(X))U^TxV=diag(\sigma(X))UTxV=diag(σ(X))時(shí)等式成立,則
12∥UTxV?Σ∥F2≥12∥UTxV∥F2+12∥Σ∥F2??σ(x),σ(Σ)?=12∥x∥F2+12∥Σ∥F2??σ(x),σ(Σ)?=12∥σ(x)∥22+12∥σ(Σ)∥22??σ(x),σ(Σ)?=12∥σ(x)?σ(Σ)∥22\frac{1}{2}\left\| U^TxV-\Sigma\right\|^2_F \ge \frac{1}{2}\left\| U^TxV\right\|^2_F+\frac{1}{2}\left\| \Sigma\right\|^2_F-\langle \sigma(x),\sigma(\Sigma) \rangle \\ =\frac{1}{2}\left\| x\right\|^2_F+\frac{1}{2}\left\| \Sigma\right\|^2_F-\langle \sigma(x),\sigma(\Sigma) \rangle \\ = \frac{1}{2} \left\| \sigma(x) \right\|_2^2+\frac{1}{2} \left\| \sigma(\Sigma) \right\|_2^2-\langle \sigma(x),\sigma(\Sigma) \rangle = \frac{1}{2}\left\| \sigma(x) - \sigma(\Sigma) \right\|_2^221??UTxV?Σ?F2?21??UTxV?F2?+21?ΣF2???σ(x),σ(Σ)?=21?xF2?+21?ΣF2???σ(x),σ(Σ)?=21?σ(x)22?+21?σ(Σ)22???σ(x),σ(Σ)?=21?σ(x)?σ(Σ)22?

所以
arg?min?xλ∥UTxV∥?+12∥UTxV?Σ∥F2=arg?min?xλ∥σ(x)∥1+12∥σ(x)?σ(Σ)∥22=soft(σ(Σ),λ)\argmin_x \ \lambda \left\|U^TxV\right\|_*+\frac{1}{2}\left\| U^TxV-\Sigma\right\|^2_F \\ = \argmin_x \lambda \left\| \sigma(x) \right\|_1 + \frac{1}{2}\left\| \sigma(x) - \sigma(\Sigma) \right\|_2^2 \\ = soft(\sigma(\Sigma),\lambda)xargmin??λ?UTxV???+21??UTxV?Σ?F2?=xargmin?λσ(x)1?+21?σ(x)?σ(Σ)22?=soft(σ(Σ),λ)

總結(jié)

以上是生活随笔為你收集整理的UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。