導航:首頁 > 網路營銷 > rnn網路的技術優勢有哪些

rnn網路的技術優勢有哪些

發布時間:2022-12-12 11:30:46

Ⅰ 在做語音識別時,RNN和CNN各有什麼優缺點

關注問題寫回答
1 個回答

默認排序
YJango
YJango
日本會津大學人機界面實驗室 博士在讀
17 人贊同了該回答
long dependence方面是LSTM的優勢。
比如句子「我在日本生活過五年,我可以說流利的日語」, 單向LSTM可以在之前所說內容的基礎上對當前內容進行判斷,可以照顧到日本與日語之間的關系。雙向LSTM還可以基於未來的內容判斷當前內容。主要是這種判斷可以在整個句子之間進行。

同時如果用LSTM做回歸的話,輸出不需要做後續處理就非常平滑。

CNN的語音識別的特徵(feature)通常是是頻譜圖(spectrogram),類似圖片識別的處理方式。同樣也可以利用filter size,基於過去和未來的信息判斷當前內容。但由於size固定,long dependence方面不如LSTM。不過CNN可以同一信息用不同的feature m

Ⅱ 循環神經網路(RNN)淺析

RNN是兩種神經網路模型的縮寫,一種是遞歸神經網路(Recursive Neural Network),一種是循環神經網路(Recurrent Neural Network)。雖然這兩種神經網路有著千絲萬縷的聯系,但是本文主要討論的是第二種神經網路模型——循環神經網路(Recurrent Neural Network)。

循環神經網路是指一個隨著時間的推移,重復發生的結構。在自然語言處理(NLP),語音圖像等多個領域均有非常廣泛的應用。RNN網路和其他網路最大的不同就在於RNN能夠實現某種「記憶功能」,是進行時間序列分析時最好的選擇。如同人類能夠憑借自己過往的記憶更好地認識這個世界一樣。RNN也實現了類似於人腦的這一機制,對所處理過的信息留存有一定的記憶,而不像其他類型的神經網路並不能對處理過的信息留存記憶。

循環神經網路的原理並不十分復雜,本節主要從原理上分析RNN的結構和功能,不涉及RNN的數學推導和證明,整個網路只有簡單的輸入輸出和網路狀態參數。一個典型的RNN神經網路如圖所示:

由上圖可以看出:一個典型的RNN網路包含一個輸入x,一個輸出h和一個神經網路單元A。和普通的神經網路不同的是,RNN網路的神經網路單元A不僅僅與輸入和輸出存在聯系,其與自身也存在一個迴路。這種網路結構就揭示了RNN的實質:上一個時刻的網路狀態信息將會作用於下一個時刻的網路狀態。如果上圖的網路結構仍不夠清晰,RNN網路還能夠以時間序列展開成如下形式:

等號右邊是RNN的展開形式。由於RNN一般用來處理序列信息,因此下文說明時都以時間序列來舉例,解釋。等號右邊的等價RNN網路中最初始的輸入是x0,輸出是h0,這代表著0時刻RNN網路的輸入為x0,輸出為h0,網路神經元在0時刻的狀態保存在A中。當下一個時刻1到來時,此時網路神經元的狀態不僅僅由1時刻的輸入x1決定,也由0時刻的神經元狀態決定。以後的情況都以此類推,直到時間序列的末尾t時刻。

上面的過程可以用一個簡單的例子來論證:假設現在有一句話「I want to play basketball」,由於自然語言本身就是一個時間序列,較早的語言會與較後的語言存在某種聯系,例如剛才的句子中「play」這個動詞意味著後面一定會有一個名詞,而這個名詞具體是什麼可能需要更遙遠的語境來決定,因此一句話也可以作為RNN的輸入。回到剛才的那句話,這句話中的5個單詞是以時序出現的,我們現在將這五個單詞編碼後依次輸入到RNN中。首先是單詞「I」,它作為時序上第一個出現的單詞被用作x0輸入,擁有一個h0輸出,並且改變了初始神經元A的狀態。單詞「want」作為時序上第二個出現的單詞作為x1輸入,這時RNN的輸出和神經元狀態將不僅僅由x1決定,也將由上一時刻的神經元狀態或者說上一時刻的輸入x0決定。之後的情況以此類推,直到上述句子輸入到最後一個單詞「basketball」。

接下來我們需要關注RNN的神經元結構:

上圖依然是一個RNN神經網路的時序展開模型,中間t時刻的網路模型揭示了RNN的結構。可以看到,原始的RNN網路的內部結構非常簡單。神經元A在t時刻的狀態僅僅是t-1時刻神經元狀態與t時刻網路輸入的雙曲正切函數的值,這個值不僅僅作為該時刻網路的輸出,也作為該時刻網路的狀態被傳入到下一個時刻的網路狀態中,這個過程叫做RNN的正向傳播(forward propagation)。註:雙曲正切函數的解析式如下:

雙曲正切函數的求導如下:

雙曲正切函數的圖像如下所示:

這里就帶來一個問題:為什麼RNN網路的激活函數要選用雙曲正切而不是sigmod呢?(RNN的激活函數除了雙曲正切,RELU函數也用的非常多)原因在於RNN網路在求解時涉及時間序列上的大量求導運算,使用sigmod函數容易出現梯度消失,且sigmod的導數形式較為復雜。事實上,即使使用雙曲正切函數,傳統的RNN網路依然存在梯度消失問題,無法「記憶」長時間序列上的信息,這個bug直到LSTM上引入了單元狀態後才算較好地解決。

這一節主要介紹與RNN相關的數學推導,由於RNN是一個時序模型,因此其求解過程可能和一般的神經網路不太相同。首先需要介紹一下RNN完整的結構圖,上一節給出的RNN結構圖省去了很多內部參數,僅僅作為一個概念模型給出。

上圖表明了RNN網路的完整拓撲結構,從圖中我們可以看到RNN網路中的參數情況。在這里我們只分析t時刻網路的行為與數學推導。t時刻網路迎來一個輸入xt,網路此時刻的神經元狀態st用如下式子表達:

