當前位置:
首頁 > 新聞 > 手把手教你訓練 RNN|Part I

手把手教你訓練 RNN|Part I

雷鋒網按:本文為雷鋒字幕組編譯的技術博客,原標題 Step-by-step walkthrough of RNN Training - Part I,作者為 Eniola Alese。

翻譯 | 趙朋飛 程思婕 整理 | 凡江

RNN 前向傳播逐步演練

單個 RNN Cell 中的前向傳播演算法

在之前的文章中,我們介紹了 RNN 的基本結構並將其按時間序列展開成 Cells 循環鏈,稱為 RNN cells。下面,我們將揭示單個 RNN Cell 的內部結構和前向傳播計算過程。

手把手教你訓練 RNN|Part I

將其過程分解成多個步驟:

第一步:cell 接受兩個輸入:x?t? a?t-1?

手把手教你訓練 RNN|Part I


第二步:接下來,計算矩陣乘積?W_xh x?t?W_ah a?t-1?。然後,通過將以上兩項乘積相加,並加上偏置 b_h,計算得出 h?t?

手把手教你訓練 RNN|Part I


第三步:緊接著上面的步驟,將 h(t) 傳給激活函數(比如 tanh relu)計算 a(t)。本例中激活函數使用 tanh 函數。

手把手教你訓練 RNN|Part I


第四步:cell 輸出 a?t? 並將其傳給下一 cell 做進一步計算。

手把手教你訓練 RNN|Part I


第五步:然後,計算 o?t?; 這是所有輸出可能取值的非標準化對數概率。方法是計算矩陣乘積?W_ao a?t?,並與 b_o 相加。

手把手教你訓練 RNN|Part I

第六步:最後,通過將 o?t? 傳輸給激活函數(例如 sigmoid 或 softmax),得到了一個實際輸出的標準化概率向量 ??t?。輸出的激活函數的選擇通常取決於期望的輸出類型(sigmoid 用於二元輸出,softmax 用於多類別輸出)。

手把手教你訓練 RNN|Part I

前向傳播演算法

前向傳播演算法在整個 RNN 網路中運行以上步驟,而不僅僅在單個 RNN cell 中運行。從隱藏層狀態 a?0?的初始化開始,在所有時間序列t = 1 to T 中共享權值和偏置向量 W_xh,W_ah, W_ao, b_h, b_o,在每個時間序列中重複上面的每一步。

例如,如果我們擁有一個 8 個序列的輸入 x?1?,x?2?,......x?8?,這個網路的前向傳播計算過程是步驟 1-6 在循環中重複 8 次。

手把手教你訓練 RNN|Part I

上面是訓練RNN的第一步,在這篇文章的第二部分將介紹後向傳播演算法(BPTT),以及如何推導梯度。

感謝您的寶貴時間,歡迎評論或反饋。

博客原址 https://medium.com/learn-love-ai/step-by-step-walkthrough-of-rnn-training-part-i-7aee5672dea3

雷鋒網雷鋒網

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

超越谷歌!起底亞馬遜站上全球科技公司老二的背後
十大手機廠商聯手推「快應用」,與小程序死磕勝算有幾分?

TAG:雷鋒網 |