深度神經(jīng)網(wǎng)絡(luò)(DNN)是在輸入層和輸出層之間具有多個(gè)隱藏層的人工神經(jīng)網(wǎng)絡(luò)(ANN)。 類似于淺層神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)可以模擬復(fù)雜的非線性關(guān)系。
神經(jīng)網(wǎng)絡(luò)的主要目的是接收一組輸入,對它們進(jìn)行逐步復(fù)雜的計(jì)算,并給出解決實(shí)際問題的輸出,如分類。 我們限制自己前饋神經(jīng)網(wǎng)絡(luò)。
我們在深度網(wǎng)絡(luò)中有一個(gè)輸入,一個(gè)輸出和一系列連續(xù)的數(shù)據(jù)。
神經(jīng)網(wǎng)絡(luò)被廣泛用于監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)問題。 這些網(wǎng)絡(luò)基于彼此連接的一組層。
在深度學(xué)習(xí)中,大多數(shù)非線性隱藏層的數(shù)量可能很大; 大約1000層。
DL模型產(chǎn)生比正常ML網(wǎng)絡(luò)好得多的結(jié)果。
我們主要使用梯度下降法來優(yōu)化網(wǎng)絡(luò)并最小化損失函數(shù)。
可以使用Imagenet,一個(gè)數(shù)百萬數(shù)字圖像的存儲庫,將數(shù)據(jù)集分類為貓和狗等類別。 除了靜態(tài)圖像和時(shí)間序列和文本分析,DL網(wǎng)絡(luò)越來越多地用于動態(tài)圖像。
訓(xùn)練數(shù)據(jù)集是深度學(xué)習(xí)模型的重要組成部分。 另外,反向傳播是訓(xùn)練DL模型的主要算法。
DL處理訓(xùn)練具有復(fù)雜輸入輸出變換的大型神經(jīng)網(wǎng)絡(luò)。
DL的一個(gè)例子是照片與照片中人物的名字的映射,就像他們在社交網(wǎng)絡(luò)上所做的一樣,用短語描述照片是DL的另一個(gè)最近的應(yīng)用。
神經(jīng)網(wǎng)絡(luò)是具有像x1,x2,x3 …這樣的輸入的函數(shù),它們在兩個(gè)(淺層網(wǎng)絡(luò))或幾個(gè)中間運(yùn)算(也稱為層(深層網(wǎng)絡(luò)))中轉(zhuǎn)換為輸出,如z1,z2,z3等。
權(quán)重和偏差從一層到另一層改變。 ‘w’和’v’是神經(jīng)網(wǎng)絡(luò)層的權(quán)重或突觸。
深度學(xué)習(xí)的最佳用例是監(jiān)督式學(xué)習(xí)問題。這里,我們有大量的數(shù)據(jù)輸入和一組期望的輸出。
這里我們應(yīng)用反向傳播算法來獲得正確的輸出預(yù)測。
深度學(xué)習(xí)的最基本數(shù)據(jù)集是MNIST,一個(gè)手寫數(shù)字?jǐn)?shù)據(jù)集。
我們可以深入訓(xùn)練一個(gè)帶Keras的卷積神經(jīng)網(wǎng)絡(luò)來對來自這個(gè)數(shù)據(jù)集的手寫數(shù)字的圖像進(jìn)行分類。
神經(jīng)網(wǎng)絡(luò)分類器的觸發(fā)或激活產(chǎn)生一個(gè)分?jǐn)?shù)。 例如,為了將患者分類為病態(tài)和健康,我們考慮諸如身高,體重和體溫,血壓等參數(shù)。
高分表示病人生病,低分表示他健康。
輸出層和隱藏層中的每個(gè)節(jié)點(diǎn)都有自己的分類器。 輸入層獲取輸入并將其分?jǐn)?shù)傳遞給下一個(gè)隱藏層以供進(jìn)一步激活,并繼續(xù)輸出直至達(dá)到輸出。
從正向輸入到輸出從左向右的過程稱為向前傳播。
信用分配路徑(CAP)在神經(jīng)網(wǎng)絡(luò)中是從輸入到輸出的一系列變換。 CAP闡述了投入和產(chǎn)出之間可能的因果關(guān)系。
給定前饋神經(jīng)網(wǎng)絡(luò)的CAP深度或者CAP深度是隱藏層的數(shù)量加上包含輸出層的數(shù)量。 對于信號可能多次傳播通過一層的遞歸神經(jīng)網(wǎng)絡(luò),CAP深度可能是無限的。
沒有明確的深度門檻,將淺層學(xué)習(xí)與深度學(xué)習(xí)分開; 但大多數(shù)人都可能會認(rèn)同,對于具有多個(gè)非線性層的深度學(xué)習(xí),CAP必須大于2。
神經(jīng)網(wǎng)絡(luò)中的基本節(jié)點(diǎn)是模仿生物神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元的感知。 然后有多層次的感知或MLP。 每組輸入都被一組權(quán)重和偏差修改; 每條邊都有一個(gè)獨(dú)特的重量,每個(gè)節(jié)點(diǎn)都有獨(dú)特的偏差。
神經(jīng)網(wǎng)絡(luò)的預(yù)測精度取決于其權(quán)重和偏差。
提高神經(jīng)網(wǎng)絡(luò)準(zhǔn)確性的過程稱為訓(xùn)練。 前向支撐網(wǎng)的輸出與已知的正確值進(jìn)行比較。
成本函數(shù)或損失函數(shù)是生成的輸出和實(shí)際輸出之間的差異。
訓(xùn)練的重點(diǎn)是盡可能少地將訓(xùn)練成本在數(shù)百萬個(gè)訓(xùn)練示例中進(jìn)行。為此,網(wǎng)絡(luò)調(diào)整權(quán)重和偏差,直到預(yù)測與正確的輸出相匹配。
一旦訓(xùn)練良好,神經(jīng)網(wǎng)絡(luò)每次都有可能做出準(zhǔn)確的預(yù)測。
當(dāng)模式變得復(fù)雜并且你希望你的計(jì)算機(jī)識別它們時(shí),你必須去尋找神經(jīng)網(wǎng)絡(luò)。在這樣復(fù)雜的模式情況下,神經(jīng)網(wǎng)絡(luò)勝過所有其他競爭算法。
現(xiàn)在有GPU可以比以前更快地訓(xùn)練它們。 深度神經(jīng)網(wǎng)絡(luò)已經(jīng)徹底改變了人工智能領(lǐng)域
事實(shí)證明,計(jì)算機(jī)擅長執(zhí)行重復(fù)性計(jì)算,并遵循詳細(xì)的指令,但對識別復(fù)雜模式并不擅長。
如果存在簡單模式識別的問題,支持向量機(jī)(svm)或邏輯回歸分類器可以很好地完成這項(xiàng)工作,但隨著模式復(fù)雜度的增加,除了深度神經(jīng)網(wǎng)絡(luò)外,沒有其他辦法。
因此,對于像人臉這樣的復(fù)雜模式,淺層神經(jīng)網(wǎng)絡(luò)會失敗,除了用于更深層次的深層神經(jīng)網(wǎng)絡(luò)外別無選擇。深層網(wǎng)絡(luò)能夠通過將復(fù)雜的模式分解為更簡單的模式來完成他們的工作。例如,人臉; 深度網(wǎng)絡(luò)會使用邊緣來檢測嘴唇,鼻子,眼睛,耳朵等部位,然后重新組合成人臉
正確預(yù)測的準(zhǔn)確性已經(jīng)變得非常準(zhǔn)確,最近在谷歌模式識別挑戰(zhàn)賽上,一場深刻的網(wǎng)絡(luò)擊敗了人類。
這種分層感知器網(wǎng)絡(luò)的想法已經(jīng)存在了一段時(shí)間;在這個(gè)領(lǐng)域,深層網(wǎng)絡(luò)模仿人腦。但其中一個(gè)缺點(diǎn)是,他們花費(fèi)很長時(shí)間來訓(xùn)練硬件限制
然而最近的高性能GPU已經(jīng)能夠在一周內(nèi)訓(xùn)練出如此深的網(wǎng)絡(luò); 而快速cpus可能需要數(shù)周或數(shù)月時(shí)間才能完成。
如何選擇深網(wǎng)? 我們必須決定是否構(gòu)建分類器,或者如果試圖找到數(shù)據(jù)中的模式,以及我們是否要使用無監(jiān)督學(xué)習(xí)。 為了從一組未標(biāo)記的數(shù)據(jù)中提取模式,使用受限制的波爾茲曼機(jī)器或自動編碼器。
在選擇深層網(wǎng)絡(luò)時(shí)考慮以下幾點(diǎn) -
一般來說,具有整型線性單位或RELU的深層信念網(wǎng)絡(luò)和多層感知器都是分類的好選擇。
對于時(shí)間序列分析,總是建議使用經(jīng)常性網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)已經(jīng)存在了50多年了, 但直到現(xiàn)在他們已經(jīng)上升到突出位置。 原因是他們很難訓(xùn)練; 當(dāng)我們試圖用一種稱為反向傳播的方法來訓(xùn)練它們時(shí),我們遇到了一個(gè)叫做消失或爆炸漸變的問題。當(dāng)發(fā)生這種情況時(shí),訓(xùn)練需要較長的時(shí)間,而準(zhǔn)確性需要一個(gè)后座。 在訓(xùn)練數(shù)據(jù)集時(shí),我們不斷計(jì)算成本函數(shù),即預(yù)測輸出與一組標(biāo)記訓(xùn)練數(shù)據(jù)的實(shí)際輸出之差。然后通過調(diào)整權(quán)重和偏差值直到最小值 被獲得。 訓(xùn)練過程使用一個(gè)梯度,這是成本將隨著體重或偏差值的變化而變化的速率。
2006年,在解決梯度消失問題方面取得了突破性進(jìn)展。 Geoff Hinton設(shè)計(jì)了一項(xiàng)新的戰(zhàn)略,導(dǎo)致限制玻爾茲曼機(jī)器 - RBM,一種淺層兩層網(wǎng)絡(luò)的發(fā)展。
第一層是可見層,第二層是隱藏層。 可見層中的每個(gè)節(jié)點(diǎn)都連接到隱藏層中的每個(gè)節(jié)點(diǎn)。 網(wǎng)絡(luò)被稱為受限制,因?yàn)橥粚觾?nèi)的任何兩層都不允許共享連接。
自動編碼器是將輸入數(shù)據(jù)編碼為矢量的網(wǎng)絡(luò)。 他們創(chuàng)建隱藏的或壓縮的原始數(shù)據(jù)表示。 矢量在減少維度方面很有用; 矢量將原始數(shù)據(jù)壓縮為更少數(shù)量的基本維度。 自動編碼器與解碼器配對,允許基于其隱藏表示重構(gòu)輸入數(shù)據(jù)。
RBM是雙向翻譯器的數(shù)學(xué)等價(jià)物。正向傳遞需要輸入并將它們轉(zhuǎn)換為編碼輸入的一組數(shù)字。同時(shí)向后傳遞將這組數(shù)字轉(zhuǎn)換為重建的輸入。訓(xùn)練有素的網(wǎng)絡(luò)以高度準(zhǔn)確的方式執(zhí)行反向支撐。
在任何一個(gè)步驟中,權(quán)重和偏差都起著至關(guān)重要的作用;它們幫助RBM解碼輸入之間的相互關(guān)系,并確定哪些輸入對于檢測模式至關(guān)重要。通過前進(jìn)和后退過程,RBM被訓(xùn)練以重新構(gòu)建具有不同權(quán)重和偏差的輸入,直到輸入和結(jié)構(gòu)盡可能接近。 RBM的一個(gè)有趣的方面是數(shù)據(jù)不需要標(biāo)記。這對于像照片,視頻,聲音和傳感器數(shù)據(jù)這樣的真實(shí)世界數(shù)據(jù)集非常重要,所有這些數(shù)據(jù)都傾向于未標(biāo)記。 RBM不是通過人工手動標(biāo)記數(shù)據(jù),而是自動對數(shù)據(jù)進(jìn)行分類;通過適當(dāng)調(diào)整權(quán)重和偏差,RBM能夠提取重要特征并重構(gòu)輸入。 RBM是特征提取器神經(jīng)網(wǎng)絡(luò)的一部分,其被設(shè)計(jì)為識別數(shù)據(jù)中的固有模式。這些也被稱為自動編碼器,因?yàn)樗鼈儽仨毦幋a自己的結(jié)構(gòu)。
深度信念網(wǎng)絡(luò)(DBN)是通過結(jié)合RBM和引入聰明的訓(xùn)練方法形成的。 我們有了一個(gè)新模型,最終解決漸變漸消的問題。 Geoff Hinton發(fā)明了RBM和Deep Belief Nets,作為反向傳播的替代品。
DBN在結(jié)構(gòu)上與MLP(多層感知器)類似,但在訓(xùn)練時(shí)卻非常不同。 正是這種培訓(xùn)使DBNs能夠超越淺層次的對手
DBN可以被視為一疊RBM,其中一個(gè)RBM的隱藏層是其上方的RBM的可見層。 訓(xùn)練第一個(gè)RBM以盡可能準(zhǔn)確地重建其輸入。
第一RBM的隱藏層被視為第二RBM的可見層,并且第二RBM使用來自第一RBM的輸出被訓(xùn)練。 這個(gè)過程是迭代的,直到網(wǎng)絡(luò)中的每個(gè)層都被訓(xùn)練完畢。
在DBN中,每個(gè)RBM都會學(xué)習(xí)整個(gè)輸入。 DBN可以通過連續(xù)微調(diào)整個(gè)輸入來工作,因?yàn)槟P吐馗纳?,就像慢慢聚焦圖像的鏡頭一樣。由于多層感知器MLP優(yōu)于單感知器,因此RBM的堆疊優(yōu)于單RBM。
在這個(gè)階段,成果管理制已經(jīng)檢測到數(shù)據(jù)中的固有模式,但沒有任何名稱或標(biāo)簽。為了完成DBN的訓(xùn)練,我們必須為模式引入標(biāo)簽并通過監(jiān)督式學(xué)習(xí)對網(wǎng)絡(luò)進(jìn)行微調(diào)。
我們需要一個(gè)非常小的標(biāo)記樣本集,以便可以將特征和模式與名稱關(guān)聯(lián)起來。這個(gè)小標(biāo)記的數(shù)據(jù)集用于訓(xùn)練。與原始數(shù)據(jù)集相比,這組標(biāo)記數(shù)據(jù)可能非常小。
權(quán)重和偏差稍微改變,導(dǎo)致網(wǎng)絡(luò)對模式的感知發(fā)生小的變化,并且總精度經(jīng)常略微增加。
與淺網(wǎng)相比,使用GPU提供非常準(zhǔn)確的結(jié)果,也可以在合理的時(shí)間內(nèi)完成培訓(xùn),我們也看到了解決漸變問題的解決方案。
生成對抗網(wǎng)絡(luò)是包含兩個(gè)網(wǎng)絡(luò)的深層神經(jīng)網(wǎng)絡(luò),彼此相對,因此是“對抗”的名稱。
2014年,蒙特利爾大學(xué)的研究人員發(fā)表了一篇論文,介紹了GAN。Facebook的AI專家Yann LeCun在談到GAN時(shí)稱之為“對抗性培訓(xùn)”,這是ML在過去10年中最有趣的想法。
GAN的潛力是巨大的,因?yàn)榫W(wǎng)絡(luò)掃描學(xué)會模仿任何數(shù)據(jù)分布??梢越虒?dǎo)GAN在任何領(lǐng)域創(chuàng)建與我們自己驚人相似的平行世界:圖像,音樂,演講,散文。他們是機(jī)器人藝術(shù)家,他們的輸出效果非常好。
在GAN中,一個(gè)稱為生成器的神經(jīng)網(wǎng)絡(luò)生成新的數(shù)據(jù)實(shí)例,而另一個(gè)神經(jīng)網(wǎng)絡(luò)鑒別器評估它們的真實(shí)性。
假設(shè)我們正在嘗試生成類似MNIST數(shù)據(jù)集中發(fā)現(xiàn)的手寫數(shù)字,該數(shù)據(jù)來自現(xiàn)實(shí)世界。當(dāng)從真實(shí)的MNIST數(shù)據(jù)集中顯示實(shí)例時(shí),鑒別器的工作是將它們識別為真實(shí)的。
現(xiàn)在考慮GAN的以下步驟 -
RNNS是數(shù)據(jù)可以在任何方向流動的神經(jīng)網(wǎng)絡(luò)。 這些網(wǎng)絡(luò)用于語言建?;蜃匀徽Z言處理(NLP)等應(yīng)用程序。
RNN的基本概念是利用順序信息。 在一個(gè)正常的神經(jīng)網(wǎng)絡(luò)中,假定所有的輸入和輸出都是相互獨(dú)立的。 如果我們想要預(yù)測句子中的下一個(gè)單詞,我們必須知道哪些單詞在它之前。
RNN被稱為經(jīng)常性的,因?yàn)樗鼈優(yōu)樾蛄械拿總€(gè)元素重復(fù)相同的任務(wù),其輸出基于先前的計(jì)算。 因此,RNN可以說有一個(gè)“記憶”,可以捕獲以前計(jì)算的信息。 從理論上講,RNN可以以很長的序列使用信息,但實(shí)際上,它們只能回顧幾個(gè)步驟。
長期短期記憶網(wǎng)絡(luò)(LSTM)是最常用的RNN。
與卷積神經(jīng)網(wǎng)絡(luò)一起,RNN被用作模型的一部分來生成未標(biāo)記圖像的描述。 這似乎很有效,這是相當(dāng)驚人的。
如果增加神經(jīng)網(wǎng)絡(luò)中的層數(shù)以使其更深,它會增加網(wǎng)絡(luò)的復(fù)雜性,并允許我們對更復(fù)雜的函數(shù)進(jìn)行建模。但是,權(quán)重和偏差的數(shù)量將呈指數(shù)增長。事實(shí)上,對于正常的神經(jīng)網(wǎng)絡(luò)來說,學(xué)習(xí)這些困難的問題是不可能的。這導(dǎo)致了一個(gè)解決方案,即卷積神經(jīng)網(wǎng)絡(luò)。
CNN廣泛用于計(jì)算機(jī)視覺;已經(jīng)應(yīng)用于自動語音識別的聲學(xué)建模。
卷積神經(jīng)網(wǎng)絡(luò)背后的想法是通過圖像的“移動過濾器”的想法。這個(gè)移動過濾器或卷積適用于節(jié)點(diǎn)的某個(gè)鄰域,例如可能是像素,其中應(yīng)用的過濾器是節(jié)點(diǎn)值的0.5倍 -
著名研究人員Yann LeCun開創(chuàng)了卷積神經(jīng)網(wǎng)絡(luò)。 Facebook作為面部識別軟件使用這些網(wǎng)絡(luò)。 CNN一直是機(jī)器視覺項(xiàng)目的解決方案。卷積網(wǎng)絡(luò)有很多層。在Imagenet挑戰(zhàn)中,2015年,一臺機(jī)器能夠在物體識別方面擊敗人類。
簡而言之,卷積神經(jīng)網(wǎng)絡(luò)(CNN)是多層神經(jīng)網(wǎng)絡(luò)。 圖層有時(shí)可達(dá)17或更多,并假定輸入數(shù)據(jù)為圖像。
CNN大大減少了需要調(diào)整的參數(shù)數(shù)量。 因此,CNN可以有效地處理原始圖像的高維度。