高階優化演算法

2021-08-10 00:09:52 字數 2227 閱讀 9351

本文主要討論在優化模型求解中用到的高階優化演算法,這些演算法基於常見的優化演算法思想,採用一些非常巧妙的技巧,而使得演算法到達更快的收斂等特點。這些高階優化演算法也只限定於特定的模型求解,下面將對其進行簡單總結。

1. surrogate方法

首先我們考慮一些簡單的優化問題mi

nx12

∥x−x

0∥22

+λ∥x

∥1,事實上我們只需要對

x 向量中的每乙個元素進行展開求解即可,它的優化解的表示式如下: x∗

=sλ(

x0)=

。取j^=

max 。則最後

x 的優化解形式如下: x∗

i=si

gn(x

0,i)

min(

vi,(

∑r=1

j^vr

−λ)/

j^)i

=1,⋯

,m下面我們繼續考慮矩陣ℓ∗

核範數正則化約束問題,該問題可以形式化為mi

na12

∥x−a

∥2f+

∥a∥∗

,這類問題的求解一般採用矩陣的svd分解,x=

usvt

;再使用surrogate策略。一般優化解的形式如下: a=

u∗s^

∗vt

其中s^ 的表示式如下: s^

=t(s

)=⎧⎩

⎨s−ϵ

s>ϵs

+ϵs<−ϵ

0oth

erwi

se2. accelerated gradient algorithm

我們考慮乙個常見的優化問題,形式化為mi

nwf(

w)+λ

ψ(w)

,函式的具體形式視情況而定。比如在機器學習領域,f(

w)一般為總體訓練樣本的損失函式,f(

w)=1

n∑nℓ

(χn,

w),χn=

為訓練樣本,而

ℓ 為具體的損失函式,比如平方損失,logistic 損失,hinge損失等;ψ(

w)一般為待訓練引數

w 的正則化約束,這裡我們考慮混合約束ψ(

w)=∥

w∥1,

∞或ψ(

w)=∥

w∥1,

2 。該類混合約束在機器學習模型構建中經常用到,比如多工建模中(f(

w)則為總體任務下總體訓練樣本的損失,w=

k ,wk

為第k 個任務下待訓練權重),所以有必要討論其優化解。

一般而言,上式問題的求解可以採用子梯度下降法優化

w,但遺憾的是收斂速度較慢。因此在優化目標問題中,對f(

w)在w=w

t 處進行二階泰勒近似展開,優化目標函式為: mi

nwf(

wt)+

wt,∇

f(wt

)>+l

2∥w−

wt∥2

f+λψ

(w)

其中b>=tr

(atb

) m

inw1

2∥w−

(wt−

1l∇f

(wt)

)∥2f

+λl∥

w∥1,

∞ 其中

∥w∥1

,∞=∑

j∥wj

∥∞,即為每一行元素絕對值的最大值累加。為了簡化上式,我們令 v

=wt−

1l∇f

(wt)

和 λ^

=λl ,則 m

inw1

2∥w−

v∥2f

+λ^∥

w∥1,

同樣,上式問題可以各個維度上的子問題求解,下面我們僅考慮矩陣 w

,v的第 i

行,記著w,

v。那麼子問題簡化為: m

inw1

2∥w−

v∥22

+λ^∥

w∥∞

如果原始問題為 ψ

(w)=

∥w∥1

,2混合範數約束,則此時的優化子問題為: m

inw1

2∥w−

v∥22

+λ^∥

w∥2

因此上述問題求解。可知,該方法對優化目標函式採用泰勒近似展開達到對原問題的簡化,從而加快演算法的收斂速度。

優化演算法高階筆記

adagrad演算法會使用乙個小批量隨機梯度 gt 按元素平方的累加變數 st 在時間步0,adagrad將 s0 中每個元素初始化為0。在時間步 t 首先將小批量隨機梯度 gt 按元素平方後累加到變數 st st st 1 gt gt,其中 是按元素相乘。接著,我們將目標函式自變數中每個元素的學習...

Mysql高階高階(sql優化)

目錄 一 mysql高階有哪些東西?1 mysql的架構 2 索引優化分析 3 查詢擷取分析 4 mysql鎖機制 5 主從複製 架構這裡我們主要說的是引擎 看你的mysql現在已提供什麼儲存引擎 看你的mysql當前預設的儲存引擎 show variables like storage engin...

演算法 高階演算法

三數之和 3sum 第十一章 33 給出乙個有 n 個整數的陣列 s,在 s 中找到三個整數 a,b,c,找到所有使得 a b c 0 的三元組。注意事項 在三元組 a,b,c 要求 a b c,結果不能包含重複的三元組。樣例 如 s 你需要返回的三元組集合的是 1,0,1 1,1,2 an hig...