日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制

發(fā)布時間:2025/3/8 pytorch 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文是吳恩達(dá)老師的深度學(xué)習(xí)課程[1]筆記部分。

作者:黃海廣[2]

主要編寫人員:黃海廣、林興木(第四所有底稿,第五課第一二周,第三周前三節(jié))、祝彥森:(第三課所有底稿)、賀志堯(第五課第三周底稿)、王翔、胡瀚文、 余笑、 鄭浩、李懷松、 朱越鵬、陳偉賀、 曹越、 路皓翔、邱牧宸、 唐天澤、 張浩、 陳志豪、 游忍、 澤霖、沈偉臣、 賈紅順、 時超、 陳哲、趙一帆、 胡瀟楊、段希、于沖、張鑫倩

參與編輯人員:黃海廣、陳康凱、石晴路、鐘博彥、向偉、嚴(yán)鳳龍、劉成 、賀志堯、段希、陳瑤、林家泳、王翔、 謝士晨、蔣鵬

備注:筆記和作業(yè)(含數(shù)據(jù)、原始作業(yè)文件)、視頻都在?github[3]中下載。

我將陸續(xù)將課程筆記發(fā)布在公眾號“機(jī)器學(xué)習(xí)初學(xué)者”,敬請關(guān)注。

第三周 序列模型和注意力機(jī)制(Sequence models & Attention mechanism

3.1 基礎(chǔ)模型(Basic Models)

在這一周,你將會學(xué)習(xí)seq2seqsequence to sequence)模型,從機(jī)器翻譯到語音識別,它們都能起到很大的作用,從最基本的模型開始。之后你還會學(xué)習(xí)集束搜索(Beam search)和注意力模型(Attention Model),一直到最后的音頻模型,比如語音。

現(xiàn)在就開始吧,比如你想通過輸入一個法語句子,比如這句 “Jane visite I'Afrique en septembre.”,將它翻譯成一個英語句子,“Jane is visiting Africa in September.”。和之前一樣,我們用?一直到來表示輸入的句子的單詞,然后我們用到來表示輸出的句子的單詞,那么,如何訓(xùn)練出一個新的網(wǎng)絡(luò)來輸入序列和輸出序列呢?

這里有一些方法,這些方法主要都來自于兩篇論文,作者是SutskeverOriol VinyalsQuoc Le,另一篇的作者是Kyunghyun ChoBart van MerrienboerCaglar GulcehreDzmitry BahdanauFethi BougaresHolger SchwenYoshua Bengio

首先,我們先建立一個網(wǎng)絡(luò),這個網(wǎng)絡(luò)叫做編碼網(wǎng)絡(luò)(encoder network)(上圖編號1所示),它是一個RNN的結(jié)構(gòu), RNN的單元可以是GRU 也可以是LSTM。每次只向該網(wǎng)絡(luò)中輸入一個法語單詞,將輸入序列接收完畢后,這個RNN網(wǎng)絡(luò)會輸出一個向量來代表這個輸入序列。之后你可以建立一個解碼網(wǎng)絡(luò),我把它畫出來(上圖編號2所示),它以編碼網(wǎng)絡(luò)的輸出作為輸入,編碼網(wǎng)絡(luò)是左邊的黑色部分(上圖編號1所示),之后它可以被訓(xùn)練為每次輸出一個翻譯后的單詞,一直到它輸出序列的結(jié)尾或者句子結(jié)尾標(biāo)記,這個解碼網(wǎng)絡(luò)的工作就結(jié)束了。和往常一樣我們把每次生成的標(biāo)記都傳遞到下一個單元中來進(jìn)行預(yù)測,就像之前用語言模型合成文本時一樣。

深度學(xué)習(xí)在近期最卓越的成果之一就是這個模型確實有效,在給出足夠的法語和英語文本的情況下,如果你訓(xùn)練這個模型,通過輸入一個法語句子來輸出對應(yīng)的英語翻譯,這個模型將會非常有效。這個模型簡單地用一個編碼網(wǎng)絡(luò)來對輸入的法語句子進(jìn)行編碼,然后用一個解碼網(wǎng)絡(luò)來生成對應(yīng)的英語翻譯。

還有一個與此類似的結(jié)構(gòu)被用來做圖像描述,給出一張圖片,比如這張貓的圖片(上圖編號1所示),它能自動地輸出該圖片的描述,一只貓坐在椅子上,那么你如何訓(xùn)練出這樣的網(wǎng)絡(luò)?通過輸入圖像來輸出描述,像這個句子一樣。

方法如下,在之前的卷積網(wǎng)絡(luò)課程中,你已經(jīng)知道了如何將圖片輸入到卷積神經(jīng)網(wǎng)絡(luò)中,比如一個預(yù)訓(xùn)練的AlexNet結(jié)構(gòu)(上圖編號2方框所示),然后讓其學(xué)習(xí)圖片的編碼,或者學(xué)習(xí)圖片的一系列特征。現(xiàn)在幻燈片所展示的就是AlexNet結(jié)構(gòu),我們?nèi)サ糇詈蟮?strong>softmax單元(上圖編號3所示),這個預(yù)訓(xùn)練的AlexNet結(jié)構(gòu)會給你一個4096維的特征向量,向量表示的就是這只貓的圖片,所以這個預(yù)訓(xùn)練網(wǎng)絡(luò)可以是圖像的編碼網(wǎng)絡(luò)。現(xiàn)在你得到了一個4096維的向量來表示這張圖片,接著你可以把這個向量輸入到RNN中(上圖編號4方框所示),RNN要做的就是生成圖像的描述,每次生成一個單詞,這和我們在之前將法語譯為英語的機(jī)器翻譯中看到的結(jié)構(gòu)很像,現(xiàn)在你輸入一個描述輸入的特征向量,然后讓網(wǎng)絡(luò)生成一個輸出序列,或者說一個一個地輸出單詞序列。

事實證明在圖像描述領(lǐng)域,這種方法相當(dāng)有效,特別是當(dāng)你想生成的描述不是特別長時。據(jù)我所知,這種模型首先是由Junhua MaoWei XuYi YangJiang WangZhiheng HuangAlan Yuille提出的,盡管有幾個團(tuán)隊都幾乎在同一時間構(gòu)造出了非常相似的模型,因為還有另外兩個團(tuán)隊也在同一時間得出了相似的結(jié)論。我覺得有可能Mao的團(tuán)隊和Oriol VinyalsAlexander ToshevSamy BengioDumitru Erhan,還有Andrej KarpathyFei-Fei Yi是同一個團(tuán)隊。

現(xiàn)在你知道了基本的seq2seq模型是怎樣運作的,以及image to sequence模型或者說圖像描述模型是怎樣運作的。不過這兩個模型運作方式有一些不同,主要體現(xiàn)在如何用語言模型合成新的文本,并生成對應(yīng)序列的方面。一個主要的區(qū)別就是你大概不會想得到一個隨機(jī)選取的翻譯,你想要的是最準(zhǔn)確的翻譯,或者說你可能不想要一個隨機(jī)選取的描述,你想要的是最好的最貼切的描述,我們將在下節(jié)視頻中介紹如何生成這些序列。

3.2 選擇最可能的句子(Picking the most likely sentence)

seq2seq機(jī)器翻譯模型和我們在第一周課程所用的語言模型之間有很多相似的地方,但是它們之間也有許多重要的區(qū)別,讓我們來一探究竟。

你可以把機(jī)器翻譯想成是建立一個條件語言模型,在語言模型中上方是一個我們在第一周所建立的模型,這個模型可以讓你能夠估計句子的可能性,這就是語言模型所做的事情。你也可以將它用于生成一個新的句子,如果你在圖上的該處(下圖編號1所示),有和,那么在該例中,但是、等在這里并不重要。為了讓圖片看起來更簡潔,我把它們先抹去,可以理解為是一個全為0的向量,然后、等都等于之前所生成的輸出,這就是所說的語言模型。

而機(jī)器翻譯模型是下面這樣的,我這里用兩種不同的顏色來表示,即綠色和紫色,用綠色(上圖編號2所示)表示encoder網(wǎng)絡(luò),用紫色(上圖編號3所示)表示decoder網(wǎng)絡(luò)。你會發(fā)現(xiàn)decoder網(wǎng)絡(luò)看起來和剛才所畫的語言模型幾乎一模一樣,機(jī)器翻譯模型其實和語言模型非常相似,不同在于語言模型總是以零向量(上圖編號4所示)開始,而encoder網(wǎng)絡(luò)會計算出一系列向量(上圖編號2所示)來表示輸入的句子。有了這個輸入句子,decoder網(wǎng)絡(luò)就可以以這個句子開始,而不是以零向量開始,所以我把它叫做條件語言模型(conditional language model)。相比語言模型,輸出任意句子的概率,翻譯模型會輸出句子的英文翻譯(上圖編號5所示),這取決于輸入的法語句子(上圖編號6所示)。換句話說,你將估計一個英文翻譯的概率,比如估計這句英語翻譯的概率,"Jane is visiting Africa in September.",這句翻譯是取決于法語句子,"Jane visite I'Afrique en septembre.",這就是英語句子相對于輸入的法語句子的可能性,所以它是一個條件語言模型。

現(xiàn)在,假如你想真正地通過模型將法語翻譯成英文,通過輸入的法語句子模型將會告訴你各種英文翻譯所對應(yīng)的可能性。在這里是法語句子"Jane visite l'Afrique en septembre.",而它將告訴你不同的英語翻譯所對應(yīng)的概率。顯然你不想讓它隨機(jī)地進(jìn)行輸出,如果你從這個分布中進(jìn)行取樣得到,可能取樣一次就能得到很好的翻譯,"Jane is visiting Africa in September."。但是你可能也會得到一個截然不同的翻譯,"Jane is going to be visiting Africa in September.",這句話聽起來有些笨拙,但它不是一個糟糕的翻譯,只是不是最好的而已。有時你也會偶然地得到這樣的翻譯,"In September, Jane will visit Africa.",或者有時候你還會得到一個很糟糕的翻譯,"Her African friend welcomed Jane in September."。所以當(dāng)你使用這個模型來進(jìn)行機(jī)器翻譯時,你并不是從得到的分布中進(jìn)行隨機(jī)取樣,而是你要找到一個英語句子(上圖編號1所示),使得條件概率最大化。所以在開發(fā)機(jī)器翻譯系統(tǒng)時,你需要做的一件事就是想出一個算法,用來找出合適的值,使得該項最大化,而解決這種問題最通用的算法就是束搜索(Beam Search),你將會在下節(jié)課見到它。

不過在了解束搜索之前,你可能會問一個問題,為什么不用貪心搜索(Greedy Search)呢?貪心搜索是一種來自計算機(jī)科學(xué)的算法,生成第一個詞的分布以后,它將會根據(jù)你的條件語言模型挑選出最有可能的第一個詞進(jìn)入你的機(jī)器翻譯模型中,在挑選出第一個詞之后它將會繼續(xù)挑選出最有可能的第二個詞,然后繼續(xù)挑選第三個最有可能的詞,這種算法就叫做貪心搜索,但是你真正需要的是一次性挑選出整個單詞序列,從、到來使得整體的概率最大化。所以這種貪心算法先挑出最好的第一個詞,在這之后再挑最好的第二詞,然后再挑第三個,這種方法其實并不管用,為了證明這個觀點,我們來考慮下面兩種翻譯。

第一串(上圖編號1所示)翻譯明顯比第二個(上圖編號2所示)好,所以我們希望機(jī)器翻譯模型會說第一個句子的比第二個句子要高,第一個句子對于法語原文來說更好更簡潔,雖然第二個也不錯,但是有些啰嗦,里面有很多不重要的詞。但如果貪心算法挑選出了"Jane is"作為前兩個詞,因為在英語中going更加常見,于是對于法語句子來說"Jane is going"相比"Jane is visiting"會有更高的概率作為法語的翻譯,所以很有可能如果你僅僅根據(jù)前兩個詞來估計第三個詞的可能性,得到的就是going,最終你會得到一個欠佳的句子,在模型中這不是一個最好的選擇。

我知道這種說法可能比較粗略,但是它確實是一種廣泛的現(xiàn)象,當(dāng)你想得到單詞序列、一直到最后一個詞總體的概率時,一次僅僅挑選一個詞并不是最佳的選擇。當(dāng)然,在英語中各種詞匯的組合數(shù)量還有很多很多,如果你的字典中有10,000個單詞,并且你的翻譯可能有10個詞那么長,那么可能的組合就有10,000的10次方這么多,這僅僅是10個單詞的句子,從這樣大一個字典中來挑選單詞,所以可能的句子數(shù)量非常巨大,不可能去計算每一種組合的可能性。所以這時最常用的辦法就是用一個近似的搜索算法,這個近似的搜索算法做的就是它會盡力地,盡管不一定總會成功,但它將挑選出句子使得條件概率最大化,盡管它不能保證找到的值一定可以使概率最大化,但這已經(jīng)足夠了。

最后總結(jié)一下,在本視頻中,你看到了機(jī)器翻譯是如何用來解決條件語言模型問題的,這個模型和之前的語言模型一個主要的區(qū)別就是,相比之前的模型隨機(jī)地生成句子,在該模型中你要找到最有可能的英語句子,最可能的英語翻譯,但是可能的句子組合數(shù)量過于巨大,無法一一列舉,所以我們需要一種合適的搜索算法,讓我們在下節(jié)課中學(xué)習(xí)集束搜索。

3.3 集束搜索(Beam Search)

這節(jié)視頻中你會學(xué)到集束搜索(beam search)算法,上節(jié)視頻中我們講了對于機(jī)器翻譯來說,給定輸入,比如法語句子,你不會想要輸出一個隨機(jī)的英語翻譯結(jié)果,你想要一個最好的,最可能的英語翻譯結(jié)果。對于語音識別也一樣,給定一個輸入的語音片段,你不會想要一個隨機(jī)的文本翻譯結(jié)果,你想要最好的,最接近原意的翻譯結(jié)果,集束搜索就是解決這個最常用的算法。這節(jié)視頻里,你會明白怎么把集束搜索算法應(yīng)用到你自己的工作中,就用我們的法語句子的例子來試一下集束搜索吧。

