前言:RNN的出現,解決了CNN在處理時空序列上的糟糕表現,所謂時空序列可以簡單理解上前后的輸入是有聯系的,比如自然語言處理,我們說的前一句話和后一句話之間是有聯系的;智能視頻處理,每一幀的前后是有聯系的;雷達信號,每個信號之間是有聯系的……傳統的影像處理,影像中的每個像素點,這些像素值之間是沒有聯系的,我們利用RNN做一個自動歌詞生成器,本文先介紹一下RNN的理論基礎,
目錄
語言模型
RNN原理和網路結構
參考
語言模型
語言模型(language model)是計算一個句子的概率的模型,自然語言處理中最常見的資料是文本資料,我們可以把一段自然語言文本看作一段離散的時間序列,假設一段長度為TT的文本中的詞依次為w1,w2,…,wTw1,w2,…,wT,那么在離散的時間序列中,wt(1≤t≤T)可看作在時間步(time step)t的輸出或標簽,給定一個長度為TT的詞的序列w1,w2,…,wTw1,w2,…,wT,語言模型將計算該序列的概率:
P(w1,w2,…,wT)
如果句子中的每一個詞都是獨立出現的,那么我們就可以把概率寫成:

但是我們前言中說了,自然語言中,每個詞肯定相互之間有聯系的,如果這個詞出現依賴前一個詞,這就是二元語法:

同理,一個詞出現依賴前兩個詞,這就是三元語法:

因此,一個詞出現依賴于前N-1個次,就是N元語法:

RNN原理和網路結構

- x是一個向量,它表示輸入層的值,
- s是一個向量,它表示隱藏層的值,
- U是輸入層到隱藏層的權重矩陣,
- o也是一個向量,它表示輸出層的值,
- V是隱藏層到輸出層的權重矩陣,
- W是權重矩陣,回圈神經網路的隱藏層的值s不僅僅取決于當前這次的輸入x,還取決于上一次隱藏層的值s,權重矩陣 W就是隱藏層上一次的值作為這一次的輸入的權重,
將剛才那個抽象圖畫成具體圖:

按照時間線展開就是:

最后我們用公式表示:

好了,RNN理論能理解這些就夠了,后面開始寫代碼,
參考
- 史上最詳細回圈神經網路講解(RNN/LSTM/GRU) - 知乎
- 一文搞懂RNN(回圈神經網路)基礎篇 - 知乎
- 動手學深度學習
- 深入淺出講解語言模型 - 知乎
- 數學之美
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/350792.html
標籤:AI
