深度神經網路


深度神經網路(DNN)是在輸入層和輸出層之間具有多個隱藏層的人工神經網路(ANN)。 類似於淺層神經網路,神經網路可以模擬複雜的非線性關係。

神經網路的主要目的是接收一組輸入,對它們進行逐步複雜的計算,並給出解決實際問題的輸出,如分類。 我們限制自己前饋神經網路。

我們在深度網路中有一個輸入,一個輸出和一系列連續的資料。

神經網路被廣泛用於監督學習和強化學習問題。 這些網路基於彼此連線的一組層。

在深度學習中,大多數非線性隱藏層的數量可能很大; 大約1000層。

DL模型產生比正常ML網路好得多的結果。

我們主要使用梯度下降法來優化網路並最小化損失函式。

可以使用Imagenet,一個數百萬數位影象的儲存庫,將資料集分類為貓和狗等類別。 除了靜態影象和時間序列和文字分析,DL網路越來越多地用於動態影象。

訓練資料集是深度學習模型的重要組成部分。 另外,反向傳播是訓練DL模型的主要演算法。

DL處理訓練具有複雜輸入輸出變換的大型神經網路。

DL的一個例子是照片與照片中人物的名字的對映,就像他們在社群網路上所做的一樣,用短語描述照片是DL的另一個最近的應用。

神經網路是具有像x1,x2,x3 …這樣的輸入的函式,它們在兩個(淺層網路)或幾個中間運算(也稱為層(深層網路))中轉換為輸出,如z1,z2,z3等。

權重和偏差從一層到另一層改變。 ‘w’和’v’是神經網路層的權重或突觸。

深度學習的最佳用例是監督式學習問題。這裡,我們有大量的資料輸入和一組期望的輸出。

這裡我們應用反向傳播演算法來獲得正確的輸出預測。

深度學習的最基本資料集是MNIST,一個手寫數位資料集。

我們可以深入訓練一個帶Keras的折積神經網路來對來自這個資料集的手寫數位的影象進行分類。

神經網路分類器的觸發或啟用產生一個分數。 例如,為了將患者分類為病態和健康,我們考慮諸如身高,體重和體溫,血壓等引數。

高分表示病人生病,低分表示他健康。

輸出層和隱藏層中的每個節點都有自己的分類器。 輸入層獲取輸入並將其分數傳遞給下一個隱藏層以供進一步啟用,並繼續輸出直至達到輸出。

從正向輸入到輸出從左向右的過程稱為向前傳播。

信用分配路徑(CAP)在神經網路中是從輸入到輸出的一系列變換。 CAP闡述了投入和產出之間可能的因果關係。

給定前饋神經網路的CAP深度或者CAP深度是隱藏層的數量加上包含輸出層的數量。 對於信號可能多次傳播通過一層的遞迴神經網路,CAP深度可能是無限的。

深網和淺網

沒有明確的深度門檻,將淺層學習與深度學習分開; 但大多數人都可能會認同,對於具有多個非線性層的深度學習,CAP必須大於2。

神經網路中的基本節點是模仿生物神經網路中的神經元的感知。 然後有多層次的感知或MLP。 每組輸入都被一組權重和偏差修改; 每條邊都有一個獨特的重量,每個節點都有獨特的偏差。

神經網路的預測精度取決於其權重和偏差。

提高神經網路準確性的過程稱為訓練。 前向支撐網的輸出與已知的正確值進行比較。

成本函式或損失函式是生成的輸出和實際輸出之間的差異。

訓練的重點是盡可能少地將訓練成本在數百萬個訓練範例中進行。為此,網路調整權重和偏差,直到預測與正確的輸出相匹配。

一旦訓練良好,神經網路每次都有可能做出準確的預測。

當模式變得複雜並且你希望你的計算機識別它們時,你必須去尋找神經網路。在這樣複雜的模式情況下,神經網路勝過所有其他競爭演算法。

現在有GPU可以比以前更快地訓練它們。 深度神經網路已經徹底改變了人工智慧領域

事實證明,計算機擅長執行重複性計算,並遵循詳細的指令,但對識別複雜模式並不擅長。

如果存在簡單圖形識別的問題,支援向量機(svm)或邏輯迴歸分類器可以很好地完成這項工作,但隨著模式複雜度的增加,除了深度神經網路外,沒有其他辦法。

因此,對於像人臉這樣的複雜模式,淺層神經網路會失敗,除了用於更深層次的深層神經網路外別無選擇。深層網路能夠通過將複雜的模式分解為更簡單的模式來完成他們的工作。例如,人臉; 深度網路會使用邊緣來檢測嘴唇,鼻子,眼睛,耳朵等部位,然後重新組合成人臉

