iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
AI & Data

AI、機器學習以及深度學習的語言學應用系列 第 22

Day 22 - RNN(循環/遞歸神經網路)

  • 分享至 

  • xImage
  •  

在各種 Deep Learning Models 中,RNN(Recurrent Neural Network)是一種特別設計來處理序列資料 (sequential data) 的模型。

與 CNN(Convolutional Neural Network)或一般其他的神經網路不同,RNN 能夠記住 時間上的資訊 ,因此特別適合應用於文字、語音、時間序列等任務。

以下就來看看 RNN 究竟是怎麼樣的一個模型囉~

RNN 的概念

  • RNN(Recurrent Neural Network),是運用基於「時間」的循環機制
  • 跟一般神經網路的不同之處在於,他們的「記憶(memory)」不同
    ➔ RNN不會把輸入(input)跟輸出(output)當作獨立分開的事件,反之,它會利用前面的各個輸入來去影響現在的輸入跟輸出
  • RNN可以被視為於同一個網路裡面,進行不同時間段的多次循環,每個神經元單位(neural unit)把更新得出的結果傳遞給下一個時間段

例如:idiom e.g. "bring home the bacon"

  • 諺語(idiom)的特點在於,他的字跟字的順序一定要是固定的才能傳遞該 idiom 的意思
  • RNN 就需要去關注每個字的 位置訊息 ,並利用這個資訊去預測字串中的下一個字
  • 透過在每個 time step 維持一個 hidden state ,RNN 可以去追蹤上下文
  • 這個 hidden state 可視為一種「記憶」,讓前面的資訊影響當前的輸出
  • Feedback loop 的作用是將前一個 hidden state 傳遞到下一個 time step

RNN vs. Feedforward Neural Network

參數

  • 在 feedforward 網路中,每層的權重 (weights) 都不同。
  • 在 RNN 中,每個 time step 共享同一組權重,不過這些共享權重會透過 backpropagation through time (BPTT) 調整

BPTT 的運作

  • RNN 是利用 forward propagation 跟 backpropagation through time(BPTT) 來去找到gradients,跟傳統的 backpropagation 基本的運作方式很像,但有差異
  • BPTT 會把 error 加總起來,因為如同上面所說,整個網路有共同的參數,但是像 feedforward 的網路裡,參數是不同的,因此不會把error相加

RNN的不同種類

一對一

  • 一對一就是 feedforward 的模式,模型輸入一筆資料,並預測一筆資料

一對多

  • 把一個輸入產出多筆輸出
  • 例如可以從一個關鍵字,生成一整個句子,能夠利用在影像物體偵測上

多對一

  • 模型透過多筆輸入產出一個結果,例如像是情緒分析

多對多

  • 模型利用多筆輸入預測出多筆輸出,可以應用在翻譯

RNN的不同變體(variants)

  • Bidirectional recurrent neural networks (BRRNs)
    • 相對於單一方向的 RNN , BRRNs 可以利用雙向的記憶,也就是可以運用未來的資料來去影響目前的狀態,透過未來跟過去的資料,提升模型預測字的能力
  • Long short-term memory (LSTM)
    • LSTM 可以去解決字串內距離較遠的問題,因為有些句子內字雖然距離遠,但是其實關聯性很高,因此LSTM會去讓模型能夠讓每層都去多記住有用的資訊
    • LSTM 在 hidden layer 中有「cell state」,該 cell 中有 gates 來去過濾資訊:input, output, forget gate。例如,如果一個字,像是「he」在前面出現很多次,後面的layer可能就會把它遺忘掉
  • Gated recurrent units (GNUs)
    • GNU 跟 LSTM 很像,但是他不用 cell state ,而是用 hidden state ,並且不是用 3 個 gates ,而是 2 個 gates :reset、update gates,不過也是在決定該留什麼、多少資訊
    • GNU 相對於 LSTM ,計算起來可能會比較有效率,需要的參數也比較少,適用於實時或是資源有限的應用
  • Encoder-decoder RNN
    • seq2seq 的模型,適用於翻譯

Reference 1
Reference 2
Reference 3
Reference 4


上一篇
Day 21 - Deep Learning Models(深度學習模型)
下一篇
Day 23 - Encoder-Decoder
系列文
AI、機器學習以及深度學習的語言學應用30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言