機(jī)器學(xué)習(xí):循環(huán)神經(jīng)網(wǎng)絡(luò)

傳統(tǒng)的機(jī)器學(xué)習(xí)算法非常依賴人工提取特征,使得圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)音處理等問(wèn)題存在特征提取的瓶頸,基于全連接神經(jīng)網(wǎng)絡(luò)的方法存在參數(shù)太多、無(wú)法利用時(shí)間序列信息等問(wèn)題
??
卷積神經(jīng)網(wǎng)絡(luò)解決圖像的特征提取問(wèn)題、參數(shù)太多問(wèn)題
循環(huán)神經(jīng)網(wǎng)絡(luò)解決利用時(shí)間序列信息的問(wèn)題
??
循環(huán)神經(jīng)網(wǎng)絡(luò)主要用于語(yǔ)音識(shí)別、語(yǔ)言模型、機(jī)器翻譯、時(shí)序分析等等
這些應(yīng)用比如翻譯、單詞預(yù)測(cè)都需要考慮上下文關(guān)系,也就是說(shuō)受時(shí)序的影響

網(wǎng)絡(luò)結(jié)構(gòu)
             O(t-1)      O(t)      O(t+1)
             ↑           ↑         ↑
             | V         | V       | V
         W   |       W   |     W   |
        ---> S(t-1) ---> S(t) ---> S(t+1)
             ↑           ↑         ↑
             | U         | U       | U
             |           |         |    
             X(t-1)      X(t)      X(t+1)

X(t):是 t 時(shí)刻的輸入,例如單詞向量
??
S(t):是 t 時(shí)刻的狀態(tài),由上一個(gè)時(shí)刻的狀態(tài)和當(dāng)前輸入得到
??
???\small S(t) = f( X(t) \times U + S(t-1) \times W + b\_state)
??
???其中 \small f 是非線性激活函數(shù)(一般是 \small tanh),設(shè) \small S(-1)0
??
O(t):是 t 時(shí)刻的輸出
??
???\small O(t) = softmax( S(t) \times V + b\_output )
??
每個(gè)時(shí)刻都使用相同的 U、V、W 參數(shù),反應(yīng)出 RNN 中每步都在做相同的事,大大減少了參數(shù)
??
假設(shè) X 的維度是 (1, n),而 S 的維度是 (1, h),則
??U 的維度是 (n, h)
??W 的維度是 (h, h)
??b_state 的維度是 (1, h)
??
??V 的維度是 (h, 1)
??b_output 的維度是 (1, 1)
??
??共需要參數(shù)為 (n x h) + (h x h) + h + h + 1 = (n+h+2) x h + 1
??
RNN 要求每個(gè)時(shí)刻都有輸入,但不是每個(gè)時(shí)刻都要有輸出(比如接收完整的一句話才會(huì)有輸出)
??
RNN 的輸入輸出可以有多種情況
??1. 一個(gè)輸入比如一張圖像,輸出是單詞序列
??2. 輸入序列比如一個(gè)句子,輸出一個(gè)值,比如判斷句子的分類或預(yù)測(cè)下一個(gè)單詞
??3. 輸入輸出都是序列,比如翻譯

訓(xùn)練算法

參數(shù)訓(xùn)練通過(guò)隨時(shí)間進(jìn)行反向傳播(Backpropagation Through Time,BPTT)算法
基本原理和 BP 算法一樣,也包含三個(gè)步驟:
??1. 前向計(jì)算每個(gè)神經(jīng)元的輸出值
??2. 反向計(jì)算每個(gè)神經(jīng)元的誤差項(xiàng)值,它是誤差函數(shù)對(duì)神經(jīng)元的加權(quán)輸入的偏導(dǎo)數(shù)
??3. 計(jì)算每個(gè)權(quán)重的梯度,最后再用隨機(jī)梯度下降算法更新權(quán)重

LSTM(Long Short Term Memory,長(zhǎng)短時(shí)記憶)

傳統(tǒng) RNN 在實(shí)際中很難處理長(zhǎng)期依賴問(wèn)題,比如 "I grew up in France ...... I speak fluent ()" 要預(yù)測(cè) () 中該填哪個(gè)詞,跟很久之前的 "France" 有密切關(guān)系
??
LSTM 就是為了解決這個(gè)問(wèn)題,循環(huán)神經(jīng)網(wǎng)絡(luò)被成功應(yīng)用的關(guān)鍵就是 LSTM,很多任務(wù)采用 LSTM 比標(biāo)準(zhǔn)的 RNN 表現(xiàn)要好
??
LSTM 是一個(gè)擁有三個(gè)門的結(jié)構(gòu)
??門結(jié)構(gòu)是一個(gè)使用 sigmoid 神經(jīng)網(wǎng)絡(luò)和一個(gè)按位做乘法的操作,這兩個(gè)操作合在一起就是門
??
??sigmoid 作為激活函數(shù)輸出 0 到 1 之間的數(shù)值
??當(dāng)輸出為 0 時(shí),所有信息都無(wú)法通過(guò),當(dāng)輸出為 1 時(shí),所有信息都可以通過(guò)
??
??三個(gè)門分別是遺忘門、輸入門、輸出門
??
??遺忘門讓 RNN 忘記之前沒(méi)有用的信息
??比如有文章寫了某地碧水藍(lán)天,但后來(lái)被污染了,于是 RNN 應(yīng)該忘記之前碧水藍(lán)天的狀態(tài)
??
??忘記部分歷史信息后,應(yīng)該從當(dāng)前輸入補(bǔ)充新信息,這就是輸入門
??比如把環(huán)境被污染這個(gè)信息寫進(jìn)去
??
??遺忘門和輸入門后產(chǎn)生了新的狀態(tài)
??輸出門根據(jù)新的狀態(tài)和輸入信息決定該時(shí)刻的輸出
??比如當(dāng)前狀態(tài)為污染,那么天空的顏色可能就是灰色的

                C(t-1) ---> * ---------> + --- C(t) ----> 
                            ↑            ↑           ↓
                            |      S --> *           F
                            S      ↑     ↑           ↓
                            ↑      |     F     S --> *
                            |      |     ↑     ↑     ↓
                h(t-1) -------------------------     --------- h(t) ------>
                        ↑                            |
                        |                            ↓
                       X(t)                         h(t)

其中 C 是狀態(tài),h 是輸出,X 是輸入,S 是 sigmoid 函數(shù),F(xiàn) 是激活函數(shù)(一般是 tanh)
??
h(t-1) 和 X(t) 共同作為輸入,被 3 個(gè) S 和 1 個(gè) F 使用,每個(gè)都有自己的 W 和 b 系數(shù)
??
第一個(gè) S 的輸出和 C(t-1) 相乘,起到遺忘門的作用
第二個(gè) S 的輸出和 F 的輸出相乘得到要添加的新的信息,再和遺忘門的輸出相加,起到輸入門的作用,得到新的狀態(tài) C(t)
第三個(gè) S 的輸出和 F 處理 C(t) 后的輸出相乘,得到 t 時(shí)刻的輸出

RNN 的變種

雙向循環(huán)神經(jīng)網(wǎng)絡(luò):有些問(wèn)題中,當(dāng)前的輸出不僅和之前的狀態(tài)有關(guān),也和之后的狀態(tài)相關(guān)
深層循環(huán)神經(jīng)網(wǎng)絡(luò):在每個(gè)時(shí)刻上將循環(huán)體結(jié)構(gòu)復(fù)制了多次



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容