正確預測的準確性已經變得非常準確,最近在谷歌圖形識別挑戰賽上,一場深刻的網路擊敗了人類。

這種分層感知器網路的想法已經存在了一段時間;在這個領域,深層網路模仿人腦。但其中一個缺點是,他們花費很長時間來訓練硬體限制

然而最近的高效能GPU已經能夠在一週內訓練出如此深的網路; 而快速cpus可能需要數週或數月時間才能完成。

選擇一個深度網路

如何選擇深網? 我們必須決定是否構建分類器,或者如果試圖找到資料中的模式,以及我們是否要使用無監督學習。 為了從一組未標記的資料中提取模式,使用受限制的波爾茲曼機器或自動編碼器。

在選擇深層網路時考慮以下幾點 -

  • 對於文字處理,情感分析,解析和名稱實體識別,我們使用迴圈網路或遞回神經張量網路或RNTN;
  • 對於在字元級別執行的任何語言模型,可使用遞迴網路。
  • 對於影象識別,可使用深層信念網路DBN或折積網路。
  • 對於物體識別,可使用RNTN或折積網路。
  • 對於語音識別,可使用遞迴網路。

一般來說,具有整型線性單位或RELU的深層信念網路和多層感知器都是分類的好選擇。

對於時間序列分析,總是建議使用經常性網路。

神經網路已經存在了50多年了, 但直到現在他們已經上升到突出位置。 原因是他們很難訓練; 當我們試圖用一種稱為反向傳播的方法來訓練它們時,我們遇到了一個叫做消失或爆炸漸變的問題。當發生這種情況時,訓練需要較長的時間,而準確性需要一個後座。 在訓練資料集時,我們不斷計算成本函式,即預測輸出與一組標記訓練資料的實際輸出之差。然後通過調整權重和偏差值直到最小值 被獲得。 訓練過程使用一個梯度,這是成本將隨著體重或偏差值的變化而變化的速率。

受限制的波爾茲曼網路或自動編碼器-RBN

2006年,在解決梯度消失問題方面取得了突破性進展。 Geoff Hinton設計了一項新的戰略,導致限制玻爾茲曼機器 - RBM,一種淺層兩層網路的發展。

第一層是可見層,第二層是隱藏層。 可見層中的每個節點都連線到隱藏層中的每個節點。 網路被稱為受限制,因為同一層內的任何兩層都不允許共用連線。

自動編碼器是將輸入資料編碼為向量的網路。 他們建立隱藏的或壓縮的原始資料表示。 向量在減少維度方面很有用; 向量將原始資料壓縮為更少數量的基本維度。 自動編碼器與解碼器配對,允許基於其隱藏表示重構輸入資料。

RBM是雙向翻譯器的數學等價物。正向傳遞需要輸入並將它們轉換為編碼輸入的一組數位。同時向後傳遞將這組數位轉換為重建的輸入。訓練有素的網路以高度準確的方式執行反向支撐。

在任何一個步驟中,權重和偏差都起著至關重要的作用;它們幫助RBM解碼輸入之間的相互關係,並確定哪些輸入對於檢測模式至關重要。通過前進和後退過程,RBM被訓練以重新構建具有不同權重和偏差的輸入,直到輸入和結構盡可能接近。 RBM的一個有趣的方面是資料不需要標記。這對於像照片,視訊,聲音和感測器資料這樣的真實世界資料集非常重要,所有這些資料都傾向於未標記。 RBM不是通過人工手動標記資料,而是自動對資料進行分類;通過適當調整權重和偏差,RBM能夠提取重要特徵並重構輸入。 RBM是特徵提取器神經網路的一部分,其被設計為識別資料中的固有模式。這些也被稱為自動編碼器,因為它們必須編碼自己的結構。

深信仰網路 - DBNs

深度信念網路(DBN)是通過結合RBM和引入聰明的訓練方法形成的。 我們有了一個新模型,最終解決漸變漸消的問題。 Geoff Hinton發明了RBM和Deep Belief Nets,作為反向傳播的替代品。

DBN在結構上與MLP(多層感知器)類似,但在訓練時卻非常不同。 正是這種培訓使DBNs能夠超越淺層次的對手

DBN可以被視為一疊RBM,其中一個RBM的隱藏層是其上方的RBM的可見層。 訓練第一個RBM以盡可能準確地重建其輸入。

