0
本文作者: AI研習(xí)社-譯站 | 2018-06-04 16:09 |
雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題 Step-by-step walkthrough of RNN Training - Part I,作者為 Eniola Alese。
翻譯 | 趙朋飛 程思婕 整理 | 凡江
RNN 前向傳播逐步演練
單個(gè) RNN Cell 中的前向傳播算法
在之前的文章中,我們介紹了 RNN 的基本結(jié)構(gòu)并將其按時(shí)間序列展開(kāi)成 Cells 循環(huán)鏈,稱為 RNN cells。下面,我們將揭示單個(gè) RNN Cell 的內(nèi)部結(jié)構(gòu)和前向傳播計(jì)算過(guò)程。
將其過(guò)程分解成多個(gè)步驟:
第一步:cell 接受兩個(gè)輸入:x?t? 和 a?t-1?。
第二步:接下來(lái),計(jì)算矩陣乘積 ?,W_xh 乘 x?t?,W_ah 乘 a?t-1?。然后,通過(guò)將以上兩項(xiàng)乘積相加,并加上偏置 b_h,計(jì)算得出 h?t?。
第三步:緊接著上面的步驟,將 h(t) 傳給激活函數(shù)(比如 tanh 或 relu)計(jì)算 a(t)。本例中激活函數(shù)使用 tanh 函數(shù)。
第四步: cell 輸出 a?t? 并將其傳給下一 cell 做進(jìn)一步計(jì)算。
第五步:然后,計(jì)算 o?t?; 這是所有輸出可能取值的非標(biāo)準(zhǔn)化對(duì)數(shù)概率。方法是計(jì)算矩陣乘積?,W_ao 乘 a?t?,并與 b_o 相加。
第六步:最后,通過(guò)將 o?t? 傳輸給激活函數(shù)(例如 sigmoid 或 softmax),得到了一個(gè)實(shí)際輸出的標(biāo)準(zhǔn)化概率向量 ??t?。輸出的激活函數(shù)的選擇通常取決于期望的輸出類型(sigmoid 用于二元輸出,softmax 用于多類別輸出)。
前向傳播算法
前向傳播算法在整個(gè) RNN 網(wǎng)絡(luò)中運(yùn)行以上步驟,而不僅僅在單個(gè) RNN cell 中運(yùn)行。從隱藏層狀態(tài) a?0?的初始化開(kāi)始,在所有時(shí)間序列 t = 1 to T 中共享權(quán)值和偏置向量 W_xh,W_ah, W_ao, b_h, b_o,在每個(gè)時(shí)間序列中重復(fù)上面的每一步。
例如,如果我們擁有一個(gè) 8 個(gè)序列的輸入 x?1?,x?2?,......x?8?,這個(gè)網(wǎng)絡(luò)的前向傳播計(jì)算過(guò)程是步驟 1-6 在循環(huán)中重復(fù) 8 次。
上面是訓(xùn)練RNN的第一步,在這篇文章的第二部分將介紹后向傳播算法(BPTT),以及如何推導(dǎo)梯度。
感謝您的寶貴時(shí)間,歡迎評(píng)論或反饋。
博客原址 https://medium.com/learn-love-ai/step-by-step-walkthrough-of-rnn-training-part-i-7aee5672dea3
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。