日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

發(fā)布時(shí)間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

可視化神經(jīng)機(jī)器翻譯模型(基于注意力機(jī)制的Seq2seq模型)

??序列到序列模型是深度學(xué)習(xí)模型,在機(jī)器翻譯、文本摘要和圖像字幕等任務(wù)中取得了很大的成功。谷歌翻譯在2016年底開始在生產(chǎn)中使用這樣的模型。兩篇開具有創(chuàng)性的論文對(duì)該模型進(jìn)行了解釋(Sutskever et al., 2014, Cho et al., 2014)。
??然而我發(fā)現(xiàn),要想很好地理解這個(gè)模型并實(shí)現(xiàn)它,需要理解一系列建立在彼此基礎(chǔ)之上的概念。我想,這些概念如果能直觀地表達(dá)出來,會(huì)更容易理解。這也是我在這篇文章中要做的事情。當(dāng)然,你需要對(duì)深度學(xué)習(xí)有一定的了解才能較好地理解這篇文章。希望閱讀上述兩篇論文以及文末鏈接中的帖子能夠有所幫助。
??序列到序列模型可以對(duì)對(duì)象(單詞、字母、圖片的特征等等)組成的序列進(jìn)行處理,并輸出由這些對(duì)象所組成的另一個(gè)序列。訓(xùn)練好的模型的工作方式如下:
??在神經(jīng)機(jī)器翻譯中,序列是一系列的單詞,并且一個(gè)接一個(gè)的處理。輸出同樣是一系列的單詞。

剖析算法核心

??該算法的核心部分由一個(gè)編碼器和一個(gè)解碼器組成。
??編碼器對(duì)輸入序列中的每個(gè)元素進(jìn)行處理,它將捕捉到的信息編譯成一個(gè)向量(稱為上下文)。在處理完整個(gè)輸入序列后,編碼器上下文發(fā)送到解碼器解碼器開始逐項(xiàng)生成輸出序列。

??同樣也適用于機(jī)器翻譯之中。

??在機(jī)器翻譯的情況下,上下文是一個(gè)向量(基本上是由數(shù)字組成的數(shù)組)。編碼器解碼器往往都是循環(huán)神經(jīng)網(wǎng)絡(luò)。(一定要看Luis Serrano的A friendly introduction to Recurrent Neural Networks,了解RNNs的相關(guān)知識(shí))。

??上下文是一個(gè)浮點(diǎn)數(shù)組成的向量。在本篇文章的后面,我們將通過給數(shù)值較高的單元格分配更亮的顏色來對(duì)向量進(jìn)行可視化。
??您可以在建立模型時(shí)設(shè)置上下文向量的大小。它基本上是編碼器RNN中隱層單元的數(shù)量。這些可視化示例中展示了一個(gè)長度為4的向量,但在實(shí)際應(yīng)用中,上下文向量的大小會(huì)是256、512或1024。
??根據(jù)設(shè)計(jì),一個(gè)RNN在每一步均需要兩個(gè)輸入:一個(gè)輸入(在編碼器中指的是來自輸入句子的一個(gè)單詞),和一個(gè)隱藏狀態(tài)。但是,此處的詞,需要用一個(gè)向量來表示。為了將一個(gè)詞轉(zhuǎn)化為一個(gè)向量,我們使用“詞嵌入”算法。該算法將單詞轉(zhuǎn)化到向量空間,并捕捉到了很多單詞的意義/語義信息(例如 king -man + woman = queen)。

??我們需要在處理之前將輸入的單詞變成向量。該轉(zhuǎn)換可以用詞嵌入算法來完成。我們可以使用預(yù)先訓(xùn)練的詞嵌入模型,或者在我們的數(shù)據(jù)集上訓(xùn)練我們自己的詞嵌入模型。詞嵌入向量大小通常是200或300維,為了簡單起見,我們展示的是大小為4的向量。
??現(xiàn)在我們已經(jīng)介紹了主要的向量/張量,讓我們回顧一下RNN的機(jī)制,并建立一種可視化語言來描述這些模型。

??RNN的下一個(gè)步驟是取第二個(gè)輸入向量和隱藏狀態(tài)#1來創(chuàng)建該時(shí)刻步驟的輸出。在后面的文章中,我們會(huì)用諸如這樣的動(dòng)畫來描述神經(jīng)機(jī)器翻譯模型中的向量。
??在下面的可視化過程中,編碼器解碼器的每一次運(yùn)行結(jié)果都是RNN模型處理其輸入并在該時(shí)刻產(chǎn)生的輸出。由于編碼器解碼器都是RNN,所以每個(gè)RNN在每次做一些處理的時(shí)候,它都會(huì)根據(jù)自己當(dāng)前的輸入以及可見的前期輸入來更新自己的隱藏狀態(tài)。
??讓我們看看編碼器隱藏狀態(tài)。注意最后一個(gè)隱藏狀態(tài)實(shí)際上是我們傳遞給解碼器上下文