Jane visite l'Afrique en Septembre.”(法語句子),我們希望翻譯成英語,"Jane is visiting Africa in September".(英語句子),集束搜索算法首先做的就是挑選要輸出的英語翻譯中的第一個單詞。這里我列出了10,000個詞的詞匯表(下圖編號1所示),為了簡化問題,我們忽略大小寫,所有的單詞都以小寫列出來。在集束搜索的第一步中我用這個網(wǎng)絡(luò)部分,綠色是編碼部分(下圖編號2所示),紫色是解碼部分(下圖編號3所示),來評估第一個單詞的概率值,給定輸入序列,即法語作為輸入,第一個輸出的概率值是多少。

貪婪算法只會挑出最可能的那一個單詞,然后繼續(xù)。而集束搜索則會考慮多個選擇,集束搜索算法會有一個參數(shù)B,叫做集束寬(beam width)。在這個例子中我把這個集束寬設(shè)成3,這樣就意味著集束搜索不會只考慮一個可能結(jié)果,而是一次會考慮3個,比如對第一個單詞有不同選擇的可能性,最后找到injaneseptember,是英語輸出的第一個單詞的最可能的三個選項,然后集束搜索算法會把結(jié)果存到計算機(jī)內(nèi)存里以便后面嘗試用這三個詞。如果集束寬設(shè)的不一樣,如果集束寬這個參數(shù)是10的話,那么我們跟蹤的不僅僅3個,而是10個第一個單詞的最可能的選擇。所以要明白,為了執(zhí)行集束搜索的第一步,你需要輸入法語句子到編碼網(wǎng)絡(luò),然后會解碼這個網(wǎng)絡(luò),這個softmax層(上圖編號3所示)會輸出10,000個概率值,得到這10,000個輸出的概率值,取前三個存起來。

讓我們看看集束搜索算法的第二步,已經(jīng)選出了injaneseptember作為第一個單詞三個最可能的選擇,集束算法接下來會針對每個第一個單詞考慮第二個單詞是什么,單詞in后面的第二個單詞可能是a或者是aaron,我就是從詞匯表里把這些詞列了出來,或者是列表里某個位置,september,可能是列表里的 visit,一直到字母z,最后一個單詞是zulu(下圖編號1所示)。

為了評估第二個詞的概率值,我們用這個神經(jīng)網(wǎng)絡(luò)的部分,綠色是編碼部分(上圖編號2所示),而對于解碼部分,當(dāng)決定單詞in后面是什么,別忘了解碼器的第一個輸出,我把設(shè)為單詞in(上圖編號3所示),然后把它喂回來,這里就是單詞in(上圖編號4所示),因為它的目的是努力找出第一個單詞是in的情況下,第二個單詞是什么。這個輸出就是(上圖編號5所示),有了這個連接(上圖編號6所示),就是這里的第一個單詞in(上圖編號4所示)作為輸入,這樣這個網(wǎng)絡(luò)就可以用來評估第二個單詞的概率了,在給定法語句子和翻譯結(jié)果的第一個單詞in的情況下。

注意,在第二步里我們更關(guān)心的是要找到最可能的第一個和第二個單詞對,所以不僅僅是第二個單詞有最大的概率,而是第一個、第二個單詞對有最大的概率(上圖編號7所示)。按照條件概率的準(zhǔn)則,這個可以表示成第一個單詞的概率(上圖編號8所示)乘以第二個單詞的概率(上圖編號9所示),這個可以從這個網(wǎng)絡(luò)部分里得到(上圖編號10所示),對于已經(jīng)選擇的injaneseptember這三個單詞,你可以先保存這個概率值(上圖編號8所示),然后再乘以第二個概率值(上圖編號9所示)就得到了第一個和第二個單詞對的概率(上圖編號7所示)。

現(xiàn)在你已經(jīng)知道在第一個單詞是in的情況下如何評估第二個單詞的概率,現(xiàn)在第一個單詞是jane,道理一樣,句子可能是"jane a"、"jane aaron",等等到"jane is"、"jane visits"等等(上圖編號1所示)。你會用這個新的網(wǎng)絡(luò)部分(上圖編號2所示),我在這里畫一條線,代表從,即jane,連接jane(上圖編號3所示),那么這個網(wǎng)絡(luò)部分就可以告訴你給定輸入和第一個詞是jane下,第二個單詞的概率了(上圖編號4所示),和上面一樣,你可以乘以得到。

針對第二個單詞所有10,000個不同的選擇,最后對于單詞september也一樣,從單詞a到單詞zulu,用這個網(wǎng)絡(luò)部分,我把它畫在這里。來看看如果第一個單詞是september,第二個單詞最可能是什么。所以對于集束搜索的第二步,由于我們一直用的集束寬為3,并且詞匯表里有10,000個單詞,那么最終我們會有3乘以10,000也就是30,000個可能的結(jié)果,因為這里(上圖編號1所示)是10,000,這里(上圖編號2所示)是10,000,這里(上圖編號3所示)是10,000,就是集束寬乘以詞匯表大小,你要做的就是評估這30,000個選擇。按照第一個詞和第二個詞的概率,然后選出前三個,這樣又減少了這30,000個可能性,又變成了3個,減少到集束寬的大小。假如這30,000個選擇里最可能的是“in September”(上圖編號4所示)和“jane is”(上圖編號5所示),以及“jane visits”(上圖編號6所示),畫的有點亂,但這就是這30,000個選擇里最可能的三個結(jié)果,集束搜索算法會保存這些結(jié)果,然后用于下一次集束搜索。

注意一件事情,如果集束搜索找到了第一個和第二個單詞對最可能的三個選擇是“in September”或者“jane is”或者“jane visits”,這就意味著我們?nèi)サ袅?strong>september作為英語翻譯結(jié)果的第一個單詞的選擇,所以我們的第一個單詞現(xiàn)在減少到了兩個可能結(jié)果,但是我們的集束寬是3,所以還是有,對的三個選擇。

在我們進(jìn)入集束搜索的第三步之前,我還想提醒一下因為我們的集束寬等于3,每一步我們都復(fù)制3個,同樣的這種網(wǎng)絡(luò)來評估部分句子和最后的結(jié)果,由于集束寬等于3,我們有三個網(wǎng)絡(luò)副本(上圖編號7所示),每個網(wǎng)絡(luò)的第一個單詞不同,而這三個網(wǎng)絡(luò)可以高效地評估第二個單詞所有的30,000個選擇。所以不需要初始化30,000個網(wǎng)絡(luò)副本,只需要使用3個網(wǎng)絡(luò)的副本就可以快速的評估softmax的輸出,即的10,000個結(jié)果。

讓我們快速解釋一下集束搜索的下一步,前面說過前兩個單詞最可能的選擇是“in September”和“jane is”以及“jane visits”,對于每一對單詞我們應(yīng)該保存起來,給定輸入,即法語句子作為的情況下,和的概率值和前面一樣,現(xiàn)在我們考慮第三個單詞是什么,可以是“in September a”,可以是“in September aaron”,一直到“in September zulu”。為了評估第三個單詞可能的選擇,我們用這個網(wǎng)絡(luò)部分,第一單詞是in(上圖編號1所示),第二個單詞是september(上圖編號2所示),所以這個網(wǎng)絡(luò)部分可以用來評估第三個單詞的概率,在給定輸入的法語句子和給定的英語輸出的前兩個單詞“in September”情況下(上圖編號3所示)。對于第二個片段來說也一樣,就像這樣一樣(上圖編號4所示),對于“jane visits”也一樣,然后集束搜索還是會挑選出針對前三個詞的三個最可能的選擇,可能是“in september jane”(上圖編號5所示),“Jane is visiting”也很有可能(上圖編號6所示),也很可能是“Jane visits Africa”(上圖編號7所示)。

然后繼續(xù),接著進(jìn)行集束搜索的第四步,再加一個單詞繼續(xù),最終這個過程的輸出一次增加一個單詞,集束搜索最終會找到“Jane visits africa in september”這個句子,終止在句尾符號(上圖編號8所示),用這種符號的系統(tǒng)非常常見,它們會發(fā)現(xiàn)這是最有可能輸出的一個英語句子。在本周的練習(xí)中,你會看到更多的執(zhí)行細(xì)節(jié),同時,你會運用到這個集束算法,在集束寬為3時,集束搜索一次只考慮3個可能結(jié)果。注意如果集束寬等于1,只考慮1種可能結(jié)果,這實際上就變成了貪婪搜索算法,上個視頻里我們已經(jīng)討論過了。但是如果同時考慮多個,可能的結(jié)果比如3個,10個或者其他的個數(shù),集束搜索通常會找到比貪婪搜索更好的輸出結(jié)果。

你已經(jīng)了解集束搜索是如何工作的了,事實上還有一些額外的提示和技巧的改進(jìn)能夠使集束算法更高效,我們在下個視頻中一探究竟。

3.4 改進(jìn)集束搜索(Refinements to Beam Search)

上個視頻中, 你已經(jīng)學(xué)到了基本的束搜索算法(the basic beam search algorithm),這個視頻里,我們會學(xué)到一些技巧, 能夠使算法運行的更好。長度歸一化(Length normalization)就是對束搜索算法稍作調(diào)整的一種方式,幫助你得到更好的結(jié)果,下面介紹一下它。

前面講到束搜索就是最大化這個概率,這個乘積就是,可以表示成:??…

這些符號看起來可能比實際上嚇人,但這就是我們之前見到的乘積概率(the product probabilities)。如果計算這些,其實這些概率值都是小于1的,通常遠(yuǎn)小于1。很多小于1的數(shù)乘起來,會得到很小很小的數(shù)字,會造成數(shù)值下溢(numerical underflow)。數(shù)值下溢就是數(shù)值太小了,導(dǎo)致電腦的浮點表示不能精確地儲存,因此在實踐中,我們不會最大化這個乘積,而是取值。如果在這加上一個,最大化這個求和的概率值,在選擇最可能的句子時,你會得到同樣的結(jié)果。所以通過取,我們會得到一個數(shù)值上更穩(wěn)定的算法,不容易出現(xiàn)四舍五入的誤差,數(shù)值的舍入誤差(rounding errors)或者說數(shù)值下溢(numerical underflow)。因為函數(shù)它是嚴(yán)格單調(diào)遞增的函數(shù),最大化,因為對數(shù)函數(shù),這就是函數(shù),是嚴(yán)格單調(diào)遞增的函數(shù),所以最大化和最大化結(jié)果一樣。如果一個值能夠使前者最大,就肯定能使后者也取最大。所以實際工作中,我們總是記錄概率的對數(shù)和(the sum of logs of the probabilities),而不是概率的乘積(the production of probabilities)。

對于目標(biāo)函數(shù)(this objective function),還可以做一些改變,可以使得機(jī)器翻譯表現(xiàn)的更好。如果參照原來的目標(biāo)函數(shù)(this original objective),如果有一個很長的句子,那么這個句子的概率會很低,因為乘了很多項小于1的數(shù)字來估計句子的概率。所以如果乘起來很多小于1的數(shù)字,那么就會得到一個更小的概率值,所以這個目標(biāo)函數(shù)有一個缺點,它可能不自然地傾向于簡短的翻譯結(jié)果,它更偏向短的輸出,因為短句子的概率是由更少數(shù)量的小于1的數(shù)字乘積得到的,所以這個乘積不會那么小。順便說一下,這里也有同樣的問題,概率的值通常小于等于1,實際上在的這個范圍內(nèi),所以加起來的項越多,得到的結(jié)果越負(fù),所以對這個算法另一個改變也可以使它表現(xiàn)的更好,也就是我們不再最大化這個目標(biāo)函數(shù)了,我們可以把它歸一化,通過除以翻譯結(jié)果的單詞數(shù)量(normalize this by the number of words in your translation)。這樣就是取每個單詞的概率對數(shù)值的平均了,這樣很明顯地減少了對輸出長的結(jié)果的懲罰(this significantly reduces the penalty for outputting longer translations.)。

在實踐中,有個探索性的方法,相比于直接除,也就是輸出句子的單詞總數(shù),我們有時會用一個更柔和的方法(a softer approach),在上加上指數(shù),可以等于0.7。如果等于1,就相當(dāng)于完全用長度來歸一化,如果等于0,的0次冪就是1,就相當(dāng)于完全沒有歸一化,這就是在完全歸一化和沒有歸一化之間。就是算法另一個超參數(shù)(hyper parameter),需要調(diào)整大小來得到最好的結(jié)果。不得不承認(rèn),這樣用實際上是試探性的,它并沒有理論驗證。但是大家都發(fā)現(xiàn)效果很好,大家都發(fā)現(xiàn)實踐中效果不錯,所以很多人都會這么做。你可以嘗試不同的值,看看哪一個能夠得到最好的結(jié)果。

總結(jié)一下如何運行束搜索算法。當(dāng)你運行束搜索時,你會看到很多長度等于1的句子,很多長度等于2的句子,很多長度等于3的句子,等等。可能運行束搜索30步,考慮輸出的句子可能達(dá)到,比如長度30。因為束寬為3,你會記錄所有這些可能的句子長度,長度為1、2、 3、 4 等等一直到30的三個最可能的選擇。然后針對這些所有的可能的輸出句子,用這個式子(上圖編號1所示)給它們打分,取概率最大的幾個句子,然后對這些束搜索得到的句子,計算這個目標(biāo)函數(shù)。最后從經(jīng)過評估的這些句子中,挑選出在歸一化的?概率目標(biāo)函數(shù)上得分最高的一個(you pick the one that achieves the highest value on this normalized log probability objective.),有時這個也叫作歸一化的對數(shù)似然目標(biāo)函數(shù)a normalized log likelihood objective)。這就是最終輸出的翻譯結(jié)果,這就是如何實現(xiàn)束搜索。這周的練習(xí)中你會自己實現(xiàn)這個算法。

