當前位置:成語大全網 - 書法字典 - Seq2Seq模型概述

Seq2Seq模型概述

Seq2Seq模型用於輸出長度不確定的情況,這通常發生在機器翻譯任務中。如果將中文句子翻譯成英文,英文句子的長度可能比中文句子短或長,因此輸出長度是不確定的。如下圖所示,中文輸入長度為4,英文輸出長度為2。

在網絡結構中,輸入壹個中文序列,然後輸出其對應的中文翻譯。輸出部分的結果預測出來後,按照上面的例子,即先輸出“機器”,把“機器”作為下壹個輸入,再輸出“學習”,這樣就可以輸出任何長序列。

機器翻譯,人機對話,聊天機器人和其他對話都會產生場景角色,這些都或多或少地應用在當今社會中,我們稱之為Seq2Seq。

舉個簡單的例子,當我們使用機器翻譯時:輸入(hello)-》輸出(hello)。例如,在人機對話中,我們會問機器:“妳是誰?”機器會返回答案“我是XXX”。下圖是壹個簡單的電子郵件對話場景,發件人問:“妳明天有空嗎?”;接電話的人回答:“是的,怎麽了?”。

Seq2seq屬於壹種編解碼結構。讓我們看看常見的編碼器-解碼器結構。基本思想是使用兩個RNN,壹個RNN作為編碼器,另壹個RNN作為解碼器。編碼器負責將輸入序列壓縮成壹個指定長度的向量,這個向量可以看作這個序列的語義。這個過程被稱為編碼。如下圖所示,獲取語義向量最簡單的方法是直接將最後壹次輸入的隱藏狀態作為語義向量c .您也可以變換最後壹次隱藏狀態以獲得語義向量,也可以變換輸入序列的所有隱藏狀態以獲得語義變量。

還有另壹種解碼器處理方式,即語義向量c參與序列所有矩的運算,如下所示。前壹時刻的輸出仍作為當前時刻的輸入,但語義向量c將參與所有時刻的運算。

RNN可以學習概率分布,然後做出預測。例如,在我們輸入t時刻的數據後,我們可以預測t+1時刻的數據。常見的例子是字符預測或時間序列預測。為了得到概率分布,通常在RNN的輸出層使用softmax激活函數,可以得到每個分類的概率。(在對話生成任務中,獲得詞典中每個單詞的概率。)

Softmax廣泛應用於機器學習和深度學習。特別是在處理多分類(C分類號》時;2)問題,分類器的最後壹個輸出單元需要Softmax函數進行數值處理。Softmax函數的定義如下:

其中是分類器前壹級輸出單元的輸出。I表示類別索引,類別總數為c,表示當前元素的索引與該元素所有索引之和的比值。Softmax將多分類的輸出值轉換為相對概率,更易於理解和比較。讓我們看看下面的例子。

壹個多分類問題,C = 4。線性分類器模型的最後壹個輸出層包含四個輸出值,即:

經過Softmax處理後,數值轉換為相對概率:(和為1,稱為歸壹化過程)。

顯然,Softmax的輸出代表了不同類別之間的相對概率。我們可以清楚地看到,S1 = 0.8390,對應的概率最大,因此可以更清楚地判斷它更有可能被預測為1類。Softmax將連續值轉換為相對概率,更有利於我們的理解。(在對話生成任務中,輸出由詞典中第1個序列號表示的單詞。)

對於RNN,對於壹個序列,對於時間t,其詞向量輸出概率為,則softmax層中每個神經元的計算如下:

其中是當前t位置的隱藏狀態,它與前壹時刻的狀態和當前輸入有關,即;表示文本詞典中與t單詞對應的下標。代表詞典中的t單詞;是單詞權重參數。

那麽整個序列的生成概率為

它表示從第壹個單詞到第t個單詞壹次生成這個單詞序列的概率。

對於編碼器-解碼器模型,存在輸入序列和輸出序列,並且輸入序列和輸出序列的長度可以不同。那麽實際上就需要根據輸入序列得到輸出序列可能輸出的單詞概率,於是就有了下面的條件概率。在發生的情況下,發生的概率等於乘法,如下式所示。其中,它表示相應的隱藏狀態向量(輸入中每個單詞的單詞向量),該向量實際上可以表示輸入序列(模型依次生成的概率)。

此時,解碼編碼器中的隱藏狀態與上壹時刻的狀態、上壹時刻的輸出和狀態V有關(此處與RNN不同,後者與當前時刻的輸入有關),而解碼編碼器將上壹時刻的輸出輸入到RNN中。因此解碼器在某壹時刻的概率分布可以用下面的公式表示。

所以對於訓練樣本,我們需要做的是最大化整個訓練樣本下所有樣本的概率之和。對數似然條件概率函數是將其最大化,θ是待確定的模型參數。