閱讀710 返回首頁    go 阿裏雲 go 技術社區[雲棲]


簡單入門——深度學習筆記(Part II)

首發地址:https://yq.aliyun.com/articles/72036


更多深度文章,請關注:https://yq.aliyun.com/cloud

作者介紹:Deepak Shah

Deepak Shah畢業於德克薩斯奧斯汀分校,徒步旅行愛好者,目前是深度學習\數據科學實習生,研究領域專注於深度學習、編程、金融等方麵。

https://www.deepakvshah.com/

Medium論壇:https://medium.com/@dvshah13

Github論壇:https://github.com/Dvshah13

 筆記分為兩個部分,本文是筆記Part II,關於深度學習筆記PartI可以看這篇博客

受限玻爾茲曼機(RBM)

RBM是一種可以通過重建輸入在數據中自動查找模式的方法,包含兩層網絡,第一層為可見層,第二層為隱藏層。可見層中的每個節點連接到隱藏層中的節點,由於同一層中沒有兩個節點共享連接,所以其是受限的

前向過程中,RBM接受輸入並將它們轉換成對輸入進行編碼的一組數字。在反向過程中,將這組數字轉換形成重構的輸入。

在這兩個步驟中,權重和偏置具有非常重要的作用,其允許RBM解譯輸入特征之間的相互關係,並且確定哪些輸入特征是最重要的。

訓練過程反複重複以下三個步驟。

步驟1:在前向傳遞,每個輸入與單獨的權重和偏置組合,結果被傳遞到隱藏層。

步驟2:在反向過程中,每個激活與單獨的權重和偏置組合,結果被傳遞到可見層以用於重建。

步驟3:在可見層,使用KL發散重建與原始輸入進行比較以判斷結果的質量

使用不同的權重和偏置重複步驟1-3,直到重建輸入盡可能接近。

注意到,RBM實際上通過調整權重和偏置決定了哪些輸入特性是重要的,以及如何將它們組合形成模式。

那麼RBM如何能夠提取特征?這與深層信念網絡有關。

