成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談CNN和RNN

原創(chuàng)
人工智能 深度學(xué)習(xí)
在上一篇文稿中主要對深度學(xué)習(xí)的基礎(chǔ)做了一個闡述,對于其中的神經(jīng)網(wǎng)絡(luò)和BP算法進(jìn)行額外的延伸與拓展。但作為日前最為火熱的人工智能技術(shù),掌握這些內(nèi)容遠(yuǎn)遠(yuǎn)還不夠。

[[338562]]

【51CTO.com原創(chuàng)稿件】

1 導(dǎo)讀

上一篇文稿中主要對深度學(xué)習(xí)的基礎(chǔ)做了一個闡述,對于其中的神經(jīng)網(wǎng)絡(luò)和BP算法進(jìn)行額外的延伸與拓展。但作為日前最為火熱的人工智能技術(shù),掌握這些內(nèi)容遠(yuǎn)遠(yuǎn)還不夠。因?yàn)樯疃葘W(xué)習(xí)面臨的實(shí)際問題往往不是線性可分的問題,有時甚至超出了分類的問題,這就必須對深度學(xué)習(xí)模型加以改進(jìn),對其中的訓(xùn)練模型網(wǎng)絡(luò)進(jìn)行優(yōu)化,從而使得用來預(yù)測結(jié)果數(shù)據(jù)的網(wǎng)絡(luò)更加豐富化、智能化。做到實(shí)際上的智能,就是訓(xùn)練模型真正的能通過輸入的數(shù)據(jù)來預(yù)測結(jié)果并且每預(yù)測一次都可以對自身網(wǎng)絡(luò)模型進(jìn)行加強(qiáng)和優(yōu)化,也就好比一個“不斷學(xué)習(xí)進(jìn)步的人”一樣。隨著時間和訓(xùn)練次數(shù)的推進(jìn),訓(xùn)練的模型自身能力會越來越強(qiáng)。這樣的網(wǎng)絡(luò)模型才是我們真正需要的。當(dāng)然要達(dá)到這一步光是靠之前的線性網(wǎng)絡(luò)模型和淺層、深層神經(jīng)網(wǎng)絡(luò)遠(yuǎn)遠(yuǎn)不夠。所以,在一篇文稿中,將對對神經(jīng)網(wǎng)絡(luò)進(jìn)行延伸補(bǔ)充,是對神經(jīng)網(wǎng)絡(luò)模型的一次優(yōu)化,讓能運(yùn)用的實(shí)際場景更為廣泛和豐富。

2 卷積神經(jīng)網(wǎng)絡(luò)(CNN)

2.1 卷積神經(jīng)網(wǎng)絡(luò)VS傳統(tǒng)神經(jīng)網(wǎng)絡(luò)

CNN稱為卷積神經(jīng)網(wǎng)絡(luò),那么卷積神經(jīng)與之前的神經(jīng)網(wǎng)絡(luò)有什么區(qū)別呢?卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)可以有效地減少了傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)對輸入數(shù)據(jù)所進(jìn)行的預(yù)處理環(huán)節(jié),降低了過程的復(fù)雜性。但是這種方式會導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)的整體復(fù)雜性增加,因?yàn)樗峭ㄟ^輸入層或者隱層進(jìn)行傅里葉卷積操作來進(jìn)行輸出,增加網(wǎng)絡(luò)卷積層。這樣就會使得網(wǎng)絡(luò)更加難以優(yōu)化,很容易產(chǎn)生過擬合現(xiàn)象。所以這種神經(jīng)網(wǎng)絡(luò)主要應(yīng)用在圖像分類和物品識別等場景比較多,因?yàn)閷τ趫D像進(jìn)行預(yù)處理比較復(fù)雜,卷積神經(jīng)網(wǎng)絡(luò)雖然網(wǎng)絡(luò)復(fù)雜,但是減少了對圖像預(yù)處理環(huán)節(jié),直接把輸入的圖像作為輸入數(shù)據(jù)即可,并且通過卷積神經(jīng)網(wǎng)絡(luò)的非線性可以得出目標(biāo)函數(shù)的近似結(jié)構(gòu),從而得到更好的特征表達(dá)。