最后還有一些實現(xiàn)的細(xì)節(jié),如何選擇束寬BB越大,你考慮的選擇越多,你找到的句子可能越好,但是B越大,你的算法的計算代價越大,因為你要把很多的可能選擇保存起來。最后我們總結(jié)一下關(guān)于如何選擇束寬B的一些想法。接下來是針對或大或小的B各自的優(yōu)缺點。如果束寬很大,你會考慮很多的可能,你會得到一個更好的結(jié)果,因為你要考慮很多的選擇,但是算法會運行的慢一些,內(nèi)存占用也會增大,計算起來會慢一點。而如果你用小的束寬,結(jié)果會沒那么好,因為你在算法運行中,保存的選擇更少,但是你的算法運行的更快,內(nèi)存占用也小。在前面視頻里,我們例子中用了束寬為3,所以會保存3個可能選擇,在實踐中這個值有點偏小。在產(chǎn)品中,經(jīng)常可以看到把束寬設(shè)到10,我認(rèn)為束寬為100對于產(chǎn)品系統(tǒng)來說有點大了,這也取決于不同應(yīng)用。但是對科研而言,人們想壓榨出全部性能,這樣有個最好的結(jié)果用來發(fā)論文,也經(jīng)常看到大家用束寬為1000或者3000,這也是取決于特定的應(yīng)用和特定的領(lǐng)域。在你實現(xiàn)你的應(yīng)用時,嘗試不同的束寬的值,當(dāng)B很大的時候,性能提高會越來越少。對于很多應(yīng)用來說,從束寬1,也就是貪心算法,到束寬為3、到10,你會看到一個很大的改善。但是當(dāng)束寬從1000增加到3000時,效果就沒那么明顯了。對于之前上過計算機(jī)科學(xué)課程的同學(xué)來說,如果你熟悉計算機(jī)科學(xué)里的搜索算法(computer science search algorithms), 比如廣度優(yōu)先搜索(BFS, Breadth First Search algorithms),或者深度優(yōu)先搜索(DFS, Depth First Search),你可以這樣想束搜索,不像其他你在計算機(jī)科學(xué)算法課程中學(xué)到的算法一樣。如果你沒聽說過這些算法也不要緊,但是如果你聽說過廣度優(yōu)先搜索和深度優(yōu)先搜索,不同于這些算法,這些都是精確的搜索算法(exact search algorithms),束搜索運行的更快,但是不能保證一定能找到argmax的準(zhǔn)確的最大值。如果你沒聽說過廣度優(yōu)先搜索和深度優(yōu)先搜索,也不用擔(dān)心,這些對于我們的目標(biāo)也不重要,如果你聽說過,這就是束搜索和其他算法的關(guān)系。

好,這就是束搜索。這個算法廣泛應(yīng)用在多產(chǎn)品系統(tǒng)或者許多商業(yè)系統(tǒng)上,在深度學(xué)習(xí)系列課程中的第三門課中,我們討論了很多關(guān)于誤差分析(error analysis)的問題。事實上在束搜索上做誤差分析是我發(fā)現(xiàn)的最有用的工具之一。有時你想知道是否應(yīng)該增大束寬,我的束寬是否足夠好,你可以計算一些簡單的東西來指導(dǎo)你需要做什么,來改進(jìn)你的搜索算法。我們在下個視頻里進(jìn)一步討論。

3.5 集束搜索的誤差分析(Error analysis in beam search)

在這五門課中的第三門課里,你了解了誤差分析是如何能夠幫助你集中時間做你的項目中最有用的工作,束搜索算法是一種近似搜索算法(an approximate search algorithm),也被稱作啟發(fā)式搜索算法(a heuristic search algorithm),它不總是輸出可能性最大的句子,它僅記錄著B為前3或者10或是100種可能。那么如果束搜索算法出現(xiàn)錯誤會怎樣呢?

本節(jié)視頻中,你將會學(xué)習(xí)到誤差分析和束搜索算法是如何相互起作用的,以及你怎樣才能發(fā)現(xiàn)是束搜索算法出現(xiàn)了問題,需要花時間解決,還是你的RNN模型出了問題,要花時間解決。我們先來看看如何對束搜索算法進(jìn)行誤差分析。

我們來用這個例子說明:“Jane visite l'Afrique en septembre”。假如說,在你的機(jī)器翻譯的dev集中,也就是開發(fā)集(development set),人工是這樣翻譯的: Jane visits Africa in September,我會將這個標(biāo)記為。這是一個十分不錯的人工翻譯結(jié)果,不過假如說,當(dāng)你在已經(jīng)完成學(xué)習(xí)的RNN模型,也就是已完成學(xué)習(xí)的翻譯模型中運行束搜索算法時,它輸出了這個翻譯結(jié)果:Jane visited Africa last September,我們將它標(biāo)記為。這是一個十分糟糕的翻譯,它實際上改變了句子的原意,因此這不是個好翻譯。

你的模型有兩個主要部分,一個是神經(jīng)網(wǎng)絡(luò)模型,或說是序列到序列模型(sequence to sequence model),我們將這個稱作是RNN模型,它實際上是個編碼器和解碼器( an encoder and a decoder)。另一部分是束搜索算法,以某個集束寬度B運行。如果你能夠找出造成這個錯誤,這個不太好的翻譯的原因,是兩個部分中的哪一個,不是很好嗎? RNN (循環(huán)神經(jīng)網(wǎng)絡(luò))是更可能是出錯的原因呢,還是束搜索算法更可能是出錯的原因呢?你在第三門課中了解到了大家很容易想到去收集更多的訓(xùn)練數(shù)據(jù),這總歸沒什么壞處。所以同樣的,大家也會覺得不行就增大束寬,也是不會錯的,或者說是很大可能是沒有危害的。但是就像單純獲取更多訓(xùn)練數(shù)據(jù),可能并不能得到預(yù)期的表現(xiàn)結(jié)果。相同的,單純增大束寬也可能得不到你想要的結(jié)果,不過你怎樣才能知道是不是值得花時間去改進(jìn)搜索算法呢? 下面我們來分解這個問題弄清楚什么情況下該用什么解決辦法。

RNN (循環(huán)神經(jīng)網(wǎng)絡(luò))實際上是個編碼器和解碼器(the encoder and the decoder),它會計算。所以舉個例子,對于這個句子:Jane visits Africa in September,你將Jane visits Africa填入這里(上圖編號1所示),同樣,我現(xiàn)在忽略了字母的大小寫,后面也是一樣,然后這個就會計算。結(jié)果表明,你此時能做的最有效的事就是用這個模型來計算,同時也用你的RNN模型來計算,然后比較一下這兩個值哪個更大。有可能是左邊大于右邊,也有可能是小于,其實應(yīng)該是小于或等于,對吧。取決于實際是哪種情況,你就能夠更清楚地將這個特定的錯誤歸咎于RNN或是束搜索算法,或說是哪個負(fù)有更大的責(zé)任。我們來探究一下其中的邏輯。

這是之前幻燈片里的兩個句子。記住,我們是要計算和,然后比較這兩個哪個更大,所以就會有兩種情況。

第一種情況,RNN模型的輸出結(jié)果?大于,這意味著什么呢? 束搜索算法選擇了?,對吧? 你得到的方式是,你用一個RNN模型來計算,然后束搜索算法做的就是嘗試尋找使最大的,不過在這種情況下,相比于,的值更大,因此你能夠得出束搜索算法實際上不能夠給你一個能使最大化的值,因為束搜索算法的任務(wù)就是尋找一個的值來使這項更大,但是它卻選擇了,而實際上能得到更大的值。因此這種情況下你能夠得出是束搜索算法出錯了。那另一種情況是怎樣的呢?

第二種情況是小于或等于對吧?這兩者之中總有一個是真的。情況1或是情況2總有一個為真。情況2你能夠總結(jié)出什么呢? 在我們的例子中,?是比?更好的翻譯結(jié)果,不過根據(jù)RNN模型的結(jié)果,?是小于的,也就是說,相比于,成為輸出的可能更小。因此在這種情況下,看來是RNN模型出了問題。同時可能值得在RNN模型上花更多時間。這里我少講了一些有關(guān)長度歸一化(length normalizations)的細(xì)節(jié)。這里我略過了有關(guān)長度歸一化的細(xì)節(jié),如果你用了某種長度歸一化,那么你要做的就不是比較這兩種可能性大小,而是比較長度歸一化后的最優(yōu)化目標(biāo)函數(shù)值。不過現(xiàn)在先忽略這種復(fù)雜的情況。第二種情況表明雖然是一個更好的翻譯結(jié)果,RNN模型卻賦予它更低的可能性,是RNN模型出現(xiàn)了問題。

所以誤差分析過程看起來就像下面這樣。你先遍歷開發(fā)集,然后在其中找出算法產(chǎn)生的錯誤,這個例子中,假如說的值為2 x 10-10,而的值為 1 x10-10,根據(jù)上頁幻燈片中的邏輯關(guān)系,這種情況下我們得知束搜索算法實際上選擇了比可能性更低的,因此我會說束搜索算法出錯了。我將它縮寫為B。接著你繼續(xù)遍歷第二個錯誤,再來看這些可能性。也許對于第二個例子來說,你認(rèn)為是RNN模型出現(xiàn)了問題,我會用縮寫R來代表RNN。再接著你遍歷了更多的例子,有時是束搜索算法出現(xiàn)了問題,有時是模型出現(xiàn)了問題,等等。通過這個過程,你就能夠執(zhí)行誤差分析,得出束搜索算法和RNN模型出錯的比例是多少。有了這樣的誤差分析過程,你就可以對開發(fā)集中每一個錯誤例子,即算法輸出了比人工翻譯更差的結(jié)果的情況,嘗試確定這些錯誤,是搜索算法出了問題,還是生成目標(biāo)函數(shù)(束搜索算法使之最大化)的RNN模型出了問題。并且通過這個過程,你能夠發(fā)現(xiàn)這兩個部分中哪個是產(chǎn)生更多錯誤的原因,并且只有當(dāng)你發(fā)現(xiàn)是束搜索算法造成了大部分錯誤時,才值得花費努力增大集束寬度。相反地,如果你發(fā)現(xiàn)是RNN模型出了更多錯,那么你可以進(jìn)行更深層次的分析,來決定是需要增加正則化還是獲取更多的訓(xùn)練數(shù)據(jù),抑或是嘗試一個不同的網(wǎng)絡(luò)結(jié)構(gòu),或是其他方案。你在第三門課中,了解到各種技巧都能夠應(yīng)用在這里。

這就是束搜索算法中的誤差分析,我認(rèn)為這個特定的誤差分析過程是十分有用的,它可以用于分析近似最佳算法(如束搜索算法),這些算法被用來優(yōu)化學(xué)習(xí)算法(例如序列到序列模型/RNN)輸出的目標(biāo)函數(shù)。也就是我們這些課中一直討論的。學(xué)會了這個方法,我希望你能夠在你的應(yīng)用里更有效地運用好這些類型的模型。

3.6 Bleu 得分(選修)(Bleu Score (optional))

機(jī)器翻譯(machine translation)的一大難題是一個法語句子可以有多種英文翻譯而且都同樣好,所以當(dāng)有多個同樣好的答案時,怎樣評估一個機(jī)器翻譯系統(tǒng)呢?不像圖像識別(image recognition),只有一個正確答案,就只要測量準(zhǔn)確性就可以了。如果有多個不錯的答案,要怎樣衡量準(zhǔn)確性呢? 常見的解決辦法是,通過一個叫做BLEU得分(the BLEU score)的東西來解決。所以,在這個選修視頻中,我想與你分享,我想讓你了解BLEU得分是怎樣工作的。

假如給你一個法語句子:Le chat est sur le tapis,然后給你一個這個句子的人工翻譯作參考:The cat is on the mat。不過有多種相當(dāng)不錯的翻譯。所以一個不同的人,也許會將其翻譯為:There is a cat on the mat,同時,實際上這兩個都是很好的,都準(zhǔn)確地翻譯了這個法語句子。BLEU得分做的就是,給定一個機(jī)器生成的翻譯,它能夠自動地計算一個分?jǐn)?shù)來衡量機(jī)器翻譯的好壞。直覺告訴我們,只要這個機(jī)器生成的翻譯與任何一個人工翻譯的結(jié)果足夠接近,那么它就會得到一個高的BLEU分?jǐn)?shù)。順便提一下BLEU代表bilingual evaluation understudy (雙語評估替補(bǔ))。在戲劇界,侯補(bǔ)演員(understudy)學(xué)習(xí)資深的演員的角色,這樣在必要的時候,他們就能夠接替這些資深演員。而BLEU的初衷是相對于請評估員(ask human evaluators),人工評估機(jī)器翻譯系統(tǒng)(the machine translation system),BLEU得分就相當(dāng)于一個侯補(bǔ)者,它可以代替人類來評估機(jī)器翻譯的每一個輸出結(jié)果。BLEU得分是由Kishore Papineni, Salim RoukosTodd WardWei-Jing Zhu發(fā)表的這篇論文十分有影響力并且實際上也是一篇很好讀的文章。所以如果有時間的話,我推薦你讀一下。BLEU得分背后的理念是觀察機(jī)器生成的翻譯,然后看生成的詞是否出現(xiàn)在少一個人工翻譯參考之中。因此這些人工翻譯的參考會包含在開發(fā)集或是測試集中。

參考論文Papineni, Kishore& Roukos, Salim & Ward, Todd & Zhu, Wei-jing. (2002). BLEU: a Method for Automatic Evaluation of Machine Translation.10.3115/1073083.1073135.

現(xiàn)在,我們來看一個極端的例子。我們假設(shè)機(jī)器翻譯系統(tǒng)縮寫為MT。機(jī)器翻譯 (MT)的輸出是:the the the the the the the。這顯然是一個十分糟糕的翻譯。衡量機(jī)器翻譯輸出質(zhì)量的方法之一是觀察輸出結(jié)果的每一個詞看其是否出現(xiàn)在參考中,這被稱做是機(jī)器翻譯的精確度(a precision of the machine translation output)。這個情況下,機(jī)器翻譯輸出了七個單詞并且這七個詞中的每一個都出現(xiàn)在了參考1或是參考2。單詞the在兩個參考中都出現(xiàn)了,所以看上去每個詞都是很合理的。因此這個輸出的精確度就是7/7,看起來是一個極好的精確度。這就是為什么把出現(xiàn)在參考中的詞在MT輸出的所有詞中所占的比例作為精確度評估標(biāo)準(zhǔn)并不是很有用的原因。因為它似乎意味著,例子中MT輸出的翻譯有很高的精確度,因此取而代之的是我們要用的這個改良后的精確度評估方法,我們把每一個單詞的記分上限定為它在參考句子中出現(xiàn)的最多次數(shù)。在參考1中,單詞the出現(xiàn)了兩次,在參考2中,單詞the只出現(xiàn)了一次。而2比1大,所以我們會說,單詞the的得分上限為2。有了這個改良后的精確度,我們就說,這個輸出句子的得分為2/7,因為在7個詞中,我們最多只能給它2分。所以這里分母就是7個詞中單詞the總共出現(xiàn)的次數(shù),而分子就是單詞the出現(xiàn)的計數(shù)。我們在達(dá)到上限時截斷計數(shù),這就是改良后的精確度評估(the modified precision measure)。

