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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

李宏毅机器学习(五)Transformer

發布時間:2024/7/5 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李宏毅机器学习(五)Transformer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習內容

前情提要

Sequence-to-sequence(Seq2Seq)

輸入是一個句子,輸出長度不定; 下面的第一個是語音辨識,第二個是機器翻譯,第三個是語音翻譯。這三個都是獨立的任務。
第三個是語音翻譯,就是語音輸入一個國家的語音,最后輸出另一個國家的文字; 為什么需要第三個,因為第三個貌似可以根據前兩個表示出來,這是因為有些國家的語音是沒有文字的,那么這時候就需要語音翻譯。

硬train

我們以Hokkien(臺語、閩南語)為例訓練網絡:
注意語音翻譯和語音辨識是不一樣的!

所以我們就做了一個實驗,“硬train一發”,不管任何背景音樂、噪音等等因素 后面兩個倒裝句其實并沒有考慮到,所以第三種完全是有可能做到的!

Text-to-Speech 語音合成

我們通過單詞解析出kk音節,并將音節送到decoder中解析生成語音。
現在還不是end-to-end的網絡。

Seq2seq for Chatbot

聊天語音機器人。
通過訓練數據來教機器人學習回答!

大多數NLP都可以是QA問題

比如閱讀理解; 比如摘要; 比如情感分析!而QA問題又可以轉為seq2seq問題。

深度學習與人類語言處理

但是不是所有的模型都轉化為seq2seq,就好像所有都用瑞士軍刀一樣,切菜、砍柴,它需要一個最合適的模型。

Seq2seq for Syntactic Parsing

文法剖析; 就是將一句話中某些詞鏈接起來就是動詞片語、名詞片語等等。 名詞片語加動詞片語就是一個句子等。 模型的輸出本來就是一個model tree,但是我們可以把它轉化為一個seq2seq。

這篇文章就是這樣做的,當時都是用seq2seq做的翻譯,所以這篇文章題目才叫將語法作為外文語言這一說法!

Seq2Seq for Multi-label Classification

注意multi-label不是multi-class,前者是一個物體可以屬于多個class,但是后者呢則是一個物體只能屬于一個class;
我們設置一個閾值,如果預測的結果大于某個值,那么它就屬于該類別,但是這樣肯定效果不會好。
所以我們將該問題定義為一個seq2seq問題,讓機器自己決定輸出幾個class

Seq2Seq for Object Detection

目標檢測同樣可以硬解!!

Seq2seq

Seq2seq用途最廣泛的就是Transformer!

Encoder

利用encoder輸入一個向量,decoder輸出一個向量,而Transformer中使用的是self-attention,右側是原論文中的結構,不太好理解,我們換一個圖;

這里不稱一個Block是一個layer,是因為一個Block里面是有好幾個layer在做的事情!

但是在Transformer中使用的是含有殘差結構的輸出! 不明白殘差結構的,建議看看用在圖像處理中的Resnet結構,通過加入這個結構之后拯救了深度學習,使得層數再次堆疊! 除此之外,這里的norm并不是batch normalization(BN層),而是layer Normalization(LN層)! 不需要考慮batch的資訊! BN中是不同feature、不同Example、相同dimension來計算mean、standard deviation LN中是同一feature、同一Example、不同dimension來計算mean、standard deviation 所以再次經過右側后的輸出才是整個block的輸出!

我們再次看這個網絡!
位置信息需要添加; 里面有三個箭頭指的是多個單詞! Multi-head Attention指的是self-attention的多頭版; Add&Norm值的是殘差和Layer Norm;最后再次經過我們上面的說的FC層+norm+殘差結構!
結合上圖的解釋,這里就比較好理解了!

To learn more

還是可以創造更多的encoder的! 只需要調整中間的布局

Decoder

Autoregressive 自回歸的(以語音辨識作為例子)!

我們通過Encoder之后,將我們的語音轉化為vector,并將該vector投入到decoder中產生一段話。
但是怎么產生這一段話呢?
BOS(begin of sentence)
就是在你的lexicon(詞典)里面多加一個Token,本來Decoder可能產生的文字里面呢,多加一個特殊的符號,多加一個特殊的文字,這個字就代表了開始,代表了Begin。
對于NLP中的每一個token,都可以把它用一個One-Hot的Vector來表示,所以BOS也是用One-hot來表示。
第一次:
我們的Decoder吐出一個變量,這個變量的大小和vocabulary的大小是一樣的,vocabulary是根據你輸出的單位而不同的,你要先定義好自己要輸出什么。比如我們要輸出中文,我們以為它要輸出某些常用的3000字的方塊字,那么就是3000維度; 比如英文中我們可以是字母,但是字母太少了,我們可以用詞匯,詞匯太多了,我們使用subword,將英語的詞根詞尾切出來表示。
所以這里的就是我們要輸出的經過softmax后的分布,根據哪個分數最高定義我們的輸出得到哪個;

第二次:
這里我們將有兩個輸入,“begin + 機

第三次:
這里我們將有三個輸入: “begin+機+器

第四次:
這里我們將有三個輸入: “begin+機+器+學

所以Decoder的輸入是上一次的輸出;
所以Decoder還是有錯誤的可能的,一步錯步步錯 ,也就是Error Propogation! 但是我們現在先無視這個問題!

看一下Decoder內部的結構

我們可以看到Encoder和Decoder之間的差異基本在于中間紅色框中;
其二呢是Self-attention --》 Masked self-attention

masked self-attention

Self-attention 和 Masked self-attention的差距
只能考慮左邊的資訊,不能考慮右邊的資訊。

這里的自注意力是先有b1b^1b1再有b2b^2b2,是一個一個產生的,self-attention是多產生的;
所以我們并不知道輸出的長度是多少,應該是seq2seq。 (語音識別,你是不知道啥時候停止)

所以這就像推文接龍了,需要有人冒險來給出“斷”來終止繼續往下接!!

所以我們只需要在“習”后面添加一個符號, 在我們學習到這個字后自己會輸出一個“END”符號。

Non-autoregressive(NAT)

AT中我們假如要輸出一個長度100的,那么AT Decoder需要運行100次; 但是NAT中只需要運行一次即可。但是也有問題,你怎么知道輸出的長度呢? 需要自定義一個預測器來預測他的長度。
相比于AT而言優點就是速度要快,可以控制輸出長度。
比如在語音合成中,你如果想讓視頻加速,那么你可以將NAT Decoder中的預測器的輸出結果乘以2,那么就會使得Decoder輸出更多!使得語音更快。
NAT是一個熱門主題,因為NAT的表現還不如AT的好,因為中間有Multi-Modality問題

Encoder和Decoder是如何傳遞資訊的

Cross-attention

可以看到Encoder輸入到Decoder中有兩個!分別是下面的k和v。

我們以第二個字符作為例子來進行說明。
Decoder總是拿Encoder的最后一層的結果嗎? 原始論文是這樣的,但是我們可以不這樣,因為Encoder是有很多層的,Decoder也是很多不同的層,那么你可以任意的鏈接,采用不同層的Encoder的輸出。

Training

以語義識別為準,首先準備數據集,讓工具人來打標簽; 其次我們將做GT標記。 把該任務當作分類任務,最小化交叉熵。

①要使得交叉熵的總和最小
②這里我們每次的輸入都是Groundtruth(也就是說不用上一次的輸出,而是GT); 所以存在著MisMatch! 怎么解決后面說!

訓練的Tips

Copy Mechanism

復制! 沒有必要都是產生新的詞!
Chat-bot

Summarization
產生摘要。 但是需要上百萬的文章,需要文章 + 摘要!更需要Copy功能

Guided Attention
當我們輸出比較短的詞匯的時候,結果就不會好的

上面中的前幾句話都是抑揚頓挫的讀! 最后一個甚至直接讀了一個字,而沒有讀“發”!
所以我們怎么讓網絡讀所有的模型呢? 需要用到引導attention!

對于語音識別而言,我們的attention的順序應該是確定的,不應該是跳躍的獲取的,所以我們要提前定義attention的順序! 這是強制性的! 而不是根據Attention scores的分數來定義輸入!
Monotonic Attention 和 Location-aware attention是兩個相關的論文

Beam Search

紅色的線: 貪婪算法,我們一直選擇最好的
綠色的線: 短期內是不好的,但是長時間下去是好的!
相當于讀博士,短時間內是難的,但是在長期來說的是好的!
但是我們怎么會預知后面的結果呢? 這就需要我們先去預測,使用Beam Search!
Beam Search有時候有用 ,有時候沒用!

