DOR自我探索的分散式神經網路

買賣虛擬貨幣
隨著以太坊2.0版本的臨近,公鏈平臺的成熟度日益提高,已經容許大型企業在上面搭建生態與DAPP,區塊鏈行業的繁榮與技術的長足發展使我們更多地關注於未來的技術演變與關鍵節點的轉折。本文主要闡述以下方面,基於DOR神經網路的分散式訓練,DOR分散式神經網路的深度學習,基於DOR的激勵機制以及DOR在神經網路的自我探索。我們致力於打造一個擁有自我探索能力,不斷強大的分散式神經網路,在醫療、教育、零售以及大型企業的運用將會是DOR的主要研究方向。一. DOR神經網路的發展與演進資料正在以史無前例的規模產生,人們對資料的分析需求與日俱增。這些資料需要被有效分析以獲得有意義的資訊。

深度學習作為強有力的分析工具,在視覺、語言和智慧推理等複雜任務上表現都很好。然而,這些演算法需要花很長的時間來訓練大量的資料,才能得到有效的結果。

神經網路由於其學習和適應、自組織、函式逼近和大規模並行處理等能力,因而具有用於智慧系統的潛力。

神經網路在模式識別、訊號處理、系統辨識和最佳化等方面的應用,已有廣泛研究。在控制領域,已經做出許多努力,把神經網路用於控制系統,處理控制系統的非線性和不確定性以及逼近系統的辨識函式等。

我們在用個人電腦(PC)端處理大量的資料時,往往會受到孤島效應的制衡,每一個人得到的結論與資料分析結果很難進行有效的統一與分析,同樣地,我們在得到叢集式的結論時,也沒有有效地覆蓋到細分的領域內,如餐飲、金融、大城市排程資訊等,為此我們需要將分散式的學習進行擴充套件,讓每一臺PC或移動端都能夠實時地提供領域內的有效資訊,DOR並不會進行集中式資料分析處理,而會採用DOR技術進行互相分發,以提供在DOR內深度神經網路的整體學習能力與自我探索能力。

DOR的自我探索能力將會對區塊鏈行業乃至整個大資料行業產生深遠的影響,將A領域的資料分發至B領域,以此同時提升雙方在領域內資訊的處理能力,可以有效地提高DOR的分散式神經網路的健壯性。

1. DOR神經網路的分散式訓練

傳統的分散式訓練可以分為兩種,資料並行和模型並行,在此處,DOR採用的架構與傳統的分散式訓練極為接近,但由於資料的處理量與分析方式不同,因此我們參考了傳統的分散式訓練並將其重新分類。

資料並行把資料集平分到各個節點,每個節點都有一份完整的模型以及本地權值子集,每個節點訓練資料集子集,並且更新本地權值子集。這些本地權值在叢集節點間共享,並透過積累演算法,計算得到全域性權值。然後全域性權值被分發回各個節點,繼續下一個batch的訓練。

模型並行把模型結構分割到不同節點。DOR在個人資料開發者的程式中把結構劃分到2個GPU,以滿足GPU視訊記憶體要求。模型並行應用於,1)模型太大;2)模型結構可以並行。

2. DOR分散式訓練框架的組成

2.1 DOR分散式節點間通訊

分散式訓練另一個重要部分就是節點間的資料通訊。DOR預計會在第四季度上線個人節點的統一標準與學習程式,將分散式的節點進行第一次聯絡後,不間斷地進行交替式通訊,運用區塊鏈技術的好處彰顯於此。

2.2 梯度積累

梯度積累演算法在分散式訓練系統中扮演著重要角色。這些演算法負責收集每個worker節點的本地梯度,再把更新之後全域性梯度分發回各個worker節點。

2.3 低精度訓練

基於ImageNet訓練Resnet,目前最快4min,DOR會將低精度訓練提升至2-3min。

2.4 人工神經網路

DOR採用迭代的演算法來訓練整個網路,隨機設定初值,計算當前網路的輸出,然後根據當前輸出和label之間的差去改變前面各層的引數,直到收斂(整體是一個梯度下降法)。

對僅含幾層網路,該訓練方法就已經很不理想,但在DOR的網路中,該方法可以有效地處理大量的資料接通神經網路。

深度結構(涉及多個非線性處理單元層)非凸目標代價函式中普遍存在的區域性最小是訓練困難的主要來源:

(1)梯度越來越稀疏:從頂層越往下,誤差校正訊號越來越小;
(2)收斂到區域性最小值:尤其是從遠離最優區域開始的時候(隨機值初始化會導致這種情況的發生);
(3)一般,我們只能用有標籤的資料來訓練,但大部分的資料是沒標籤的,而大腦可以從沒有標籤的的資料中學習;這是神經網路與大腦的不同之處,當神經元足夠豐富,資料足夠飽滿時,神經網路的學習能力才會日漸凸顯出來,分散式節點通訊的互通,是資料是否飽滿的主要評判特徵。

