《人工智能技術(shù)基礎(chǔ)》課件 第4章 循環(huán)神經(jīng)網(wǎng)絡(luò)_第1頁
《人工智能技術(shù)基礎(chǔ)》課件 第4章 循環(huán)神經(jīng)網(wǎng)絡(luò)_第2頁
《人工智能技術(shù)基礎(chǔ)》課件 第4章 循環(huán)神經(jīng)網(wǎng)絡(luò)_第3頁
《人工智能技術(shù)基礎(chǔ)》課件 第4章 循環(huán)神經(jīng)網(wǎng)絡(luò)_第4頁
《人工智能技術(shù)基礎(chǔ)》課件 第4章 循環(huán)神經(jīng)網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

人工智能技術(shù)基礎(chǔ)循環(huán)神經(jīng)網(wǎng)絡(luò)第四章

循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetwork,RNN)是一類處理序列數(shù)據(jù)的人工神經(jīng)網(wǎng)絡(luò)。相較于卷積神經(jīng)網(wǎng)絡(luò)關(guān)注的是數(shù)據(jù)中的局部特征,循環(huán)神經(jīng)網(wǎng)絡(luò)關(guān)注的是序列數(shù)據(jù)中按照序列順序的前后依賴關(guān)系。它將先前數(shù)據(jù)的計(jì)算結(jié)果與之后的數(shù)據(jù)一同計(jì)算產(chǎn)生新的結(jié)果,如此循環(huán)往復(fù)。正是因?yàn)檠h(huán)網(wǎng)絡(luò)對于不同時間步的數(shù)據(jù)不是同時計(jì)算的,因而可以處理可變長度的序列數(shù)據(jù),大大擴(kuò)大了應(yīng)用范圍。4循環(huán)神經(jīng)網(wǎng)絡(luò)簡介1.了解RNN的基本知識和形式化的數(shù)學(xué)模型表示;2.掌握循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法;3.掌握標(biāo)準(zhǔn)RNN的前向計(jì)算和時間反向傳播計(jì)算過程;4.掌握幾種流行的RNN變體結(jié)構(gòu);5.了解RNN的應(yīng)用結(jié)構(gòu)。學(xué)習(xí)目標(biāo)4循環(huán)神經(jīng)網(wǎng)絡(luò)目錄Contents4.1循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用結(jié)構(gòu)小結(jié)4.24.34.44.501循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)4.1循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)1990年,JeffreyElman將多層前向神經(jīng)網(wǎng)絡(luò)隱層的輸出引回到輸入層作為聯(lián)系單元與原輸入層單元并列與隱層神經(jīng)元相連接,構(gòu)成描述動態(tài)系統(tǒng)狀態(tài)的神經(jīng)網(wǎng)絡(luò)模型,當(dāng)時被稱為Elman網(wǎng),也被稱為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),主要用于動態(tài)系統(tǒng)建模解決復(fù)雜系統(tǒng)預(yù)測預(yù)報問題。1997年JürgenSchmidhuber將RNN中的簡單常規(guī)神經(jīng)元替換成具有更多連接權(quán)值的復(fù)雜記憶單元,提出了長短期記憶(LongShort-TermMemory,LSTM)模型,使RNN的能力大為提高。2003年YoshuaBengio把RNN用于解決傳統(tǒng)語言處理模型的“維度詛咒(CurseofDimensionality)”問題,使其在自然語言處理中開始應(yīng)用。2012年卷積神經(jīng)網(wǎng)絡(luò)在物體分類識別上的成功,使RNN返回研究人員的視野,已在機(jī)器翻譯、語音識別和個性化推薦等眾多領(lǐng)域效果顯著,成為解決與時序相關(guān)聯(lián)問題的主要深度神經(jīng)網(wǎng)絡(luò)模型。4.1循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)RNN物理結(jié)構(gòu)圖RNN按時序展開結(jié)構(gòu)圖4.1循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)從RNN按時序展開的結(jié)構(gòu)可以看到,RNN在每一時刻都有外部輸入,反饋形成的環(huán)(回)路展開后,上一時刻隱層的輸出與本時刻的外部輸入同時送入本時刻的隱層,展開的網(wǎng)絡(luò)深度與輸入的時序數(shù)據(jù)的長度一致,數(shù)據(jù)越長,網(wǎng)絡(luò)越深,因此RNN本質(zhì)上也是深度前向神經(jīng)網(wǎng)絡(luò)。RNN按時序展開結(jié)構(gòu)不同于常規(guī)前向神經(jīng)網(wǎng)絡(luò),其各隱層的神經(jīng)元數(shù)量是相同的,且網(wǎng)絡(luò)各層中的輸入到隱層的連接權(quán)、隱層到隱層的反饋連接權(quán)和隱層到輸出層的連接權(quán)是全網(wǎng)絡(luò)共享不變的。需要注意的是RNN沒有強(qiáng)制要求輸入序列與輸出序列的長度必須相等。RNN的數(shù)學(xué)模型如下:4.1循環(huán)神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)RNN中隱層神經(jīng)元激活函數(shù)通常采用tanh函數(shù),輸出神經(jīng)元的激活函數(shù)則依據(jù)所解決的問題確定,如果是二分類問題則使用Sigmoid函數(shù),如果是多分類問題則使用Softmax函數(shù)。RNN計(jì)算單元02循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法4.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法

