自然語言處理8 神經網路基礎

2021-09-19 10:02:32 字數 1964 閱讀 6868

2. 感知機的簡單實現

3. 深度學習中的正則化

4. 深度模型中的優化

參考這次任務內容較多

神經網路學習模型是由各神經元模型組成的並行互連的機器學習模型,發展到今天,神經網路模型已經有多種繁雜的變種,下面先介紹最常用的也是基礎的前饋神經網路。

輸入層(input layer),眾多神經元(neuron)接受大量非線形輸入訊息。輸入的訊息稱為輸入向量。

輸出層(output layer),訊息在神經元鏈結中傳輸、分析、權衡,形成輸出結果。輸出的訊息稱為輸出向量。

隱藏層(hidden layer),簡稱「隱層」,是輸入層和輸出層之間眾多神經元和鏈結組成的各個層面。隱層可以有一層或多層。隱層的節點(神經元)數目不定,但數目越多神經網路的非線性越顯著,從而神經網路的強健性(robustness)(控制系統在一定結構、大小等的引數攝動下,維持某些效能的特性)更顯著。

網路層數:通常網路層數指的是除去輸入層外的網路層數,即隱藏層與輸出層的層數之和。

如果沒有啟用函式,每一層節點的輸入都是上層輸出的線性函式,無論神經網路有多少層,輸出都只是輸入的簡單的線性組合,與沒有隱藏層效果相當,也就是最原始的感知機(perceptron)。所以,引入非線性函式作為啟用函式,這樣深層神經網路表達能力就更加強大。

目前,常用的啟用函式有sigmoid函式,tanh函式,relu函式及relu的一些改進函式。

是使用範圍最廣的一類啟用函式,具有指數函式形狀,在物理上最接近神經元。它的輸出範圍在(0,1)之間,可以被表示成概率,或者用於資料的歸一化。

缺陷

軟飽和性——導數 f』(x)=f(x)(1-f(x)),當x趨於無窮時,f(x)的兩側導數逐漸趨於0。

在後向傳遞時,sigmoid向下傳遞的梯度包含了乙個f』(x)因子,因此,一旦落入飽和區f』(x)就變得接近於0,導致了向後傳遞的梯度也非常小。此時,網路引數很難得到有效訓練,這種現象被稱為梯度消失。一般在5層以內就會產生梯度消失的現象。

sigmoid函式的輸出均大於0,這就使得輸出不是0均值,這稱為偏置現象。這將會導致後一層的神經元將得到上一層輸出的非0均值的訊號作為輸入。

tanh函式與sigmoid函式相比,輸出均值為0,這就使得其收斂速度要比sigmoid快,從而可以減少迭代次數。

缺點

同樣具有軟飽和性,會造成梯度消失。

針對sigmoid和tanh的飽和性,產生了relu函式。

relu全稱為rectified linear units,可以翻譯成線性整流單元或者修正線性單元。 它在x>0時不存在飽和問題,從而使保持梯度不衰減,從而解決了梯度消失問題。這讓我們能夠直接以監督的方式訓練深度神經網路,而無需依賴無監督的逐層預訓練。然而,隨著訓練的推進,部分輸入會落入硬飽和區,導致對應權重無法更新,這種現象稱為「神經元死亡」 與sigmoid類似,relu的輸出均值也大於0,所以偏移現象和神經元死亡共同影響網路的收斂性。

正則化是選擇模型的一種方法,具體來說,選擇經驗風險與模型複雜度同時較小的模型(防止過擬合),這樣可以較少泛化誤差而不是訓練誤差。

常用正則化方法

引數初始化策略;自適應學習率演算法(梯度下降、adagrad、rmsprop、adam;優化演算法的選擇);batch norm層(提出背景、解決什麼問題、層在訓練和測試階段的計算公式);layer norm層。

概念有點多,看不過來了,後續慢慢補齊吧。感覺後邊可以拆分成幾篇分開仔細學習一下了,有些概念之前就比較模糊,現在都忘得差不多了,還是抽時間要多複習啊。

迴圈神經網路RNN在自然語言處理領域的應用

之前看的 都是基於cnn在nlp上的應用,但其實深度學習與nlp結合的領域中應用最廣的應該是rnn,因為文字可以直觀地被表示為輸入序列,方便的被rnn處理,捕獲其long term依賴等資訊,而且實際應用中也取得了很好的效果。之前雖然主要研究cnn,但同時也看了很多關於rnn lstm gru等模型...

深度學習與自然語言處理 01 迴圈神經網路RNN

深度學習,準確的說是神經網路,實際上源於上世紀六十年代的感知機技術,當時由於技術不成熟和算力不發達,並沒有在當時就取得特別好的成果。這門技術爆發是在計算機圖形學 cv 領域,大家驚奇地發現雖然深度學習可解釋性很差,但它作為一種仿照人類大腦的模型,在影象分類 目標檢測等領域還真就碾壓了傳統方法,甚至取...

自然語言處理 建立乙個雙向迴圈神經網路

我們閱讀句子的方向是單向的,但當接收到新資訊時,大腦能夠迅速回到文字前面的內容。人類可以處理那些沒有按照最佳順序呈現的資訊。如果我們能允許模型在輸入之間來回切換,那就太好了。這就是雙向迴圈神經網路的用武之地。基本思想 將兩個 rnn 併排在一起,將輸入像普通單向 rnn 的輸入一樣傳遞到其中乙個 r...