2.2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)層次

卷積神經(jīng)網(wǎng)絡(luò)主要分?jǐn)?shù)據(jù)輸入層(Input Layer)、卷積計(jì)算層(CONV Layer)、ReLU激勵層(ReLU Layer)、池化層(Pooling Layer)、全連接層(FC Layer)五個層次,這五個層次都是依次相連,每一層都接受上一層的輸出特征數(shù)據(jù)來提供給下一層。其中數(shù)據(jù)輸入層是對輸入數(shù)據(jù)的特征進(jìn)行提取;卷積計(jì)算層是對這些特征進(jìn)行卷積映射;激勵層是利用非線性激勵函數(shù)對神經(jīng)元進(jìn)行激勵達(dá)到條件將特征信息傳遞到下一個神經(jīng)元;池化層則是用來壓縮數(shù)據(jù)和參數(shù)的量,從而減小過擬合情況;全連接層就是連接所有輸出層的特征信息,并對這些信息進(jìn)行匯總整理完成輸出。下面分別闡述下這幾個層次的具體內(nèi)容。

2.3 輸入層(Input Layer)

2.3.1 預(yù)處理原因

和神經(jīng)網(wǎng)絡(luò)/機(jī)器學(xué)習(xí)一樣,都需要對輸入的數(shù)據(jù)進(jìn)行預(yù)處理操作,進(jìn)行預(yù)處理的主要原因在于:

1.輸入的數(shù)據(jù)單位可能不一樣,因此可能會導(dǎo)致神經(jīng)網(wǎng)絡(luò)的收斂速度較慢,從而致使訓(xùn)練時間過長;

2.數(shù)據(jù)范圍太大的輸入在模式分類中的作用會導(dǎo)致偏大,而數(shù)據(jù)范圍較小的作用也就有可能偏小;

3.由于神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)是有值域限制的,因此需要將網(wǎng)絡(luò)訓(xùn)練的目標(biāo)數(shù)據(jù)映射到激活函數(shù)的值域;

4.Sigmod激活函數(shù)(0,1)區(qū)間以外區(qū)域很平緩,從而導(dǎo)致區(qū)分度太小,影響最終的輸出效果。

2.3.2預(yù)處理方式

輸入層對數(shù)據(jù)進(jìn)行預(yù)處理主要有3種方式,這3中數(shù)據(jù)預(yù)處理方式各有不同,分別是:

1.去均值:就是將輸入數(shù)據(jù)的各個維度中心化到0;

2.歸一化:將輸入的數(shù)據(jù)的各個維度的幅度歸一化到同一范圍,具體操作在之前的推薦系統(tǒng)文稿里有介紹。

3.PCA/白化:也就是用PCA降維或者是白化,也就是將數(shù)據(jù)的每個特征軸上的幅度歸一化,也是平時用的最多的數(shù)據(jù)預(yù)處理方法。

2.3.3 預(yù)處理效果

三種預(yù)處理方法的效果圖如下所示:

例如,利用白化進(jìn)行預(yù)處理后就會使得輸入的數(shù)據(jù)或者特征之間相關(guān)性較低,并且使得所有特征具有相同的方差。

2.4 卷積層(CONV Layer)

2.4.1 卷積神經(jīng)網(wǎng)絡(luò)