到目前為止,我們都只是關(guān)注單獨的單詞,在BLEU得分中,你不想僅僅考慮單個的單詞,你也許也想考慮成對的單詞,我們定義一下二元詞組(bigrams)的BLEU得分。bigram的意思就是相鄰的兩個單詞。現(xiàn)在我們來看看怎樣用二元詞組來定義BLEU得分,并且這僅僅只是最終的BLEU得分的一部分。我們會考慮一元詞組(unigrams)也就是單個單詞以及二元詞組(bigrams),即成對的詞,同時也許會有更長的單詞序列,比如說三元詞組(trigrams)。意思是三個挨在一起的詞。我們繼續(xù)剛才的例子,還是前面出現(xiàn)過的參考1和2,不過現(xiàn)在我們假定機(jī)器翻譯輸出了稍微好一點的翻譯:The cat the cat on the mat,仍然不是一個好的翻譯,不過也許比上一個好一些。這里,可能的二元詞組有the cat ,忽略大小寫,接著是cat the, 這是另一個二元詞組,然后又是the cat。不過我已經(jīng)有了,所以我們跳過它,然后下一個是cat on,然后是on the,再然后是the mat。所以這些就是機(jī)器翻譯中的二元詞組。好,我們來數(shù)一數(shù)每個二元詞組出現(xiàn)了多少次。the cat出現(xiàn)了兩次 ,cat the出現(xiàn)了一次,剩下的都只出現(xiàn)了一次。最后 ,我們來定義一下截取計數(shù)(the clipped count)。也就是Count_clip。為了定義它,我們以這列的值為基礎(chǔ),但是給算法設(shè)置得分上限,上限值為二元詞組出現(xiàn)在參考1或2中的最大次數(shù)。the cat在兩個參考中最多出現(xiàn)一次,所以我將截取它的計數(shù)為1。cat the它并沒有出現(xiàn)在參考1和參考2中,所以我將它截取為0。cat on ,好,它出現(xiàn)了一次,我們就記1分。on the出現(xiàn)一次就記1分,the mat出現(xiàn)了一次,所以這些就是截取完的計數(shù)(the clipped counts)。我們把所有的這些計數(shù)都截取了一遍,實際上就是將它們降低使之不大于二元詞組出現(xiàn)在參考中的次數(shù)。最后,修改后的二元詞組的精確度就是count_clip之和。因此那就是4除以二元詞組的總個數(shù),也就是6。因此是4/6也就是2/3為二元詞組改良后的精確度。

現(xiàn)在我們將它公式化。基于我們在一元詞組中學(xué)到的內(nèi)容,我們將改良后的一元詞組精確度定義為,代表的是精確度。這里的下標(biāo)1的意思是一元詞組。不過它定義為一元詞組之和,也就是對機(jī)器翻譯結(jié)果中所有單詞求和,MT 輸出就是,Countclip(unigram)。除以機(jī)器翻譯輸出中的一元詞組出現(xiàn)次數(shù)之和。因此這個就是最終結(jié)果應(yīng)該是兩頁幻燈片前得到的2/7。這里的1指代的是一元詞組,意思是我們在考慮單獨的詞,你也可以定義為元詞組精確度,用n-gram替代掉一元詞組。所以這就是機(jī)器翻譯輸出中的元詞組的countclip之和除以元詞組的出現(xiàn)次數(shù)之和。因此這些精確度或說是這些改良后的精確度得分評估的是一元詞組或是二元詞組。就是我們前頁幻燈片中做的,或者是三元詞組,也就是由三個詞組成的,甚至是取更大數(shù)值的元詞組。這個方法都能夠讓你衡量機(jī)器翻譯輸出中與參考相似重復(fù)的程度。另外,你能夠確信如果機(jī)器翻譯輸出與參考1或是參考2完全一致的話,那么所有的這些、等等的值,都會等于1.0。為了得到改良后的1.0的精確度,只要你的輸出與參考之一完全相同就能滿足,不過有時即使輸出結(jié)果并不完全與參考相同,這也是有可能實現(xiàn)的。你可以將它們以另一種方式組合,但愿仍能得到不錯的翻譯結(jié)果。

最后,我們將這些組合一下來構(gòu)成最終的BLEU得分。就是元詞組這一項的BLEU得分,也是計算出的元詞組改良后的精確度,按照慣例,為了用一個值來表示你需要計算,,?,。然后將它們用這個公式組合在一起,就是取平均值。按照慣例BLEU得分被定義為,,對這個線性運算進(jìn)行乘方運算,乘方是嚴(yán)格單調(diào)遞增的運算,我們實際上會用額外的一個叫做BP 的懲罰因子(the BP penalty)來調(diào)整這項。BP的意思是“簡短懲罰”( brevity penalty)。這些細(xì)節(jié)也許并不是十分重要,但是你可以大致了解一下。事實表明,如果你輸出了一個非常短的翻譯,那么它會更容易得到一個高精確度。因為輸出的大部分詞可能都出現(xiàn)在參考之中,不過我們并不想要特別短的翻譯結(jié)果。因此簡短懲罰(BP)就是一個調(diào)整因子,它能夠懲罰輸出了太短翻譯結(jié)果的翻譯系統(tǒng)。BP的公式如上圖所示。如果你的機(jī)器翻譯系統(tǒng)實際上輸出了比人工翻譯結(jié)果更長的翻譯,那么它就等于1,其他情況下就是像這樣的公式,懲罰所有更短的翻譯,細(xì)節(jié)部分你能夠在這篇論文中找到。

再說一句,在之前的視頻中,你了解了擁有單一實數(shù)評估指標(biāo)(a single real number evaluation metric)的重要性,因為它能夠讓你嘗試兩種想法,然后看一下哪個得分更高,盡量選擇得分更高的那個,BLEU得分對于機(jī)器翻譯來說,具有革命性的原因是因為它有一個相當(dāng)不錯的雖然不是完美的但是非常好的單一實數(shù)評估指標(biāo),因此它加快了整個機(jī)器翻譯領(lǐng)域的進(jìn)程,我希望這節(jié)視頻能夠讓你了解BLEU得分是如何操作的。實踐中,很少人會從零實現(xiàn)一個BLEU得分(implement a BLEU score from scratch),有很多開源的實現(xiàn)結(jié)果,你可以下載下來然后直接用來評估你的系統(tǒng)。不過今天,BLEU得分被用來評估許多生成文本的系統(tǒng)(systems that generate text),比如說機(jī)器翻譯系統(tǒng)(machine translation systems),也有我之前簡單提到的圖像描述系統(tǒng)(image captioning systems)。也就是說你會用神經(jīng)網(wǎng)絡(luò)來生成圖像描述,然后使用BLEU得分來看一下,結(jié)果在多大程度上與參考描述或是多個人工完成的參考描述內(nèi)容相符。BLEU得分是一個有用的單一實數(shù)評估指標(biāo),用于評估生成文本的算法,判斷輸出的結(jié)果是否與人工寫出的參考文本的含義相似。不過它并沒有用于語音識別(speech recognition)。因為在語音識別當(dāng)中,通常只有一個答案,你可以用其他的評估方法,來看一下你的語音識別結(jié)果,是否十分相近或是字字正確(pretty much, exactly word for word correct)。不過在圖像描述應(yīng)用中,對于同一圖片的不同描述,可能是同樣好的。或者對于機(jī)器翻譯來說,有多個一樣好的翻譯結(jié)果,BLEU得分就給了你一個能夠自動評估的方法,幫助加快算法開發(fā)進(jìn)程。說了這么多,希望你明白了BLEU得分是怎么運行的。

3.7 注意力模型直觀理解(Attention Model Intuition)

在本周大部分時間中,你都在使用這個編碼解碼的構(gòu)架(a Encoder-Decoder architecture)來完成機(jī)器翻譯。當(dāng)你使用RNN讀一個句子,于是另一個會輸出一個句子。我們要對其做一些改變,稱為注意力模型(the Attention Model),并且這會使它工作得更好。注意力模型或者說注意力這種思想(The attention algorithm, the attention idea)已經(jīng)是深度學(xué)習(xí)中最重要的思想之一,我們看看它是怎么運作的。

像這樣給定一個很長的法語句子,在你的神經(jīng)網(wǎng)絡(luò)中,這個綠色的編碼器要做的就是讀整個句子,然后記憶整個句子,再在感知機(jī)中傳遞(to read in the whole sentence and then memorize the whole sentences and store it in the activations conveyed her)。而對于這個紫色的神經(jīng)網(wǎng)絡(luò),即解碼網(wǎng)絡(luò)(the decoder network)將生成英文翻譯,Jane去年九月去了非洲,非常享受非洲文化,遇到了很多奇妙的人,她回來就嚷嚷道,她經(jīng)歷了一個多棒的旅行,并邀請我也一起去。人工翻譯并不會通過讀整個法語句子,再記憶里面的東西,然后從零開始,機(jī)械式地翻譯成一個英語句子。而人工翻譯,首先會做的可能是先翻譯出句子的部分,再看下一部分,并翻譯這一部分。看一部分,翻譯一部分,一直這樣下去。你會通過句子,一點一點地翻譯,因為記憶整個的像這樣的的句子是非常困難的。你在下面這個編碼解碼結(jié)構(gòu)中,會看到它對于短句子效果非常好,于是它會有一個相對高的Bleu分(Bleu score),但是對于長句子而言,比如說大于30或者40詞的句子,它的表現(xiàn)就會變差。Bleu評分看起來就會像是這樣,隨著單詞數(shù)量變化,短的句子會難以翻譯,因為很難得到所有詞。對于長的句子,效果也不好,因為在神經(jīng)網(wǎng)絡(luò)中,記憶非常長句子是非常困難的。在這個和下個視頻中,你會見識到注意力模型,它翻譯得很像人類,一次翻譯句子的一部分。而且有了注意力模型,機(jī)器翻譯系統(tǒng)的表現(xiàn)會像這個一樣,因為翻譯只會翻譯句子的一部分,你不會看到這個有一個巨大的下傾(huge dip),這個下傾實際上衡量了神經(jīng)網(wǎng)絡(luò)記憶一個長句子的能力,這是我們不希望神經(jīng)網(wǎng)絡(luò)去做的事情。在這個視頻中,我想要給你們注意力機(jī)制運行的一些直觀的東西。然后在下個視頻中,完善細(xì)節(jié)。

注意力模型源于Dimitri, Bahdanau, Camcrun Cho, Yoshe Bengio。(Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science,2014.)雖然這個模型源于機(jī)器翻譯,但它也推廣到了其他應(yīng)用領(lǐng)域。我認(rèn)為在深度學(xué)習(xí)領(lǐng)域,這個是個非常有影響力的,非常具有開創(chuàng)性的論文。

讓我們用一個短句舉例說明一下,即使這些思想可能是應(yīng)用于更長的句子。但是用短句來舉例說明,講解這些思想會更簡單。我們有一個很平常的句子:(法語)Jane visite l'Afrique en Septembre。假定我們使用RNN,在這個情況中,我們將使用一個雙向的RNNa bidirectional RNN),為了計算每個輸入單詞的的特征集(set of features),你必須要理解輸出到一直到的雙向RNN。但是我們并不是只翻譯一個單詞,讓我們先去掉上面的,就用雙向的RNN。我們要對單詞做的就是,對于句子里的每五個單詞,計算一個句子中單詞的特征集,也有可能是周圍的詞,讓我們試試,生成英文翻譯。我們將使用另一個RNN生成英文翻譯,這是我平時用的RNN記號。我不用來表示感知機(jī)(the activation),這是為了避免和這里的感知機(jī)(the activations)混淆。我會用另一個不同的記號,我會用來表示RNN的隱藏狀態(tài)(the hidden state in this RNN),不用,而是用。我們希望在這個模型里第一個生成的單詞將會是Jane,為了生成Jane visits Africa in September。于是等式就是,當(dāng)你嘗試生成第一個詞,即輸出,那么我們應(yīng)該看輸入的法語句子的哪個部分?似乎你應(yīng)該先看第一個單詞,或者它附近的詞。但是你別看太遠(yuǎn)了,比如說看到句尾去了。所以注意力模型就會計算注意力權(quán)重(a set of attention weights),我們將用來表示當(dāng)你生成第一個詞時你應(yīng)該放多少注意力在這個第一塊信息處。然后我們算第二個,這個叫注意力權(quán)重,它告訴我們當(dāng)你嘗試去計算第一個詞Jane時,我們應(yīng)該花多少注意力在輸入的第二個詞上面。同理這里是,接下去也同理。這些將會告訴我們,我們應(yīng)該花多少注意力在記號為的內(nèi)容上。這就是RNN的一個單元,如何嘗試生成第一個詞的,這是RNN的其中一步,我們將會在下個視頻中講解細(xì)節(jié)。對于RNN的第二步,我們將有一個新的隱藏狀態(tài),我們也會用一個新的注意力權(quán)值集**(a new set of the attention weights**),我們將用來告訴我們什么時候生成第二個詞, 那么visits就會是第二個標(biāo)簽了(the ground trip label)。我們應(yīng)該花多少注意力在輸入的第一個法語詞上。然后同理,接下去也同理,我們應(yīng)該花多少注意力在visite詞上,我們應(yīng)該花多少注意在詞l'Afique上面。當(dāng)然我們第一個生成的詞Jane也會輸入到這里,于是我們就有了需要花注意力的上下文。第二步,這也是個輸入,然后會一起生成第二個詞,這會讓我們來到第三步,這是輸入,我們再有上下文C,它取決于在不同的時間集(time sets),上面的。這個告訴了我們我們要花注意力在不同的法語的輸入詞上面。然后同理。有些事情我還沒說清楚,但是在下個視頻中,我會講解一些細(xì)節(jié),比如如何準(zhǔn)確定義上下文,還有第三個詞的上下文,是否真的需要去注意句子中的周圍的詞。這里要用到的公式以及如何計算這些注意力權(quán)重(these attention weights),將會在下個視頻中講解到。在下個視頻中你會看到,即當(dāng)你嘗試去生成第三個詞,應(yīng)該是l'Afique,就得到了右邊這個輸出,這個RNN步驟應(yīng)該要花注意力在時的法語詞上,這取決于在時的雙向RNN的激活值。那么它應(yīng)該是取決于第四個激活值,它會取決于上一步的狀態(tài),它會取決于。然后這些一起影響你應(yīng)該花多少注意在輸入的法語句子的某個詞上面。我們會在下個視頻中講解這些細(xì)節(jié)。但是直觀來想就是RNN向前進(jìn)一次生成一個詞,在每一步直到最終生成可能是**<EOS>**。這些是注意力權(quán)重,即告訴你,當(dāng)你嘗試生成第個英文詞,它應(yīng)該花多少注意力在第個法語詞上面。當(dāng)生成一個特定的英文詞時,這允許它在每個時間步去看周圍詞距內(nèi)的法語詞要花多少注意力。

