割線法求解過程_求解稀疏優化問題2——臨近點方法+半光滑牛頓法

這篇文章是我之前一篇文章的兄弟篇,沒看過的可以看下面這個。

鄧康康:求解稀疏優化問題——半光滑牛頓方法?zhuanlan.zhihu.com
39f767d2a15178cf13b674edd3f4e4d1.png

我們考慮的問題仍然是如下的一般問題:

其中

,并且
特別大;
  • 表示一個凸可微函數,例如
  • 表示一個閉真凸函數,一般為稀疏正則函數,比如 LASSO:
    ,Fused LASSO,Clustered LASSO等

通過引入變量

,我們先把(P)轉化為約束問題

于是我們得到(P)的對偶問題為:

在之前的那篇文章中,我提到了怎么利用增廣拉格朗日方法(ALM)去求解對偶問題(D),該方法中的子問題采用的是半光滑牛頓法。 主要idea大概分為三步:
  1. 將原問題轉化為對偶問題
  2. 利用增廣拉格朗日方法求解對偶問題
  3. 子問題采用半光滑牛頓法

主要代價在于半光滑牛頓法,而由于非光滑函數

的稀疏性,導致子問題中的Jacobian矩陣也是稀疏的,進而大大降低了該方法的計算量。本質上,這個方法是一個應用于對偶問題上的增廣拉格朗日方法。這篇文章我們換個角度,從原始問題(P)出發去設計算法。

在我的另一篇文章中

鄧康康:原始對偶角度下的幾類優化方法?zhuanlan.zhihu.com

里面講到了:

對偶問題上的臨近點方法等價于原問題上的增廣拉格朗日方法。

而對偶問題的對偶問題是原問題。所以我們是不是有,

原始問題上的臨近點方法等價于對偶問題上的增廣拉格朗日方法?

所以這篇文章我們來講述臨近點方法應用到原始問題。參考的是孫老師的兩篇文章,見文章末尾的參考文獻。


一、鄰近算子和Moreau Envelope

首先,我給出一些需要用到的一些定義和性質。

定義

1.臨近算子

2. Moreau envelope

性質
  1. 是光滑函數,并且它的梯度為:
  2. Moreau分解:
  3. Moreau envelope分解:

二、臨近點方法求解原問題

首先,臨近點方法有如下迭代形式:

其中

表示罰參數。現在關鍵在于這個子問題怎么求?這要是沒有
就好了,直接一個臨近算子就搞定。 既然不好求,那我們就變成對偶問題去看看。首先對(1)做變量替換,轉化為約束問題:

構建拉格朗日函數:

那么其對偶問題為:

我們最終要求的就是對偶問題(D.1)。需要說明一下,這里的原始問題(P.1)和對偶問題(D.1)是針對臨近點方法的子問題而言的。我們來看一下對偶問題(D.1)的目標函數

的表達式:

其中第一部分關于

的問題是一個臨近算子,最后一個等式就是將
的臨近算子表達式代入。顯然上式看起來很復雜,接下來我們來簡化上式:

第一個等式用到了定義2,第二個等式用到了性質3。

最終我們將對偶問題(D.1)轉化為如下問題:

定義

為:

這個函數跟 鄧康康:求解稀疏優化問題1——增廣拉格朗日方法+半光滑牛頓方法

中的函數一模一樣。

求到了對偶變量

之后,最終我們是要去得到
. 在式子(3)中我們知道二者的關系是:

綜合一下最終的迭代過程為:

其中

問題的求解采用的是半光滑牛頓法,具體的jacbi矩陣怎么求,稀疏性怎么利用參考下面這篇文章
鄧康康:求解稀疏優化問題1——增廣拉格朗日方法+半光滑牛頓方法?zhuanlan.zhihu.com
39f767d2a15178cf13b674edd3f4e4d1.png

三、半光滑牛頓法求解對偶問題(D.1)

根據上面的推導,我們知道求解對偶問題(D.1)等價于求解

因為上述問題是個凸問題,我們只要找到梯度等于0的點即可:

首先根據

是個強凸函數,所以其共軛
是光滑的,再結合性質1,我們知道
是一個光滑函數,其梯度表達式為:

第一個等式用到了性質1,第二個等式用到了性質2。這里說一下為什么是半光滑牛頓法,因為

雖然函數光滑,但臨近算子的存在導致這個函數的梯度不是光滑的。

有了梯度之后,我們來求解其廣義Jacobian矩陣。

第一部分,

通常很簡單,比如二范數的平方。因此求二階導也不需要什么計算量。關鍵的地方在于計算后面這部分。當
是稀疏正則的時候,我們發現它的臨近算子的導數通常是稀疏的。舉例1范數正則,當
,其臨近算子的導數
是一個對角矩陣,且對角元為:

這樣的話,(8)的后面這部分,我們只需要計算由非零元對應矩陣

的列構成的子矩陣相乘即可,當非零元較少的時候,這個計算量是很小的。

最后我們給出半光滑牛頓法的迭代過程:

其中

半光滑牛頓法迭代完之后,令

.這樣就完成了臨近點方法的第k次迭代。

再說一下:(5)是我們的外迭代,也就是臨近點方法求解原問題。而(8)是用半光滑牛頓法求解(5)中的第一個子問題。Over!

二、總結

最后梳理下這篇文章的idea:

  1. 臨近點方法求解原問題
  2. 將子問題轉化到對偶形式
  3. 半光滑牛頓法求解對偶問題
  • 在之前那篇文章中,增廣拉格朗日方法中的罰參數就對應于這里臨近點方法的罰參數。二者的迭代是一樣的,只不過在參數的選擇和收斂性分析方面會有不同。
  • 不同角度理解問題,得到不同的方法,雖然本質上是一樣的,但由此帶來的延伸就不一樣了,在增廣拉格朗日方法和臨近點方法上的改進可以完全不同。

歡迎關注我的專欄

最優化理論和一階方法?zhuanlan.zhihu.com
08438235a9599249f8301247a88fa0b4.png

詳細內容和理論證明可以看孫德鋒老師主頁:

知乎 - 安全中心?www.polyu.edu.hk

參考文獻

[1] Zhang Y, Zhang N, Sun D, et al. A Proximal Point Dual Newton Algorithm for Solving Group Graphical Lasso Problems[J]. arXiv preprint arXiv:1906.04647, 2019.

[2] Lin M, Sun D, Toh K C, et al. A dual Newton based preconditioned proximal point algorithm for exclusive lasso models[J]. arXiv preprint arXiv:1902.00151, 2019.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272985.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html 樹形圖可拖拽,HTML5拖拽API實現vue樹形拖拽組件

因業務場景需要一個可拖拽修改節點位置的樹形組件,因此動手擼了一個,乘此機會摸了一把html5原生拖拽。近期有時間將核心部分代碼抽出,簡單說下實現方式。1.樹形結構-組件遞歸使用樹形結構非常簡單,tree組件作為父組件,…

navicat 或者workbench 無法連接127.0.0.1(61)的解決方法

1、輸入mysql -uroot 進入命令行模式, 2、輸入"show variables like %sock%;"查看sock文件所在位置 如: 3、配置客戶端(以navicat為例) (1)打開mac 下的navicat(2)建立相應的連接&…

jmeter如何定位網絡延時_JMeter用戶定義變量和properties變量高級使用