??解碼器也有一個(gè)隱藏的狀態(tài),它從一個(gè)步驟傳遞到下一個(gè)步驟。只是因?yàn)槲覀儸F(xiàn)在關(guān)注的是模型的主要部分,所以沒有在這個(gè)圖形中可視化。
??現(xiàn)在讓我們看看另一種可視化序列到序列模型的方法。這個(gè)動(dòng)畫會(huì)讓你更容易理解這些模型。這就是所謂的“非滾動(dòng)”視圖,在這個(gè)視圖中,我們不顯示一個(gè)解碼器,而是逐步顯示每一個(gè)步驟的執(zhí)行過程。這樣我們就可以查看每個(gè)步驟的輸入和輸出。

現(xiàn)在來關(guān)注以下內(nèi)容

??上下文向量是這類模型的瓶頸,這給模型處理長句子帶來了挑戰(zhàn)。Bahdanau et al., 2014和Luong et al., 2015提出了一個(gè)解決方案。這些論文引入并完善了一種名為“注意力”的技術(shù),極大的提高了機(jī)器翻譯的質(zhì)量。注意力幫助模型根據(jù)其自身的需要對(duì)輸入序列的相關(guān)部分予以關(guān)注。

??在步驟7,注意機(jī)制使解碼器在生成英文翻譯之前,將注意力集中在 “étudiant”(法語中的 “學(xué)生”)這個(gè)詞上。這種放大輸入序列中相關(guān)部分信號(hào)的能力,使得注意力模型比沒有注意力的模型產(chǎn)生更好的結(jié)果。
??讓我們繼續(xù)看一下這種高層次抽象的注意力模型。注意力模型與經(jīng)典的序列到序列模型主要有兩個(gè)方面的不同:
??首先,編碼器將更多的數(shù)據(jù)傳遞給解碼器。編碼器不再是將編碼階段的最后一個(gè)隱藏狀態(tài)傳遞給解碼器,而是將所有隱藏狀態(tài)傳遞給解碼器

??其次,注意力解碼器在產(chǎn)生輸出之前會(huì)多做一個(gè)步驟。為了對(duì)輸入序列中與當(dāng)前解碼步驟相關(guān)的部分予以關(guān)注,解碼器做了以下工作。
1、查看它接收到的編碼器隱藏狀態(tài)集–每個(gè)編碼器隱藏狀態(tài)都與輸入句子中的某個(gè)詞有強(qiáng)關(guān)聯(lián)。
2、給每個(gè)隱藏狀態(tài)打分(我們先忽略打分是如何進(jìn)行的)。
3、將每個(gè)隱藏狀態(tài)乘以它的softmax得分,從而放大高分的隱藏狀態(tài),淹沒低分的隱藏狀態(tài)。

??這個(gè)評(píng)分機(jī)制運(yùn)作在解碼器側(cè)的每個(gè)步驟。
??現(xiàn)在讓我們用下面的可視化方式把整個(gè)事情整合起來,看看注意力過程是如何運(yùn)作的。
1、注意力解碼器RNN接收到兩部分信息:<END>標(biāo)簽的嵌入,以及一個(gè)初始化的解碼器隱藏狀態(tài)。
2、RNN對(duì)其輸入進(jìn)行處理,產(chǎn)生一個(gè)輸出和一個(gè)新的隱藏狀態(tài)向量(h4)。其中輸出被丟棄。
3、注意力步驟。我們使用編碼器隱藏狀態(tài)h4向量來計(jì)算當(dāng)前步驟的上下文向量(C4)。
4、我們將h4C4拼接成一個(gè)向量。
5、我們將這個(gè)向量通過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)(一個(gè)與模型共同訓(xùn)練的網(wǎng)絡(luò))。
6、前饋神經(jīng)網(wǎng)絡(luò)的輸出表示當(dāng)前步驟的輸出單詞。
7、重復(fù)下一個(gè)時(shí)間步驟。

??我們以另一種方式觀察在每一個(gè)解碼步驟中注意的是輸入句子的哪一部分。

??請(qǐng)注意,這個(gè)模型并不是無腦地將輸出處的第一個(gè)字與輸入處的第一個(gè)字匹配。它實(shí)際上從訓(xùn)練階段就學(xué)會(huì)了如何匹配該語言對(duì)中的單詞(在我們的例子中是法語和英語)。關(guān)于這種機(jī)制的精確性,我們舉一個(gè)論文中的例子。

??你可以看到模型在輸出"European Economic Area"時(shí)是如何正確關(guān)注的。在法語中,這些詞的順序與英語相反(“européenne économique zone”)。而句子中的其他詞的順序卻是相同的。
??如果你覺得你已經(jīng)準(zhǔn)備好學(xué)習(xí)實(shí)現(xiàn)這個(gè)模型,一定要學(xué)習(xí)TensorFlow的神經(jīng)機(jī)器翻譯(seq2seq)教程。
??優(yōu)秀的教程:
[1] Natural Language Processing Nanodegree Program
[2] Attention Is All You Need
[3] Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)

總結(jié)

以上是生活随笔為你收集整理的可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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