我希望這個視頻傳遞了關(guān)于注意力模型的一些直觀的東西。我們現(xiàn)在可能對算法的運行有了大概的感覺,讓我們進(jìn)入到下個視頻中,看看具體的細(xì)節(jié)。

3.8注意力模型(Attention Model)

在上個視頻中你已經(jīng)見到了,注意力模型如何讓一個神經(jīng)網(wǎng)絡(luò)只注意到一部分的輸入句子。當(dāng)它在生成句子的時候,更像人類翻譯。讓我們把這些想法轉(zhuǎn)化成確切的式子,來實現(xiàn)注意力模型。

跟上個視頻一樣,我們先假定有一個輸入句子,并使用雙向的RNN,或者雙向的GRU或者雙向的LSTM,去計算每個詞的特征。實際上GRULSTM經(jīng)常應(yīng)用于這個,可能LSTM更經(jīng)常一點。對于前向傳播(the forward occurrence),你有第一個時間步的前向傳播的激活值(a forward occurrence first time step),第一個時間步后向傳播的激活值,后向的激活值,以此類推。他們一共向前了五個時間步,也向后了五個時間步,技術(shù)上我們把這里設(shè)置為0。我們也可以后向傳播6次,設(shè)一個都是0的因子,實際上就是個都是0的因子。為了簡化每個時間步的記號,即使你在雙向RNN已經(jīng)計算了前向的特征值和后向的特征值,我就用來一起表示這些聯(lián)系。所以就是時間步上的特征向量。但是為了保持記號的一致性,我們用第二個,也就是實際上我將用來索引法語句子里面的詞。接下來我們只進(jìn)行前向計算,就是說這是個單向的RNN,用狀態(tài)表示生成翻譯。所以第一個時間步,它應(yīng)該生成,當(dāng)你輸入上下文的時候就會這樣,如果你想用時間來索引它,你可以寫,但有時候我就寫個,就是沒有上標(biāo)的,這個會取決于注意力參數(shù),即,以此類推,告訴我們應(yīng)該花多少注意力。同樣的,這個參數(shù)告訴我們上下文有多少取決于我們得到的特征,或者我們從不同時間步中得到的激活值。所以我們定義上下文的方式實際上來源于被注意力權(quán)重加權(quán)的不同時間步中的特征值。于是更公式化的注意力權(quán)重將會滿足非負(fù)的條件,所以這就是個0或正數(shù),它們加起來等于1。我們等會會見到我們?nèi)绾未_保這個成立,我們將會有上下文,或者說在時的上下文,我會經(jīng)常省略上標(biāo),這就會變成對的求和。這個權(quán)重的所有的值,加上這些激活值。所以這里的這項(上圖編號1所示)就是注意力權(quán)重,這里的這項(上圖編號2)來自于這里(上圖編號3),于是就是應(yīng)該在時花在上注意力的數(shù)量。換句話來說,當(dāng)你在處生成輸出詞,你應(yīng)該花多少注意力在第個輸入詞上面,這是生成輸出的其中一步。然后下一個時間步,你會生成第二個輸出。于是相似的,你現(xiàn)在有了一個新的注意力權(quán)重集,再找到一個新的方式將它們相加,這就產(chǎn)生了一個新的上下文,這個也是輸入,且允許你生成第二個詞。只有現(xiàn)在才用這種方式相加,它會變成第二個時間步的上下文。即對的進(jìn)行求和,于是使用這些上下文向量,寫到這里,也同理。這里的神經(jīng)網(wǎng)絡(luò)看起來很像相當(dāng)標(biāo)準(zhǔn)的RNN序列,這里有著上下文向量作為輸出,我們可以一次一個詞地生成翻譯,我們也定義了如何通過這些注意力權(quán)重和輸入句子的特征值來計算上下文向量。剩下唯一要做的事情就是定義如何計算這些注意力權(quán)重。讓我們下張幻燈片看看。

回憶一下,是你應(yīng)該花費在上的注意力的數(shù)量,當(dāng)你嘗試去生成第個輸出的翻譯詞,讓我們先把式子寫下來,再討論它是怎么來的。這個式子你可以用來計算,在此之前我們要先計算,關(guān)鍵要用softmax,來確保這些權(quán)重加起來等于1。如果你對求和,比如每一個固定的值,這些加起來等于1。如果你對求和,然后優(yōu)先使用softmax,確保這些值加起來等于1。

現(xiàn)在我們?nèi)绾斡嬎氵@些項,一種我們可以用的方式是用下面這樣的小的神經(jīng)網(wǎng)絡(luò),于是就是神經(jīng)網(wǎng)絡(luò)在上個時間步的狀態(tài),于是這里我們有一個神經(jīng)網(wǎng)絡(luò),如果你想要生成,那么就是上一時間步的隱藏狀態(tài),即。這是給小神經(jīng)網(wǎng)絡(luò)的其中一個輸入,也就是在神經(jīng)網(wǎng)絡(luò)中的一個隱藏層,因為你需要經(jīng)常計算它們,然后,即上個時間步的的特征是另一個輸入。直觀來想就是,如果你想要決定要花多少注意力在的激活值上。于是,似乎它會很大程度上取決于你上一個時間步的的隱藏狀態(tài)的激活值。你還沒有當(dāng)前狀態(tài)的激活值,因為上下文會輸入到這里,所以你還沒計算出來,但是看看你生成上一個翻譯的RNN的隱藏狀態(tài),然后對于每一個位置,每一個詞都看向他們的特征值,這看起來很自然,即和應(yīng)該取決于這兩個量。但是我們不知道具體函數(shù)是什么,所以我們可以做的事情就是訓(xùn)練一個很小的神經(jīng)網(wǎng)絡(luò),去學(xué)習(xí)這個函數(shù)到底是什么。相信反向傳播算法,相信梯度下降算法學(xué)到一個正確的函數(shù)。這表示,如果你應(yīng)用這整個的模型,然后用梯度下降來訓(xùn)練它,這是可行的。這個小型的神經(jīng)網(wǎng)絡(luò)做了一件相當(dāng)棒的事情,告訴你應(yīng)該花多少注意力在上面,然后這個式子確保注意力權(quán)重加起來等于1,于是當(dāng)你持續(xù)地一次生成一個詞,這個神經(jīng)網(wǎng)絡(luò)實際上會花注意力在右邊的這個輸入句子上,它會完全自動的通過梯度下降來學(xué)習(xí)。

這個算法的一個缺點就是它要花費三次方的時間,就是說這個算法的復(fù)雜是的,如果你有個輸入單詞和個輸出單詞,于是注意力參數(shù)的總數(shù)就會是,所以這個算法有著三次方的消耗。但是在機(jī)器翻譯的應(yīng)用上,輸入和輸出的句子一般不會太長,可能三次方的消耗是可以接受,但也有很多研究工作,嘗試去減少這樣的消耗。那么講解注意想法在機(jī)器翻譯中的應(yīng)用,就到此為止了。雖然沒有講到太多的細(xì)節(jié),但這個想法也被應(yīng)用到了其他的很多問題中去了,比如圖片加標(biāo)題(image captioning),圖片加標(biāo)題就是看一張圖,寫下這張圖的標(biāo)題。底下的這篇論文來源于Kevin ChuJimmy Barr, Ryan Kiros, Kelvin Shaw, Aaron Korver, Russell Zarkutnov, Virta Zemo, 和 Andrew Benjo。他們也顯示了你可以有一個很相似的結(jié)構(gòu)看圖片,然后,當(dāng)你在寫圖片標(biāo)題的時候,一次只花注意力在一部分的圖片上面。如果你感興趣,那么我鼓勵你,也去看看這篇論文,做一些編程練習(xí)。

因為機(jī)器翻譯是一個非常復(fù)雜的問題,在之前的練習(xí)中,你應(yīng)用了注意力,在日期標(biāo)準(zhǔn)化的問題(the date normalization problem)上面,問題輸入了像這樣的一個日期,這個日期實際上是阿波羅登月的日期,把它標(biāo)準(zhǔn)化成標(biāo)準(zhǔn)的形式,或者這樣的日期。用一個序列的神經(jīng)網(wǎng)絡(luò),即序列模型去標(biāo)準(zhǔn)化到這樣的形式,這個日期實際上是威廉·莎士比亞的生日。一般認(rèn)為是這個日期正如你之前聯(lián)系中見到的,你可以訓(xùn)練一個神經(jīng)網(wǎng)絡(luò),輸入任何形式的日期,生成標(biāo)準(zhǔn)化的日期形式。其他可以做的有意思的事情是看看可視化的注意力權(quán)重(the visualizations of the attention weights)。這個一個機(jī)器翻譯的例子,這里被畫上了不同的顏色,不同注意力權(quán)重的大小,我不想在這上面花太多時間,但是你可以發(fā)現(xiàn),對應(yīng)的輸入輸出詞,你會發(fā)現(xiàn)注意力權(quán)重,會變高,因此這顯示了當(dāng)它生成特定的輸出詞時通常會花注意力在輸入的正確的詞上面,包括學(xué)習(xí)花注意在哪。在注意力模型中,使用反向傳播時, 什么時候?qū)W習(xí)完成。

這就是注意力模型,在深度學(xué)習(xí)中真的是個非常強(qiáng)大的想法。在本周的編程練習(xí)中,我希望你可以享受自己應(yīng)用它的過程。

3.9語音識別(Speech recognition)

現(xiàn)今,最令人振奮的發(fā)展之一,就是seq2seq模型(sequence-to-sequence models)在語音識別方面準(zhǔn)確性有了很大的提升。這門課程已經(jīng)接近尾聲,現(xiàn)在我想通過剩下幾節(jié)視頻,來告訴你們,seq2seq模型是如何應(yīng)用于音頻數(shù)據(jù)的(audio data),比如語音(the speech)。

什么是語音視頻問題呢?現(xiàn)在你有一個音頻片段(an audio clip,x),你的任務(wù)是自動地生成文本。現(xiàn)在有一個音頻片段,畫出來是這樣,該圖的橫軸是時間。一個麥克風(fēng)的作用是測量出微小的氣壓變化,現(xiàn)在你之所以能聽到我的聲音,是因為你的耳朵能夠探測到這些微小的氣壓變化,它可能是由你的揚聲器或者耳機(jī)產(chǎn)生的,也就是像圖上這樣的音頻片段,氣壓隨著時間而變化。假如這個我說的音頻片段的內(nèi)容是:"the quick brown fox"(敏捷的棕色狐貍),這時我們希望一個語音識別算法(a speech recognition algorithm),通過輸入這段音頻,然后輸出音頻的文本內(nèi)容。考慮到人的耳朵并不會處理聲音的原始波形,而是通過一種特殊的物理結(jié)構(gòu)來測量這些,不同頻率和強(qiáng)度的聲波。音頻數(shù)據(jù)的常見預(yù)處理步驟,就是運行這個原始的音頻片段,然后生成一個聲譜圖(a spectrogram),就像這樣。同樣地,橫軸是時間,縱軸是聲音的頻率(frequencies),而圖中不同的顏色,顯示了聲波能量的大小(the amount of energy),也就是在不同的時間和頻率上這些聲音有多大。通過這樣的聲譜圖,或者你可能還聽過人們談到過偽空白輸出(the false blank outputs),也經(jīng)常應(yīng)用于預(yù)處理步驟,也就是在音頻被輸入到學(xué)習(xí)算法之前,而人耳所做的計算和這個預(yù)處理過程非常相似。語音識別方面,最令人振奮的趨勢之一就是曾經(jīng)有一段時間,語音識別系統(tǒng)是用音位(phonemes)來構(gòu)建的,也就是人工設(shè)計的基本單元(hand-engineered basic units of cells),如果用音位來表示"the quick brown fox",我這里稍微簡化一些,"the"含有"th"和"e"的音,而"quick"有"k" "w" "i" "k"的音,語音學(xué)家過去把這些音作為聲音的基本單元寫下來,把這些語音分解成這些基本的聲音單元,而"brown"不是一個很正式的音位,因為它的音寫起來比較復(fù)雜,不過語音學(xué)家(linguists)們認(rèn)為用這些基本的音位單元(basic units of sound called phonemes)來表示音頻(audio),是做語音識別最好的辦法。不過在end-to-end模型中,我們發(fā)現(xiàn)這種音位表示法(phonemes representations)已經(jīng)不再必要了,而是可以構(gòu)建一個系統(tǒng),通過向系統(tǒng)中輸入音頻片段(audio clip),然后直接輸出音頻的文本(a transcript),而不需要使用這種人工設(shè)計的表示方法。使這種方法成為可能的一件事就是用一個很大的數(shù)據(jù)集,所以語音識別的研究數(shù)據(jù)集可能長達(dá)300個小時,在學(xué)術(shù)界,甚至3000小時的文本音頻數(shù)據(jù)集,都被認(rèn)為是合理的大小。大量的研究,大量的論文所使用的數(shù)據(jù)集中,有幾千種不同的聲音,而且,最好的商業(yè)系統(tǒng)現(xiàn)在已經(jīng)訓(xùn)練了超過1萬個小時的數(shù)據(jù),甚至10萬個小時,并且它還會繼續(xù)變得更大。在文本音頻數(shù)據(jù)集中(Transcribe audio data sets)同時包含和,通過深度學(xué)習(xí)算法大大推進(jìn)了語音識別的進(jìn)程。那么,如何建立一個語音識別系統(tǒng)呢?