在將卷積層之前,首先大致了解下卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)是保存了層級的網(wǎng)絡(luò)結(jié)構(gòu),以至于使得不同的層次有不同的形式或者運(yùn)算與功能。而卷積神經(jīng)網(wǎng)絡(luò)是主要適用于圖片信息處理的場景,而卷積層就是識別圖像中一個最為關(guān)鍵的步驟或者層級。類似人的大腦在識別圖片的過程中,不同的腦皮質(zhì)層會處理來自不同方面的數(shù)據(jù),例如顏色、形狀等,然后通過不同皮質(zhì)層的處理結(jié)果進(jìn)行合并并且映射操作,從而得出最終的結(jié)果。也就是說第一部分實(shí)質(zhì)上是一個局部的觀察結(jié)果,第二部分是一個整體的結(jié)果合并。因此卷積神經(jīng)網(wǎng)絡(luò)就是基于人的大腦識別圖片的過程,每個神經(jīng)元就沒有必要對全局的圖像進(jìn)行感知,只需要對局部的圖像進(jìn)行感知即可,最后在更高層次對局部的信息進(jìn)行綜合操作得出全局的信息。

2.4.2 卷積層參數(shù)

卷積層也叫卷積計(jì)算層,類比人腦識別圖像過程,它主要有以下幾個概念:

1局部關(guān)聯(lián):每個神經(jīng)元看作是一個filter,進(jìn)行,作用就是對局部數(shù)據(jù)進(jìn)行識別;

2.窗口(receptive field)滑動,也就是將filter對局部數(shù)據(jù)進(jìn)行計(jì)算,滑動預(yù)先會設(shè)定步長,移動位置來得到下一個窗口;

3.對于窗口中滑動過程中,有深度(depth)、步長(stride)、填充值(zero-padding)這幾個重要參數(shù),深度即轉(zhuǎn)換的次數(shù)(結(jié)果產(chǎn)生的depth);步長就是設(shè)定每一步移動多少;填充值就是在矩陣周邊添加一些擴(kuò)充值(目的就是解決圖片輸入不規(guī)整)

計(jì)算模型如下圖所示:

2.4.3 卷積計(jì)算

卷積計(jì)算過程中有一個重要機(jī)制就是參數(shù)共享機(jī)制,假設(shè)每個神經(jīng)元連接數(shù)據(jù)窗的權(quán)重是固定的,也就是固定每個神經(jīng)元的連接權(quán)重,因此就可以將神經(jīng)元看成一個模塊;也就是每個神經(jīng)元只關(guān)注一個特性,從而使得需要計(jì)算的權(quán)重個數(shù)會大大的減少。而卷積計(jì)算就是將一組固定的權(quán)重和不同窗口內(nèi)數(shù)據(jù)做內(nèi)積,就叫卷積。

2.5 激勵層(ReLU Layer)

2.5.1 非線性激勵函數(shù)

激勵層,顧名思義就是加一個激勵函數(shù)對其神經(jīng)元進(jìn)行刺激或者激勵,也就是使用映射函數(shù)來完成非線性的映射。在卷積神經(jīng)網(wǎng)絡(luò)中,激勵函數(shù)是非線性的。激勵層是接在卷積層后面的一層網(wǎng)絡(luò),負(fù)責(zé)將卷積層的輸出結(jié)果做一次非線性的映射,即激勵。在卷積神經(jīng)網(wǎng)絡(luò)中,經(jīng)常用到的非線性映射函數(shù)有S函數(shù)(Sigmoid)、雙曲正切函數(shù)(Tanh)、ReLU、Leaky ReLu、ELU和Maxout等。如下就是某些激勵函數(shù)的函數(shù)圖像:

 

2.5.2 激勵層選取

由于非線性激勵函數(shù)較多,但是各有不同,因此在選擇激勵層的非線性激勵函數(shù)時,有不同的采取建議:

1.卷積神經(jīng)網(wǎng)絡(luò)(CNN)首先盡量不要使用S函數(shù)(sigmoid),如果要使用,建議只在全連接層使用;

2.優(yōu)先建議使用RELU,因?yàn)镽ELU函數(shù)的迭代速度快,但是有可能會導(dǎo)致效果不佳;

3.如果在選取RELU激勵函數(shù)后,達(dá)不到想要的效果(激勵函數(shù)失效)的情況下,則考慮使用Leaky ReLu或者M(jìn)axout;

4.雙曲正切函數(shù)(tanh)在某些情況下會有比較好的效果,但是能應(yīng)用的場景比較少。