RNN可以使用誤差反向傳播算法的思想進(jìn)行訓(xùn)練。訓(xùn)練RNN的算法為通過時間反向傳播BPTT(BackPropagationThroughTime,BPTT)算法,它和傳統(tǒng)的反向傳播算法BP有類似之處,它們的核心任務(wù)都是利用反向傳播調(diào)整參數(shù),從而使得損失函數(shù)最小化。通過時間反向傳播算法,也包含前向計(jì)算和反向計(jì)算兩個步驟。4.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法標(biāo)準(zhǔn)結(jié)構(gòu)RNN的前向傳播過程,如下圖所示,為了有效區(qū)分不同類型的連接權(quán),分別用U、W、V代表輸入權(quán)、反饋權(quán)和輸出權(quán)。圖中各個符號的含義:x是輸入,h是隱層節(jié)點(diǎn),o為輸出,L為損失函數(shù),y為訓(xùn)練集的標(biāo)簽。這些元素右上角帶的t代表t時刻的狀態(tài),其中需要注意的是,因?yàn)閱卧猦在t時刻的表現(xiàn)不僅由此刻的輸入決定,還受t時刻之前時刻的影響。U、W、V是權(quán)值,同一類型的連接權(quán)值相同。4.2.1循環(huán)神經(jīng)網(wǎng)絡(luò)的前向輸出流程RNN的前向輸出流程4.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法BPTT算法是常用的訓(xùn)練RNN的方法,其實(shí)本質(zhì)還是BP算法,只不過RNN處理的是時間序列數(shù)據(jù),所以要基于時間反向傳播,故叫隨時間反向傳播。BPTT的中心思想和BP算法相同,沿著需要優(yōu)化參數(shù)的負(fù)梯度方向不斷尋找更優(yōu)的點(diǎn)直至收斂。因此,BPTT算法還是BP算法,本質(zhì)上還是梯度下降,那么求各個參數(shù)的梯度便成了此算法的核心。需要尋優(yōu)的參數(shù)有三個,分別是U、W、V。與BP算法不同的是,三個參數(shù)的尋優(yōu)過程需要追溯之前的歷史數(shù)據(jù)。4.2.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法——隨時間反向傳播4.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法在梯度累乘過程中,如果取Sigmoid函數(shù)作為激活函數(shù)的話,那么必然是一堆小數(shù)在做乘法,結(jié)果就是越乘越小。隨著時間序列的不斷深入,小數(shù)的累乘就會導(dǎo)致梯度越來越小直到接近于0,這就是“梯度消失”現(xiàn)象。梯度消失就意味消失那一層的參數(shù)再也不更新,那么那一層隱層就變成了單純的映射層,毫無意義了,所以在深層神經(jīng)網(wǎng)絡(luò)中,有時候多增加層的神經(jīng)元數(shù)量可能會比多加層數(shù)即深度更好。RNN的特點(diǎn)就是能“追根溯源”利用歷史數(shù)據(jù),歷史數(shù)據(jù)越長“梯度消失”越嚴(yán)重,因此解決“梯度消失”越是非常必要的。ReLU函數(shù)可以解決循環(huán)神經(jīng)網(wǎng)絡(luò)中的梯度消失問題。4.2.3循環(huán)神經(jīng)網(wǎng)絡(luò)中梯度消失和爆炸問題及解決方法1.梯度消失的原因與解決辦法4.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法4.2.3循環(huán)神經(jīng)網(wǎng)絡(luò)中梯度消失和爆炸問題及解決方法1.梯度消失的原因與解決辦法Sigmoid函數(shù)及其導(dǎo)數(shù)圖tanh函數(shù)及其導(dǎo)數(shù)圖ReLU函數(shù)及其導(dǎo)數(shù)圖4.2循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法使用ReLU解決了RNN的“梯度消失”問題,但也帶來了另一個問題—“梯度爆炸”問題。一旦激活函數(shù)的導(dǎo)數(shù)恒為1,由于網(wǎng)絡(luò)權(quán)W的取值無約束,連乘很容易使損失函數(shù)對連接權(quán)的偏導(dǎo)數(shù)越來越大(時序越長,RNN展開結(jié)構(gòu)的隱層越多,乘積越大),導(dǎo)致“梯度爆炸”現(xiàn)象的發(fā)生。深度前向神經(jīng)網(wǎng)絡(luò)的激活函數(shù)采用ReLU同樣存在“梯度爆炸”問題?!疤荻缺ā眴栴}的解決比較簡單,只需要給損失函數(shù)對三組連接權(quán)的梯度的絕對值設(shè)定合適的閾值,限制其最大值就可以解決這個問題。對于“梯度消失”和“梯度爆炸”,通過采取將網(wǎng)絡(luò)初始權(quán)值設(shè)為接近0的非常小的數(shù)值,對網(wǎng)絡(luò)的輸入值做正則化或歸一化處理和對網(wǎng)絡(luò)隱層輸出做逐層正則化(LN)處理等措施,也可在網(wǎng)絡(luò)訓(xùn)練過程中有效減少這兩種現(xiàn)象的發(fā)生,提高網(wǎng)絡(luò)的訓(xùn)練效率。4.2.3循環(huán)神經(jīng)網(wǎng)絡(luò)中梯度消失和爆炸問題及解決方法2.梯度爆炸的原因與解決辦法03循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型4.3循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型簡單循環(huán)網(wǎng)絡(luò)是RNN的一種特殊情況,如圖所示,SRNN是一個三層網(wǎng)絡(luò),與傳統(tǒng)RNN網(wǎng)絡(luò)結(jié)構(gòu)相比,SRNN只是隱層神經(jīng)元自身有自反饋,這個反饋并不連接到其它隱層神經(jīng)元,相當(dāng)于只在隱層增加了上下文信息。SRNN在20世紀(jì)90年代被稱為對角回歸神經(jīng)網(wǎng)絡(luò)。圖中I1-In為網(wǎng)絡(luò)的輸入,Y1-Yn為網(wǎng)絡(luò)的隱層,M1-Mn為上下文單元。從圖中可以看出Y1-Yn與M1-Mn為一一對應(yīng)關(guān)系,即上下文單元節(jié)點(diǎn)與隱層中節(jié)點(diǎn)的連接是固定的,而且相應(yīng)的權(quán)值也是固定的。4.3.1簡單循環(huán)網(wǎng)絡(luò)SRNN基本結(jié)構(gòu)4.3循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型在循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入和輸出目標(biāo)之間添加與輸入時序長度相同的暫存單元,存儲所有隱層的輸出信息,并增加一個具有反饋連接的隱層,該隱層按輸入時序相反的方向順序接收信息,即首先接受時序輸入的最后一個信息,再接受倒數(shù)第二個信息,最后接受第一個信息,進(jìn)而將兩個信息流動方向相反的隱層輸出同時送入網(wǎng)絡(luò)的輸出層神經(jīng)元中。按上述思想構(gòu)造的循環(huán)神經(jīng)網(wǎng)絡(luò)被稱為雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Bi-directionalRecurrentNeuralNetwork,BRNN)。4.3.2雙向循環(huán)網(wǎng)絡(luò)BRNN雙向網(wǎng)絡(luò)基本結(jié)構(gòu)4.3循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型1997年JürgenSchmidhuber提出的長短期記憶(LongShort-TermMemory,LSTM)模型,將RNN中的簡單MP神經(jīng)元替換成具有更多連接權(quán)值的復(fù)雜記憶單元,使其記憶能力和處理復(fù)雜系統(tǒng)問題的能力大大提高。LSTM是RNN的一種變體,它通過精妙的門控制將RNN中隱層的狀態(tài)信息(可以看做長期記憶)和當(dāng)前時刻的輸入信息(可以看作短期記憶)結(jié)合起來,有效地提高了RNN解決復(fù)雜問題的能力。4.3.3長短期記憶網(wǎng)絡(luò)長短期記憶網(wǎng)絡(luò)基本結(jié)構(gòu)4.3循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型LSTM的關(guān)鍵就是細(xì)胞狀態(tài),水平線在圖上方貫穿運(yùn)行。細(xì)胞狀態(tài)類似于傳送帶,直接在整個鏈上運(yùn)行,只有一些少量的線性交互,信息在上面流傳保持不變會很容易。LSTM擁有三個門,來保護(hù)和控制細(xì)胞狀態(tài),分別為遺忘門、輸入門、輸出門。4.3.3長短期記憶網(wǎng)絡(luò)遺忘門輸入門輸出門4.3循環(huán)神經(jīng)網(wǎng)絡(luò)拓展模型門控循環(huán)單元(GatedRecurrentUnit,GRU)網(wǎng)絡(luò)是這些LSTM變體中影響最大的變體。它只有兩個門,分別為更新門和重置門,它將遺忘門和輸入門合成了一個單一的更新門。更新門用于控制前一時刻的狀態(tài)信息被帶入到當(dāng)前狀態(tài)中的程度,更新門的值越大說明前一時刻的狀態(tài)信息帶入越多。重置門用于控制忽略前一時刻的狀態(tài)信息的程度,重置門的值越小說明忽略得越多。4.3.4門控循環(huán)單元網(wǎng)絡(luò)GRU網(wǎng)絡(luò)基本結(jié)構(gòu)04循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)本身的特性使其特別適合處理時序數(shù)據(jù),根據(jù)實(shí)際應(yīng)用場景的需要,RNN有四種常用的按時序展開結(jié)構(gòu):同步的序列到序列結(jié)構(gòu)、序列分類結(jié)構(gòu)、向量到序列結(jié)構(gòu)、異步的序列到序列的模式。它們是針對不同類型的輸入輸出分別設(shè)計(jì)的。4.4循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用結(jié)構(gòu)N到N結(jié)構(gòu)又稱為變換器(Transducer),最經(jīng)典的RNN結(jié)構(gòu)要求輸入序列和輸出序列的長度相同。如圖所示,損失函數(shù)L為每一時刻隱層節(jié)點(diǎn)的輸出o(t-l)與相應(yīng)時刻的期望輸出y(t)序列的差異;當(dāng)前時刻t的隱層節(jié)點(diǎn)h(t)輸入為上一時刻的隱層h(t-l)輸出和當(dāng)前時刻的序列輸入x(t),W為連接權(quán)重。雖然這種結(jié)構(gòu)要求輸入輸出序列長度相同,但是輸入和輸出序列的長度是可變的,這也正是RNN在處理序列數(shù)據(jù)時相對于CNN的優(yōu)勢。4.4循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用結(jié)構(gòu)4.4.1同步的序列到序列結(jié)構(gòu)(N到N)N到N的結(jié)構(gòu)N到N結(jié)構(gòu)的典型應(yīng)用如:計(jì)算視頻中每一幀的分類標(biāo)簽、詞性標(biāo)注、訓(xùn)練語言模型使用之前的詞預(yù)測下一個詞等。N到1結(jié)構(gòu)又稱為接受器(Acceptor),輸入x是一個時間序列,輸出o是一個單獨(dú)的值而不是時間序列,最后一個時間步的隱層節(jié)點(diǎn)輸出用于表示整個輸入序列x的特征,也可以用最后全部時間步的隱層節(jié)點(diǎn)輸出的某個函數(shù)值fo來表示序列x的特征。N到1結(jié)構(gòu)通常用來處理序列分類問題,如一段語音、一段文字的類別,句子的情感分析,視頻序列的類別判斷等。4.4循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用結(jié)構(gòu)4.4.2序列分類結(jié)構(gòu)(N到1)N到1的結(jié)構(gòu)1到N結(jié)構(gòu)的網(wǎng)絡(luò)輸入為固定長度的向量,而非上文中的按照時間展開的向量序列。常用的1到N結(jié)構(gòu)中,有一種結(jié)構(gòu)只在序列開始進(jìn)行輸入,而每一個時間步都有輸出。另一種為在隱層的每一個時間步都將x作為輸入。圖中當(dāng)前時間步的期望輸出也作為下一時間步的隱層節(jié)點(diǎn)輸入,是該結(jié)構(gòu)的另一種變體。1到N結(jié)構(gòu)常用于圖像理解。4.4循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用結(jié)構(gòu)4.4.3向量到序列結(jié)構(gòu)(1到N)1到N結(jié)構(gòu)首步輸入1到N結(jié)構(gòu)每步輸入N到M的結(jié)構(gòu)又叫編碼-譯碼(Encoder-Decoder)模型,也可稱之為Seq2Seq模型。N到N結(jié)構(gòu)的RNN要求輸入和輸出序列長度相同,編碼-譯碼模型則不受此約束限制。用一個編碼網(wǎng)絡(luò)將輸入的序列編碼為一個上下文向量c。然后,用一個譯碼網(wǎng)絡(luò)對c進(jìn)行譯碼,將其變成輸出序列。N到M結(jié)構(gòu)實(shí)質(zhì)上使用了2個RNN,編碼器是一個N到1展開結(jié)構(gòu)的RNN,譯碼器是一個1到M的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論