深度學習理論

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

目錄網絡

一、背景及現狀ide

二、Embeding函數

三、DNN學習

四、CNN優化

五、RNN(LSTM)編碼

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

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

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

(3)流量預測

(4)CTR預估

七、總結與挑戰

1、背景與現狀

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

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

2、Embeding

(1)Word2Vec

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

CBOW:

Skip-Gram:

 

這裏須要注意的是,

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

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

(2)Paragraph2Vec、Doc2vec

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

(3)Glove

  該方法用的是詞的共現矩陣經過矩陣分解獲得全局的信息,而且獲得每一個詞對應的全局詞向量,

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

 

 3、DNN

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

典型的DNN模型以下所示:

前向輸入後向傳播:

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

假若有這樣一個網絡:

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

(1)前向運算:

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

  

  2)第三層輸出:

  

則通常通用公式以下:

  

反向傳播(BP算法):這裏須要理解爲什麼須要反向傳播?主要是爲了更新網絡參數)

 咱們知道前向傳播的算是函數以下:

,進一步展開獲得以下:

對損失函數求導可得:

咱們假設:,則導數能夠變換成以下所示:

我沒來看看對應的

 

則有:,即

獲得了梯度以後,咱們便可獲得每層的權重更新的方法。

4、CNN

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

例如:

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

5、RNN(LSTM)

經典RNN結構以下所示:這裏因爲篇幅的問題,原本是也想說一下它的訓練過程當中參數是如何更新的。這裏就略過,感興趣的能夠留言。主要跟CNN相似,不一樣的地方是它加上了時間維度。稱之爲(BPTT算法)。

 

 重點講一下LSTM,這裏主要講解一下我本身對LSTM的理解,若是須要知道其餘方面的內容能夠網上查閱相關資料,這方面還挺詳細的。這裏我也把它相關的結構圖貼上來:

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

一、遺忘門:指的是上一狀態的記憶,在當前狀態下,有多少信息是能夠遺忘的。這裏主要是經過一個sigmod函數進行加權獲得有多少信息做爲當前狀態的記憶保留下來。

二、輸入門:因爲上一狀態記憶會有一個遺失過程,當前狀態能夠根據當前輸入x和上一狀態記憶決定當前狀態下,有多少信息能夠添加到記憶(信息流)中去。這裏有一個加法操做和一個sigmod函數決定添加多少信息。信息時經過輸入x和上一狀態記憶經過tan函數獲得當前狀態的信息

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

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

 6、應用

 一、文本分類

LSTM

二、NER

BI-LSTM+CRF

三、流量預測

LSTM

四、CTR預估

Wide-Deep

相關文章
相關標籤/搜索