因此總結(jié)起來就是:雙曲正切函數(shù)和S函數(shù)用于全連接層,ReLu用于卷積計(jì)算層,普遍使用ELU,而Maxout是使用最大值來設(shè)置值。

2.6 池化層(Pooling Layer)

池化層存在于連續(xù)的卷積層中間,它的主要功能就是通過逐步減小表征的空間尺寸從而減小參數(shù)量和網(wǎng)絡(luò)中的計(jì)算復(fù)雜度;并且池化層都是在每一個特征圖上獨(dú)立進(jìn)行操作。所以使用池化層有一個明顯的優(yōu)勢就是可以壓縮數(shù)據(jù)和參數(shù)的量,來解決過擬合問題。

在池化層中,一般采用兩種策略去進(jìn)行壓縮來減少特征數(shù)量,分別為最大池化(Max Pooling)和平均池化(Average Pooling)。例如給定某一個向量表征圖像,如下所示:

對于上面向量表征圖像池化為四個網(wǎng)格的小表征圖,那么利用最大池化策略就是每四個正方形格子取最大值,就分別得到6、8、3、4,同理可得,平均池化就是計(jì)算每四個正方形格子的平均值,就分別得到3、5、2、2,分別得到如上圖所示的網(wǎng)格。

2.7 全連接層(FC Layer)

類似傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的結(jié)構(gòu),卷積神經(jīng)網(wǎng)絡(luò)中的池化層(FC)中的神經(jīng)元跟之前層次的所有激活輸出都是連接著的,也就是說兩層之間所有的神經(jīng)元都有權(quán)重連接;作為最終的連接整理輸出,對每層的輸出結(jié)果進(jìn)行匯總計(jì)算,全連接層只會在卷積神經(jīng)網(wǎng)絡(luò)的尾部出現(xiàn)。

3 CNN訓(xùn)練算法與CNN優(yōu)缺點(diǎn)

3.1 CNN訓(xùn)練算法

CNN訓(xùn)練算法和一般的機(jī)器學(xué)習(xí)算法一樣,首先需要定義損失函數(shù)(Loss Function)來計(jì)算損失值,從而衡量出預(yù)測值和實(shí)際值之間的誤差,在這里一般采用平方和誤差公式。對于在網(wǎng)絡(luò)中找到最小損失函數(shù)的W和b的值,卷積神經(jīng)網(wǎng)絡(luò)通暢采用隨機(jī)梯度下降算法(SGD),這個算法在之前的推薦算法文稿中有所闡述。簡而言之,卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法其實(shí)就是一個機(jī)器學(xué)習(xí)中的反向傳播(BP)算法,SGD需要計(jì)算W和b的偏導(dǎo),根據(jù)偏導(dǎo)來不斷迭代更新W和b。

3.2 CNN優(yōu)缺點(diǎn)

對于卷積神經(jīng)網(wǎng)絡(luò),有以下幾個優(yōu)點(diǎn):

1.可以共享卷積核(共享參數(shù)),使得卷積神經(jīng)網(wǎng)絡(luò)對高維的數(shù)據(jù)處理沒有壓力;

2.不需要選擇特征屬性,只需要訓(xùn)練好每一個權(quán)重,也就可以得到特征值;

3.在深層次的神經(jīng)網(wǎng)絡(luò)中,使得對圖像信息的抽取更為豐富,從而使得最終表達(dá)效果好;

但是卷積神經(jīng)網(wǎng)絡(luò)同樣也有一些缺點(diǎn),比如在卷積神經(jīng)網(wǎng)絡(luò)中需要調(diào)參,這就會導(dǎo)致需要大量的樣本,使得訓(xùn)練迭代次數(shù)比較多,最好使用GPU來訓(xùn)練;另外對于卷積神經(jīng)網(wǎng)絡(luò)每一層的輸出結(jié)果的物理含義并不明確,也就是很難從每一層輸出看出含義,即可解釋性較差。

