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...