『壹』 matlab 向凸優化非線性約束函數傳遞參數 fmincon
您好,un為目標函數,它可用前面的方法定義;
x0為初始值;
A、b滿足線性不等式約束 ,若沒有不等式約束,則取A=[ ],b=[ ];
Aeq、beq滿足等式約束 ,若沒有,則取Aeq=[ ],beq=[ ];
lb、ub滿足 ,若沒有界,可設lb=[ ],ub=[ ];
nonlcon的作用是通過接受的向量x來計算非線性不等約束 和等式約束 分別在x處的估計C和Ceq,通過指定函數柄來使用,如:>>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon),先建立非線性約束函數,並保存為mycon.m:function [C,Ceq] = mycon(x)
C = …
% 計算x處的非線性不等約束 的函數值。
Ceq = …
% 計算x處的非線性等式約束 的函數值。
lambda是Lagrange乘子,它體現哪一個約束有效。
output輸出優化信息;
grad表示目標函數在x處的梯度;
hessian表示目標函數在x處的Hessiab值。
注意:
1. fmincon 函數提供了大型優化演算法和中型優化演算法。默認時,若在 fun 函數中提供了梯度(options 參數的 GeadObj 設置為 'on'),並且只有上下界存在或只有等式約束,fmincon 函數將選擇大型演算法。 當既有等式約束又有梯度約束時,使用中型演算法。
2. fmincon 函數的中型演算法一般是使用序列二次規劃。在每一步迭代中求解二次規劃子問題,並用 BFGS 法更新 Lagrangian 乘子和 Hessian 矩陣。
3. fmincon 函數的大型演算法採用了subspace trust region 優化演算法。這種演算法是把目標函數在點x的鄰域泰勒展開(x可以認為是人為提供的初始猜測),這個展開的鄰域就是所謂的trust region,泰勒展開進行到二階項為止。
4. fmincon 函數可能會給出局部最優解,這與初始值的選取有關。
『貳』 凸分析,凸優化有什麼推薦的教材嗎
如果不讀博士做理論研究,好像基本上也不需要凸分析了;學術圈子裡認真待個兩三年,主動去了解這個領域,這些大師的名字會反復出現在論文和參考文獻里,讀讀他們的專著就很有必要了...當然還有很多大牛,他們只寫論文,沒空寫專著的,這時候就應該好好讀論文了..
《凸分析》和《凸優化》啊。
R. T. Rockafellar. Convex Analysis. Princeton, 1970.
S. Boyd and L. Vandenberghe. Convex Optimization. Cambridge, 2004.
關於優化領域大師裡面還有一位華人學者 Paul Tseng(可惜)
補充幾本個人粗略摸過的的書吧:
Dimitri P. Bertsekas. Convex Analysis and Optimization(Convex Optimization Algorithms).
『叄』 如何學習凸優化課程
[book-optimization.rar]-這是一本講解最優化的書籍,是全英文的。這是一部經典的外國教材,對最優化問題闡述的非常之精闢[Optimal.rar]-幾個凸優化函數,用於解決非約束和帶約束條件的凸優化問題[stanford_convex_optimization_book.rar]-國外的經典的有關於凸優化數學方面的教材,值得研究有關優化方面的研究者學習[convex_analysis_foundation.zip]-凸分析基礎中文教材。純粹這方面的資料不多(多為凸優化之類),中文的書籍更難找,有用該方面知識的同行多多交流。[ConvexOptimization.rar]-凸優化問題經常出現在許多不同的領域。全面介紹了主題,這本書展示了如何解決這些問題都可以高效率地詳細數字。其重點是識別凸優化問題,然後找到解決他們最合適的技術。文本包含許多實例和作業練習,並會提出問題,如工程,計算機科學,數學,統計,金融,經濟領域的學生,研究者和實踐者。[cvx.zip]-斯坦福大學凸規劃的程序,很經典,多次在IEEE的文章中出現[convex_optimization.rar]-凸優化程序包,包含各種凸優化演算法,可供方便調用.[signal_decomposition_by_bp.rar]-基於基追蹤(basispursuit)對信號進行稀疏表示的演算法[cvx.zip]-凸規劃建模系統,包含用戶手冊,有助於學習壓縮感知。[grads.rar]-最優化理論與演算法(第2版)這本書中的課後作業。用C實現的一些具體演算法。
『肆』 凸優化演算法與凸鬆弛演算法有什麼關系
優化演算法主要是根據大的電力系統的無功潮流分析,在什麼位置安裝多大的無功補償裝置是最合理的,可以使系統中無功潮流最小。電壓無功的控制策略就是如何控制能滿足,電壓和無功都滿足系統要求。最常用的就是九區圖分析法。
『伍』 請問各位大俠如何做二次凸規劃的求解
二次規劃(Quadratic programming),在運籌學當中,是一種特殊類型的最佳化問題。
[編輯] 簡介二次規劃問題可以以下形式來描述:
f(x) = (1 / 2)xTQx + cTx
受到一個或更多如下型式的限制條件:
Ex = d
vT 是 v 的轉置。
如果Q是半正定矩陣,那麼f(x)是一個凸函數。如果有至少一個向量x滿足約束而且f(x)在可行域有下界,二次規劃問題就有一個全局最小值x。 如果Q是正定矩陣,那麼全局最小值就是唯一的。如果Q=0,二次規劃問題就變成線性規劃問題。
根據優化理論,一個點x 成為全局最小值的必要條件是滿足 Karush-Kuhn-Tucker(KKT)條件。當f(x)是凸函數時,KKT條件也是充分條件。
當二次規劃問題只有等式約束時,二次規劃可以用線性方程求解。否則的話,常用的二次規劃解法有:內點法(interior point)、active set和共軛梯度法等。凸集二次規劃問題是凸優化問題的一個特例。
[編輯] 對偶每個二次規劃問題的對偶問題也是二次規劃問題。我們以正定矩陣Q為例:
L(x,λ) = (1 / 2)xTQx + λT(Ax ? b) + cTx
對偶問題g(λ),可定義為
我們可用 : 得到L的極小
x * = ? Q ? 1(ATλ + c),
對偶函數:
g(λ) = ? (1 / 2)λTAQ ? 1ATλ ? cTQ ? 1ATλ ? bTλ
對偶問題為:
maximize : ? (1 / 2)λTAQ ? 1ATλ ? (ctQ ? 1AT + bT)λ
subject to :
計算復雜性當Q正定時,用橢圓法可在多項式時間內解二次規劃問題。當Q負定時,二次規劃問題是NP困難的(NP-Hard)。即使Q 存在一個負特徵值時,二次規劃問題就是NP困難的。
『陸』 如何從零開始學習凸優化
我覺得學習凸優化可以直接看boyd這本書,我之前從國家圖書館借的中文版。大概看了兩個月。看著這本書很厚,但是我感覺是偏工具的,跟線性代數學起來感覺不一樣,線性代數學完感覺很完整的了解了一個體系。這個感覺就是一個工具。所以看起來也比較快。我覺得就兩部分,第一部分(2-5章),就是凸集、凸函數、對偶性,這些概念。然後就是演算法(9-11章),無約束最小化,等式約束最小化,內點法。書中第二部分是應用(6-8章)我沒有看。我建議直接看書,第一部分(2、3、4、5章):理論,第三部分(9、10、11章):演算法。第二部分:應用,可以跳過。
『柒』 畢業設計--基於壓縮感知的重構演算法性能比較(貪婪演算法和凸優化演算法)求指導
於壓縮感知的重構演算法性能比較(貪婪演算法和凸優化算
肯定
的
『捌』 一個多元函數的次梯度怎樣求
次梯度法是求解凸函數最優化(凸優化)問題的一種迭代法。 次梯度法能夠用於不可微的目標函數。當目標函數可微時,對於無約束問題次梯度法與梯度下降法具有同樣的搜索方向。雖然在實際的應用中,次梯度法比內點法和牛頓法慢得多,但是次梯度法可以直接應用於更廣泛的問題,次梯度法只需要很少的存儲需求。然而,通過將次梯度法與分解技術結合,有時能夠開發出問題的簡單分配演算法
次梯度方法有許多可採用的步長。以下為5種能夠保證收斂性的步長規則:
1、恆定步長,
『玖』 求解原始問題和對偶問題常用的優化演算法有哪些
1. 支持向量機的目的是什麼?
對於用於分類的支持向量機來說,給定一個包含正例和反例(正樣本點和負樣本點)的樣本集合,支持向量機的目的是尋找一個超平面來對樣本進行分割,把樣本中的正例和反例用超平面分開,但是不是簡單地分看,其原則是使正例和反例之間的間隔最大。
超平面是什麼呢?簡單地說,超平面就是平面中的直線在高維空間中的推廣。那麼,對於三維空間,超平面就是平面了。對於更高維的空間,我們只能用公式來表達,而缺少直觀的圖形了。總之,在n維空間中的超平面是n-1維的。
超平面的公式為。公式中的w為可以調整的系數向量,b為bias。注意我們的表達習慣,所有的向量都是列向量,所以在第一項的內積中向量w需要進行轉置。
現在考慮樣本集合{xi,di},xi是輸入的特徵,di是樣本對應的分類。現在規定當樣本xi屬於第一類時,di為1,當xi屬於第二類時,di為-1。
那麼,線性可分的意思就是一個超平面可以把兩類樣本完全地分割開來。用公式表達就是:
你現在可能會問,那麼如果不是線性可分的情況應該怎麼辦呢?事實是這些會在後面處理到。在這里我們首先討論線性可分的情況,然後將其拓展到線性不可分的情況.
現在假設對於線性可分的樣本集,我們有了一個分割超平面,現在我們想通過調整w0和b0讓它分割的正樣本和負樣本保持最大的間隔,這樣我們就獲得了最優的超平面。實際上在操作過程中,我們最大化的是離超平面最近的點到超平面的距離。也就是說,我們要讓超平面盡量遠離最近的點。從圖中可見超平面到正樣本最近點的距離和超平面到負樣本最近點的距離是相等的。這是個巧合么?
假設我們已經找到了一個超平面,它離正樣本最近點的距離大於離負樣本最近點的距離,那麼這個離超平面最近的點就是負樣本中的最近點。而考慮到我們的目標,我們還會調整超平面的位置使它還可以增大一些,即使這樣會犧牲離正樣本最近點的距離。所以調整到最後的結果肯定是超平面離兩側最近點的距離是等距的。
為了更形象地表現正負樣本的間隔,我們可以在分割超平面的兩側再定義兩個超平面H1和H2(如圖中虛線所示),這兩個超平面分別通過正樣本和負樣本中離分割超平面最近的樣本點(圖中加了外圈)。從以上分析可以知道,超平面H1和H2離分割超平面是等距的。
我們定義超平面H1和H2上面的點叫做支持向量。正負樣本的間隔可以定義為超平面H1和H2之間的間隔,它是分割超平面距最近正樣本點距離和最近負樣本點距離之和。
從圖中可以看出,支持向量對於分割超平面的位置是起到關鍵作用的。在優化分割超平面位置之後,支持向量也顯露出來,而支持向量之後的樣本點則對分類並不關鍵。為什麼這樣說呢?因為即使把支持向量以外的樣本點全部刪除,再找到最優的分割超平面,這個超平面的位置跟原先的分割超平面的位置也是一樣的。總結起來就是:
支持向量包含著重構分割超平面所需要的全部信息!
2. 樣本點到超平面距離的表示
如何求一點到超平面的距離呢?
現在我們來看看系數向量w0是什麼含義?回憶一下,w0實際上是超平面的法向量!
那麼,對於任意一個樣本點x,它可以表示為:
其中xp是x在超平面上的投影,r是x到超平面的幾何距離(幾何間隔)。
設 ,
現在由定義有g(xp)為0,則有。
現在我們開看,g(x)實際上度量了樣本點x到超平面的距離,在||w0||恆定的情況下,g(x)絕對值的大小反映了幾何間隔r的大小。我們給g(x)起個名字叫做函數間隔。注意幾何間隔r和函數間隔g(x)都是有正負號的,代表著處於超平面的不同側。
3. 最大化間隔
我們已經知道了函數間隔和幾何間隔的表示,現在回到正題,我們需要最大化支持向量到分割超平面的距離,當然在最開始我們不知道哪些向量是支持向量。
我們的目的是最大化支持向量到分割超平面的幾何間隔r,而不是最大化函數間隔g(x),為什麼呢?因為超平面方程的系數可以同比例增大或者減小,而不改變超平面本身。所以||w0||是不固定的,這就會影響函數間隔g(x)的大小。
所以我們需要最大化的是幾何間隔r,這等價於我們固定||w0||,然後最大化函數間隔g(x)。但是實際上我們不會這么做,通常的處理方法是固定函數間隔g(x)的絕對值為1,然後最小化||w0||。也就是說我們把支持向量到分割超平面的函數間隔g(x)的絕對值設定為1,然後最小化||w0||。
4. 正式的表述
現在我們可以正式地表述這個問題了。我們需要最小化||w0||,也就是最小化超平面權重向量w0的歐幾里得范數。但是有沒有限定條件呢?還記得上一節最後一句話么?
「也就是說我們把支持向量到分割超平面的函數間隔g(x)設定為1,然後最小化||w0||」
所以最小化||w0||是有限定條件的,如何表述限制條件呢?我們把支持向量對應的g(x)定為+1或者-1(取決於支持向量處於分割超平面的哪一側,也就是說是正樣本還是負樣本),也就表明了對於所有的正樣本點來說,g(x)是>=+1的,而對於負樣本來說,g(x)是<=-1的。
回想g(x)的定義:
,
我們可以把限制條件寫下來:
現在我們可以把上面的問題寫的更簡練:
目標函數:
限制:
1/2是為了以後計算方便所加的,N是樣本點的個數。
現在我們的第一個任務結束了,我們把要尋找最優的分割超平面的問題轉化為帶有一系列不等式約束的優化問題。這個最優化問題被稱作原問題。我們不會直接解它,而是把它轉化為對偶問題進行解決。至於如何將其轉化為對偶問題,這是以後幾節的內容。
等式約束極小的最優性條件
對支持向量機的求解都是將上節說的原問題轉化為對偶問題進行求解的,這些內容都是最優化課程中的內容。
回憶上節的內容,我們的目標是尋找函數在若干約束條件下的最小值。在上節的原問題中,約束條件是包含不等式的,本節先考慮簡單的問題,即考慮只包含等式約束的最優化問題:
(1)
其中f(x)被稱作目標函數,而下面是一系列的等式約束。回想一下,當沒有任何約束存在的時候,應該怎樣尋找最優點呢?事實上x*是最優點的必要條件是:
而如果函數f(x)是凸函數的話,這個條件也是充分條件。
插入一個說明,如果函數f(x)是一個實值函數,x是一個n維向量,那麼f(x)對向量x的導數被定義為:
回到目前的問題,當我們尋找約束存在時的最優點的時候,約束的存在雖然減小了需要搜尋的范圍,但是卻使問題變得更加復雜。為了使問題變得易於處理,我們的方法是把目標函數和約束全部融入一個新的函數,即拉格朗日函數,再通過這個函數來尋找最優點。
為了形象化地分析這個問題,我們考慮目標函數是三變數的函數並且只有一個約束的情況:
(2)
從幾何上來看,上面的問題(2)就是從曲面上來尋找函數的最小值。假設問題(2)的最優解是。我們現在做曲面Ω上任一條通過點x的光滑曲線l:(由於曲線l是在曲面Ω上的,所以自然有)。
令最優點對應的t為t*。因為x*是曲面Ω上的最優點,所以x*也是曲線l上的最優點,所以t*是一元函數的最優點,所以在這一點它的導數是0。通過鏈式法則我們得到:
這個式子說明了在x*這一點,函數的梯度向量 和曲線l在x*處的切線是垂直的。由於曲線l是任意的,所以梯度向量和曲面Ω是垂直的。
回憶高等數學的結論,的方向就是曲面Ω的法線方向,所以和必然在同一直線的方向上,所以必定存在一個常數μ*,有。
我們可以把它寫成更加精煉的形式。如果我們構造二元函數,上面的結論就可以表達為必定存在著常數μ*,使。
我們把構造的函數稱作拉格朗日函數,而其中的μ稱作拉格朗日乘子。
關於只有等式約束的拉格朗日函數的引入,也可以參考維基網路中的兩個變數函數的例子。
以上是一個特殊情形的分析,並且只包含了一個約束。那麼包含等式約束的一般情況,也就是問題(1)來說,我們同樣可以構造拉格朗日函數,不過由於包括多個等式約束,表達稍微不同:
。
也就是說,每一個等式約束都對應著一個拉格朗日乘子。那麼x*是最優點的必要條件就是,存在相應的拉格朗日乘子μ*,使得以下兩個式子成立:
(實際上就是原問題(1)的約束條件換了種寫法)
這兩個式子就是最優點的必要條件,當然如果函數是凸函數的話,這兩個式子也是充分條件。
現在我們的目標達到了,也就是把目標函數和一系列的等值約束融合到了一個函數(拉格朗日函數)裡面,這樣只需要解(3)和(4)這兩個式子就可以找到最優點,其優點是不言而喻的。而在下一節中我們將會討論包含不等式約束的最優化問題。
尋找最優值的下界
我們首先要引入包含不等式約束的優化問題,標准形式如下:
(1)
f(x)是目標函數,而後面分別是一系列的不等式約束和等式約束。
我們首先明確幾個概念:
可行點(可行解):所有滿足約束的點x。
可行域:所有可行點組成的點集,記為R。正式寫出來就是:
最優點(最優解):滿足約束(也就是處於可行域之內)並且使目標函數達到最小的點,記為x*。
最優值:如果找到了x*,p* = f(x*) 就是最優值。
明確了這些概念以後我們就接著說下面的內容了。
與上節所說的只包含等式約束的情況類似,我們定義拉格朗日函數如下:
我們來看看,這與上節的拉格朗日函數有什麼不同?多了一系列的不等式約束對應的項,所以也多了一系列的拉格朗日乘子。在這里需要強調的是,所有的λi必須是大於等於0的(也即是不等式約束對應的乘子要求大於等於0,我們記為λ≥0,意思是每個都λi≥0)。至於為什麼要這樣要求,後面自然可以看出來。
接下來我們定義一個重要的函數,我們定義拉格郎日對偶函數(the Lagrange al function)如下:
(2)
所以拉格朗日對偶函數就是把看成x的函數所找到的最小值。找到這個最小值有什麼意義呢?
我們先把結論寫下來,這個結論十分重要,是本節論述的目的:
對偶函數產生了原問題(1)最優值p*的一個下界,也就是說,對於任意的λ≥0和任意的μ來說,有:
(3)
那麼如何證明(3)呢?
這個證明步驟十分簡潔。假設x*是原問題(1)中的最優解,也就是f(x*) = p*。
最後兩行的推導是考慮到x*是在可行域R內的,所以肯定有,當然前提是λ≥0,這也就是為什麼在一開始要做這個規定的原因了。
我們如何理解這個不等式(3)呢?下面給出兩個直觀的解釋:
解釋一:線性逼近的解釋
我們首先重寫問題(1),就是把問題(1)換個更加緊湊的方式來表達,首先我們定義示性函數:
同樣我們也可以定義另外一個示性函數:
有了這兩個示性函數的幫助,現在我們可以把問題(1)重新寫成一個沒有約束的形式:
(4)
我們來看看這個優化問題(4)和問題(1)是等價的么?我們可以把(4)的後面兩大項看做是對違反約束條件的x的懲罰函數。起的作用是對違反不等式約束的x進行「無限的」懲罰,也就一旦,懲罰就等於無窮大。而起的作用是對違反等式約束的x進行懲罰,一旦,懲罰就為無窮大。這樣對(4)中目標函數的優化跟對(1)中目標函數在約束條件下的優化就是同一回事,是不是?也就是說,(1)和(4)這兩個問題是等價的問題,但是在(4)中約束被融合到目標函數中來了。
現在我們再回頭看看(2),也就是拉格朗日對偶函數,它也是個優化問題,我們對比它所優化的函數和(4)中所優化的函數,把它們重寫在一起:
(2)中的目標函數
(4)中的目標函數
可見在問題(2)和問題(4)中,我們優化的目標函數區別在於懲罰項不同,(4)中的懲罰項是無限的,就是說一旦違反約束,就施加無窮大的懲罰;而在(2)中我們的懲罰項是線性的,就是說隨著gi(x)和hi(x)的不同,懲罰項是線性變化的。所以(2)和(4)中需要優化的目標函數有很大的不同,用(2)來逼近(4)是很不準確的。但是我們可以看出,對於任意的u,任意的λ≥0和任意的μ來說都有:
(我們把λ限制為大於等於0了)
所以在任意點,(2)中的目標函數的值都是小於(4)中的目標函數的值,所以(2)中找到的最優值肯定是小於(4)中找到的最優值的。再結合前面說的(1)和(4)是等價的問題,所以不等式(3)是成立的。
解釋二:交換max和min的次序
我們首先可以看出:
為什麼會有這個結果呢?當x滿足約束的時候,也就是對所有的i來說有並且,如果我們想通過調整λ和μ讓變大怎麼辦呢?只有讓λ全部為0(注意λ只能大於等於0),這樣就消去了小於0的項,至於,無論μ怎麼變都是沒有影響的。所以當x屬於可行域的時候上式的結果是f(x)。如果x違反了約束呢?在做sup運算的時候只需要對滿足和的項對應的乘子定為+∞,而把其他的項對應的乘子設為0,就可以讓整個式子的結果變為無窮大。
所以我們可以看出來,在問題(1)中的帶約束的優化問題和直接優化是一回事,也就是說:
現在我們把inf和sup兩個運算符調換次序,顯然有:
我們重寫(2)式:
(2)
可以看出結論了,也就是λ≥0時(3)式成立:
(3)
好了,費了半天的勁我們說明了一個問題,就是不等式(3)是怎麼來的。
總結一下,不等式(3)用文字敘述就是:
如果我們把拉格朗日函數看做是x的函數,然後取下確界(注意:是在整個定義域里取下確界,而不是僅僅在可行域里取值,也就是說取下確界時對x是沒有約束的),那麼得到的結果就是原優化問題(1)的最優值的一個下界。
至於我們得到這個結果有什麼用,下節再說。
對偶問題
回憶上一節,對如下的原問題:
(1)
我們定義了拉格朗日對偶函數:
然後我們證明了:,其中p*是原問題的最優值。
也就是說我們找到了原問題最優值的一個下界。既然我們找到了一個下界,顯然我們要找到它最好的下界。什麼是最好的下界的?顯然就是所有下界當中最大的那一個。所以我們要把最大化,當然我們還要記得我們需要限制。我們把要優化的函數和約束條件正式寫下來就是:
(2)
與原問題(1)相對應,我們把上面的問題(2)稱作拉格朗日對偶問題(Lagrange al problem)。顯然,對偶問題的最優值d*就是我們可以獲得的p*的最優下界,也就是所有下界中離p*最近的一個,它們的關系是:
(3)
我們把這個不等式叫做弱對偶性質(Weak Duality)。
順其自然,我們可以引出一個重要的概念,對偶間隙,其定義為,用文字敘述就是原問題的最優值與通過拉個郎日對偶函數獲得的其最好(最大)的下界之差。由不等式(3)可以看出,對偶間隙肯定是大於等於0的。
那麼有沒有可能在某種情況下,對偶間隙消失了呢?也就是說對偶問題的最優值與原問題的最優值相等了呢?
我們將要敘述一下Slater條件:
Slater條件:
存在x滿足:
Slater條件即是說存在x,使不等式約束中的「小於等於號」要嚴格取到「小於號」。
可以證明,對於凸優化問題(關於凸優化問題,請參考維基網路),如果Slater條件滿足了,則:
這種情況稱為強對偶性質(Strong Duality)。
下面的問題是,如果對偶間隙消失了,會發生什麼有趣的現象呢?
如果對偶間隙消失了,也就是說,如果對偶問題存在著最優點λ*,μ*並且使其對應的最優值等於p*,這時會發生什麼情況呢?還記得上一節我們證明的過程么:
(4)
在對偶間隙消失的情況下,中間所有的不等號都要變成等號:
(5)
注意,(5)中的λ和μ都加了星號,表示它們是對偶問題的最優點。(5)中有兩個重要的等號,已經加了標記。
我們能得出什麼結論?
1 .我們先來看等號1:
它說明了原問題的最優點x*是使取得最小值的點。
2. 我們再來看等號2:
它說明了:
由於我們限制了每一個λi≥0,所以上式中每一項都是非正的。這樣我們又可以得出結論:
(6)
等式(6)被稱作是互補性條件,我們可以把它換種寫法:
或者寫成它的等價形式(逆否命題):
也就是說,只要一個不為0,另一個就必為0!
互補性條件有著重要的意義。它說明了當時,x*是處於可行域的內部的,這時不等式約束並不起作用,此時;而的點肯定是可行域邊界的點()。也就是說只有積極約束才有不為0的對偶變數。而這在支持向量機中有著重要的意義。回想在第一節我們最後的結論,支持向量機尋找最大間隔超平面可以歸結為一個優化問題:
目標函數:
限制:
那麼哪些不等式約束對應著不為0的對偶變數呢?顯然,只有當時,這個約束對應的對偶變數才可能不為0,而意味著什麼?意味著這個約束對應的樣本點xi是支持向量!也就是說:
只有支持向量才對應不為0的拉格朗日乘子!
『拾』 凸優化的凸優化問題的意義
之所以要研究凸優化問題是因為其有一套非常完備的求解演算法,如果將某個優化問題確認或者轉化為
凸優化問題,那麼能夠快速給出最優解。
在MATLAB軟體裡面有相應的軟體包,可以用來學習。
也可以利用其他的開源的計算軟體,利用現成的軟體包來解決凸優化問題,例如: cvx (MATLAB), cvxopt (python).