4 正則化和Dropout延伸

神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力受神經(jīng)元數(shù)目和神經(jīng)網(wǎng)絡(luò)的層級影響,一般來說,神經(jīng)元數(shù)目越多,神經(jīng)網(wǎng)絡(luò)的層級就越高,那么這個神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力就越強(qiáng),但是有可能就會出現(xiàn)過擬合(overfitting)的問題。解決過擬合的方法主要還是正則化(Regularization)和Dropout,這兩個方法在之前的神經(jīng)網(wǎng)絡(luò)文稿中有所闡述,在這里進(jìn)一步說明下:

1.正則化是通過降低模型的復(fù)雜度,通過在cost函數(shù)上添加一個正則項(xiàng)的方式來降低overfitting;Dropout是通過隨機(jī)刪除神經(jīng)網(wǎng)絡(luò)中的部分神經(jīng)元來解決過擬合問題,使得在每次僅限迭代時,只是用部分神經(jīng)元訓(xùn)練模型來獲取W和d的值,從而使得CNN沒有太多的泛化能力,通過合并多次迭代的結(jié)果可以增加模型的準(zhǔn)確率。

2.一般情況下,對于同一組訓(xùn)練數(shù)據(jù),利用不同的神經(jīng)網(wǎng)絡(luò)之后,求它輸出的平均值就可以減少過擬合。因此Dropout就是利用這個原理,每次都丟掉一半左右的隱藏層神經(jīng)元,也就相當(dāng)于在不同的神經(jīng)網(wǎng)絡(luò)上進(jìn)行訓(xùn)練,這樣就減少了神經(jīng)元之間的依賴性,即每個神經(jīng)元不能依賴于某幾個其他神經(jīng)元(在這里指層與層之間想連接的神經(jīng)元),使得神經(jīng)網(wǎng)絡(luò)更具健壯性的特征,還能更好的提高準(zhǔn)確率。

對于一些典型的卷積神經(jīng)網(wǎng)絡(luò)模型介紹,網(wǎng)上都有資料,讀者感興趣的話可以自己搜索瀏覽下,在這里就不贅述了。

5 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)

5.1 應(yīng)用場景

循環(huán)神經(jīng)網(wǎng)絡(luò)的運(yùn)用場景較多,在目前的互聯(lián)網(wǎng)或者信息科技公司運(yùn)用循環(huán)神經(jīng)網(wǎng)絡(luò)最多的幾個場景有自然語言處理(NLP)、機(jī)器翻譯、語音識別、圖像描述生成,自然語言處理也包括了語言模型與文本的生成,在互聯(lián)網(wǎng)行業(yè)主要劃分為語音/語義識別部門。對推向進(jìn)行識別描述,與卷積神經(jīng)網(wǎng)絡(luò)(CNN)不同點(diǎn)在于:CNN是去做一個圖片的識別,例如圖片的的東西是什么,而RNN雖然也可以識別圖片里的東西是什么,但是運(yùn)用RNN更多的是度圖片上的東西進(jìn)行描述,提供出圖片上的內(nèi)容信息。

那么有人就會問,既然有BP神經(jīng)網(wǎng)絡(luò)和CNN,為什么還要RNN呢?這個就跟RNN的循環(huán)有關(guān)了,之前的BP神經(jīng)網(wǎng)絡(luò)和CNN的每一個神經(jīng)元輸入輸出都是相互獨(dú)立的,互相并沒有產(chǎn)生干擾或者聯(lián)系,而在實(shí)際應(yīng)用場景中呢?有些場景的輸出內(nèi)容和之前的內(nèi)容是有關(guān)聯(lián)的,也就是一種“記憶”的概念,因此RNN引入這個概念,循環(huán)就是指每一個神經(jīng)元都執(zhí)行相同的任務(wù),但是輸出不僅依賴于輸入,還依賴于神經(jīng)元自身之前的“記憶”。

5.2 RNN結(jié)構(gòu)

