distributed machine learning
federated learning
針對神經網路的模型並行方法有:橫向按層劃分、縱向跨層劃分和模型隨機劃分
將神經網路每兩層間的連邊引數、啟用函式值和誤差傳播值儲存於乙個工作結點。前饋時,每乙個節點要先向前乙個結點索要一層的資料,經過自身的計算後,再把資料存到自身的末層上,供下一層發出索要資料的申請。後饋時,每個結點要先向後一層發出申請,索要後一層傳下來的誤差,經過訓練後將誤差儲存在自身結點的首層,供前乙個結點索要誤差值。
把每一層的引數均等地劃成若干份,每個結點存乙份,相當於每個結點存了一整個神經網路。每個結點除了存自己那一部分神經元的資料以外,還要存指向該神經元的邊。當訓練或推導時,若需要其他神經元的值(推導時),則需要向其他節點發出索要資料的申請;若需要將誤差傳給其他神經元(訓練時),則需要向其他節點發出寫入誤差的申請。
每個結點存乙個骨架網路,各個工作結點互相通訊的時候,會隨機傳輸一些屬於非骨架網路的神經元引數,從而起到探索原網路全域性拓撲結構的作用。骨架網路的選擇是週期性更新的,對全域性拓撲結構的探索也是動態的。
對於模型隨機拆分的方式見下方**
a multi-agent system for communication-efficient distributed deep learning
對於骨架網路的選擇:
整個神經網路儲存在乙個伺服器上,首先伺服器會先選出乙個骨架網路。對於神經元的選擇,每一層選擇(a-b)%個神經元,所有神經元按照其所發出的邊上值的絕對值的和,貪心選出前(a-b)%個,再對每乙個結點隨機選擇所有神經元的b%個神經元(這些神經元不屬於之前所選的那些),這些被選中的神經元及其相應的邊共同構成了每乙個結點的骨架網路。每乙個節點上的骨架網路做訓練後,會得到誤差值。對乙個結點而言,所有誤差值,會先選出|邊值|+|誤差值|最大的前(a-b)%個誤差值,再隨機選擇b%不屬於他們的誤差值,傳回伺服器。伺服器將所有結點的誤差值彙總,做更新。
神經網路模型
神經網路往往不需要人為的構造資料特徵,因為乙個神經元就可以看做是原始資料的不同特徵的組合,在神經元數目足夠大,層數足夠多的情況下,是很容易準確的進行分類的.神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所做出的互動反應 神經元模型 m p神經元模...
神經網路語言模型
基於計數的n gram語言模型 出現的問題 1 資料稀疏,有些資料未出現過 2 忽略語義的相關性,如 無聊 與 枯燥 雖然語義相似,但無法共享資訊。詞語表示為 one hot表示法。基於分布式表示的n gram語言模型 出現的問題 1 詞向量 如何將每個詞對映到實數向量空間中的乙個點 2 f函式的設...
神經網路相關模型
logistic regression模型 y wtx b 記住使用的啟用函式 是sigmoid函式。損失函式 l y y y log y 1 y log 1 y 衡量 值y 與真實值y的差距,越小越好。代價函式 損失均值,j w,b 1 m mi 1l y i y i 是w和b的函式,學習的過程就...