t時刻的網路狀態st不僅僅要輸入到下一個時刻t+1的網路狀態中去,還要作為該時刻的網路輸出。當然,st不能直接輸出,在輸出之前還要再乘上一個系數V,而且為了誤差逆傳播時的方便通常還要對輸出進行歸一化處理,也就是對輸出進行softmax化。因此,t時刻網路的輸出ot表達為如下形式:

為了表達方便,筆者將上述兩個公式做如下變換:

以上,就是RNN網路的數學表達了,接下來我們需要求解這個模型。在論述具體解法之前首先需要明確兩個問題:優化目標函數是什麼?待優化的量是什麼?

只有在明確了這兩個問題之後才能對模型進行具體的推導和求解。關於第一個問題,筆者選取模型的損失函數作為優化目標;關於第二個問題,我們從RNN的結構圖中不難發現:只要我們得到了模型的U,V,W這三個參數就能完全確定模型的狀態。因此該優化問題的優化變數就是RNN的這三個參數。順便說一句,RNN模型的U,V,W三個參數是全局共享的,也就是說不同時刻的模型參數是完全一致的,這個特性使RNN得參數變得稍微少了一些。

不做過多的討論,RNN的損失函數選用交叉熵(Cross Entropy),這是機器學習中使用最廣泛的損失函數之一了,其通常的表達式如下所示:

上面式子是交叉熵的標量形式,y_i是真實的標簽值,y_i*是模型給出的預測值,最外面之所以有一個累加符號是因為模型輸出的一般都是一個多維的向量,只有把n維損失都加和才能得到真實的損失值。交叉熵在應用於RNN時需要做一些改變:首先,RNN的輸出是向量形式,沒有必要將所有維度都加在一起,直接把損失值用向量表達就可以了;其次,由於RNN模型處理的是序列問題,因此其模型損失不能只是一個時刻的損失,應該包含全部N個時刻的損失。

故RNN模型在t時刻的損失函數寫成如下形式:

全部N個時刻的損失函數(全局損失)表達為如下形式:

需要說明的是:yt是t時刻輸入的真實標簽值,ot為模型的預測值,N代表全部N個時刻。下文中為了書寫方便,將Loss簡記為L。在結束本小節之前,最後補充一個softmax函數的求導公式:

由於RNN模型與時間序列有關,因此不能直接使用BP(back propagation)演算法。針對RNN問題的特殊情況,提出了BPTT演算法。BPTT的全稱是「隨時間變化的反向傳播演算法」(back propagation through time)。這個方法的基礎仍然是常規的鏈式求導法則,接下來開始具體推導。雖然RNN的全局損失是與全部N個時刻有關的,但為了簡單筆者在推導時只關注t時刻的損失函數。

首先求出t時刻下損失函數關於o_t*的微分:

求出損失函數關於參數V的微分:

因此,全局損失關於參數V的微分為:

求出t時刻的損失函數關於關於st*的微分:

求出t時刻的損失函數關於s_t-1*的微分:

求出t時刻損失函數關於參數U的偏微分。注意:由於是時間序列模型,因此t時刻關於U的微分與前t-1個時刻都有關,在具體計算時可以限定最遠回溯到前n個時刻,但在推導時需要將前t-1個時刻全部帶入:

因此,全局損失關於U的偏微分為:

求t時刻損失函數關於參數W的偏微分,和上面相同的道理,在這里仍然要計算全部前t-1時刻的情況:

因此,全局損失關於參數W的微分結果為:

至此,全局損失函數關於三個主要參數的微分都已經得到了。整理如下:

接下來進一步化簡上述微分表達式,化簡的主要方向為t時刻的損失函數關於ot的微分以及關於st*的微分。已知t時刻損失函數的表達式,求關於ot的微分:

softmax函數求導:

因此:

又因為:

且:

有了上面的數學推導,我們可以得到全局損失關於U,V,W三個參數的梯度公式:

由於參數U和W的微分公式不僅僅與t時刻有關,還與前面的t-1個時刻都有關,因此無法寫出直接的計算公式。不過上面已經給出了t時刻的損失函數關於s_t-1的微分遞推公式,想來求解這個式子也是十分簡單的,在這里就不贅述了。

以上就是關於BPTT演算法的全部數學推導。從最終結果可以看出三個公式的偏微分結果非常簡單,在具體的優化過程中可以直接帶入進行計算。對於這種優化問題來說,最常用的方法就是梯度下降法。針對本文涉及的RNN問題,可以構造出三個參數的梯度更新公式:

依靠上述梯度更新公式就能夠迭代求解三個參數,直到三個參數的值發生收斂。

這是筆者第一次嘗試推導RNN的數學模型,在推導過程中遇到了非常多的bug。非常感謝互聯網上的一些公開資料和博客,給了我非常大的幫助和指引。接下來筆者將嘗試實現一個單隱層的RNN模型用於實現一個語義預測模型。

