深度學習理論


前段時間,跟部門同事分享了深度學習相關的一些理論基礎,在此記錄一下。僅供后續學習和復習。

目錄

1、背景及現狀

2、Embeding

3、DNN

4、CNN

5、RNN(LSTM)

6、應用(結合自身的應用案例)

(1)情感分析/類目預測(文本分類)

(2)NER/POS TAGGING (標注、命名實體識別)

(3)流量預測

(4)CTR預估

7、總結與挑戰

一、背景與現狀

上圖基本說明深度學習的發展歷史,簡要說明如下:

1、MCP人工神經元模型,但是還是比較簡單的單層感知機的形式,改模型被證明是一種線性模型,只能解決線性問題,就連最簡單的異或都無法正確分類。於是迎來了神經網絡的第一次低谷。
2、到了1986年,由於BP算法的發明,人們提出了多層的神經網絡,當時被證明是可以逼近任何一個連續的函數。(包括非線性問題)。那個時候比較有代表性的是BP神經網絡;然而當時提出的網絡缺乏理論支持,並且又被指出BP反向傳播算法存在梯度消失的情況,又一次讓深度學習陷入谷底。
3、2012年,再一次ImageNet圖像識別比賽中,Hinton團隊采用了CNN構建的AlexNet網絡,直接碾壓第二名,獲得比賽冠軍。當時AlexNet的創新點是:(1)采用ReLU激活函數,能夠解決梯度消失的問題。(2)采用GPU對計算進行加速(3)添加了DropOut層減少過擬合,增強泛化能力。

二、Embeding

(1)Word2Vec

該方法是一個三層的神經網絡,分別利用CBOW(利用上下文預測當前單詞)和Skip-Gram(利用當前單詞預測上下文)兩種方式進行訓練。

CBOW:

Skip-Gram:

 

這里需要注意的是,

  1)三層的神經網絡結構。其中輸出層為了減少算法的復雜度,采用Huffman編碼樹的形式進行編碼輸出。即輸出一顆樹型結構。

  2)訓練過程中,實際是需要兩次遍歷預料,第一次遍歷構建輸出的Huffman樹和字典,第二次遍歷進行訓練。

(2)Paragraph2Vec、Doc2vec

  該方法類似word2vec,只是在訓練的過程中,增加了paragraph vector(段落向量)

(3)Glove

  該方法用的是詞的共現矩陣通過矩陣分解得到全局的信息,並且得到每個詞對應的全局詞向量,

  再根據CBOW的思想(利用上下文預測當前單詞的概率,這里的概率就是共現矩陣中共現概率比值)進行優化全局詞向量,進而得到最優的詞向量。

 

 三、DNN

1、神經網絡的思想源於生物醫學上的感知器,啟用計算機模擬如下:

典型的DNN模型如下所示:

前向輸入后向傳播:

這里主要講解一下訓練過程中是如何訓練的,參數是如何更新迭代的,這里采用一個例子進行說明:

假如有這樣一個網絡:

第一層是輸入,第二層是隱藏層,第三層是輸出層。

(1)前向運算:

  1)第二層輸出,如下所示:

  

  2)第三層輸出:

  

則一般通用公式如下:

  

反向傳播(BP算法):這里需要理解為何需要反向傳播?主要是為了更新網絡參數)

 我們知道前向傳播的算是函數如下:

,進一步展開得到如下:

對損失函數求導可得:

我們假設:,則導數可以變換成如下所示:

我沒來看看對應的

 

則有:,即

得到了梯度之后,我們即可得到每層的權重更新的方法。

四、CNN

  首先來看一下CNN的網絡結構及特性:(1)局部感知,(2)權值共享。從整體上,采用通信里面的知識理解CNN,本質是一個濾波器,只是該濾波器是通過卷積的方式進行濾波。這里需要注意的地方是,卷積層的輸出神經元個數分別維護一個卷積算子的權重。每個輸出的神經元可以理解成就是一個濾波器,多少個神經元就有多少個濾波器。(在分享時,發現很多人這里不是很理解。。。)

例如:

,假設我們的卷積因子是,則有如下所示:

五、RNN(LSTM)

經典RNN結構如下所示:這里由於篇幅的問題,本來是也想說一下它的訓練過程中參數是如何更新的。這里就略過,感興趣的可以留言。主要跟CNN類似,不同的地方是它加上了時間維度。稱之為(BPTT算法)。

 

 重點講一下LSTM,這里主要講解一下我自己對LSTM的理解,如果需要知道其他方面的內容可以網上查閱相關資料,這方面還挺詳細的。這里我也把它相關的結構圖貼上來:

理解經典LSTM網絡結構主要包含三個部門,分別是:遺忘門,輸入門,輸出門

1、遺忘門:指的是上一狀態的記憶,在當前狀態下,有多少信息是可以遺忘的。這里主要是通過一個sigmod函數進行加權得到有多少信息作為當前狀態的記憶保留下來。

2、輸入門:由於上一狀態記憶會有一個遺失過程,當前狀態可以根據當前輸入x和上一狀態記憶決定當前狀態下,有多少信息可以添加到記憶(信息流)中去。這里有一個加法操作和一個sigmod函數決定添加多少信息。信息時通過輸入x和上一狀態記憶通過tan函數得到當前狀態的信息

3、輸出門:根據當前狀態的輸入x和上一狀態記憶,通過sigmod函數決定當前狀態記憶信息多少可以輸出。當前狀態記憶信息是由輸入門添加的信息+上一狀態保留的信息通過tanh函數得到信息

注意:輸入門和輸出門對應的tanh輸入的內容是不一樣的。輸入門對應的輸入時輸入x和上一狀態記憶;輸出門對應的是加法之后的記憶信息。

 六、應用

 1、文本分類

LSTM

2、NER

BI-LSTM+CRF

3、流量預測

LSTM

4、CTR預估

Wide-Deep


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM