chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于 RNN 的解碼器架構(gòu)如何建模

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:深度學(xué)習(xí)自然語(yǔ)言處理 ? 2023-06-12 17:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Vaswani 等人在其名作 Attention is all you need 中首創(chuàng)了基于 transformer的編碼器-解碼器模型,如今已成為自然語(yǔ)言處理 (natural language processing,NLP) 領(lǐng)域編碼器-解碼器架構(gòu)的事實(shí)標(biāo)準(zhǔn)。

最近基于 transformer 的編碼器-解碼器模型訓(xùn)練這一方向涌現(xiàn)出了大量關(guān)于預(yù)訓(xùn)練目標(biāo)函數(shù)的研究,例如T5、Bart、Pegasus、ProphetNet、Marge 等,但它們所使用的網(wǎng)絡(luò)結(jié)構(gòu)并沒(méi)有改變。

本文的目的是詳細(xì)解釋如何用基于 transformer 的編碼器-解碼器架構(gòu)來(lái)對(duì)序列到序列 (sequence-to-sequence)問(wèn)題進(jìn)行建模。我們將重點(diǎn)關(guān)注有關(guān)這一架構(gòu)的數(shù)學(xué)知識(shí)以及如何對(duì)該架構(gòu)的模型進(jìn)行推理。在此過(guò)程中,我們還將介紹 NLP 中序列到序列模型的一些背景知識(shí),并將基于 transformer的編碼器-解碼器架構(gòu)分解為編碼器解碼器這兩個(gè)部分分別討論。我們提供了許多圖例,并把基于 transformer的編碼器-解碼器模型的理論與其在 transformers 推理場(chǎng)景中的實(shí)際應(yīng)用二者聯(lián)系起來(lái)。請(qǐng)注意,這篇博文不解釋如何訓(xùn)練這些模型 —— 我們會(huì)在后續(xù)博文中涵蓋這一方面的內(nèi)容。

基于 transformer 的編碼器-解碼器模型是表征學(xué)習(xí)和模型架構(gòu)這兩個(gè)領(lǐng)域多年研究成果的結(jié)晶。本文簡(jiǎn)要介紹了神經(jīng)編碼器-解碼器模型的歷史,更多背景知識(shí),建議讀者閱讀由 Sebastion Ruder 撰寫(xiě)的這篇精彩 博文。此外,建議讀者對(duì)自注意力 (self-attention) 架構(gòu)有一個(gè)基本了解,可以閱讀 Jay Alammar 的 這篇博文 復(fù)習(xí)一下原始 transformer 模型。

截至本文撰寫(xiě)時(shí), transformers 庫(kù)已經(jīng)支持的編碼器-解碼器模型有:T5、Bart、MarianMT以及Pegasus,你可以從 這兒 獲取相關(guān)信息。

本文分 4 個(gè)部分:

背景-簡(jiǎn)要回顧了神經(jīng)編碼器-解碼器模型的歷史,重點(diǎn)關(guān)注基于 RNN 的模型。

編碼器-解碼器-闡述基于 transformer 的編碼器-解碼器模型,并闡述如何使用該模型進(jìn)行推理。

編碼器-闡述模型的編碼器部分。

解碼器-闡述模型的解碼器部分。

每個(gè)部分都建立在前一部分的基礎(chǔ)上,但也可以單獨(dú)閱讀。

背景

自然語(yǔ)言生成 (natural language generation,NLG) 是 NLP 的一個(gè)子領(lǐng)域,其任務(wù)一般可被建模為序列到序列問(wèn)題。這類(lèi)任務(wù)可以定義為尋找一個(gè)模型,該模型將輸入詞序列映射為目標(biāo)詞序列,典型的例子有摘要和翻譯。在下文中,我們假設(shè)每個(gè)單詞都被編碼為一個(gè)向量表征。因此,個(gè)輸入詞可以表示為個(gè)輸入向量組成的序列:

因此,序列到序列問(wèn)題可以表示為找到一個(gè)映射,其輸入為個(gè)向量的序列,輸出為個(gè)向量的目標(biāo)序列。這里,目標(biāo)向量數(shù)是先驗(yàn)未知的,其值取決于輸入序列:

Sutskever 等 (2014) 的工作指出,深度神經(jīng)網(wǎng)絡(luò) (deep neural networks,DNN)“盡管靈活且強(qiáng)大,但只能用于擬合輸入和輸出維度均固定的映射?!?/p>

因此,要用使用 DNN 模型解決序列到序列問(wèn)題就意味著目標(biāo)向量數(shù)必須是先驗(yàn)已知的,且必須獨(dú)立于輸入。這樣設(shè)定肯定不是最優(yōu)的。因?yàn)閷?duì) NLG 任務(wù)而言,目標(biāo)詞的數(shù)量通常取決于輸入內(nèi)容,而不僅僅是輸入長(zhǎng)度。例如,一篇 1000 字的文章,根據(jù)內(nèi)容的不同,有可能可以概括為 200 字,也有可能可以概括為 100 字。

2014 年,Cho 等人 和 Sutskever 等人 提出使用完全基于遞歸神經(jīng)網(wǎng)絡(luò) (recurrent neural networks,RNN) 的編碼器-解碼器模型來(lái)解決序列到序列任務(wù)。與 DNN 相比,RNN 支持輸出可變數(shù)量的目標(biāo)向量。下面,我們深入了解一下基于 RNN 的編碼器-解碼器模型的功能。

在推理過(guò)程中,RNN 編碼器通過(guò)連續(xù)更新其隱含狀態(tài)對(duì)輸入序列進(jìn)行編碼。我們定義處理完最后一個(gè)輸入向量后的編碼器隱含狀態(tài)為。因此,編碼器主要完成如下映射:

然后,我們用來(lái)初始化解碼器的隱含狀態(tài),再用解碼器 RNN 自回歸地生成目標(biāo)序列。

下面,我們進(jìn)一步解釋一下。從數(shù)學(xué)角度講,解碼器定義了給定隱含狀態(tài)下目標(biāo)序列的概率分布:

根據(jù)貝葉斯法則,上述分布可以分解為每個(gè)目標(biāo)向量的條件分布的積,如下所示:

因此,如果模型架構(gòu)可以在給定所有前驅(qū)目標(biāo)向量的條件下對(duì)下一個(gè)目標(biāo)向量的條件分布進(jìn)行建模的話(huà):

那它就可以通過(guò)簡(jiǎn)單地將所有條件概率相乘來(lái)模擬給定隱藏狀態(tài)下任意目標(biāo)向量序列的分布。

那么基于 RNN 的解碼器架構(gòu)如何建模

呢?

從計(jì)算角度講,模型按序?qū)⑶耙粫r(shí)刻的內(nèi)部隱含狀態(tài)和前一時(shí)刻的目標(biāo)向量映射到當(dāng)前內(nèi)部隱含狀態(tài)和一個(gè)logit 向量(下圖中以深紅色表示):

此處,為 RNN 編碼器的輸出。隨后,對(duì) logit 向量進(jìn)行softmax操作,將其變換為下一個(gè)目標(biāo)向量的條件概率分布:

更多有關(guān) logit 向量及其生成的概率分布的詳細(xì)信息,請(qǐng)參閱腳注。從上式可以看出,目標(biāo)向量的分布是其前一時(shí)刻的目標(biāo)向量及前一時(shí)刻的隱含狀態(tài)的條件分布。而我們知道前一時(shí)刻的隱含狀態(tài)依賴(lài)于之前所有的目標(biāo)向量,因此我們可以說(shuō) RNN 解碼器隱式(或間接) 地建模了條件分布。

目標(biāo)向量序列的概率空間非常大,因此在推理時(shí),必須借助解碼方法對(duì) =對(duì) 進(jìn)行采樣才能高效地生成最終的目標(biāo)向量序列。

給定某解碼方法,在推理時(shí),我們首先從分布中采樣出下一個(gè)輸出向量; 接著,將其添加至解碼器輸入序列末尾,讓解碼器 RNN 繼續(xù)從中采樣出下一個(gè)輸出向量,如此往復(fù),整個(gè)模型就以自回歸的方式生成了最終的輸出序列。

基于 RNN 的編碼器-解碼器模型的一個(gè)重要特征是需要定義一些特殊向量,如(終止符) 和 (起始符) 向量。向量通常意味著中止,出現(xiàn)這個(gè)即“提示”編碼器輸入序列已結(jié)束; 如果它出現(xiàn)在目標(biāo)序列中意味著輸出結(jié)束,一旦從 logit 向量中采樣到,生成就完成了。向量用于表示在第一步解碼時(shí)饋送到解碼器 RNN 的輸入向量。為了輸出第一個(gè) logit,需要一個(gè)輸入,而由于在其之前還沒(méi)有生成任何輸入,所以我們饋送了一個(gè)特殊的輸入向量到解碼器 RNN。好,有點(diǎn)繞了!我們用一個(gè)例子說(shuō)明一下。

89fd6f2c-0605-11ee-962d-dac502259ad0.png

上圖中,我們將編碼器 RNN 編碼器展開(kāi),并用綠色表示; 同時(shí),將解碼器 RNN 展開(kāi),并用紅色表示。

英文句子I want to buy a car,表示為,,,,,,)。將其翻譯成德語(yǔ): “Ich will ein Auto kaufen",表示為,,,,,,)。首先,編碼器 RNN 處理輸入向量并更新其隱含狀態(tài)。請(qǐng)注意,對(duì)編碼器而言,因?yàn)槲覀冎粚?duì)其最終隱含狀態(tài)感興趣,所以我們可以忽略它的目標(biāo)向量。然后,編碼器 RNN 以相同的方式依次處理輸入句子的其余部分:、、、、、,并且每一步都更新其隱含狀態(tài),直到遇到向量。在上圖中,連接展開(kāi)的編碼器 RNN 的水平箭頭表示按序更新隱含狀態(tài)。編碼器 RNN 的最終隱含狀態(tài),由表示,其完全定義了輸入序列的編碼,并可用作解碼器 RNN 的初始隱含狀態(tài)??梢哉J(rèn)為,解碼器 RNN 以編碼器 RNN 的最終隱含狀態(tài)為條件。

為了生成第一個(gè)目標(biāo)向量,將向量輸入給解碼器,即上圖中的。然后通過(guò)語(yǔ)言模型頭 (LM Head)前饋層將 RNN 的目標(biāo)向量進(jìn)一步映射到 logit 向量,此時(shí),可得第一個(gè)目標(biāo)向量的條件分布:

最終采樣出第一個(gè)目標(biāo)詞(如圖中連接和 的灰色箭頭所示)。接著,繼續(xù)采樣出第二個(gè)目標(biāo)向量:

依此類(lèi)推,一直到第 6 步,此時(shí)從中采樣出,解碼完成。輸出目標(biāo)序列為, 即上文中的 “Ich will ein Auto kaufen”。

綜上所述,我們通過(guò)將分布分解為和 的表示來(lái)建模基于 RNN 的 encoder-decoder 模型:

在推理過(guò)程中,利用高效的解碼方法可以自回歸地生成目標(biāo)序列。

基于 RNN 的編碼器-解碼器模型席卷了 NLG 社區(qū)。2016 年,谷歌宣布用基于 RNN 的編碼器-解碼器單一模型完全取代其原先使用的的含有大量特征工程的翻譯服務(wù) (參見(jiàn)此處)。

然而,基于 RNN 的編碼器-解碼器模型存在兩個(gè)主要缺陷。首先,RNN 存在梯度消失問(wèn)題,因此很難捕獲長(zhǎng)程依賴(lài)性,參見(jiàn)Hochreiter 等 (2001) 的工作。其次,RNN 固有的循環(huán)架構(gòu)使得在編碼時(shí)無(wú)法進(jìn)行有效的并行化,參見(jiàn)Vaswani 等 (2017) 的工作。

論文的原話(huà)是“盡管 DNN 具有靈活性和強(qiáng)大的功能,但它們只能應(yīng)用于輸入和目標(biāo)可以用固定維度的向量進(jìn)行合理編碼的問(wèn)題”,用在本文時(shí)稍作調(diào)整。

這同樣適用于卷積神經(jīng)網(wǎng)絡(luò) (CNN)。雖然可以將可變長(zhǎng)度的輸入序列輸入 CNN,但目標(biāo)的維度要么取決于輸入維數(shù)要么需要固定為特定值。

在第一步時(shí),隱含狀態(tài)被初始化為零向量,并與第一個(gè)輸入向量一起饋送給 RNN。

神經(jīng)網(wǎng)絡(luò)可以將所有單詞的概率分布定義為。首先,其將輸入轉(zhuǎn)換為嵌入向量,該向量對(duì)應(yīng)于 RNN 模型的目標(biāo)向量。隨后將送給“語(yǔ)言模型頭”,即將其乘以詞嵌入矩陣(即),得到和詞表中的每個(gè)向量的相似度得分,生成的向量稱(chēng)為 logit 向量,最后再通過(guò) softmax 操作歸一化成所有單詞的概率分布:。

波束搜索 (beam search) 是其中一種解碼方法。本文不會(huì)對(duì)不同的解碼方法進(jìn)行介紹,如對(duì)此感興趣,建議讀者參考 此文。

Sutskever 等 (2014) 的工作對(duì)輸入順序進(jìn)行了逆序,對(duì)上面的例子而言,輸入向量變成了 (,,,,,,)。其動(dòng)機(jī)是讓對(duì)應(yīng)詞對(duì)之間的連接更短,如可以使得和 之間的連接更短。該研究小組強(qiáng)調(diào),將輸入序列進(jìn)行逆序是他們的模型在機(jī)器翻譯上的性能提高的一個(gè)關(guān)鍵原因。

責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 解碼器
    +關(guān)注

    關(guān)注

    9

    文章

    1199

    瀏覽量

    42546
  • 建模
    +關(guān)注

    關(guān)注

    1

    文章

    319

    瀏覽量

    62182
  • rnn
    rnn
    +關(guān)注

    關(guān)注

    0

    文章

    89

    瀏覽量

    7233

原文標(biāo)題:背景 | 基于 Transformers 的編碼器-解碼器模型

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    TD-SCDMA Turbo 解碼器設(shè)計(jì)

    TD-SCDMA Turbo 解碼器設(shè)計(jì) (一)本文討論一種用于TD-SCDMA (3GPP TDD LCR) 技術(shù)的硬件Turbo 解碼器浮點(diǎn)模型,闡述了該模型的設(shè)計(jì)、架構(gòu)和優(yōu)化。這種浮點(diǎn)模型具有簡(jiǎn)單,計(jì)算速度
    發(fā)表于 07-29 08:05 ?24次下載

    基于DTMF的解碼器設(shè)計(jì)

    本文介紹了DTMF 解碼芯片MT8870 的功能和特點(diǎn),給出了在解碼器中與89C51 單片機(jī)的接口電路,說(shuō)明了解碼器的工作原理抗干擾措施。關(guān)鍵詞:?jiǎn)纹瑱C(jī)抗干擾 DTMF 解碼監(jiān)控在一
    發(fā)表于 08-19 08:20 ?71次下載

    基于DTMF的解碼器設(shè)計(jì)

    本文介紹了DTMF 解碼芯片MT8870 的功能和特點(diǎn),給出了在解碼器中與89C51 單片機(jī)的接口電路,說(shuō)明了解碼器的工作原理抗干擾措施。關(guān)鍵詞:?jiǎn)纹瑱C(jī)抗干擾 DTMF 解碼監(jiān)控在一
    發(fā)表于 08-21 09:42 ?34次下載

    什么是音頻編解碼器

    什么是音頻編解碼器? 編解碼器(編碼/解碼器)轉(zhuǎn)換成模擬信號(hào)的數(shù)字碼流,另一個(gè)相同的編解碼器轉(zhuǎn)換為數(shù)字流回到成模擬信
    發(fā)表于 05-03 23:48 ?4240次閱讀

    高清解碼器的作用

    高清解碼器(xunwei)的主要作用在于接收前端高清編碼圖像或網(wǎng)絡(luò)攝像頭信號(hào)并解碼,然后通過(guò)自身的各種視頻輸出接口,如HDMI、DVI、SDI、VGA、BNC輸出顯示到顯示設(shè)備上。編碼解碼
    的頭像 發(fā)表于 12-10 15:47 ?1.4w次閱讀
    高清<b class='flag-5'>解碼器</b>的作用

    監(jiān)控解碼器作用

    如今是科技快速發(fā)展的時(shí)代,監(jiān)控技術(shù)也日趨完善,視頻解碼器是監(jiān)控系統(tǒng)中比較核心的部分,以下為大家介紹一下監(jiān)控系統(tǒng)視頻解碼器的作用,可供參考。
    的頭像 發(fā)表于 12-10 16:32 ?2.7w次閱讀

    為什么編解碼器需要解碼器模型

    通常來(lái)說(shuō),視頻解碼器聲明支持某個(gè)配置文件和級(jí)別。配置文件可以指定有關(guān)比特深度和色度二次采樣的視頻格式,以及解碼器需要支持的以解碼比特流的一組編碼工具。
    的頭像 發(fā)表于 08-10 16:50 ?4935次閱讀
    為什么編<b class='flag-5'>解碼器</b>需要<b class='flag-5'>解碼器</b>模型

    解碼器認(rèn)證

    解碼器認(rèn)證
    發(fā)表于 05-17 21:18 ?2次下載
    <b class='flag-5'>解碼器</b>認(rèn)證

    什么叫解碼器?

    解碼器就是在供電側(cè)的一個(gè)電阻元件或電容元件,在安定的12V側(cè),串在回路中就行了,目的是防止行車(chē)電腦報(bào)警,不同的車(chē)有不同的解碼器,主要是應(yīng)對(duì)車(chē)燈功率不足及對(duì)行車(chē)電腦干擾所加的。解碼器
    的頭像 發(fā)表于 05-06 11:08 ?6438次閱讀

    PyTorch教程10.6之編碼-解碼器架構(gòu)

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程10.6之編碼-解碼器架構(gòu).pdf》資料免費(fèi)下載
    發(fā)表于 06-05 18:12 ?0次下載
    PyTorch教程10.6之編碼<b class='flag-5'>器</b>-<b class='flag-5'>解碼器</b><b class='flag-5'>架構(gòu)</b>

    PyTorch教程-10.6. 編碼-解碼器架構(gòu)

    10.6. 編碼-解碼器架構(gòu)? Colab [火炬]在 Colab 中打開(kāi)筆記本 Colab [mxnet] Open the notebook in Colab Colab [jax
    的頭像 發(fā)表于 06-05 15:44 ?1310次閱讀
    PyTorch教程-10.6. 編碼<b class='flag-5'>器</b>-<b class='flag-5'>解碼器</b><b class='flag-5'>架構(gòu)</b>

    基于transformer的編碼-解碼器模型的工作原理

    與基于 RNN 的編碼-解碼器模型類(lèi)似,基于 transformer 的編碼-解碼器模型由一個(gè)編碼
    發(fā)表于 06-11 14:17 ?3015次閱讀
    基于transformer的編碼<b class='flag-5'>器</b>-<b class='flag-5'>解碼器</b>模型的工作原理

    基于 Transformers 的編碼-解碼器模型

    基于 transformer 的編碼-解碼器模型是 表征學(xué)習(xí) 和 模型架構(gòu) 這兩個(gè)領(lǐng)域多年研究成果的結(jié)晶。本文簡(jiǎn)要介紹了神經(jīng)編碼-解碼器
    的頭像 發(fā)表于 06-16 16:53 ?1489次閱讀
    基于 Transformers 的編碼<b class='flag-5'>器</b>-<b class='flag-5'>解碼器</b>模型

    神經(jīng)編碼-解碼器模型的歷史

    基于 transformer 的編碼-解碼器模型是 表征學(xué)習(xí) 和 模型架構(gòu) 這兩個(gè)領(lǐng)域多年研究成果的結(jié)晶。本文簡(jiǎn)要介紹了神經(jīng)編碼-解碼器
    的頭像 發(fā)表于 06-20 15:42 ?1395次閱讀
    神經(jīng)編碼<b class='flag-5'>器</b>-<b class='flag-5'>解碼器</b>模型的歷史

    遙控解碼器怎么使用

    遙控解碼器是一種用于解碼和復(fù)制遙控信號(hào)的設(shè)備,它可以幫助用戶(hù)在遙控丟失或損壞的情況下,重新獲得對(duì)設(shè)備的控制。 遙控
    的頭像 發(fā)表于 09-30 14:23 ?3430次閱讀