Ⅲ 網路架構搜索

        作為計算智能方法的代表,起源於上個世紀四十年代的人工神經網路經歷了五六十年代的繁榮,七十年代的低潮,八十年代的再次復甦,到近十年的廣泛關注,如今已經成為理論日趨完善,應用逐步發展的前沿方向。Hinton 等人2006 年在《Science》上發表的文章引發了深度神經網路研究的熱潮。面對大數據的諸多挑戰,以深度信念網路、卷積神經網路和遞歸神經網路為代表的深度神經網路模型在很多應用領域展示出明顯的優勢和潛力,特別是隨著數據量和數據維數的增加,深度學習的優勢愈加突出。例如,Google 藉助深度學習開發的AlphaGo 能從海量的對弈中學習正確的決策,微軟語音識別採用深度學習使識別錯誤率顯著降低,網路基於深度學習開發的機器人「小度」在跨年齡人臉識別上超越了人類。

       經過多年的研究和發展,基於人工神經網路的識別方法也逐漸取代傳統的模式識別方法。神經網路已成為當前比較先進的技術,用來解決許多具有挑戰性的識別任務如文字識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫體字元的識別等。其中主流的神經網路模型有卷積網路和遞歸神經網路,卷積神經網路由 Yann LeCun 在 1998 年提出,自從 AlexNe 在 2012 年的 ImageNet 比賽中使用了這一架構拔得頭籌,卷積神經網路迅速流行起來並廣泛應用到視覺任務。如今,最先進的卷積神經網路演算法在進行圖像識別時,甚至可以超過人類肉眼識別的准確率。遞歸神經網路網路提出於 1990 年,被視為循環神經網路的推廣,遞歸神經網路可以引入門控機制以學習長距離依賴,適用於包含結構關系的機器學習任務,在序列識別方面有重要應用。

        深度神經網路和深度學習演算法因為在科研工作與工程任務中都取得了顯著的效果從而大受歡迎。它取代了傳統的手動提取特徵方法,夠端到端地自動提取和學習特徵。而其中取得顯著成功的深度神經網路通常是由於它們成功的架構設計,研究的工作重心從提取特徵轉移到了尋找最優架構上。通常來說,模型的容量越大網路的性能就越好,能夠擬合任意函數。因此為了提升網路性能,網路結構被設計的越來越復雜。例如,VGG-16 約有1.4億浮點數參數,整個網路佔用超過500兆存儲空間,需要153億次浮點操作來處理一個$224\times224$大小的圖像。雖然更深的網路層次和復雜的拓撲結構能夠更有效地學習特徵,但是網路規模的增大意味著人工設計網路時需要花費更多時間來反復試驗,即使是專家也需要大量的資源和時間來創建性能良好的模型。

        神經網路架構搜索(NAS)是一種自動化學習網路結構的新方法,用於減少繁重的網路設計成本。目前為止,NAS方法設計的網路在識別任務上的表現已經超過了人工設計的架構。NAS可以視作自動機器學習(AutoML)的子領域,與超參數優化和元學習有明顯的重疊。不同的NAS方法的區別主要在於三個維度:搜索空間、搜索策略和性能評估,我們對此分別進行了調研。

        搜索空間:搜索空間定義了網路的所有可選結構和操作,通常指數級大,甚至無界。在設計搜索空間時結合先驗知識,即參考現有的針對當前任務的先進結構設計知識,能夠有效減小搜索空間並簡化搜索。但這也會引入偏好,從而限制網路學習到超越當前人類知識的結構。

        搜索策略:定義搜索空間後,搜索策略引導尋找高性能的模型架構,其中的難點是保證探索和利用的平衡。一方面,希望快速找到性能良好的架構,另一方面,需要避免過早收斂到次優的架構。

        性能評估:NSA的目的是找到一個在未知數據上具有良好泛化性能的架構,一旦模型生成,就需要對其性能進行評估。直觀的方法是在訓練集上訓練收斂,並在驗證集上得到其性能,但是這種方法會耗費巨大的算力,從而限制了可探索的網路結構。一些先進的方法關注於減小性能評估時的計算代價,但會引入誤差。因此,平衡評價的效率和效果是一個需要研究的問題。

       從計算的角度來看,神經網路代表了一個通過一系列操作將輸入變數 x 轉換為輸出變數 y 的函數。基於計算圖語言,神經網路可以表示為一個有向無環圖(DAG),其中每個節點表示一個張量 z ,通過邊連接其父節點 I(k),每條邊表示從候選操作集O中選擇的一個操作 o 。節點 k 的計算公式為:

        其中候選操作集合$O$主要包括卷積、池化、激活函數、跳躍連接、拼接、加法等基本操作。此外,為了進一步提高模型的性能,一些先進的人工設計模塊也可以作為候選操作,如深度可分離卷積、膨脹卷積、組卷積。基於操作的類型可以選擇不同的超參數,例如輸入節點選取、卷積核數量、尺寸、步長等。不同的搜索空間設計,選擇和組合操作的方法也不同所以參數化的形式也不一樣。一般來說,一個好的搜索空間應該能夠排除人類的偏見,並且足夠靈活,能夠覆蓋更廣泛的模型架構。

        全局搜索空間搜索一個完整的網路結構,具有很高的自由度。最簡單的例子是鏈式搜索空間,見圖1左。固定的數量的節點按順序堆疊,只有前一個節點的輸出提供給後一個節點作為輸入,每個節點代表一個層,並具有指定的操作。右圖引入更復雜的跳躍鏈接和多支路結構,此時當前節點可以結合前面所有節點的輸出作為輸入,使得搜索的自由度顯著增大。許多網路都是多分支網路的特例,比如

1)鏈式網路: ;

2)殘差網路: ;