第一RBM的隱藏層被視為第二RBM的可見層,並且第二RBM使用來自第一RBM的輸出被訓練。 這個過程是疊代的,直到網路中的每個層都被訓練完畢。

在DBN中,每個RBM都會學習整個輸入。 DBN可以通過連續微調整個輸入來工作,因為模型慢慢地改善,就像慢慢聚焦影象的鏡頭一樣。由於多層感知器MLP優於單感知器,因此RBM的堆疊優於單RBM。

在這個階段,成果管理制已經檢測到資料中的固有模式,但沒有任何名稱或標籤。為了完成DBN的訓練,我們必須為模式引入標籤並通過監督式學習對網路進行微調。

我們需要一個非常小的標記樣本集,以便可以將特徵和模式與名稱關聯起來。這個小標記的資料集用於訓練。與原始資料集相比,這組標記資料可能非常小。

權重和偏差稍微改變,導致網路對模式的感知發生小的變化,並且總精度經常略微增加。

與淺網相比,使用GPU提供非常準確的結果,也可以在合理的時間內完成培訓,我們也看到了解決漸變問題的解決方案。

生成對抗網路 - GAN

生成對抗網路是包含兩個網路的深層神經網路,彼此相對,因此是「對抗」的名稱。

2014年,蒙特利爾大學的研究人員發表了一篇論文,介紹了GAN。Facebook的AI專家Yann LeCun在談到GAN時稱之為「對抗性培訓」,這是ML在過去10年中最有趣的想法。

GAN的潛力是巨大的,因為網路掃描學會模仿任何資料分布。可以教導GAN在任何領域建立與我們自己驚人相似的平行世界:影象,音樂,演講,散文。他們是機器人藝術家,他們的輸出效果非常好。

在GAN中,一個稱為生成器的神經網路生成新的資料範例,而另一個神經網路鑑別器評估它們的真實性。

假設我們正在嘗試生成類似MNIST資料集中發現的手寫數位,該資料來自現實世界。當從真實的MNIST資料集中顯示範例時,鑑別器的工作是將它們識別為真實的。

現在考慮GAN的以下步驟 -

  • 生成器網路以亂數形式輸入並返回影象。
  • 此生成的影象作為輸入提供給鑑別器網路以及從實際資料集中提取的影象流。
  • 鑑別器接收真實影象和假影象並返回概率,0到1之間的數位,1表示真實性的預測,0表示假的。
  • 所以有一個雙反饋迴圈 -
    • 鑑別器與影象的基本事實處於反饋迴圈中。
    • 發生器與鑑別器處於反饋環路。

遞迴神經網路 - RNN

RNNS是資料可以在任何方向流動的神經網路。 這些網路用於語言建模或自然語言處理(NLP)等應用程式。

RNN的基本概念是利用順序資訊。 在一個正常的神經網路中,假定所有的輸入和輸出都是相互獨立的。 如果我們想要預測句子中的下一個單詞,我們必須知道哪些單詞在它之前。

RNN被稱為經常性的,因為它們為序列的每個元素重複相同的任務,其輸出基於先前的計算。 因此,RNN可以說有一個「記憶」,可以捕獲以前計算的資訊。 從理論上講,RNN可以以很長的序列使用資訊,但實際上,它們只能回顧幾個步驟。

長期短期記憶網路(LSTM)是最常用的RNN。
與折積神經網路一起,RNN被用作模型的一部分來生成未標記影象的描述。 這似乎很有效,這是相當驚人的。

折積深度神經網路 - CNN

如果增加神經網路中的層數以使其更深,它會增加網路的複雜性,並允許我們對更複雜的函式進行建模。但是,權重和偏差的數量將呈指數增長。事實上,對於正常的神經網路來說,學習這些困難的問題是不可能的。這導致了一個解決方案,即折積神經網路。

CNN廣泛用於計算機視覺;已經應用於自動語音識別的聲學建模。

折積神經網路背後的想法是通過影象的「移動過濾器」的想法。這個移動過濾器或折積適用於節點的某個鄰域,例如可能是畫素,其中應用的過濾器是節點值的0.5倍 -

著名研究人員Yann LeCun開創了折積神經網路。 Facebook作為面部識別軟體使用這些網路。 CNN一直是機器視覺專案的解決方案。折積網路有很多層。在Imagenet挑戰中,2015年,一台機器能夠在物體識別方面擊敗人類。

簡而言之,折積神經網路(CNN)是多層神經網路。 圖層有時可達17或更多,並假定輸入資料為影象。

CNN大大減少了需要調整的引數數量。 因此,CNN可以有效地處理原始影象的高維度。