在上一節(jié)視頻中,我們談到了注意力模型,所以,一件你能做的事就是在橫軸上,也就是在輸入音頻的不同時間幀上,你可以用一個注意力模型,來輸出文本描述,如"the quick brown fox",或者其他語音內(nèi)容。

還有一種效果也不錯的方法,就是用CTC損失函數(shù)(CTC cost)來做語音識別。CTC就是Connectionist Temporal Classification,它是由Alex GravesSantiago Fernandes, Faustino Gomez、和Jürgen Schmidhuber提出的。(Graves A, Gomez F. Connectionist temporal classification:labelling unsegmented sequence data with recurrent neural networks[C]// International Conference on Machine Learning. ACM, 2006:369-376.

算法思想如下:

假設(shè)語音片段內(nèi)容是某人說:"the quick brown fox",這時我們使用一個新的網(wǎng)絡(luò),結(jié)構(gòu)像這個樣子,這里輸入和輸出的數(shù)量都是一樣的,因為我在這里畫的,只是一個簡單的單向RNN結(jié)構(gòu)。然而在實際中,它有可能是雙向的LSTM結(jié)構(gòu),或者雙向的GIU結(jié)構(gòu),并且通常是很深的模型。但注意一下這里時間步的數(shù)量,它非常地大。在語音識別中,通常輸入的時間步數(shù)量(the number of input time steps)要比輸出的時間步的數(shù)量(the number of output time steps)多出很多。舉個例子,比如你有一段10秒的音頻,并且特征(features)是100赫茲的,即每秒有100個樣本,于是這段10秒的音頻片段就會有1000個輸入,就是簡單地用100赫茲乘上10秒。所以有1000個輸入,但可能你的輸出就沒有1000個字母了,或者說沒有1000個字符。這時要怎么辦呢?CTC損失函數(shù)允許RNN生成這樣的輸出:ttt,這是一個特殊的字符,叫做空白符,我們這里用下劃線表示,這句話開頭的音可表示為h_eee_ _ _,然后這里可能有個空格,我們用這個來表示空格,之后是_ _ _qqq__這樣的輸出也被看做是正確的輸出。下面這段輸出對應(yīng)的是"the q"。CTC損失函數(shù)的一個基本規(guī)則是將空白符之間的重復(fù)的字符折疊起來,再說清楚一些,我這里用下劃線來表示這個特殊的空白符(a special blank character),它和空格(the space character)是不一樣的。所以thequick之間有一個空格符,所以我要輸出一個空格,通過把用空白符所分割的重復(fù)的字符折疊起來,然后我們就可以把這段序列折疊成"the q"。這樣一來你的神經(jīng)網(wǎng)絡(luò)因為有很多這種重復(fù)的字符,和很多插入在其中的空白符(blank characters),所以最后我們得到的文本會短上很多。于是這句"the quick brown fox"包括空格一共有19個字符,在這樣的情況下,通過允許神經(jīng)網(wǎng)絡(luò)有重復(fù)的字符和插入空白符使得它能強(qiáng)制輸出1000個字符,甚至你可以輸出1000個值來表示這段19個字符長的輸出。這篇論文來自于Alex Grace以及剛才提到的那些人。我所參與的深度語音識別系統(tǒng)項目就使用這種思想來構(gòu)建有效的語音識別系統(tǒng)。

希望這能給你一個粗略的理解,理解語音識別模型是如何工作的:注意力模型是如何工作的,以及CTC模型是如何工作的,以及這兩種不同的構(gòu)建這些系統(tǒng)的方法。現(xiàn)今,在生產(chǎn)技術(shù)中,構(gòu)建一個有效語音識別系統(tǒng),是一項相當(dāng)重要的工作,并且它需要很大的數(shù)據(jù)集,下節(jié)視頻我想做的是告訴你如何構(gòu)建一個觸發(fā)字檢測系統(tǒng)(a rigger word detection system),其中的關(guān)鍵字檢測系統(tǒng)(keyword detection system)將會更加簡單,它可以通過一個更簡潔的數(shù)量更合理的數(shù)據(jù)來完成。所以我們下節(jié)課再見。

3.10觸發(fā)字檢測(Trigger Word Detection)

現(xiàn)在你已經(jīng)學(xué)習(xí)了很多關(guān)于深度學(xué)習(xí)和序列模型的內(nèi)容,于是我們可以真正去簡便地描繪出一個觸發(fā)字系統(tǒng)(a trigger word system),就像上節(jié)視頻中你看到的那樣。隨著語音識別的發(fā)展,越來越多的設(shè)備可以通過你的聲音來喚醒,這有時被叫做觸發(fā)字檢測系統(tǒng)(rigger word detection systems)。我們來看一看如何建立一個觸發(fā)字系統(tǒng)。

觸發(fā)字系統(tǒng)的例子包括Amazon echo,它通過單詞Alexa喚醒;還有百度DuerOS設(shè)備,通過"小度你好"來喚醒;蘋果的SiriHey Siri來喚醒;Google Home使用Okay Google來喚醒,這就是觸發(fā)字檢測系統(tǒng)。假如你在臥室中,有一臺Amazon echo,你可以在臥室中簡單說一句: Alexa, 現(xiàn)在幾點了?就能喚醒這個設(shè)備。它將會被單詞"Alexa"喚醒,并回答你的詢問。如果你能建立一個觸發(fā)字檢測系統(tǒng),也許你就能讓你的電腦通過你的聲音來執(zhí)行某些事,我有個朋友也在做一種用觸發(fā)字來打開的特殊的燈,這是個很有趣的項目。但我想教會你的,是如何構(gòu)建一個觸發(fā)字檢測系統(tǒng)。

有關(guān)于觸發(fā)字檢測系統(tǒng)的文獻(xiàn),還處于發(fā)展階段。對于觸發(fā)字檢測,最好的算法是什么,目前還沒有一個廣泛的定論。我這里就簡單向你介紹一個你能夠使用的算法好了。現(xiàn)在有一個這樣的RNN結(jié)構(gòu),我們要做的就是把一個音頻片段(an audio clip)計算出它的聲譜圖特征(spectrogram features)得到特征向量,?,?..,然后把它放到RNN中,最后要做的,就是定義我們的目標(biāo)標(biāo)簽。假如音頻片段中的這一點是某人剛剛說完一個觸發(fā)字,比如"Alexa",或者"小度你好" 或者"Okay Google",那么在這一點之前,你就可以在訓(xùn)練集中把目標(biāo)標(biāo)簽都設(shè)為0,然后在這個點之后把目標(biāo)標(biāo)簽設(shè)為1。假如在一段時間之后,觸發(fā)字又被說了一次,比如是在這個點說的,那么就可以再次在這個點之后把目標(biāo)標(biāo)簽設(shè)為1。這樣的標(biāo)簽方案對于RNN來說是可行的,并且確實運行得非常不錯。不過該算法一個明顯的缺點就是它構(gòu)建了一個很不平衡的訓(xùn)練集(a very imbalanced training set),0的數(shù)量比1多太多了。

這里還有一個解決方法,雖然聽起來有點簡單粗暴,但確實能使其變得更容易訓(xùn)練。比起只在一個時間步上去輸出1,其實你可以在輸出變回0之前,多次輸出1,或說在固定的一段時間內(nèi)輸出多個1。這樣的話,就稍微提高了1與0的比例,這確實有些簡單粗暴。在音頻片段中,觸發(fā)字剛被說完之后,就把多個目標(biāo)標(biāo)簽設(shè)為1,這里觸發(fā)字又被說了一次。說完以后,又讓RNN去輸出1。在之后的編程練習(xí)中,你可以進(jìn)行更多這樣的操作,我想你應(yīng)該會對自己學(xué)會了這么多東西而感到自豪。我們僅僅用了一張幻燈片來描述這種復(fù)雜的觸發(fā)字檢測系統(tǒng)。在這個基礎(chǔ)上,希望你能夠?qū)崿F(xiàn)一個能有效地讓你能夠檢測出觸發(fā)字的算法,不過在編程練習(xí)中你可以看到更多的學(xué)習(xí)內(nèi)容。這就是觸發(fā)字檢測,希望你能對自己感到自豪。因為你已經(jīng)學(xué)了這么多深度學(xué)習(xí)的內(nèi)容,現(xiàn)在你可以只用幾分鐘時間,就能用一張幻燈片來描述觸發(fā)字能夠?qū)崿F(xiàn)它,并讓它發(fā)揮作用。你甚至可能在你的家里用觸發(fā)字系統(tǒng)做一些有趣的事情,比如打開或關(guān)閉電器,或者可以改造你的電腦,使得你或者其他人可以用觸發(fā)字來操作它。

這是深度學(xué)習(xí)課程最后一個技術(shù)視頻,所以總結(jié)一下我們對序列模型的學(xué)習(xí)。我們學(xué)了RNN,包括GRULSTM,然后在上一周我們學(xué)了詞嵌入(word embeddings),以及它們?nèi)绾螌W(xué)習(xí)詞匯的表達(dá)(how they learn representations of words)。在這周還學(xué)了注意力模型(the attention model)以及如何使用它來處理音頻數(shù)據(jù)(audio data)。希望你在編程練習(xí)中實現(xiàn)這些思想的時候,能夠體會到諸多樂趣。接下來我們來看最后一個視頻。

3.11結(jié)論和致謝(Conclusion and thank you)

恭喜你能走到這一步,在最后這節(jié)視頻中,只想做個總結(jié),并給你一些最后的想法。

我們一起經(jīng)歷了一段很長的旅程,如果你已經(jīng)學(xué)完了整個專業(yè)的課程,那么現(xiàn)在你已經(jīng)學(xué)會了神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí),如何改進(jìn)深度神經(jīng)網(wǎng)絡(luò),如何結(jié)構(gòu)化機(jī)器學(xué)習(xí)項目,和卷積神經(jīng)網(wǎng)絡(luò)。在最近的課程中還學(xué)了序列模型,我知道你為此非常努力,也希望你能對自己感到自豪,為你的努力,為你所做的這一切。

我想向你傳達(dá)一個對你來說可能很重要的想法。就是我覺得深度學(xué)習(xí)是一種超能力,通過深度學(xué)習(xí)算法,你可以讓計算機(jī)擁有"視覺"(make a computer see),可以讓計算機(jī)自己合成小說(synthesize novel art),或者合成音樂(synthesized music),可以讓計算機(jī)將一種語言翻譯成另一種(translate from one language to another),或者對放射影像進(jìn)行定位然后進(jìn)行醫(yī)療診斷(Maybe have it located radiology image and render a medical diagnosis),或者構(gòu)建自動駕駛系統(tǒng)(build pieces of a car that can drive itself)。如果說這還不是超能力的話,那還能是什么呢?當(dāng)我們結(jié)束這一系列課程的時候,結(jié)束整個專業(yè)的時候,我希望你能夠使用這些思想來發(fā)展你的事業(yè),追逐你的夢想,但最重要的是,去做你認(rèn)為最合適的能對人類有貢獻(xiàn)的事。這個世界現(xiàn)在面臨著諸多挑戰(zhàn),但是在這種力量下,在人工智能和深度學(xué)習(xí)的力量下,我覺得我們可以讓世界變得更美好。現(xiàn)在這種超能力就掌握在你的手中,去突破障礙,讓生活變得更好,這不單單是為自己,也是為了其他人。當(dāng)然我也希望你能夠?qū)ψ约喝〉玫某删鸵约澳銓W(xué)到的一切感到自豪。當(dāng)你完成這一系列課程的學(xué)習(xí)后,我想你可以把課程分享到社交媒體上,比如TwitterFacebook,讓你的朋友也能知道這門課程。

最后,我想告訴你的最后一件事,就是恭喜你完成了這門課程的學(xué)習(xí),為自己所取得的成就歡呼吧!同時也非常感謝你們,因為我知道大家都很忙,即便如此你們還是花了很多時間來學(xué)習(xí)這些視頻,可能還花了很多時間來做課堂測驗還有編程練習(xí),希望你們能夠樂在其中,并學(xué)到很多算法流程。我很榮幸你們能夠花費時間,付諸精力,來學(xué)習(xí)這些東西,非常感謝大家!

參考資料

[1]

深度學(xué)習(xí)課程:?https://mooc.study.163.com/university/deeplearning_ai

[2]

黃海廣:?https://github.com/fengdu78

[3]

github:?https://github.com/fengdu78/deeplearning_ai_books

總結(jié)

以上是生活随笔為你收集整理的深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