3)DenseNets:

        雖然整體結構搜索很容易實現,但它也有一些缺點。首先,搜索空間的大小與網路深度是指數級關系,尋找泛化性能好的深度網路計算成本高。此外,生成的架構缺乏可遷移性和靈活性,在小型數據集上生成的模型可能不適合較大的數據集。有研究提出,初始架構的選擇在搜索全局結構時十分重要。在適當的初始條件下,可以獲得與單元搜索空間性能相當的架構,但是初始架構選擇的指導原則仍然不明確。

        基於單元的搜索空間受啟發於人工設計知識,許多有效的網路結構都會重復使用固定結構,例如在RNNs中重復LSTM塊或堆疊殘差模塊。因此可以只搜索這樣的重復單元(cells),整個神經結構的搜索問題被簡化為在單元搜索空間中搜索最優的單元結構,從而極大的減小搜索空間。大多數研究對比了基於全局搜索空間和單元搜索空間的實驗結果,證明在基於單元的搜索空間中可以獲得良好的性能。單元搜索空間的另一個優勢是能方便地在數據集和任務之間進行泛化,因為通過增減卷積核和單元的數量,架構的復雜性幾乎可以任意改變。

        NASNet是最早提出的單元搜索空間之一,也是當前最熱門的選擇,之後的大部分改進只是在此基礎上對操作選擇和單元組合策略進行了少量修改。如圖2所示,它由兩種單元組成,分別為保持輸入特徵維度的標准單元(normal cell),和減小空間維度的簡化單元(rection cell)。每個單元由b個塊組成,每個塊由它的兩個輸入和相應的操作定義。可選的輸入包括前兩個單元的輸出和單元中先前定義的塊的輸出,所以它支持跨單元的跳躍連接。未使用的塊被連接起來並作為單元格的輸出,最終通過預定義好的規則級聯這些單元。

        不同於上面將單元結構按照人工定義的宏結構進行連接,層次結構是將前一步驟生成的單元結構作為下一步單元結構的基本組成部件,通過迭代的思想得到最終的網路結構。Hier提出的層次搜索空間,通過合並低層單元生成高級單元實現單元級別和網路級別的同時優化。此方法具體分為3層。第一層包含一系列的基礎操作;第二層通過有向無環圖連接第一層的基礎操作,構建不同的單元,圖結構用鄰接矩陣編碼;第三層是網路級的編碼,決定如何連接第二層的單元,組合成一個完整的網路。基於單元的搜索空間可以看作是這種層次搜索空間的一個特殊情況。

        強化學習方法(RL)能夠有效建模一個順序決策的過程,其中代理與環境相互作用,代理學會改善其行為從而使目標回報最大化。(圖3)給出了一個基於強化的NAS演算法的概述。代理通常是一個遞歸神經網路(RNN),它在每一步t執行一個動作 來從搜索空間采樣一個新的樣本,同時接收狀態 的觀察值和環境中的獎勵 ,以更新代理的采樣策略。這種方法非常適合於神經結構搜索,代理的行為是生成神經結構,行為空間是搜索空間,環境是指對代理生成的網路進行訓練和評估,獎勵是訓練後的網路結構對未知數據的預測性能,在最後一個行為之後獲得。

4.2進化演算法

        進化演算法(EA)是一種成熟的全局優化方法,具有較高的魯棒性和廣泛的適用性。許多研究使用進化演算法來優化神經網路結構。進化演算法演化了一組模型,即一組網路;在每個世代中,至少從這組模型中選擇一個模型,作為親本在突變後作為生成子代。在對子代進行訓練之後,評估它們的適應度並將它們添加到種群中。

        典型的進化演算法包括選擇、交叉、變異和更新等步驟。選擇時一般使用聯賽選擇演算法對父類進行采樣,其中適應性最好的一個作為親本。Lemonade對適應度使用核密度估計,使網路被選擇的概率與密度成反比。交叉方式因編碼方案的不同而不同。突變針對的是親本的部分操作,例如添加或移除層,改變層的超參數,添加跳躍連接,以及改變訓練超參數。對於產生的後代,大多數方法隨機初始化子網路權重,而Lemonade把父網路學習到的權重通過使用網路態射傳遞給其子網路。Real等人讓後代繼承其父母的所有不受突變影響的參數,雖然這種繼承不是嚴格意義上的功能保留,它可以加速學習。生成新的網路的同時需要從種群中移除一些個體。Real等人從群體中移除最差的個體,AmoebaNet移除最老的個體。也有一些方法定期丟棄所有個體,或者完全不移除個體。EENA通過一個變數調節最壞模型和最老模型的刪除概率。

        基於代理模型的優化方法(SMBO)用一個代理模型來近似目標函數。即不需要訓練采樣到的網路結構,只需要訓練一個代理模型,使用代理模型預測網路的性能。通常在實踐中只需要得到架構的性能排序,而不一定要計算出具體的損失值,因此代理模型只需要預測相對得分並選出有前途的候選架構。然後只對預測性能好的架構進行評估,用它們的驗證精度更新代理模型,這樣只需要完全訓練少量候選架構,大大減少搜索時間。代理模型通常訓練為最小化平方誤差:

        貝葉斯優化(BO)是用於超參數優化的最流行的方法之一。最經典的是基於高斯過程的BO,生成的神經結構的驗證結果可以建模為高斯過程,然而,基於高斯的BO方法在觀察次數上的推理時間尺度是立方的,並且不擅長處理變長神經網路。有些工作使用基於樹或者隨機森林的方法來在非常高維的空間中高效的搜索,並且在很多問題上取得了優異的效果。Negrinho利用其搜索空間的樹形結構,並使用蒙特卡洛樹搜索。雖然沒有完整的比較,但初步的證據表明這些方法可以超越進化演算法。

        上面的搜索策略搜是從一個離散的搜索空間提取神經結構樣本。DARTS提出搜索空間的連續鬆弛,在連續可微的搜索空間上搜索神經架構如圖4所示,並使用如下softmax函數來鬆弛離散空間:

 