但是Decoder是需要有隨機性的! 如果是語音識別這種一對一的結果,那么使用Beam Search是最好的! 但是面對那種需要機器發揮點創造力的情況,我們是需要噪音的!
比如語音合成!

優化的參數

左邊:訓練的時候使用Cross Entropy
右邊: 測試的時候使用的BLEU score,計算兩個句子之間的距離
但是我們最后在Validation的時候,并不是選擇的loss最小的model,而是使得BLEU分數最大的model;
所以問題是,我們可以不可以直接使用BLEU分數,給它加一個負號,使得它最小就可以了啊。
但是現實是, BLEU分數是不能微分的,你根本沒辦法算兩個句子之間的! 而使用Cross Entropy可以計算單個詞之間的距離!
口訣: 遇到你無法用Optimization解決的問題時,用RL硬Train一發就對了;
你無法optimization無法解決的Loss Function時候,把它當作是RL的Reward,把你的Decoder當作Agent,當作RL問題!

Exposure bias

如果我們只是喂正確的詞,那么模型是沒有處理錯誤輸入的能力的!所以我們需要在訓練的時候,給它添加噪音! 這種技術叫做“Scheduled Sampling”。但是它會影響模型的平行化的能力

總結

以上是生活随笔為你收集整理的李宏毅机器学习(五)Transformer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区在线视频观看 | 91喷水视频 | 在线不卡的av | 在线免费观看国产精品 | 女性毛片 | 国产精品2 | 久在线播放 | 国产大奶在线 | 色婷婷久 | 亚洲激情欧美激情 | 天天综合亚洲 | 一区二区三区欧美 | 欧美精品观看 | 欧美大片黄色 | www.色人阁| av电影在线观看 | 精品国产户外野外 | 日韩精品一区二区亚洲av观看 | 日韩在线观看你懂的 | 在线观看av黄色 | 打屁股黄文| 青青草官网 | av大全在线观看 | 开心色99| 国产亚洲在线观看 | 亚洲av无码乱码国产麻豆 | 亚洲图片欧美色图 | 三年中文在线观看免费观看 | 四虎av | v在线| 少妇高潮灌满白浆毛片免费看 | 伊人网成人| 亚洲美女性视频 | 91直接看 | 国产区在线观看视频 | 美国av片| 欧美高清精品一区二区 | 秋霞成人午夜伦在线观看 | 亚洲一级二级三级 | 成人短视频在线 | 国产精品久久久久影院色老大 | 蜜桃视频污在线观看 | 亚洲AV无码阿娇国产精品 | 欧美精品一二区 | www久久com| 欧美亚洲一级片 | 午夜黄色影院 | 国产乱人伦精品一区二区 | 天天干天天搞天天射 | 操比网站 | 激情91视频 | 亚洲av无码久久忘忧草 | 夜夜骑av| 花房姑娘免费观看全集 | 亚洲AV无码国产精品 | 波多野结衣电车 | 欧美性色网| 亚洲精品喷潮一区二区三区 | 国产色视频在线 | 国产精品电影院 | 欧美日韩国 | 末发成年娇小性xxxxx | 看片久久| 欧美成人一二三 | 中文日韩欧美 | 日韩精品一区二区三区丰满 | 在线观看高清视频 | 亚洲乱码电影 | 操亚洲女人 | 国产精品精东影业 | 亚洲成人黄色在线观看 | 日韩不卡一二区 | 成年人在线播放 | 国产又爽又色 | 高h文在线 | 国产性一乱一性一伧一色 | 亚洲色图另类 | 午夜av在线免费观看 | 国产日韩欧美成人 | 午夜久久久久久久久 | 极品五月天 | 野花中文免费观看6 | 国产精品久久久91 | 欧美一级二级三级视频 | 99热r| 久久久国产精华液 | 日本天堂网在线 | 日韩中文电影 | 毛片亚洲av无码精品国产午夜 | 成年人免费在线 | 亚洲a网| 国产亚洲欧美精品久久久www | 熟妇人妻中文字幕无码老熟妇 | 国产精品人妖 | 77久久| 无码aⅴ精品一区二区三区浪潮 | 不卡av在线免费观看 | 中文字幕在线观看视频网站 | 伊人色av|