Jmeter有個配置元素叫做用戶自定義變量(英文名稱是UserDefinedVariables)而我們提到的vars即是Variables的簡寫。 之前我們也說到過Jmeter的腳本中(jsr223sampler或者beanshell編寫的腳本)使用varsput和varsget的操作(varsget和put的操作僅在threadgroup測試組線程中執行&#…

html5與跨平臺開發,HTML5應用與跨平臺應用開發

本課程將總體講解開發HTML5應用和跨平臺應用的方法,共分成三部分。第一部分為HTML5開發基礎,帶你分析并掌握多種移動開發技術和設計方式;第二部分為HTML5高級應用,講解在HTML5中調用其它應用或服務的方法;第三部分為跨…

jQuery中的幾個模塊總結

Query插件,以備并希望在前端方面有所長進。請批評指正。 一,類型判斷全解 JQuery判斷類型擴展方法:$.type() 1 /*type: function( obj ) { 2 if ( obj null ) { 3 return obj ""; 4 } …

python實現連續數列相加_技術 | Python經典面試題解析實現斐波那契數列

黑馬程序員微信號:heiniu526傳智播客旗下互聯網資訊,學習資源免費分享平臺大家在面試過程中經常會考到斐波那契數列,斐波那契數列(Fibonacci)最早由印度數學家Gopala提出,而第一個真正研究斐波那契數列的是意大利數學家 Leonardo …

廣西2021高考成績位次查詢,2020年廣西高考一分一段表及高考位次成績排名查詢(理科+文科)...

一、2020年廣西高考一分一段表查詢排名方法廣西招辦(考試院)會公布的省市高考每一分分數的考生數額統計表就是我們所說的——高考“一分一段表”,其顯示出每一分的分數值全省考生有多少名,就可以讓考生估算出自己的排名位次。2020年廣西高考一分一段表排…

PV公式

IP(獨立IP): 即Internet Protocol,指獨立IP數。00:00-24:00內相同IP地址之被計算一次。PV(訪問量): 即Page View, 即頁面瀏覽量或點擊量,用戶每次刷新即被計算一次。UV(獨立訪客):即Unique Visitor,訪問您網站的一臺電腦客戶端為…

csv文件 內容轉義_CSV文件如何同時轉義逗號和雙引號?

小編典典有幾個庫。這是兩個示例:阿帕奇共享郎包括一類特殊的逃避或UNESCAPE字符串(CSV,EcmaScript的,HTML,Java和JSON,XML)org.apache.commons.lang3.StringEscapeUtils 。轉義 為CSVString escaped StringEscapeUti…

臺式計算機單核與雙核,什么是單核cpu、雙核cpu 單核cpu和雙核cpu的區別是什么...

在買電腦的時候,我們經常會發愁,究竟是買單核cpu好,還是買雙核cpu比較好,尤其是面對售貨員把單核cpu電腦和雙核cpu電腦都可以夸的天花亂墜的時候,我們更糊涂了,究竟買哪種好呢?針對這種情況,小…

當用DJANGO的migrate不成功時。。。。

URL:http://my.oschina.net/u/862582/blog/355421 因為操作SQL數據庫時不規范,或是多人開發時產生了同步問題,就可能導致正規的MIGRATE時不能完成。 已其修改,不如直接生成SQL之后運行。。 記住語法即可。。。 python manage.py sqlmigrate a…

R語言seqm_R語言seq()函數用法

1、seq()用來生成一組數字的函數。Usage:## Default S3 method:seq(from 1, to 1, by ((to - from)/(length.out - 1)),length.out NULL, along.with NULL, ...)seq.int(from, to, by, length.out, along.with, ...)seq_along(along.with)seq_len(length.out)A…

美國計算機生物學要求,美國大學CS專業分支生物信息學和計算生物學專業 Bioinformatics and Computational Biology介紹...

美國留學申請美國大學計算機專業(CS)的學生非常多。美國大學CS專業的研究分支也非常 多,不同分支對學生的要求也會不同,因此,學生們要根據自己的條件選擇適合自己的研究方向。下面主要為大家介紹的是美國大學CS專業分支生物信息學和計算生物學…

Spark入門實戰系列--8.Spark MLlib(上)--機器學習及SparkMLlib簡介

【注】該系列文章以及使用到安裝包/測試數據 可以在《傾情大奉送--Spark入門實戰系列》獲取 1、機器學習概念 1.1 機器學習的定義 在維基百科上對機器學習提出以下幾種定義: l“機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能&#xff0c…

cadz軸歸零命令_CAD圖形Z軸坐標歸零方法

AutoCAD2012 64位精簡版中文免安裝版軟件大小:561.5M授權方式:免費軟件立即下載CAD軟件怎樣將圖形坐標Z軸歸零?當我們遇到CAD圖形標高一致的時候,如果想要讓圖形統一標高,就需要先將圖形坐標Z軸歸零。本次小編為您整理了CAD軟件里…

net以execl做數據庫_[原創]Net實現Excel導入導出到數據庫(附源碼)

關于數據庫導出到Excel和SQLServer數據導出到Excel的例子,在博客園有很多的例子,自己根據網上搜集資料,自己做了亦歌簡單的demo,現在分享出來供初學者學習交流使用。一、數據庫導入導出到Excel,比較流行的有兩種方式&a…

計算機基礎cpu知識,CPU基礎知識: DIY裝機小白必看的CPU知識掃盲

CPU也就是中央處理器,全拼為Central Processing Unit,在計算機中可以比喻成人的大腦。它是一塊超大規模的集成電路,是一臺計算機的運算核心和控制核心。它的功能主要是解釋計算機指令以及處理計算機軟件中的數據。下面華強電子網的小編分享一…

const 用法

static NSString * const testString "google"; //表示testString這個指針不能被修改,如若對testString賦值則會報錯:testString = "hello";編譯器會報錯 static NSString const *testString "google"; //表…

mvc html validator,ASP.NET MVC實現Validation驗證器擴展

今天介紹在ASP.NET MVC實現Validation驗證器擴展,通過使用Controller驗證并不是最好的方法:驗證過于分散,容易造成重復代碼,不利于維護與擴展,因此本節將使用MVC默認綁定器(DefaultModelBinder)中包含了驗證架構,并實現Validation驗證器擴展&…

git 幾種還原版本_Git恢復之前版本的兩種方法reset、revert(圖文詳解)

一、問題描述在利用github實現多人合作程序開發的過程中,我們有時會出現錯誤提交的情況,此時我們希望能撤銷提交操作,讓程序回到提交前的樣子,本文總結了兩種解決方法:回退(reset)、反做(revert)。二、背景知識git的版…