Recurrent Neural Network-遞歸神經網絡 (RNN)-Part 3

** 此篇文章內容,整理自李宏毅老師教學影片。

了 sequence-to-sequence (seq2seq) 技術後,就可做到 beyond sequence (seq),例如:過去用 structured learning 的技術,才能夠讓 machine 產生語意解析樹狀圖 (syntactic parsing tree);現在只要把樹狀圖描述成一個 sequence,使用 seq2seq model 的 output 就是一個 syntactic parsing tree,便可進行 training。

RNN3_F01
圖一、一句話的語意解析樹狀圖及樹狀圖轉 sequence 之示意圖。

一說明如何將一句話的語意以樹狀圖解析及如何將樹狀圖轉成 sequence。

RNN3_F02
二、以 bag-of-word 方法將兩個句意相反的句子視為相同意思之示意圖。

二顯示以 bag-of-word 方法將兩個意思相反的句子視為相同意思之示意圖。把一個document 表示成一個 vector 的話,之前會用 bag-of-word 的方法,但此法不考慮字的順序,因此有可能將兩句意思相反的句子視為意思相同。

給定 word sequence 且考慮字的順序,要把一個 document 轉成一個 vector。

rnn3_f03.png
圖三、將一個句子轉成 vector 再輸入至 decoder 轉回原本句子之 RNN 架構示意圖。

三顯示將一個句子轉成 vector 再輸入至 decoder 轉回原本句子之 RNN 架構示意圖。透過 RNN 把一組 word sequence 變成 embedded vector,作為 decoder 的輸入,讓decoder 找回一個一模一樣的句子,此 embedded vector 具有原本句子的重要資訊。而seq2seq auto-encoder 不需要 label data,只需要丟入大量的 data 即可。

RNN3_F04
四、seq2seq auto-encoder and decoder with hierarchical structure。

四顯示 seq2seq auto-encoder and decoder with hierarchical structure。圖三之結構可具有 hierarchy,也就是說每個句子都先得到一個 vector (Mary was hungry 得到一個vector;she didn’t find any food 得到一個vector) 後,再將每個句子的 vector 相加得到 document high-level vector、放入 decoder、再反向解回 word,這就是一個四層的LSTM,順序是 word seq → sentence seq → document level → sentence seq → word seq。

rnn3_f05.jpg
五、語音轉成向量示意圖。

五顯示將語音轉成向量之示意圖。藉由 seq2seq auto-encoder and decoder,可以把audio segments (word-level) 轉成一個 fixed-length vector,例如"dog" 與 “dogs" 兩者audio 對應的 vector 相近,"never" 與 “ever" 兩者音訊對應的向量較接近,此技術即為audio-word2vector,可應用在語音搜尋 (不需進行聲音辨識,只需辨識聲音相似度即可),使用者說了一段語音之後,audio segment to vector 可將 audio 轉成 vector,過程不需進行語音辨識,而是直接比對相似度,找出相近的結果。

RNN3_F06
六、音訊轉向量 (audio2vector) 的實作方法。

六顯示音訊轉向量 (audio2vector) 的實作方法。先把一段音訊切成幾段 audio segments,再各別抽取出 acoustic features ,x¯1x¯4 再輸入至 RNN encoder,其 hidden layer 最後時間點的向量即代表這段音訊的向量。若只有此 RNN encoder,無法訓練,要同時設計一個 RNN decoder,兩者一起才能訓練。

RNN3_F07
七、音訊轉向量 (audio2vector) 之訓練架構:RNN encoder and RNN decoder。

七顯示音訊轉向量 (audio2vector) 之訓練架構:RNN encoder and RNN decoder。RNN encoder 輸出的向量會輸入至 RNN decoder,其會產生一個 acoustic feature seq y¯1(其維度與 x¯1 相同),希望 y¯1 與 x¯1 越接近越好。接著,y¯1 再輸入至 RNN decoder 產生y¯2,以此類推,直至最後時間點。最後 loss function 要求 y¯n 與 x¯n 越接近越好。RNN encoder 與 RNN decoder 是同時進行訓練 (jointly trained)。

RNN3_F08
八、音訊轉向量 (audio2vec) 實驗結果。

八顯示音訊轉向量 (audio2vec) 實驗結果。圖中的一點代表一段音訊所轉成的向量。由圖可看出,"fear" 到 “near" 的方向與 “fame" 到 “name" 的方向是非常接近的。但是這邊的向量並沒有包含語義資訊。

rnn3_f09.jpg
圖九、seq2seq learning 訓練 chat-bot 之架構示意圖。

九顯示 seq2seq learning 訓練 chat-bot 之架構示意圖。用 seq2seq learning 來訓練chat-bot:收集很多的對話 (電視影集4萬多句+美國大選辯論)。注意:seq2seq learning 與seq2seq autoencoder 是兩件事。

RNN3_F10
十、Attention-based model示意圖。

