petuum框架的ssp模型簡介

2021-08-01 12:03:55 字數 3549 閱讀 9257

ssp模型是利用機器學習演算法的容錯性構建的一種平行計算模型,機器學習的容錯性是指在誤差容許的範圍內,演算法迭代計算過程中可以存在一定的誤差。例如隨機梯度下降演算法,可以在每一次迭代過程中容許存在一定的噪音梯度,而前提是不影響演算法的收斂性。在ssp 模型中,給定了乙個時間視窗,並保證了兩個執行緒維持在這個時間視窗內,這樣使得誤差保持在一定的範圍,並且有理論收斂性的保證。

假設現在有p個workers(執行緒或程序),需要在乙個時鐘(如一次迭代)去通過累加的方法去更新乙個一致性引數如x←

x+u ,每個worker有自己的時鐘,並在每次時鐘結束時向伺服器提交自己的更新,但是每乙個worker可能不會立馬得到其他worker的更新資料,這就是ssp模型的思想所在,每乙個worker查詢引數伺服器所得資料可能是」舊」的,具體的給定乙個使用者自定義的時鐘閾值s,ssp模型需要保證以下條件成立:

以上就是ssp模型基本條件,簡單的說,ssp模型要求快的worker一旦突破了使用者給定的時間視窗就必須停下來去訪問一次parameter server,得到最新的引數,這樣慢的worker訪問cache一定可以慢慢追上快的worker,另一方面,每乙個worker得到parameter server的引數更新的部分的時間視窗一定包含[0,c-s-1],可能包含的時間視窗[c-s,c+s-1],這裡可能有幾種情況,有可能是有些worker很快通過了下乙個s整數倍,去訪問了一次parameter server,也可能是出現了快的worker去等待慢的worker去訪問了parameter server,而時間s整數倍去訪問parameter server是為了避免所有的worker一直都沒有乙個worker去突破時間視窗。

下面介紹如何利用基於ssp模型隨機梯度下降演算法去求解矩陣分解問題,矩陣分解問題如下

minl,r

∑(a,

b)∈d

ata∥

∥∥∥d

ij−∑

k=1k

likr

kj∥∥

∥∥2

利用梯度下降求解如下∂o

mf∂l

ik=∑

(i,j

)∈da

taδ(

a=i)

[−2d

abrk

b+2l

a⋅r⋅

brkb

] ∂o

mf∂r

kj=∑

(a,b

)∈da

taδ(

b=j)

[−2d

abla

k+2l

a⋅r⋅

blak

] 其中o

mf是需要求解的最優化問題,δ(

a=i)

表示當a=

i 時為1否則為0,一般情況下資料量較多時,

d 矩陣的高大於寬的,因此我們可以將d和

l 按行劃分到每乙個節點上,同時r是每乙個節點所共有的一致性變數即x:=

r,並儲存在parameter server中,結合ssp模型,每乙個worker每次迭代去訪問parameter server得到

r ,然後再更新得到梯度並commit到parameter server端,而每次訪問parameter server會滿足ssp模型條件。給定乙個

s值,則 x˘

p,c=

x0+⎡

⎣⎢⎢∑

c′=1

c−s−

1∑p′

=1pu

c′,p

′⎤⎦⎥

⎥



gu

aran

teed

pre−

wind

owup

date

s+[∑

c′=c

−sc−

1uc′

,p]



gu

aran

teed

read

−my−

writ

esup

date

s+⎡⎣

⎢⎢∑(

c′,p

′)∈

p,cu

c′,p

′⎤⎦⎥

⎥



be

st−e

ffor

tin−

wind

owup

date

s 其中x

˘p,c

表示p worker在c時鐘時讀到parameter server的資料,x0

是初始值,而後面的累加梯度(假設是梯度下降演算法)有三個部分「guaranteed pre-window updates」表示worker p必定能讀到的梯度更新部分,其中包括其他的worker的更新,就是上圖中黑色部分;「guaranteed read-my-writes updates」表示worker p自己更新的部分,上圖中綠色部分;「best-effort in-window updates」表示可能讀到的其他worker更新的部分,上圖中藍色部分。

相比於bsp模型而言,每乙個worker會同步更新的值,也就是每次時鐘每乙個worker在計算更新值之前得到的引數都是相同的,並且worker的時鐘也是一致的,那麼xt

=x0+

∑t′=

0tut

′,wh

ereu

t:=ut

modp

,⌊t/

p⌋這裡等價於序列去累加每乙個worker的更新值,那麼按同樣的方式,ssp模型中當s≥

1 時,x˘

t=xt

−⎡⎣⎢

⎢∑i∈

tui

⎤⎦⎥⎥

m

issi

ngup

date

s+⎡⎣

⎢⎢∑i

∈tu

i⎤⎦⎥

⎥

extr

aupd

ates

可以看出其中包含了相對於bsp miss update和extra update,並且∣∣

t∣∣

+∣∣

t∣∣≤

2s(p

−1) ,

min(

t⋃b

t)≥m

ax(1

,t−(

s+1)

/p),

max(

t⋃

t)≤t

+sp ,直覺上來講更新值誤差有界應該是演算法收斂的主要保證,另外**給出了基於ssp模型的sgd演算法的regret界如下 r[

x]:=[

1t∑t

=1tf

t(x˘

t)]−

f(x∗

)≤4f

l2(s

+1)p

t‾‾‾

‾‾‾‾

‾‾‾√

其中l是lipschitz常數,兩個點之間的距離d(

x∥x′

)≤f ,詳細的證明過程請參考**。

Hibernate及Spring的框架簡述

最近在複習一些框架的概念,總結了一下,談一談我的理解。hibernate是乙個開放源 的物件關係對映框架,它對jdbc進行了非常輕量級的物件封裝,大大簡化了資料訪問層繁瑣的重複性 1.hibernate中的三種狀態 臨時狀態 transient object 只是new了物件,但是物件沒有立即被持久...

Android開發之Volley框架的簡單使用

1,什麼是volley框架?2013年google i o大會上被提出的 android 非同步網路請求框架和載入框架。2,volley特點?1,預設android2.3及以上基於httpurlconnection,2.3以下使用基於httpclient 2,請求佇列優先順序排列 3,支援取消請求的...

基於swoole的極簡框架 1 4 1

class article extends model 根據點讚排序 public function orderbylikecount 獲取周排行榜 按照點讚數量 article column id title where create at strtotime 1 week orderby lik...