信念網絡(DBN

深層信念網絡(DBN)在網絡結構方麵,可以被看作是RBM的堆疊,其中一個RBM的隱藏層是其上一層的可見層。

DBN訓練過程:第一RBM被訓練以盡可能準確地重建其輸入,其隱藏層被視為第二RBM的可見層,並且使用來自第一RBM的輸出來訓練第二RBM。重複該過程,直到網絡中的每一層都被訓練。DBN表現好的原因是因為一堆RBM優於單個RBM單元。就像多層感知器能夠勝過單個感知器。

為了完成訓練,模式引入標簽,並通過監督學習來微調網絡。權重和偏置稍微改變,導致網絡對圖案感知的微小變化,同時總精度通常會小幅增加。

卷積神經網絡(CNN)

近年來主導機器視覺空間,影響深遠深度學習AI中最熱門的話題之一卷積網絡一直是機器視覺項目的解決方案。

CNN結構:

第一個組成部分是卷積層。網絡使用卷積的技術操作來搜索特定模式。可以把它看作是通過圖像過濾特定模式的過程。該層的權重和偏置影響操作執行的過程。調整權重和偏置會影響過濾過程的有效性。CNN具有權值共享的特性,這意味著過濾器上任何給定的神經元連接到相同數量的輸入神經元,並且具有相同的權重和偏置

接下來的兩層是整流線性單元(RELU)和池化有助於卷積層發現的簡單模式的建立。卷積層中的每個節點都連接到一個激活節點,使用的激活函數稱為整流線性單元(RELU)。CNN使用反向訓練,所以梯度消散仍然是一個問題。由於RELU能使得梯度在每一層處或多或少保持恒定,所以允許網絡被適當地訓練。池化層用於維數降低。通過引入池化層,確保網絡僅關注卷積和RELU發現的最相關的模式。

這三個層組合在一起可以發現複雜的模式,但網絡不能理解這些模式是什麼。因此,網絡末端全連接層,以便使網絡具有分類數據樣本的能力。

綜上所述,典型的深CNN具有三層:卷積層,RELU層和池化,這些層之後連接幾個全連接層以支持分類。

由於CNN是深層網絡,訓練複雜度高,可能需要使用具有GPU的服務器進行訓練;另外是受監督的學習方法限製,需要大量的用於訓練的標記數據,這在現實應用中也是有挑戰性的。

循環神經網絡(RNN)

如果數據中的模式隨時間變化,最好使用循環神經網絡。RNN結構簡單,內置反饋回路允許它作為一個預測引擎,其應用非常廣泛,從語音識別到無人駕駛汽車。

在前饋神經網絡中,信號僅一個方向上從輸入到輸出信號,傳遞一個層;而在循環神經網絡中,層的輸出添加到下一個入並且反饋回同一層,該層通常是整個網絡中的唯一層。

與前饋網不同,循環網可以接收一係列值作為輸入,並且還可以產生一係列值作為輸出。操作序列的能力使RNN具有廣泛的應用。當輸入是單並且輸出是序列時,潛在的應用是圖像字幕具有單個輸出的輸入序列可以用於文檔分類當輸入和輸出都是序列時,可以用來逐幀分類視頻如果引入時間延遲,則可以統計地預測需求和供應鏈方案

可以將RNN堆疊在彼此之上,形成一個更複雜的輸出網絡,然而RNN是極難訓練的網絡。由於RNN使用反向傳播,也會遇到梯度消失的問題。不幸的是,對於RNN而言,梯度消失指數惡化。其原因是每個時間步長等同於前饋網絡中的整個層。有幾種方法來解決問題。目前最流行的是門控循環單位(GRU)和長期短期記憶(LSTM);另外還有梯度剪裁和陡峭門以及其它更好的優化方法

自動編碼器AE

當嚐試找出數據集的基礎結構時,自動編碼器非常有用自動編碼器采用一組通常未標記的輸入,並且在對其進行編碼後,嚐試盡可能精確地重建它們。因此,網絡必須確定哪些數據特征是最重要的。

自動編碼器通常包括輸入層,輸出層和隱藏層。在前向傳遞方麵,有兩個步驟:編碼和解碼。用於編碼隱藏層中的特征的相同權重會被用於重建輸出層中的圖像。訓練使用損失度量網絡嚐試重建輸入時丟失的信息量。

並不是所有的自動編碼器都是淺層的,其變體深度自動編碼器在維數降低方麵表現更好,它們的前身是主成分分析(PCA)。

遞歸神經張量網絡(RNTN)

在嚐試發現一組數據的分層結構時RNTN表現更好。

RNTN有三個基本組件。分別為父組)、子組(葉)以及根與葉之間的連接。每個組是神經元的集合,其中神經元的數量取決於輸入數據的複雜性。根連接到所有葉組,但是每個葉之間彼此不連接。從技術上講,這三個組件形成一個二叉樹。葉組接收輸入,根組使用分類器來給出類別和分數。

RNTN結構看起來很簡單,但其複雜性來自數據在整個網絡中移動的方式。這是由於其過程是遞歸的。

遞歸示例:輸入一個句子“The car is fast ”,在第一步,將前兩個詞分別輸入葉組1和2。葉組實際上不接收字,而是字的向量(有序數字集)表示。當兩個向量中的數字與詞匯中的其他單詞相比較時,兩個單詞之間的相似性編碼實現特別好的結果。兩個向量(由The和Car表示)通過網絡移動到根,得到兩個值和得分。得分代表當前語法分析的質量,類代表當前語法分析中結構的編碼。網絡開始遞歸在下一步,第一葉組現在接收當前解析,第二葉接收句子中的下一個字。之後根組將輸出三個字長的解析分數(“The,Car,Is)。重複該過程,直到所有輸入全部解析完畢,並且網絡具有包每個單詞的解析樹。這是RNTN的簡化示例並說明了主要思想但是在實際應用中,通常對抗更複雜的遞歸過程。而不是使用句子中的下一個詞用於第二葉組,RNTN將嚐試所有下一個詞,並且最終嚐試表示整個子解析的向量。

一旦網絡具有最終結構,它通過解析樹回溯以便找出句子的每個部分的正確語法標簽。RNTN通過將預測的句子結構與從一組標記的訓練數據獲得的正確句子結構進行比較來用反向傳播訓練。一旦訓練完畢,網絡將給與更多類似於其在訓練中所解析的樹的結構分數。

在自然語言處理中RNTN用於語法解析和情感分析用於在含有不同分量的場景解析圖像。

本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。

文章原標題《Deep Learning Notes Part II》,作者:Deepak Shah,譯者:海棠

文章為簡譯,更為詳細的內容,請查看原文

最後更新:2017-07-12 22:10:23

  上一篇:go  三伏天——探秘阿裏雲千島湖數據中心
  下一篇:go  簡單入門——深度學習筆記(Part I)