十顯示 attention-based model 示意圖。Attention-based model 能夠根據輸入,自動決定記憶中所需的相關資訊,讀取至網絡,得到理想輸出,此能力是經過訓練後得到。讀取資訊步驟為:R1. 發訊給 reading head controller。R2. reading head controller 決定reading head 之位置。R3. 網絡讀取記憶體中的向量資訊進入網絡。網絡讀取資訊時,可以依序從不同記憶體讀取資訊。寫入步驟為:W1. 發訊給 writing head controller。W2. writing head controller 決定 writing head 之位置。W3. 網絡寫入記憶體中的向量資訊。同時具備讀寫功能的 attention-based model 稱為 Neural Turing Machine。

RNN3_F11
十一、attention-based model範例。輸入問題「玉山有多高?」機器讀取資訊後,輸出「3952m」。

十一顯示 attention-based model 範例。輸入問題「玉山有多高?」機器讀取資訊後,輸出「3952m」。機器讀取資訊可以是 iterative,它可以先讀出 v¯i 再讀出 v¯i′,把這些資訊收集起來,最後給出答案。

托福聽力測驗

RNN3_F121
十二、托福聽力測驗題目之示意圖。

十二為托福聽力測驗題目之示意圖。

RNN3_F13
十三、托福聽力測驗之注意力模型架構。