鬆弛後,架構搜索的任務轉化為網路架構與神經權值的聯合優化。這兩類參數分別在訓練集和驗證集上交替優化,表示為一個雙層優化問題。

        為了對搜索過程進行引導,必須對產生的神經網路性能進行評估。一種直觀的方法是訓練網路至收斂,然後評估其性能。但是,這種方法需要大量的時間和計算資源。因此提出了幾種加速模型評估的方法。

        為了減少計算負擔,可以用實際性能的低質近似來估測性能。實現方法包括: 縮短訓練時間、選擇數據集的子集、在低解析度的圖像上訓練、每層使用更少的通道數、堆疊更少的單元結構。在低質條件下搜索到的最優網路或單元,構建出最終結構在數據集上重新訓練,得到目標網路。雖然這些低精度的近似能夠減少訓練花費,但性能被低估的同時不可避免地引入了誤差。最近的研究表明,當這種低質評價與完全評價之間的差異較大時,網路性能的相對排名可能變化很大,並強調這種誤差會逐漸增加。

        早停技術最初用於防止過擬合。一些研究通過在訓練初期預測網路性能,在驗證集上預計表現不佳的模型被強制停止訓練,以此來加速模型評估。一種在早期估計網路性能的方法是學習曲線外推法。Domhan 等提出訓練初期對學習曲線進行插值,並終止那些預測性能不好的網路結構的訓練。Swersky等在評估學習曲線的好壞時,把網路架構的超參數作為參考因素。另一種方法根據梯度的局部統計信息實現早期停止,它不再依賴驗證集,允許優化器充分利用所有的訓練數據。

        代理模型可以被訓練用預測網路性能。PNAS提出訓練一個代理網路(LSTM)來預測網路結構的性能,他不考慮學習曲線而是基於結構的特點來預測性能,並在訓練時推斷更大的網路結構。SemiNAS是一種半監督NAS方法,利用大量的未標記架構進一步提高搜索效率。不需要在對模型進行訓練,只使用代理模型來預測模型精度。預測網路性能的主要難點是:為加快搜索過程,需要在對較大的搜索空間進行較少的評估的基礎上進行良好的預測。當優化空間過大且難以量化,且對每個結構的評估成本極高時,基於代理的方法就不適用。

        代理模型還可以用來預測網路權重。超網路(Hypernetworks)是一種神經網路,被訓練來為各種架構生成網路權值。超網路在搜索過程中節省了候選體系結構的訓練時間,因為它們的權值是通過超網路的預測得到的。Zhang等人提出了一種計算圖表示,並使用圖超網路(GHN)比常規超網路(SMASH)更快更准確地預測所有可能架構的權值。

        權重繼承是讓新網路結構繼承之前訓練完成的其他網路結構的權值。其中一種方法是網路態射,一般的網路設計方法是首先設計出一個網路結構,然後訓練它並在驗證集上查看它的性能表現,如果表現較差,則重新設計一個網路。可以很明顯地發現這種設計方法會做很多無用功,因此耗費大量時間。而基於網路態射結構方法能夠在原有的網路結構基礎上做修改,修改後的網路可以重用之前訓練好的權重。其特殊的變換方式能夠保證新的網路結構還原成原網路,因此子網路的表現至少不會差於原網路,並且能在較短的訓練時間內繼續成長為一個更健壯的網路。具體地,網路射態能夠處理任意非線性激活函數,可以添加跳躍連接,並且支持添加層或通道得到更深或更寬的等效模型。經典的網路態射只能使網路變大,這可能導致網路過於復雜,之後提出的近似網路態射通過知識蒸餾允許網路結構減小。進化演算法經常使用基於網路態射的變異,或者直接讓孩子繼承親本的權重,再執行一般變異操作,這樣產生的網路具有一個更好的初始值,而不用重頭開始訓練。

計算機網路最突出的優點是什麼

計算機網路的優點:

1、可靠性

在一個網路系統中,當一台計算機出現故障時,可立即由系統中的另一台計算機來代替其完成所承擔的任務。同樣,當網路的一條鏈路出了故障時可選擇其它的通信鏈路進行連接。

2、高效性

計算機網路系統擺脫了中心計算機控制結構數據傳輸的局限性,並且信息傳遞迅速,系統實時性強。網路系統中各相連的計算機能夠相互傳送數據信息,使相距很遠的用戶之間能夠即時、快速、高效、直接地交換數據。

3、獨立性

網路系統中各相連的計算機是相對獨立的,它們之間的關系是既互相聯系,又相互獨立。

4、擴充性

在計算機網路系統中,人們能夠很方便、靈活地接入新的計算機,從而達到擴充網路系統功能的目的。

5、廉價性

計算機網路使微機用戶也能夠分享到大型機的功能特性,充分體現了網路系統的「群體」優勢,能節省投資和降低成本。

6、分布性

計算機網路能將分布在不同地理位置的計算機進行互連,可將大型、復雜的綜合性問題實行分布式處理。

7、易操作性

對計算機網路用戶而言,掌握網路使用技術比掌握大型機使用技術簡單,實用性也很強。

(4)rnn網路的技術優勢有哪些擴展閱讀:

從邏輯功能上看,計算機網路是以傳輸信息為基礎目的,用通信線路將多個計算機連接起來的計算機系統的集合,一個計算機網路組成包括傳輸介質和通信設備。

從用戶角度看,計算機網路是這樣定義的:存在著一個能為用戶自動管理的網路操作系統。由它調用完成用戶所調用的資源,而整個網路像一個大的計算機系統一樣,對用戶是透明的。

一個比較通用的定義是:利用通信線路將地理上分散的、具有獨立功能的計算機系統和通信設備按不同的形式連接起來,以功能完善的網路軟體及協議實現資源共享和信息傳遞的系統。

從整體上來說計算機網路就是把分布在不同地理區域的計算機與專門的外部設備用通信線路互聯成一個規模大、功能強的系統,從而使眾多的計算機可以方便地互相傳遞信息,共享硬體、軟體、數據信息等資源。簡單來說,計算機網路就是由通信線路互相連接的許多自主工作的計算機構成的集合體。

最簡單的計算機網路就只有兩台計算機和連接它們的一條鏈路,即兩個節點和一條鏈路。

Ⅳ CNN、RNN、DNN的一般解釋

CNN(卷積神經網路)、RNN(循環神經網路)、DNN(深度神經網路)的內部網路結構有什麼區別?

轉自知乎 科言君  的回答

神經網路技術起源於上世紀五、六十年代,當時叫 感知機 (perceptron),擁有輸入層、輸出層和一個隱含層。輸入的特徵向量通過隱含層變換達到輸出層,在輸出層得到分類結果。早期感知機的推動者是Rosenblatt。 (扯一個不相關的:由於計算技術的落後,當時感知器傳輸函數是用線拉動變阻器改變電阻的方法機械實現的,腦補一下科學家們扯著密密麻麻的導線的樣子…)

但是,Rosenblatt的單層感知機有一個嚴重得不能再嚴重的問題,即它對稍復雜一些的函數都無能為力(比如最為典型的「異或」操作)。連異或都不能擬合,你還能指望這貨有什麼實際用途么o(╯□╰)o