狠狠狠狠狠狠天天爱 | 国产精品欧美久久久久无广告 | 97日日碰人人模人人澡分享吧 | 天天天干夜夜夜操 | 亚洲理论片在线观看 | 精品资源在线 | 97国产大学生情侣酒店的特点 | 午夜av色| 国产亲近乱来精品 | 永久av免费在线观看 | 超碰在线观看av.com | 99热官网 | 中文字幕一二三区 | 亚洲精品乱码久久久久久按摩 | 国产理论免费 | 国内久久精品 | 91亚洲精品国产 | 欧美激情视频免费看 | 福利一区在线视频 | 午夜精品久久久久久久久久久久久久 | 久久精品久久国产 | 亚洲视频免费视频 | 国产精品一区二区白浆 | 久久成人国产精品免费软件 | 五月婷网 | 黄色毛片大全 | 麻豆91网站| 日韩在线观看 | 黄网站色视频免费观看 | 在线看国产 | 丁香六月激情 | av网站在线观看免费 | 欧美视频网址 | 免费手机黄色网址 | 三上悠亚一区二区在线观看 | 激情综合网在线观看 | 亚洲午夜精品一区 | 精品视频123区在线观看 | 美女网站一区 | 四虎成人精品在永久免费 | 亚洲在线视频观看 | 久草在线视频看看 | 国产高清不卡一区二区三区 | 最新日韩视频 | 日韩av不卡在线观看 | 中文字幕 91 | 精品久久亚洲 | 久久免费视频观看 | 国产高清在线看 | 国产69久久久欧美一级 | 国产乱对白刺激视频在线观看女王 | 天天操夜夜操国产精品 | 国产玖玖在线 | 久热免费在线 | 九九免费在线观看视频 | 91传媒免费在线观看 | 久草热久草视频 | 欧洲精品在线视频 | 亚洲国产成人久久综合 | 精品国产电影一区二区 | 国产91小视频 | 国产一区二区三区网站 | 精品伊人久久久 | 在线免费av网站 | 国产精品2019| 国产成人精品一区二区三区在线观看 | 色94色欧美 | 亚洲精品字幕 | av电影免费在线看 | 人人干免费 | 亚洲视频电影在线 | 欧美日韩国产mv | 久久久久久久久久久久av | 91在线免费公开视频 | 午夜精品一区二区三区在线播放 | 欧美片网站yy | 成人av久久 | 色窝资源 | 国产美女精品在线 | av三级在线免费观看 | 久久高清免费观看 | 国产最新精品视频 | 在线91观看| 人人插人人射 | 久久精品草| 亚洲无线视频 | 国产精品igao视频网入口 | 亚洲人成免费网站 | 久久精品91久久久久久再现 | 国产精品毛片久久久 | 久久久国产精品久久久 | 日韩视频在线观看免费 | 黄色一级免费电影 | 精品v亚洲v欧美v高清v | 91免费的视频在线播放 | 美女免费黄视频网站 | 99在线热播 | 香蕉91视频 | 国产成人99av超碰超爽 | 精品在线99| 国产精品一区二区电影 | 看国产黄色大片 | 亚洲精品午夜一区人人爽 | 91片网| 精品999 | 国产色妞影院wwwxxx | 亚洲男女精品 | 丁香激情视频 | 色综合久久88 | 丰满少妇一级片 | 国内外成人在线视频 | 日韩理论片在线 | 久久精品视频在线观看免费 | 久久99亚洲精品久久 | 国产探花视频在线播放 | 在线国产视频一区 | 国产成人精品国内自产拍免费看 | 天天射射天天 | 天天干天天干天天干 | 免费在线观看一区 | 色视频网站在线观看一=区 a视频免费在线观看 | 永久免费精品视频 | 69人人 | 人人插人人搞 | 五月婷婷网站 | 最新成人在线 | 一区二区三区电影在线播 | 久久99国产精品自在自在app | 国产精品一区二区三区观看 | 成在线播放 | 最近最新mv字幕免费观看 | 精品国产视频在线观看 | 91粉色视频 | 天天操天天操一操 | 国产 日韩 欧美 在线 | 手机av在线不卡 | 久久久国产在线视频 | 最近中文字幕在线 | 色久av| 国产拍在线 | 午夜 久久 tv| 天天综合网国产 | 久久视频在线观看中文字幕 | 色婷婷激情电影 | 亚洲成人免费观看 | 久久久久中文字幕 | 亚洲精品美女久久久 | 一区二区三区av在线 | 麻豆视频免费版 | 日韩一区二区三区高清免费看看 | 美女网站色 | 最新av电影网址 | 在线看中文字幕 | 久草视频资源 | 国产亚洲精品久久久久久大师 | 日批视频在线播放 | av网站在线观看免费 | 日韩精品亚洲专区在线观看 | 日韩在线观看第一页 | av在线播放一区二区三区 | 国产在线观看一 | 在线观看国产中文字幕 | 欧美激情视频在线免费观看 | 国产成人精品av | 伊人狠狠色丁香婷婷综合 | 国产99中文字幕 | 欧美日韩国产精品一区二区 | www.夜夜夜| 国产精品久久久久久久午夜片 | 国产精品成人品 | 日韩精品2区 | 欧美日韩在线观看一区二区三区 | 色国产视频 | 国产精品成久久久久三级 | 狠狠操电影网 | 久久一级电影 | 天天色草 | 激情久久一区二区三区 | 精选久久 | 欧美另类高潮 | 黄色app网站在线观看 | 精品久久免费看 | 免费日韩av电影 | 日韩精选在线观看 | 久久综合五月天婷婷伊人 | 99久e精品热线免费 99国产精品久久久久久久久久 | 免费在线国产视频 | 午夜性盈盈 | 91最新国产 | 日本精品在线 | 国产精品亚州 | 天天色天天射天天操 | 国产精品久久久久一区 | 中文字幕久久久精品 | 97综合视频| 久久久久亚洲精品中文字幕 | 亚洲三级视频 | 国产精品免费不卡 | 99草视频| 麻豆影视在线播放 | 亚洲日本欧美在线 | 99热免费在线 | 色夜影院 | 色婷在线| 欧美伦理电影一区二区 | 精品在线观看国产 | 激情开心网站 | 成人亚洲综合 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 色吧久久 | 国内精品久久久久 | 免费看在线看www777 | av在线免费网 | 玖玖在线播放 | 国产中文字幕视频在线观看 | 日韩三区在线 | 一区二区三区四区精品视频 | 欧美91视频 | 成人毛片在线观看视频 | 国产资源在线免费观看 | 亚洲精品福利在线观看 | av大全在线 | 探花视频免费观看 | 99这里都是精品 | 97免费| 亚洲专区一二三 | 五月婷丁香网 | 中文字幕在线看视频国产中文版 | 在线国产小视频 | 免费av视屏| 国产亚洲精品无 | 在线91色 | 久久99精品久久久久久清纯直播 | 啪一啪在线| 97超碰免费 | 日韩av播放在线 | 欧美日韩中 | 国产1区在线观看 | 超碰公开97 | 久久三级视频 | 99这里都是精品 | 玖玖视频在线 | 日韩激情在线视频 | 中文字幕av在线电影 | 91理论电影 | 国产网站在线免费观看 | jizz欧美性9 国产一区高清在线观看 | 午夜三级福利 | 久久久久 免费视频 | 欧美在线一二 | av电影久久| 久久精品中文字幕一区二区三区 | 亚洲高清视频在线观看 | 99久久精品国产免费看不卡 | 国产亚洲精品久久久久久久久久 | 在线观看精品国产 | 国产在线播放观看 | 久久久久免费观看 | 中文字幕一区二区三区四区久久 | 夜夜躁日日躁狠狠躁 | 国产91电影在线观看 | 日韩免费三区 | 国产日韩精品在线 | 黄色片亚洲 | 九九久久国产 | 亚洲激情五月 | 欧洲一区二区在线观看 | 国产在线国产 | 久久高清精品 | 男女激情免费网站 | 色网站免费在线看 | 手机av资源 | 日韩精品2区 | 2021国产在线 | 美女视频黄是免费的 | 91黄色视屏 | 色婷婷狠狠 | 五月导航| 粉嫩av一区二区三区四区在线观看 | 久久精品电影院 | 亚洲精品视频中文字幕 | 五月婷av| 最近中文字幕免费视频 | 99精品系列| 米奇影视7777 | 国产精品久久久久久999 | 97偷拍视频 | 日韩高清在线一区二区 | 操久久免费视频 | 免费三级影片 | 日韩精品国产一区 | 中文字幕在线久一本久 | 成人a级免费视频 | 91精品久久久久 | 91在线视频在线 | 99热官网| 成人亚洲欧美 | 97国产在线 | 久久精品电影院 | 视色网站 | 奇米先锋 | 欧美日韩国产精品一区二区 | 久99精品| 欧美一级电影免费观看 | 亚洲色图27p | 奇米四色影狠狠爱7777 | 国产精品伦一区二区三区视频 | 国产成人性色生活片 | 久久影院精品 | 97成人在线视频 | 国产精品久久网站 | 亚洲专区在线播放 | 日日夜精品 | 国产精彩视频一区二区 | 亚洲精品动漫久久久久 | 日精品| 国产黄影院色大全免费 | 永久黄网站色视频免费观看w | av亚洲产国偷v产偷v自拍小说 | 国产精品一区二区三区视频免费 | 97超碰在线资源 | 99久久这里只有精品 | 国产精品久久久久久久久久东京 | 日产av在线播放 | 2022久久国产露脸精品国产 | 免费日韩三级 | 天天撸夜夜操 | 在线精品观看国产 | 日韩在线看片 | 激情av一区二区 | www视频免费在线观看 | 日批在线看 | 午夜视频免费播放 | 国产在线视频导航 | 五月开心婷婷网 | 亚洲香蕉在线观看 | 最新国产精品拍自在线播放 | 亚洲天堂社区 | 亚洲三级av| 国产中文字幕三区 | 日日夜夜91 | 成年人app网址 | 91亚洲免费| 四虎国产精品免费 | 国产一区在线免费 | 国产免费又爽又刺激在线观看 | 精品视频在线免费观看 | 丁香午夜婷婷 | 亚洲伊人第一页 | www91在线| 欧美91精品久久久久国产性生爱 | 天堂在线免费视频 | 久久综合久久综合久久 | 日批在线观看 | 在线亚洲激情 | 久久久久久久久久久综合 | 2022国产精品视频 | 九九交易行官网 | 一区 二区 精品 | 久久久久久久综合色一本 | 91久久精品日日躁夜夜躁国产 | 黄色精品久久 | 99久久激情| 黄色大片日本免费大片 | 久久99久久99久久 | 中文字幕在线视频一区二区三区 | 色美女在线 | 成人在线黄色 | 就要干b| 欧美亚洲xxx| 亚洲高清视频一区二区三区 | 大胆欧美gogo免费视频一二区 | 日韩中文在线视频 | www,黄视频 | 久久久久久国产一区二区三区 | 91av电影在线观看 | 久久午夜网 | 成人av在线影院 | 免费三及片| www.久久91| 日本黄网站 | 午夜精品久久久99热福利 | 久久成熟 | 色婷婷色 | 国产中文伊人 | 国产福利资源 | 成人黄大片视频在线观看 | 国产精品久久久久av免费 | 999久久精品 | av福利在线免费观看 | 久久久久久久久久久久国产精品 | 久久婷婷色综合 | 亚洲美女视频在线观看 | 综合网欧美| 亚洲色综合| 久久最新视频 | 超碰在线观看97 | 欧美91av | 日韩免费区 | 久久免费资源 | 大胆欧美gogo免费视频一二区 | 免费高清在线视频一区· | 麻豆视频免费看 | 国产91在线观 | 亚洲3级 | h视频在线看 | 97视频人人免费看 | 日韩在线免费高清视频 | 久久综合婷婷国产二区高清 | 国产婷婷视频在线 | 四虎影视4hu4虎成人 | 在线小视频 | 国产 精品 资源 | 国产日产精品久久久久快鸭 | 精品中文字幕在线 | 天天色欧美 | 日韩在线在线 | 亚洲网站在线看 | 中文字幕色网站 | 91麻豆精品国产午夜天堂 | 久久国产精品99久久人人澡 | 久精品在线观看 | 天天插一插| 日韩理论电影网 | 欧美亚洲一区二区在线 | 亚洲精品午夜一区人人爽 | 成人av播放| 国产高清在线 | 在线观看日本高清mv视频 | 国产精品免费一区二区三区在线观看 | 久久99亚洲网美利坚合众国 | 五月婷婷丁香六月 | 日韩系列在线观看 | 久久手机精品视频 | 久久国产精品免费观看 | 欧美性生爱 | 欧美十八 | www.日日日.com | 久久99国产精品自在自在app | 日韩中文字幕一区 | 奇米影视777影音先锋 | 91九色在线观看视频 | 色综合咪咪久久网 | 久久精品视频18 | 女人18片毛片90分钟 | aaa日本高清在线播放免费观看 | 天天操天天怕 | 激情av综合 | 日韩三级.com | 国内精品久久久久久久久久 | 久久久穴 | 国产精品视频全国免费观看 | 国产精品第二页 | 久久精品99国产国产 | 国产成人精品一区二区三区网站观看 | 成人一区二区在线 | 婷婷综合导航 | 人人添人人澡人人澡人人人爽 | 亚洲一级黄色片 | 99视频一区| 国产福利免费在线观看 | 欧美精品一区二区三区一线天视频 | 精品久久久久久久久中文字幕 | 999久久精品 | 国产高清中文字幕 | 久久激情视频 | 国产精品毛片一区二区三区 | 国产精品视频一二三 | 91免费版成人 | 午夜精品一区二区三区视频免费看 | 狠狠的操你 | 91污在线观看 | 精品一区久久 | 日韩伦理一区二区三区av在线 | 精品毛片一区二区免费看 | 欧美成人一二区 | 久久麻豆视频 | 国产精品一区二区三区在线播放 | 日韩在线视频一区二区三区 | 成人av电影免费观看 | 亚洲国产婷婷 | 激情偷乱人伦小说视频在线观看 | 久久精品国产精品 | 欧美日韩在线视频一区二区 | 午夜国产福利在线观看 | 伊人五月在线 | 精品国内自产拍在线观看视频 | 99精品久久精品一区二区 | 婷婷综合在线 | 免费福利视频网 | 高清av免费观看 | 黄色一级免费网站 | 99综合电影在线视频 | 99视频在线精品国自产拍免费观看 | 亚洲免费永久精品国产 | 91中文视频 | 久久精品免费电影 | 91网免费观看 | 久久久久电影 | www.五月激情.com | 91爱爱免费观看 | 18pao国产成视频永久免费 | 美女免费视频观看网站 | 伊人宗合网| 久草视频在线观 | 美女在线免费视频 | 婷婷综合影院 | 亚洲天堂网视频 | 黄色在线看网站 | 99视频精品视频高清免费 | 久久精品国产精品亚洲 | 香蕉视频啪啪 | 国产精品美女久久久久aⅴ 干干夜夜 | 中文字幕av最新更新 | 天堂在线免费视频 | 中文字幕欧美三区 | 一级片黄色片网站 | 日韩乱色精品一区二区 | 婷婷久月 | 天天插天天狠天天透 | 在线免费国产视频 | 精品免费99久久 | 天天操天天色天天 | 午夜久久视频 | 中文字幕亚洲在线观看 | 国产精品久久婷婷六月丁香 | 婷婷 综合 色 | 中文字幕在线播放一区二区 | 国内精品福利视频 | 色 免费观看 | 中文av资源站 | 亚洲毛片视频 | 色网站视频| 国产亚州精品视频 | 久久综合狠狠综合 | 国内精品福利视频 | 在线看岛国av | 免费在线看成人av | 一本大道久久精品懂色aⅴ 五月婷社区 | 欧美99热 | 91最新网址在线观看 | 中文字幕在线观看第一页 | 在线播放亚洲 | 99精品在线观看视频 | 欧美电影在线观看 | 久久久久久国产精品久久 | 成人av视屏 | 在线观看蜜桃视频 | 丁香婷婷色综合亚洲电影 | 成年人在线| 在线观看视频免费播放 | 国产一在线精品一区在线观看 | 亚洲精品动漫在线 | 亚洲精品视频网站在线观看 | 国产黄在线观看 | 视频一区在线免费观看 | 国产免费中文字幕 | 一级c片 | 一区二区精品在线 | 亚洲狠狠操| 综合久久精品 | 欧美色精品天天在线观看视频 | 欧美日韩中文在线观看 | 成人国产一区二区 | 天天色成人 | 国产精品久久久久免费 | 亚洲欧美婷婷六月色综合 | 9在线观看免费 | 最近中文字幕免费大全 | 国产淫a| 欧美日本国产在线观看 | 懂色av一区二区在线播放 | 99热在| 亚洲精品xxxx | 一本一道久久a久久精品蜜桃 | 午夜婷婷在线观看 | 最新国产在线视频 | 香蕉视频免费在线播放 | 国产在线综合视频 | 久久精品三 | 精品女同一区二区三区在线观看 | 亚洲一区二区精品3399 | 一级黄色a视频 | 亚洲精品综合在线 | 在线看片一区 | 成人免费视频观看 | 91中文字幕在线观看 | 国内视频在线 | 99精品国产aⅴ | 开心激情久久 | 成人超碰在线 | 国产日韩av在线 | 日日草视频 | 怡春院av| 一区二区三区在线免费观看视频 | 久久免费视频精品 | av黄色av | 免费av大全| 中文字幕韩在线第一页 | 手机看片中文字幕 | 99tvdz@gmail.com| 精品一区二区在线免费观看 | aaaaaa毛片| 五月天综合 | 久久成人免费 | 欧美成年性 | 久久久麻豆视频 | 91免费观看网站 | 国产婷婷vvvv激情久 | 久久国产精品小视频 | 国产人成免费视频 | 久久黄网站 | 手机av网站| 国产 中文 日韩 欧美 | 激情综合网五月 | 五月婷婷丁香色 | 欧美精品乱码久久久久久按摩 | 亚州精品视频 | 中文在线 | 天天干天天拍天天操天天拍 | 国产精品大尺度 | 九九热精| 亚洲视频,欧洲视频 | 色综合在 | 六月丁香综合 | 人人爽人人爽人人爽 | 在线免费看黄色 | 国产成人一区二区三区 | 日韩网站在线 | 久久中国精品 | 99热只有精品在线观看 | www在线观看国产 | 黄色成人av | 中文字幕色网站 | 国产视频一区二区在线 | 中文字幕在线观看播放 | 五月激情电影 | 天天操夜操| 欧美日韩中文字幕综合视频 | 久久综合九色综合久99 | 国产三级久久久 | 丁香花在线观看视频在线 | 91在线产啪| 国产精品久久久久久久久久久久久 | 久久久久中文 | 亚洲精品综合在线观看 | 最近日本韩国中文字幕 | 色播亚洲婷婷 | 97在线公开视频 | 99中文在线 | 色网址99| 日韩成人一级大片 | 国产明星视频三级a三级点| 青草草在线 | 欧美精品黑人性xxxx | 日韩久久精品一区二区三区下载 | 福利久久 | 欧美日产一区 | 九九色视频| 特级毛片爽www免费版 | 色噜噜噜噜 | 欧美精品久久久久久久久老牛影院 | 日韩av视屏 | 91亚洲精品国偷拍 | 成人黄色电影免费观看 | 国产美女网站在线观看 | 欧美精品一二 | 色婷婷六月天 | 国产乱对白刺激视频不卡 | 国产午夜精品福利视频 | 有码一区二区三区 | 久久a v视频| 久草在线看片 | 亚洲精选视频在线 | 国产亚洲精品久久 | 天天操夜夜做 | 91人人在线| 99精品在线免费 | 亚洲人成在线电影 | 爱情影院aqdy鲁丝片二区 | www.xxxx变态.com | 能在线看的av | 亚洲精品在线视频播放 | 天天曰天天曰 | 天天天色| 99色婷婷| 欧美日韩p片 | 97在线观看免费 | 久青草视频| 四虎免费在线观看 | 91丨九色丨高潮 | 中文字幕视频三区 | 久久开心激情 | 久久精品成人欧美大片古装 | 国产精品视频观看 | 免费在线观看成人 | 日韩久久久久久久久久久久 | 国产精品美 | 国产福利一区二区在线 | 国产三级av在线 | 日韩啪啪小视频 | 91日韩精品一区 | 91麻豆精品国产91久久久久久久久 | 午夜丰满寂寞少妇精品 | 亚洲免费专区 | 国产精品激情 | 超碰激情在线 | 在线黄av| 99精品视频99 | 国产一区在线免费观看视频 | 国产免费高清视频 | 日韩免费高清在线观看 | 99久久精品国 | 国产一区视频在线观看免费 | 四虎在线观看 | 天天操狠狠操网站 | 91最新中文字幕 | 麻豆视频网址 | 欧美午夜精品久久久久久浪潮 | 日韩最新理论电影 | 91久久在线观看 | 国产.精品.日韩.另类.中文.在线.播放 | 国产91电影在线观看 | 人人爽爽人人 | 一区二区三高清 | 五月婷婷天堂 | 国产精品久久久久久久久久久久冷 | 亚洲精品在线观 | 久久免费观看视频 | 日韩特级毛片 | 久久99久久99久久 | 激情深爱| 91精品国产91 | 日韩一区二区三区高清免费看看 | 日韩mv欧美mv国产精品 | 亚洲精品88欧美一区二区 | 久久免费在线视频 | 亚洲视频一区二区三区在线观看 | 丁香六月欧美 | 免费av网站在线 | 中文字幕在线视频网站 | 综合天天久久 | 91在线看视频 | 欧美福利在线播放 | 青青河边草免费视频 | 在线观看深夜福利 | 最近字幕在线观看第一季 | 免费视频一区 | 五月天.com | 在线视频 一区二区 | 精品影院一区二区久久久 | 在线观看免费 | 91色在线观看视频 | 久久久久久免费毛片精品 | 国产99久久精品 | 五月婷影院 | 国产高清av在线播放 | 亚洲日本一区二区在线 | 91成人短视频在线观看 | 91视频观看免费 | 麻豆91小视频 | 人人爽人人插 | 久久影视网 | 免费在线电影网址大全 | 在线观看免费一级片 | 麻豆视频网址 | 99国产一区二区三精品乱码 | 日韩一区二区三区免费视频 | 99r在线观看 | 久久久久亚洲精品成人网小说 | 日韩高清免费无专码区 | 欧美一级高清片 | 国产精品专区在线 | 中文字幕在线观看av | 国产91精品高清一区二区三区 | 国产精品久久精品 | 久久久久北条麻妃免费看 | 久久久久久激情 | 99久久综合精品五月天 | 色婷婷综合成人av | 免费网站黄 | 久久久国产一区二区三区四区小说 | 久久这里只有精品23 | 欧美日韩大片在线观看 | 毛片无卡免费无播放器 | 国内小视频在线观看 | 国产第一二区 | 天天干天天干天天色 | www.操.com| 亚洲一级影院 | 国产99久久久精品视频 | 日本黄色大片儿 | 天天曰 | 91尤物国产尤物福利在线播放 | 欧美污在线观看 | 免费av免费观看 | 免费高清看电视网站 | 成人h视频在线播放 | 激情狠狠干 | 成年人在线观看免费视频 | 视频国产在线观看18 | 日韩理论| 99热在线网站| 欧美极品在线播放 | 国产18精品乱码免费看 | 亚洲一区美女视频在线观看免费 | 超碰在线98| 精品国产久 | 亚洲人成免费 | 99中文在线 | 四虎影视欧美 | 久久人人爽人人爽人人片av软件 | 九九视频这里只有精品 | 玖玖在线视频观看 | 久久国产精品色婷婷 | 国产一区免费在线 | 黄色一级大片在线免费看国产一 | 欧美性色19p | 丝袜精品视频 | 日韩在观看线 | 亚洲国产影院av久久久久 | 亚洲一二视频 | 欧美日韩综合在线观看 | 一级电影免费在线观看 | 久久99热这里只有精品国产 | 亚洲精品高清视频 | aaaaaa毛片| 91精品久久久久久久99蜜桃 | 中文字幕久久久精品 | 超碰在线网 | 在线免费观看国产视频 | 中文字幕黄色网址 | av字幕在线 | 久久艹欧美 | 国产日韩欧美视频 | 国产精品久久久久久久久久久久午夜 | 精品视频区 | 亚洲欧美日韩一二三区 | 精品亚洲一区二区 | 成人黄色av免费在线观看 | 伊人影院在线观看 | 欧美在线视频精品 | 九七视频在线观看 | 国产香蕉97碰碰碰视频在线观看 | 四虎视频 | 亚洲伦理中文字幕 | 在线 成人 | 看片一区二区三区 | 亚洲播放一区 | 日韩av视屏在线观看 | 国产中文在线视频 | 国产成人av在线影院 | 91亚洲网站| 九九热免费视频在线观看 | 九九久久久久久久久激情 | 外国av网| 日韩中文字幕一区 | 久久激情片 | 国模一二三区 | 国产在线不卡 | 青草视频在线 | 狠狠躁天天躁 | 久久久久亚洲国产 | 亚洲一区欧美激情 | 亚洲乱码一区 | 天天天色| 色999精品 | 亚洲91中文字幕无线码三区 | 九九激情视频 | av在线激情 | 伊人射 | 欧美日韩高清在线一区 | 亚洲精品麻豆 | 国产日产精品一区二区三区四区 | 久久久久久久久影院 | 美女黄久久| 毛片在线播放网址 | 96精品在线 | 亚洲国产精品va在线看黑人动漫 | 亚洲天堂色婷婷 | 久久久久99精品国产片 | 一本一本久久a久久精品综合妖精 | 99久久999久久久精玫瑰 | 国产福利午夜 | 国产高清在线观看 | 麻豆小视频在线观看 | 中文字幕在线观看1 | 精品视频久久久 | 日韩视频中文 | 免费黄色激情视频 | 97热视频 | 81国产精品久久久久久久久久 | 欧美色综合天天久久综合精品 | 亚洲涩涩一区 | 久久综合免费视频 | 日本久久久久久 | 99视频精品全部免费 在线 | 黄色免费视频在线观看 | 狠狠操综合 | 91亚色视频在线观看 | 国产高清av免费在线观看 | 久久久久久久久网站 | 亚在线播放中文视频 | 国产成人1区 | 超级碰碰免费视频 | 六月丁香久久 | 蜜臀av夜夜澡人人爽人人桃色 | 成人久久久久久久久久 | 9热精品| 天海翼一区二区三区免费 | japanesexxxhd奶水| 久久久久国产一区二区三区 | 美女精品国产 | 成人免费观看视频大全 | 日韩欧美在线视频一区二区三区 | 在线电影91| 国产 在线 日韩 | 精选久久 | 午夜色大片在线观看 | 天天色视频 | 超碰人人舔| 激情视频在线观看网址 | 成年人免费在线播放 | 五月婷婷综合色拍 | 最新国产福利 | 日韩在线观看免费 | 国产精品密入口果冻 | 在线免费黄色 | 操操碰 | 国产精品一区二区美女视频免费看 | 欧美日韩三级在线观看 | 国产日韩欧美精品在线观看 | 久久精品久久久久 | 中文字幕一区二区三区乱码不卡 | 免费av网站观看 | 欧美一区二区精美视频 | 国产精品久久久精品 | 欧美aaa视频 | 天天摸天天操天天爽 | 97超碰国产在线 | 99久久这里只有精品 | 17videosex性欧美 | 婷婷激情av | 日日干美女 | 黄色大全视频 | 久久综合九色综合久久久精品综合 | 日日干日日 | 99精品电影 | 国产精品视频app | 午夜婷婷综合 | 狠狠干网址| av一本久道久久波多野结衣 | 婷婷伊人五月 | 天天干天天操人体 | 久久综合亚洲鲁鲁五月久久 | 色婷婷狠 | 成人教育av| 亚洲精品456在线播放乱码 | 国产精品99蜜臀久久不卡二区 | 国外调教视频网站 | 中文字幕在线看 | 亚洲精品99 | 九九免费观看视频 | 九九视频在线播放 | 午夜精品久久久久久久99水蜜桃 | 免费在线观看成人小视频 | 中文字幕高清 | 在线观看91 | 国产午夜av| 麻豆国产精品一区二区三区 | 欧美性生活一级片 | 色五丁香 | 中文字幕在线看视频 | 欧美激情精品久久久久 | 国产精品成人a免费观看 | 超碰大片 | 91久久偷偷做嫩草影院 | 在线三级av| 西西人体4444www高清视频 | 国产精品久久99综合免费观看尤物 | 日韩国产欧美视频 | 国内精品久久久 | 久久久久久久久久久免费视频 | 久久艹中文字幕 | 五月激情丁香婷婷 | 人人揉人人揉人人揉人人揉97 | av丁香花| 国产精品久久久久婷婷二区次 | 在线婷婷| 亚洲第一久久久 | 天天操夜夜拍 | 婷婷色在线播放 | 欧美日韩观看 | 成年人免费在线播放 | 精品国产一区二区三区男人吃奶 | 精品国产自在精品国产精野外直播 | www天天干com | 亚洲乱码精品久久久久 |