因?yàn)?ldquo;記憶”的概念與時間的先后有關(guān),所以講神經(jīng)元序列按照時間先后展開就可以得到RNN的結(jié)構(gòu)如下圖所示:

在上述結(jié)構(gòu)中, 是時間t的輸入, 是時間t出的“記憶”, 是時間t的輸出。

還有一種循環(huán)神經(jīng)網(wǎng)絡(luò)是雙向RNN(Bidirectional RNN),也就是在之前的結(jié)構(gòu)中當(dāng)前t的輸出不僅僅和之前的序列有關(guān),而且還與之后的序列有關(guān)。例如:預(yù)測一個語句中缺失的詞語,那么就需要根據(jù)上下文進(jìn)行預(yù)測。雙向RNN其實(shí)是一個相對簡單的RNN結(jié)構(gòu),是有兩個RNN上下疊加在一起組成。輸出就是有這兩個RNN的隱藏層的狀態(tài)決定。

5.3 訓(xùn)練算法

5.3.1 BPTT算法

循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的訓(xùn)練其實(shí)也很CNN訓(xùn)練一樣,同樣可以用BP反向傳播誤差算法。唯一的區(qū)別就在于:RNN中的參數(shù)W是共享的,并且在隨機(jī)梯度下降算法中,每一步的輸出不僅僅依賴當(dāng)前步的網(wǎng)絡(luò),并且還需要前若干步網(wǎng)絡(luò)的狀態(tài),也就是對之前的BP短發(fā)進(jìn)行改版,這個改版的BP算法叫做BPTT(Backpropagation Through Time),BPTT算法和BP算法一樣,在多層訓(xùn)練時,都有可能產(chǎn)生梯度消失和爆炸的問題。BPTT算法的思路和BP算法一樣,都是求偏導(dǎo),但是需要同時考慮到時間對step的影響。

5.3.2 LSTM

對于BPTT算法中可能產(chǎn)生梯度消失和梯度爆炸的問題,這是由于在BPTT計(jì)算中,對于長期依賴“記憶”問題導(dǎo)致的,而LSTM就特別適合解決這類長時間依賴的問題。LSTM是RNN的一種,大致結(jié)構(gòu)一致,區(qū)別在于LSTM的“記憶神經(jīng)元”是改造過后的,并且記錄的信息就會一致傳遞下去,不該記錄的信息就會被截?cái)嗟簟? 如下圖所示

LSTM結(jié)構(gòu)圖

在LSTM中,有一個關(guān)鍵點(diǎn)在于“細(xì)胞狀態(tài)”,也就是記憶神經(jīng)元的狀態(tài)。細(xì)胞狀態(tài)類似于傳送帶,都是直接在整個鏈上運(yùn)行,只有一些少量的線性交互過程,這樣就使得信息在上面流傳是保持不變較為容易。那么怎么去控制“細(xì)胞狀態(tài)”呢?控制“細(xì)胞狀態(tài)”的過程有以下幾個步驟:

1.LSTM可以通過“門”(gates)這種結(jié)構(gòu)來去除或者增加“細(xì)胞狀態(tài)”的信息;

2.用包含一個sigmoid神經(jīng)網(wǎng)絡(luò)層次和一個pointwist乘法操作;

3.Sigmoid層輸出一個0到1之間的概率值,描述每個部分有多少量可以通過,0表示“不允許任務(wù)變量通過”,1表示“運(yùn)行所有變量通過”;

4.LSTM中主要有是三個“門”結(jié)構(gòu)來控制“細(xì)胞狀態(tài)”。

5.3.3 三個“門”?

下面對LSTM的三個“門”進(jìn)行延伸:

1.第一個“門”也叫“忘記門”,它決定了從“細(xì)胞狀態(tài)”中丟棄什么信息;比如在語言模型中,細(xì)胞狀態(tài)可能包含了性別信息,當(dāng)我們看到新的名詞后,就可以考慮忘記掉舊的數(shù)據(jù)信息;