3. DORT Learning的學習過程

DORT為DOR在未來的測試網(DOR Testnet)上運用的主要技術。

「DORT」提供個人PC與移動端的資料探勘的深度神經學習邏輯——使用自下上升非監督學習(從底層開始,一層一層的往頂層訓練)DORT網路學習的準則是:如果網路作出錯誤的判斷,則透過網路的學習,應使得網路減少下次犯同樣錯誤的可能性。首先,我們給網路的各節點權值賦予(0,1)區間內的隨機值,將“A”所對應的影象模式輸入給網路,網路將輸入模式加權求和,與門限比較,再進行非線性運算,得到網路的輸出。在此情況下,網路輸出為“1”和“0”的概率各為50%,也就是說完全隨機的。這時如果輸出為“1”(結果正確),則使連線權值增大,以便使網路再次遇到“A”模式輸入時,仍能做出正確的判斷。

如果輸出為“0”(即結果錯誤),則把網路連線權值朝著減小綜合輸入加權值的方向調整,其目的在於使網路下次再遇到“A”模式輸入時,減小犯同樣錯誤的可能性。如此操作調整,當給網路輪番輸入若干個手寫字母“A”,“B”後,經過網路按以上學習方法進行若干次學習後,網路判斷的正確率將大大提高。這說明網路對這兩個模式的學習已經獲得成功,它已將這兩個模式分佈地記憶在網路的各個連線權值上。當網路再次遇到其中任何一個模式時,能夠作出迅速,準確的判斷和識別。一般來說,網路中所含的神經元個數越多,則它能記憶,識別的模式也就越多。

DORT採用無標定資料分層訓練各層引數,這一步可以看作是一個無監督訓練過程,是和傳統神經網路區別最大的部分(這個過程可以看作是DORT learning的初步過程):

具體地,先用無標定資料訓練第一層,訓練時先學習第一層的引數(這一層可以看作是得到一個使得輸出和輸入差別最小的三層神經網路的隱層),由於模型capacity的限制以及稀疏性約束,使得得到的模型能夠學習到資料本身的結構,從而得到比輸入更具有表示能力的特徵;在學習得到第n-1層後,將n-1層的輸出作為第n層的輸入,訓練第n層,由此分別得到各層的引數;

自頂向下的監督學習(透過帶標籤的資料去訓練,誤差自頂向下傳輸,對網路進行微調):

④基於第一步得到的各層引數進一步fine-tune整個多層模型的引數,這一步有監督訓練過程;第一步類似神經網路的隨機初始化過程,由於DL的第一步不是隨機初始化,而是透過學習輸入資料的結構得到的,因而這個初值更接近全域性最優,從而能夠取得更好的效果;

二. DOR神經網路的深度學習

1. DOR深度神經網路的深度學習

深度學習屬於機器學習的一種。介紹深度學習之前,我們先大致瞭解一下機器學習的運作原理,因為DOR的分散式神經訓練需要擬用海量的節點進行批次式的機器學習。拿監督學習為例,其本質上是要找到一個函式對映:輸入資料(也就是訓練樣本)透過函式對映(也就是我們的機器學習演算法)到輸出空間上(也就是目標值,如果是分類問題,對映到某一類上)。

用作公式表達即為:

MeachineLearning≈LookingForAFunction.MeachineLearning≈LookingForAFunction.

神經元本質上是一個簡單函式,其函式形式為:

f=σ(z);f=σ(z);
z=a1w1+a2w2+aiwi+...+aKwK+b;z=a1w1+a2w2+aiwi+...+aKwK+b;

其中,σ函式σ函式屬於一個啟用函式,zz是一個線性函式,其結果可以是任意值,透過啟用函式,給模型帶來非線性因素,增加模型的表達能力;通常情況下,線性模型的表達能力不夠。

神經元的wiwi和bb就是神經元模型的訓練引數;引數不同,形成的神經元也不相同。神經元的不同連線方式形成的網路架構也各不相同。神經網路的引數包括所有神經元的wi(weights)wi(weights)和b(biases)b(biases)。

如果說,一個神經元是一個簡單函式functionfunction,那麼神經網路就是一個簡單函式集afunctionsetafunctionset.

深度學習中的“深度”是指DOR神經網路的層數有很多。

這種方法存在的一個問題:最後求解出來的最小值,不是全域性最小值,而是區域性最小值。

2. DORT如何從函式空間找到函式

這裡存在一個指標來評價對映函式的好壞,如:準確率,錯誤率,應用率等。透過這個最最佳化資料指標我們就能找到 最好的對映函式,也就是機器學習裡的演算法模型。