十三顯示托福聽力測驗之注意力模型 (attention-based model) 架構。機器聽語音描述(audio story),做語音辨識轉成字串,再經語意分析得語音語意,再轉成向量,存入記憶體,供 attention-based model 取用。機器讀進測驗問題 (Q:"what is a possible origin of Venus’ clouds?") 後,進行語意分析,得問題語意,輸入至 attention-based model 的中央處理器 (DNN/RNN),中央處理器根據記憶體中之資訊,作出回答 (Ans: “The origin is …"),此答案可再輸入回中央處理器,修正答案。最後再計算答案與 ABCD 選項間的相似度,選出最相似的選項。整體架構,是一個神經網絡,問題語意 (question semantics) 與語音語意 (audio semantics) 是聯合訓練 (jointly trained),而語音辨識 (speech recognition)是另一獨立神經網絡。

rnn3_f14.jpg
十四、托福聽力測驗之不同方法結果比較。

十四顯示托福聽力測驗之不同方法結果比較。方法 (1)-(5) 是naive,即不管文章內容,直接看問題選答案。隨意猜的結果是 25%。方法(2)–找最短的答案– 或是 方法(4)–比對一選項和另外三個選項語義相似度,若某選項與其它三選項的語義相似度最高,則選它–,這兩種方法可以到達35%。方法(4) 與直覺是相反的,是官方故意如此設計。Memory Network 可以達到 39.2%,proposed approach:可以到達 48.8%。

Deep learning 與 Structured learning的關係

RNN (Deep learning) & Structured Learning 的關係 (應該就會是未來的一個研究方向):例如 input一個 seq,output 一個 seq,兩者都可以做到。

RNN3_T01

實 deep learning 跟 structured learning 可以被結合起來。

RNN3_F15
十五、RNN/LSTM 與 structured learning 整合之架構示意圖。

十五顯示 RNN/LSTM 與 structured learning 整合之架構示意圖。底部 input feature 先通過 RNN/LSTM,oupput 再輸入 HMM, CRF, Structured Perceptron/SVM,用RNN/LSTM 的 output,來定義 HMM, CRF, Structured Perceptron/SVM 的 evaluation function,如此,同時享有 deep 的好處,又享有 structured learning 的好處。兩者可以jointly train,CRF 可以用 gradient descent 來訓練。

以語音辨識為整合之範例,常見的方法為: CNN/LSTM/DNN +HMM,若要得到 state-of-the-art 的結果,用這樣 hybrid system 得到的往往會最好。在 HMM 裡面,須計算 x 與 y的 joint probability:

擷取

計算 x 和 y 的 evaluation function,x 是聲音訊號,y 是語音辨識的結果。在 HMM 裡面有 transition 的部份以及 emission 的部份,DNN 做的事情,其實就是取代 emission 的部份,在原 HMM 裡面,emission 就是簡單的統計,就是統計一個 Gaussian Mixture Model (GMM),但是把它換成 DNN(RNN) 以後,會得到很好的 performance。

RNN3_F16
十六、以 RNN 取代 GMM 計算 P(xl|yl) 之示意圖。

十六顯示以 RNN 取代 GMM 計算 P(xl|yl) 之示意圖。

可以從 RNN 得知 input 一個 acoustic feature,它屬於某個 state 的機率;若要得到P(xl|yl),則做以下變換:

擷取02.JPG

中,P(yl|xl) 由 RNN 計算,P(yl) 由語料庫統計而得,而 P(xl) 可設為1。因為 xl 是聲音訊號已知,最後在 inference 時,是窮舉所有 yl 看哪個讓 P(xl|yl) 最大,而跟 xl 有關的項不會影響最後 inference 的結果,所以不需把 xl 考慮進來。

用 RNN 辨識時,常會遇到一個問題:假設每個 frame 進來,輸出對應的 phone,它可能產生一些怪怪的結果。例如,第一到第五個 frame 都是 a,接下來換 b、b、b,但如果用 RNN 做的時候,它每個產生的 label 是 independent,因此,可能在第三個要輸出 a 卻輸出b,第四個再改回 a。若加上HMM,會自動把這種狀況修掉。對 RNN 來說,訓練時,是逐個 frame 分開考慮的,所以,若不同的錯誤對語音辨識結果影響很大,但是 RNN 不知道,learn 不出來,若要讓它 learn 出來,需加上 structured learning 的概念讓它做到。

rnn3_f17.png
圖十七、混合系統範例示意圖:Bi-directional LSTM (BLSTM)+ CRF/Structured SVM。

十七顯示混合系統範例示意圖:BLSTM+ CRF/Structured SVM。

做 slot-filling 時 (如semantic tagging),也流行用 BLSTM+ CRF/Structured SVM,先用BLSTM 抽出 feature,再用這些 feature 定義 CRF 或 structured SVM,CRF、SVM都是linear model,需要先抽feature x,y,learn一個 weight w。

Structured learning 是否 practical? Structured learning 要解三個問題:

擷取03.JPG

中解 inference 的問題,要窮舉所有的可能 y,使 evaluation function 值最大,因此往往最困難,這個 optimization problem 並不是所有狀況都有好的解,大部份狀況都沒有好的解,所以 structured learning 的用途似乎並不廣泛,但未來未必如此。

Generative Adversarial Networks 與 Structured Learning 的關係

rnn3_f18.png
十八、GAN 與 structured learning 對照示意圖。

十八顯示 GAN 與 structured learning 對照示意圖。以GAN為structured learning的範例。把GAN中的discriminator看成 evaluation function可以解Problem 1;接下來,problem 2,窮舉所有可能arguement,使evaluation function 最大,這步最困難,它的解可以就是generator。當輸入一個高斯雜訊(Gaussian noise)到generator,它會產出一個object x,此物件會可能會讓discriminator分辨不出來,使discriminator (evaluation function)的值很大,因此,generator就是在找這個x,使evaluation function的值最大。最後,訓練GAN就是在解problem 3。GAN的訓練跟structured learning/SVM的訓練有異曲同工之妙。structured learning/SVM裡面,每次找出最competitive的example,然後希望正確的example,它的evaluation function的分數大過competitive example,然後update model,再重新選competitive example,iterative的去做。GAN也是在做同樣的事,GAN的訓練是,我們有正確example x,它應該讓evaluation function的值最大,然後,用generator產生出最competitive的x,也就是能讓discriminator值最大的x,再去訓練discriminator,它要去分辨real x與generated x,也就是說discriminator要給real x較大的值,給那些competitive x較小的值,這個process不斷進行下去,discriminator會被更新,再輪到generator被更新,再輪到discriminator更新,不斷下去,這個跟structured SVM的訓練是有異曲同工之妙。structured SVM裡面有input x與output y而GAN只有x,兩者似乎無法完全類比。

RNN3_F19
十九、Conditional GAN架構示意圖,以文字生成圖像為範例。

十九顯示Conditional GAN架構示意圖,以文字生成圖像為範例。輸入文字為「This flower has small, round violet petals with a dark purple center」。conditional GAN裡面的example都是(x,y) pair,要解的任務是give x ,找出最有可能的y,可以想成是x是文字,y是對應生成的圖像或是x是聲音訊號,y是辨識出來的文字。generator input一個x,它就產生一個y,discriminator會去Check (x,y) pair是不是對的,如果給它一個真正(x,y) pair,會產生一個較高的分數,若給入一個generator出來的y配上它的input x,所組成的假的(x,y) pair,discriminator會給個較低的分數,training process跟原來的GAN是一樣,此技術已經成功應用在用文字產生圖像的task,例如跟機器說一句話「一隻藍色的鳥」,它就畫出藍色的鳥。這個task的輸入x就是一句話,輸出y就是一張圖像;generator做的事就是給入這句話「This flower has small, round violet petals with a dark purple center.」輸出一張圖像。discriminator做的事就是看一張圖像與一句話,然後判斷這張圖像與這句話,亦即(x,y) pair是不是真的。若把discriminator換成evaluation function,把generator換成解inference problem,其實conditional GAN跟structured learning是可以類比的。或者可以說,GAN就是train structured learning model的一種方法。

RNN3_F20
二十、探討GAN與energy-based model結合應用的文獻以及探討用deep learning 解inference problem的文獻。

二十顯示探討GAN與energy-based model結合應用的文獻以及探討用deep learning 解inference problem的文獻。energy-based model可視為structured learning的另一種稱呼,是Yann LeCun提出的。GAN 和energy-based model 結合:GAN可以視為訓練energy-based model的一種方法。有人認為把generator看作是在做inference這件事情,是荒謬的,因此,他們試著用deep neural network來解inference。因此,deep learning與structured learning之間的關聯與結合應用是未來重點研究方向。

Reference

[0] H. Y. Lee, ML lecture #21-2, RNN part II , at https://www.youtube.com/watch?v=rTqmWlnwz_0

發表留言