隨著數學的發展,這個缺點直到上世紀八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)發明的 多層感知機 (multilayerperceptron)克服。多層感知機,顧名思義,就是有多個隱含層的感知機(廢話……)。好好,我們看一下多層感知機的結構:

圖1 上下層神經元全部相連的神經網路——多層感知機

多層感知機可以擺脫早期離散傳輸函數的束縛,使用sigmoid或tanh等連續函數模擬神經元對激勵的響應,在訓練演算法上則使用Werbos發明的反向傳播BP演算法。對,這貨就是我們現在所說的 神經網路 NN ——神經網路聽起來不知道比感知機高端到哪裡去了!這再次告訴我們起一個好聽的名字對於研(zhuang)究(bi)很重要!

多層感知機解決了之前無法模擬異或邏輯的缺陷,同時更多的層數也讓網路更能夠刻畫現實世界中的復雜情形。相信年輕如Hinton當時一定是春風得意。

多層感知機給我們帶來的啟示是, 神經網路的層數直接決定了它對現實的刻畫能力 ——利用每層更少的神經元擬合更加復雜的函數[1]。

(Bengio如是說:functions that can be compactly

represented by a depth k architecture might require an exponential number of

computational elements to be represented by a depth k − 1 architecture.)

即便大牛們早就預料到神經網路需要變得更深,但是有一個夢魘總是縈繞左右。隨著神經網路層數的加深, 優化函數越來越容易陷入局部最優解 ,並且這個「陷阱」越來越偏離真正的全局最優。利用有限數據訓練的深層網路,性能還不如較淺層網路。同時,另一個不可忽略的問題是隨著網路層數增加, 「梯度消失」現象更加嚴重 。具體來說,我們常常使用sigmoid作為神經元的輸入輸出函數。對於幅度為1的信號,在BP反向傳播梯度時,每傳遞一層,梯度衰減為原來的0.25。層數一多,梯度指數衰減後低層基本上接受不到有效的訓練信號。

2006年,Hinton利用預訓練方法緩解了局部最優解問題,將隱含層推動到了7層[2],神經網路真正意義上有了「深度」,由此揭開了深度學習的熱潮。這里的「深度」並沒有固定的定義——在語音識別中4層網路就能夠被認為是「較深的」,而在圖像識別中20層以上的網路屢見不鮮。為了克服梯度消失,ReLU、maxout等傳輸函數代替了sigmoid,形成了如今DNN的基本形式。單從結構上來說, 全連接的 DNN 和圖 1 的多層感知機是沒有任何區別的 。

值得一提的是,今年出現的高速公路網路(highway network)和深度殘差學習(deep resial learning)進一步避免了梯度消失,網路層數達到了前所未有的一百多層(深度殘差學習:152層)[3,4]!具體結構題主可自行搜索了解。如果你之前在懷疑是不是有很多方法打上了「深度學習」的噱頭,這個結果真是深得讓人心服口服。

圖2 縮減版的深度殘差學習網路,僅有34 層,終極版有152 層,自行感受一下

如圖1所示,我們看到 全連接 DNN 的結構里下層神經元和所有上層神經元都能夠形成連接 ,帶來的潛在問題是 參數數量的膨脹 。假設輸入的是一幅像素為1K*1K的圖像,隱含層有1M個節點,光這一層就有10^12個權重需要訓練,這不僅容易過擬合,而且極容易陷入局部最優。另外,圖像中有固有的局部模式(比如輪廓、邊界,人的眼睛、鼻子、嘴等)可以利用,顯然應該將圖像處理中的概念和神經網路技術相結合。此時我們可以祭出題主所說的卷積神經網路CNN。對於CNN來說,並不是所有上下層神經元都能直接相連,而是 通過「卷積核」作為中介。同一個卷積核在所有圖像內是共享的,圖像通過卷積操作後仍然保留原先的位置關系。 兩層之間的卷積傳輸的示意圖如下:

圖3 卷積神經網路隱含層(摘自Theano 教程)

通過一個例子簡單說明卷積神經網路的結構。假設圖3中m-1=1是輸入層,我們需要識別一幅彩色圖像,這幅圖像具有四個通道ARGB(透明度和紅綠藍,對應了四幅相同大小的圖像),假設卷積核大小為100*100,共使用100個卷積核w1到w100(從直覺來看,每個卷積核應該學習到不同的結構特徵)。用w1在ARGB圖像上進行卷積操作,可以得到隱含層的第一幅圖像;這幅隱含層圖像左上角第一個像素是四幅輸入圖像左上角100*100區域內像素的加權求和,以此類推。同理,算上其他卷積核,隱含層對應100幅「圖像」。每幅圖像對是對原始圖像中不同特徵的響應。按照這樣的結構繼續傳遞下去。CNN中還有max-pooling等操作進一步提高魯棒性。

圖4 一個典型的卷積神經網路結構,注意到最後一層實際上是一個全連接層(摘自Theano 教程)

在這個例子里,我們注意到 輸入層到隱含層的參數瞬間降低到了 100*100*100=10^6 個 !這使得我們能夠用已有的訓練數據得到良好的模型。題主所說的適用於圖像識別,正是由於 CNN 模型限制參數了個數並挖掘了局部結構的這個特點 。順著同樣的思路,利用語音語譜結構中的局部信息,CNN照樣能應用在語音識別中。

全連接的DNN還存在著另一個問題——無法對時間序列上的變化進行建模。然而, 樣本出現的時間順序對於自然語言處理、語音識別、手寫體識別等應用非常重要 。對了適應這種需求,就出現了題主所說的另一種神經網路結構——循環神經網路RNN。

在普通的全連接網路或CNN中,每層神經元的信號只能向上一層傳播,樣本的處理在各個時刻獨立,因此又被成為前向神經網路(Feed-forward Neural Networks)。而在 RNN 中,神經元的輸出可以在下一個時間戳直接作用到自身 ,即第i層神經元在m時刻的輸入,除了(i-1)層神經元在該時刻的輸出外,還包括其自身在(m-1)時刻的輸出!表示成圖就是這樣的:

圖5 RNN 網路結構

我們可以看到在隱含層節點之間增加了互連。為了分析方便,我們常將RNN在時間上進行展開,得到如圖6所示的結構:

圖6 RNN 在時間上進行展開

Cool, ( t+1 )時刻網路的最終結果O(t+1) 是該時刻輸入和所有歷史共同作用的結果 !這就達到了對時間序列建模的目的。

不知題主是否發現,RNN可以看成一個在時間上傳遞的神經網路,它的深度是時間的長度!正如我們上面所說, 「梯度消失」現象又要出現了,只不過這次發生在時間軸上 。對於t時刻來說,它產生的梯度在時間軸上向歷史傳播幾層之後就消失了,根本就無法影響太遙遠的過去。因此,之前說「所有歷史」共同作用只是理想的情況,在實際中,這種影響也就只能維持若干個時間戳。

為了解決時間上的梯度消失,機器學習領域發展出了 長短時記憶單元 LSTM ,通過門的開關實現時間上記憶功能,並防止梯度消失 ,一個LSTM單元長這個樣子:

圖7 LSTM 的模樣

除了題主疑惑的三種網路,和我之前提到的深度殘差學習、LSTM外,深度學習還有許多其他的結構。舉個例子,RNN既然能繼承歷史信息,是不是也能吸收點未來的信息呢?因為在序列信號分析中,如果我能預知未來,對識別一定也是有所幫助的。因此就有了 雙向 RNN 、雙向 LSTM ,同時利用歷史和未來的信息。

圖8 雙向RNN

事實上, 不論是那種網路,他們在實際應用中常常都混合著使用,比如 CNN 和RNN 在上層輸出之前往往會接上全連接層,很難說某個網路到底屬於哪個類別。 不難想像隨著深度學習熱度的延續,更靈活的組合方式、更多的網路結構將被發展出來。盡管看起來千變萬化,但研究者們的出發點肯定都是為了解決特定的問題。題主如果想進行這方面的研究,不妨仔細分析一下這些結構各自的特點以及它們達成目標的手段。入門的話可以參考:

Ng寫的Ufldl: UFLDL教程 - Ufldl

也可以看Theano內自帶的教程,例子非常具體: Deep Learning Tutorials

歡迎大家繼續推薦補充。

當然啦,如果題主只是想湊個熱鬧時髦一把,或者大概了解一下方便以後把妹使,這樣看看也就罷了吧。

參考文獻:

[1]

Bengio Y. Learning Deep

Architectures for AI[J]. Foundations & Trends® in Machine Learning, 2009,

2(1):1-127.

[2]

Hinton G E, Salakhutdinov R R.

Recing the Dimensionality of Data with Neural Networks[J]. Science, 2006,

313(5786):504-507.

[3]

He K, Zhang X, Ren S, Sun J. Deep

Resial Learning for Image Recognition. arXiv:1512.03385, 2015.

[4]

Srivastava R K, Greff K,

Schmidhuber J. Highway networks. arXiv:1505.00387, 2015.

Ⅵ 無線區域網與有線區域網相比,有哪些優點

1、安裝便捷

無線區域網最大的優勢就是免去或減少了網路布線的工作量,一般只要安裝一個或多個接入點AP設備,就可建立覆蓋整個建築或地區的區域網絡。

2、使用靈活

無線區域網建成後,在無線網的信號覆蓋區域內任何一個位置都可以接入網路。

3、經濟節約

由於有線網路缺少靈活性,要求網路規劃者盡可能地考慮未來發展的需要,這就往往導致預設大量利用率較低的信息點。而一旦網路的發展超出了設計規劃,又要花費較多費用進行網路改造,而無線區域網可以避免或減少以上情況的發生。

4、易於擴展

無線區域網有多種配置方式,能夠根據需要靈活選擇。這樣,無線區域網就能勝任從只有幾個用戶的小型區域網到有上千用戶的大型網路,並且能夠提供像「漫遊」等有線網路無法提供的特性。



無線區域網的硬體設備

1、無線網卡

無線網卡的作用和乙太網中的網卡的作用基本相同,它作為無線區域網的介面,能夠實現無線區域網各客戶機間的連接與通信。

2、無線AP

AP是Access Point的簡稱,無線AP就是無線區域網的接入點、無線網關,它的作用類似於有線網路中的集線器。

3、無線天線

無線網路中各網路設備相距較遠時,隨著信號的減弱,傳輸速率會明顯下降以致無法實現無線網路的正常通信,此時就要藉助於無線天線對所接收或發送的信號進行增強。

Ⅶ 5g網路相比前幾代通信技術有什麼優勢呢

5G網路作為第五代移動通信網路,其峰值理論傳輸速度可達每秒數十Gb,這比4G網路的傳輸速度快數百倍,整部超高畫質電影可在1秒之內下載完成。除了高帶寬之外,5G網路相比4G網路還著更低的延遲,5G網路的Ping值可以達到僅有幾毫秒。目前的4G網路網速已經非常快了,那麼5G網路這么快的速率到底有必要嗎?目前來看就算網速再快但電信運營商還是按照流量計費的,很少有人會用移動網路下載電影。
其實5G網路已經超越了手機網路的范疇,5G決不會是像3G過渡到4G那樣給消費者的直觀感覺是網速的提升,5G是革命性的,之所以說是革命性的,是因為5G包含物聯網,人類進入信息社會以來,網際網路帶來的變革成為21世紀世界經濟發展的引擎,而5G物聯網會將網路的應用范圍拓展到前所未有的廣度。5G網路有兩種類型的網,一個是傳統的手機網路,另一個則是為萬物互聯准備的網,也就是物聯網,5G網路所要連接的設備不止是手機了,像自動駕駛汽車、遠程醫療等都會使用5G網路。就拿無人駕駛來說,沒有5G網路那麼無人駕駛永遠不會成熟,高帶寬低延遲的5G網路對於無人駕駛來說至關重要,只有帶寬足夠高才能承載馬路上數以千計的汽車,只有延遲足夠低才能確保出現危險情況時能及時作出反應。無人駕駛要配合物聯網使用,只有每輛車每個人都進入車聯網之中才能保證絕對的安全。現在的無人駕駛還只是處於初級階段,沒有車聯網的無人駕駛不能保證絕對的安全。以目前無人駕駛的水平以及發生事故的概率來看,如果普及無人駕駛技術會使汽車公司倒閉。
除了無人駕駛汽車所使用的5G車聯網之外,還有遠程醫療等也是隨著5G的發展而催生的新產業,得益於5G網路的低延遲,醫生在遠程手術時能夠更加精準的給病人開刀,像人的血管等敏感區域,如果遠程醫療延遲過高很可能導致醫生操刀不準。
除了以上所說的5G實際用處之外,5G其實是提供了一個平台,可能會催生更多新生產業,5G物聯網可能會對社會發展帶來更加強勁的動力,5G是實現萬物互聯的關鍵一環,5G商用會引發社會經濟的深刻變革。