所以,機器學習模型訓練過程主要有三個階段:

確定模型,從而確定函式對映空間;
將訓練資料應用於函式空間,對模型進行訓練;
找出最好的模型;之後,我們可以將訓練好的模型應用到unseen data上(這也是我們最終的目的)。

3. DORT模型評測 goodness of function

以手寫數字識別為例,首先我們知道這是一個監督學習問題;其訓練資料為實現收集的手寫數字和標籤;

最終達到輸入一個手寫的數字能給出其所屬的類別(0-9/0-100)之前我們定義的函式集合,如何評價這個函式集合(模型)表現如何呢?所以需要定義一個評價指標。這裡定義的評價指標為Loss函式,指輸出值和真實值之間的差距(可以透過計算兩個值之間的距離來表示)。最終我們透過最佳化在所有資料上的總損失Loss來找到最優的模型。

本質上就是透過最小化Loss函式來找到最合適的引數θ∗引數θ∗,從而確定最最佳化的模型。

怎麼找到最最佳化的引數θ∗pickthebestfunctionθ∗pickthebestfunction最先引入腦海的方法就是窮舉法,把所有可能的取值都試一次。這種方法肯定不可取!因為,通常情況下深度學習模型層數不止3層,而每層的神經元又有很多,導致最後要最佳化的引數也是一個非常大的數字。

方法一:Gradient Descent 梯度下降演算法同時,由於初始的權重係數wiwi是隨機選取的,導致最後的最最佳化結果也各不相同。
方法二:Backpropagation 反向傳播演算法Caffe,TensorFlow等都支援的這種求解方法。

為什麼模型總是豎向擴張,並非橫向擴充套件。
Deeper is Better.一般而言,引數越多,模型表現效果越好。

對於任意的連續函式ff,定義為:f:RN→RMf:RN→RM理論上來講,這種能由深度學習解決的問題,也可以透過有一個隱藏層的網路模型來解決(給它足夠多的神經元)。

在DORT中,當網路足夠健壯的時候,我們將更多的神經元分配給深度學習機制,可以將模型的深度極大的擴充,並輔以分析。

4. DOR針對傳統的深度學習訓練存在的問題

4.1 資料獲取問題

傳統深度學習需要依賴於有標籤的資料才能進行訓練。然而有標籤的資料通常是稀缺的,因此對於許多問題,很難獲得足夠多的樣本來擬合一個複雜模型的引數。

在DORT網路中,我們可以迅速獲取大量的富含價值的標籤,在標籤交換的過程中進行深度自我擬合的神經學習。

考慮到深度網路具有強大的表達能力,在不充足的資料上進行訓練將會導致過擬合。

4.2 區域性極值問題

使用監督學習方法來對淺層網路(只有一個隱藏層)進行訓練通常能夠使引數收斂到合理的範圍內。但是當用這種方法來訓練深度網路的時候,並不能取得很好的效果。

特別的,使用監督學習方法訓練神經網路時,通常會涉及到求解一個高度非凸的最佳化問題(例如最小化訓練誤差 ,其中引數 是要最佳化的引數。

對深度網路而言,這種非凸最佳化問題的搜尋區域中充斥著大量“壞”的區域性極值,因而使用梯度下降法(或者像共軛梯度下降法,L-BFGS等方法)效果並不好。

而DOR使用的橫向跨列法可以儘可能地避免壞的區域性極值的產生。

4.3 梯度彌散問題

梯度下降法(以及相關的L-BFGS演算法等)在使用隨機初始化權重的深度網路上效果不好的技術原因是: 梯度會變得非常小。具體而言,當使用反向傳播方法計算導數的時候,隨著網路的深度的增加,反向傳播的梯度(從輸出層到網路的最初幾層)的幅度值會急劇地減小。結果就造成了整體的損失函式相對於最初幾層的權重的導數非常小。這樣,當使用梯度下降法的時候,最初幾層的權重變化非常緩慢,以至於它們不能夠從樣本中進行有效的學習。這種問題通常被稱為“梯度的彌散”。

儘可能地避免梯度的彌散,是DOR專案成立以來一直努力克服的問題,在彙集大量的神經網路實驗資料後,橫向跨列法的在深度網路上的表現遠遠好於梯度下降法。

關於更多DOR資訊:http://dorlink.io/
更多區塊鏈專案介紹:http://www.qukuaiwang.com.cn/news/xiangmu 
風險提示:區塊鏈投資具有極大的風險,專案披露可能不完整或有欺騙。請在嘗試投資前確定自己承受以上風險的能力。區塊網只做專案介紹,專案真假和價值並未做任何稽覈!

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;