2.第二個門也叫“信息增加門”,它決定了放什么新的信息到“細(xì)胞狀態(tài)”中去,其中Sigmoid層決定什么值需要更新;Tanh層創(chuàng)建一個新的候選向量,主要都是為了進(jìn)行狀態(tài)更新做準(zhǔn)備。

3.第三個“門”就是基于“細(xì)胞狀態(tài)”得到輸出,經(jīng)過第一個“門”和第二個“門”后,可以缺東傳遞信息的刪除和增加,也就可以進(jìn)行“細(xì)胞狀態(tài)”的更新,第三個“門”首先運(yùn)行一個Sigmoid層來確定細(xì)胞狀態(tài)的哪個部分被輸出,然后再使用tanh處理細(xì)胞狀態(tài)得到-1到1之間的值,再將它與sigmoid門的輸出相乘,輸出過程確定了輸出的部分。

三個“門”的部分圖分別如下所示:

5.3.4 LSTM結(jié)構(gòu)改造

對于上述的LSTM結(jié)構(gòu),也有針對其中的某些部分進(jìn)行改造,其中例如有在第二個“門”之前增加“配額phone connections”層,從而使得“門”層也接受細(xì)胞狀態(tài)的輸入;還有通過耦合忘記門和更新輸入門,不在單獨(dú)考慮忘記什么信息、增加什么信息,而是放在一起進(jìn)行考慮。

在對LSTM結(jié)構(gòu)進(jìn)行設(shè)計(jì)改造中,相對比較出眾的就是2014年提出的一個結(jié)構(gòu),如下圖所示,主要區(qū)別在于以下幾點(diǎn):

1.該結(jié)構(gòu)將忘記門和輸入門合并成為一個單一的更新門,也就是將忘記的信息和輸入的信息一并進(jìn)行考慮;

2.合并了數(shù)據(jù)單元狀態(tài)與隱藏狀態(tài);

3.它的結(jié)構(gòu)比LSTM的結(jié)構(gòu)更為簡單。

6 總結(jié)與補(bǔ)充

6.1 總結(jié)

深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)在目前主要運(yùn)用場景為圖片識別、文本識別、游戲、語言識別等。其中的一些主要算法在上面也已經(jīng)進(jìn)行了闡述。除此之外還有一些輔助算法如極大極小值算法。對于這一塊內(nèi)容我將在下文提到。因此在學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)這一塊的時候,一定要分類去理解、分情況去討論,結(jié)合實(shí)際的運(yùn)用場景功能來完成神經(jīng)網(wǎng)絡(luò)模型的選擇與訓(xùn)練,從而達(dá)到最好的輸出效果。關(guān)于CNN和RNN的一些擴(kuò)展,其中包括Fast R-CNN(快速卷積)和R-FCN(基于區(qū)域的全卷積)這些內(nèi)容和結(jié)構(gòu),有興趣的讀者可以自行了解下,實(shí)際運(yùn)用的場景并不多。

6.2 補(bǔ)充

對于運(yùn)用神經(jīng)網(wǎng)絡(luò)知識這一塊的深度學(xué)習(xí)領(lǐng)域,還有額外的一些需要了解的知識內(nèi)容,例如遷移學(xué)習(xí)和極大極小值算法等。在這里我將對這些進(jìn)行一個補(bǔ)充,僅僅作為一個引子,來激發(fā)讀者更多的探討興趣。

6.2.1 遷移學(xué)習(xí)

遷移學(xué)習(xí)就是一個算法思想、一個算法訓(xùn)練方式,一般的深度學(xué)習(xí)算法都會要求我們的訓(xùn)練數(shù)據(jù)集中數(shù)據(jù)標(biāo)注數(shù)據(jù)比較多,但是在實(shí)際應(yīng)用中,有很多場景標(biāo)注的數(shù)據(jù)是比較少的。因此使用比較少的數(shù)據(jù)來進(jìn)行訓(xùn)練而達(dá)到跟之前一樣很好的效果是非常困難的。而遷移學(xué)習(xí)就是一個解決這一類問題的算法思想,它是指用基于很少標(biāo)注的數(shù)據(jù)集進(jìn)行高質(zhì)量的模型訓(xùn)練。在目前運(yùn)用場景中,使用遷移學(xué)習(xí)的主要是在圖片檢測或者標(biāo)注這一塊。