Ⅷ 快速理解RNN(LSTM,GRU)結構原理

RNN主要用來解決序列問題,強調的是先後順序,在NLP中引申出上下文的概念,一個翻譯問題,這個詞的含義可能和前後的單詞形成的這個組合有聯系(Skip-gram),也可能是它之前的所有單詞都有聯系(Attention),並且,藉助RNN的state這樣的記憶單元,使得一個序列位置的輸出在數學上和之前的所有序列的輸入都是有關系的。當然原始的RNN由於梯度的乘性問題,前面的序列的影響近乎為0,這個後面又用LSTM來修正為加性問題。RNN的數學基礎可以認為是馬爾科夫鏈,認為後續的值是有前者和一些參數的概率決定的。

seq2seq模型,另外會有新文章介紹。

普通的RNN在長文本的情況下,會學不到之前的信息,例如:the clouds are in the sky 預測sky是可以預測准確的,但是如果是很長的文本,如:我出生在中國,......,我講的是 中文 這個時候就存在長時依賴問題,LSTM可以通過輸入們,遺忘門,輸出們來解決這個問題。

剛開始接觸LSTM時有點懵,這個結構怎麼這么復雜,但其實先理解LSTM做了什麼來解決長時依賴問題,就很容易 記住這個結構了。
LSTM通過忘記們來決定從上個隱狀態記憶中忘記哪些信息,通過輸入們來決定輸入哪部分信息,通過輸出們來決定輸出哪部分信息,這樣來解決長時依賴問題,下面來介紹下LSTM的具體結構信息。

LSTM相比RNN hidden status還引入了細胞狀態來記錄信息。細胞狀態通過門結構 gate來添加新的記憶和刪除舊的記憶信息

這一步是通過忘記門來忘記部分cell state中的記憶信息

將需添加的新信息加入到經過忘記門後的cell state中,生成新的cell state

GRU的結構如下,主要包含重置門和更新門,把GRU看著LSTM的變體,相當於取消了LSTM中的cell state,只使用了hidden state,並且使用update gate更新門來替換LSTM中的輸入們和遺忘門,取消了LSTM中的輸出門,新增了reset gate重置門。這樣做的好處是在達到LSTM相近的效果下,GRU參數更少,訓練的計算開銷更小,訓練速度更快。

由於GRU參數更少,收斂快,通常在數據集夠大的情況下,選擇LSTM效果應該會更好。
通常情況下LSTM和GRU兩者效果相差不大,GRU訓練更快,所以一般會先選擇使用GRU進行訓練和調參,當無法再繼續優化時可以把GRU替換成LSTM來看看是否有提高。

完全圖解RNN、RNN變體、Seq2Seq、Attention機制
Understanding LSTM Networks
序列預測問題,CNN、RNN各有什麼優勢?

Ⅸ 為什麼說Transformer的注意力機制是相對廉價的注意力機制相對更對於RNN系列及CNN系列演算法有何優勢

QA形式對自然語言處理中注意力機制(Attention)進行總結,並對Transformer進行深入解析。


二、Transformer(Attention Is All You Need)詳解
1、Transformer的整體架構是怎樣的?由哪些部分組成?
2、Transformer Encoder 與 Transformer Decoder 有哪些不同?
3、Encoder-Decoder attention 與self-attention mechanism有哪些不同?
4、multi-head self-attention mechanism具體的計算過程是怎樣的?
5、Transformer在GPT和Bert等詞向量預訓練模型中具體是怎麼應用的?有什麼變化?

一、Attention機制剖析

1、為什麼要引入Attention機制?

根據通用近似定理,前饋網路和循環網路都有很強的能力。但為什麼還要引入注意力機制呢?

閱讀全文

與rnn網路的技術優勢有哪些相關的資料

熱點內容
刪除管家後網路不顯示本地連接 瀏覽:165
蘋果手機網路信號不好啊 瀏覽:475
廣電網路應該選擇哪個路由器 瀏覽:687
針對醫院網路使用的密碼管理器 瀏覽:440
移動網路慢怎麼辦視頻 瀏覽:885
如何登上麥當勞的網路 瀏覽:627
現在哪個網路流量好用 瀏覽:170
理想電視沒有機頂盒如何連接網路 瀏覽:772
轉網電信信號一直2G網路 瀏覽:185
消息提示音設置時說網路不好 瀏覽:251
網路公司一般用什麼鑰匙密碼 瀏覽:152
華為兩個路由器設置為一個網路 瀏覽:151
全屋wifi系統連接網路 瀏覽:410
NTE網路連接 瀏覽:850
計算機網路特點運算速度快 瀏覽:900
國家網路安全戰略發布實施其中五個目標是 瀏覽:774
申請無線網路要多久 瀏覽:787
山東網路公司多少錢 瀏覽:729
移動網路如何加入電信 瀏覽:80
網路歌手哪個平台可以發布 瀏覽:842

友情鏈接