6.2.2 極大極小值算法

極大極小值算法(MiniMax)是一種找出失敗的最大可能性中的最小值的算法,也就是盡量是對手的最大收益最小化。這個算法通常是通過遞歸的形式實(shí)現(xiàn),常用語棋類或者競技較量類的游戲程序中。

 

該算法同時也就是一個零和博弈,也就是使得雙方的輸贏總和為0,即一方要在可選的條件下選擇出對其優(yōu)勢最大化的方法,而另外一方也需要選擇出令對手優(yōu)勢最小化的一個方法。簡而言之,博弈中有人贏錢,就得有人輸錢,輸?shù)腻X數(shù)是與贏的錢數(shù)相等。但是在這算法過程中,因?yàn)橛玫降氖沁f歸操作,所以算法的層級深度會非常深,學(xué)過數(shù)據(jù)結(jié)構(gòu)的都知道,遞歸算法雖然書寫代碼簡便,但是其時間復(fù)雜度較高,甚至?xí)萑胨姥h(huán)而宕機(jī),因此在使用極大極小值算法中就有可能對神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,盡量降低神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的時間復(fù)雜度。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2018-11-01 09:14:42

CNNRNN神經(jīng)網(wǎng)絡(luò)

2018-08-07 15:21:01

CNNRNN循環(huán)神經(jīng)網(wǎng)絡(luò)

2020-07-23 09:55:59

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)人工智能

2017-04-13 09:18:02

深度學(xué)習(xí)文本分類

2017-11-23 14:35:36

2016-10-21 18:40:43

CNNDNNRNN

2016-10-24 12:24:30

CNNDNNRNN

2009-09-14 13:30:04

Linq數(shù)據(jù)和對象

2009-10-28 18:12:16

Linux和Windo

2009-07-10 11:07:18

Swing和SWT

2009-07-10 17:20:38

Swing構(gòu)件AWT構(gòu)件

2011-05-13 15:23:37

聲明定義

2023-11-22 09:00:00

NLP語言模型LSTM

2020-02-13 10:14:11

MySQL事務(wù)ACID

2009-07-02 11:25:33

JSP課程

2009-07-17 17:49:39

JRuby學(xué)習(xí)

2020-02-13 17:27:31

CAPPaxos 共識算法

2011-06-02 13:28:17

OverloadOverride

2009-06-25 14:26:33

JSFDojo小部件

2016-09-01 13:39:33

Linux鏡像XML 解析器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区三区日韩 | 亚洲欧美视频一区 | 这里只有精品99re | 九九99九九精彩46 | 久久久久国产精品午夜一区 | 在线免费观看毛片 | 色先锋影音| 午夜影院操 | 成人激情视频在线 | 久久久精品久久久 | 欧美精品在线播放 | 久久伊人精品一区二区三区 | 超碰精品在线 | 精品亚洲一区二区三区四区五区高 | 91精品国产91久久综合桃花 | 欧美在线综合 | 亚洲国产精品福利 | 亚洲三级免费看 | 亚洲一区在线观看视频 | 欧美性生交大片免费 | 三级在线观看 | 天天久久 | 午夜理伦三级理论三级在线观看 | 亚洲精品久久久一区二区三区 | 国产精品成人品 | 欧美中文字幕一区 | 国产免费色 | 91国自视频 | 婷婷激情综合 | 爱爱爱av| 2019精品手机国产品在线 | 欧美日本亚洲 | 一区欧美 | 九九九视频在线观看 | 国产日日操 | 国外成人免费视频 | 天天综合天天 | 日韩影音| 国产在线h | 国产婷婷精品 | 久久精品国产一区二区三区不卡 |