深度學習中的self-attention機制

更新於 發佈於 閱讀時間約 4 分鐘

前面的篇章,我們主要都是在處理單一的輸入值,或是固定size的一維矩陣輸入值。但有時候我們會沒辦法保證輸入的大小都是固定的,像是聲音訊號、文字長度。或者輸入的值是一組vector set,像是一次有好幾組vector同時要輸入等等。

同樣的,很多時候我們沒辦法知道輸出的label的size,像是我們輸入一段文字,可能只需要透過classification辨別文字給予的評價好壞,這時候就只會有一個輸出。或者是在翻譯英文的時候,就可能是一個英文字對應到一個中文字,這時候幾組輸入可能就對應到幾組輸出。

*當輸入與輸出是一個set對一個set,那我們可以稱之為sequence-to-sequence的問題。


Q:那如果我們各別將每一組的input直接經過fully connected network計算可以得到我們的目標嗎?

A: 有些問題可以,但像是英翻中的問題,是不是就會考慮到詞性問題,考慮到他們彼此的依賴關係?這時候fully connected Network就沒辦法精準處理我們的問題。

-> 所以才需要self-attention

self-attention

self attention能夠同時接收整個sequence的資訊,就能考慮到彼此的依賴關係。

raw-image


要如何計算self Attention?

  1. 首先,我們假設有一個sequence的input: a1, a2, a3, a4。會用a來表示而不是x是因為有可能他是最初的輸入,也有可能前面hidden layer的輸出,也就是是前面已經先透過 fully connected或是self-attention的計算。
  2. 透過Dot-product的方法(較常用的方法),依序找出ai與其他aj的關聯程度,用𝛼來表示。
  3. 計算出其相關性,通過softmax(不一定需要),就會得到a'1,1, a'1,2, a'1,3, a'1,4
  4. 接著通過一個共同的向量𝑊𝑣分別與a1, a2, a3, a4相乘計算出𝒗1,𝒗2, 𝒗3, 𝒗4,最後在相乘計算出b'1,1, b'1,2, b'1,3, b'1,4,加總得到b1
  5. 那如果a1~a4哪個關聯性越大,值就會最大,那最後加總得到的b1值就會越接近該值(假設a1與a2關聯度很高,最後a2的值會與b1非常相近)。


*b1~b4的計算不需要照順序,他們可以同時平行計算。

*Wq, Wk, Wv(transformer)的參數需要透過training data尋找。

*我們也可以將a1~a4整合起來做為矩陣,W也能以矩陣表示。



Dot-product的計算方法:

需要被計算出關聯性的主角,我們先透過Wq, Wk得到qi(query)與ki(key),其他的配角計算出kj(key)。

接著,我們將qi 與所有配角的 kj相乘 ,就能得到關聯性𝛼ij

raw-image


Multi-head Self-attention

相關性本身就有許多不一樣的定義,所以我們應該要有不同q與k,做出不同的相關性 → 以此推論出會有不同的k與v,這就被稱為有多個head。但要注意的是,如果我們有多個q,那在計算時它們彼此是獨立的,不能互相使用。


Positional Encoding

但到目前為止,我們少了一個位置的資訊。但有時位置的資訊也是很重要,像是英文字的位置有可能決定他是名詞或是動詞,因此我們需要加上一個判斷位置的資訊

所以我們可以設置一個位置參數ei,加入到ai上面。(第一個位置就是e1,第二個就是e2),ei的值是可以由我們設計的。 -> 這部分是尚待研究的問題,可以參考一些論文的設計。


語音辨識的使用

通常我們在語音辨識上,每一個向量只有10ms的範圍,所以講一句話就有可能產生上千個向量,複雜度就會提高。

-> 所以在語音辨識上,我們可以採用Truncated Self-attention的方法,在看一整個句子時,只挑選某個範圍內的文字做辨識,這樣就不需要輸入所有的向量。


Self-attention VS CNN

CNN可以看做是簡化版的Self-attention,CNN是只計算receptive field一個特定小範圍,而self-attention是考慮整個範圍。

認真想想,其實圖片本身就是一組vector set,所以自然也能使用self-attention。而且self attention能夠透過attention,找到圖片中的像素與自己W參數的相關性,就好像receptive field是機器自己決定出來的(大小、範圍等等),而不像CNN是有我們自己設定的。


以上是關於今天self-attention的基礎知識~




留言
avatar-img
留言分享你的想法!
avatar-img
dab戴伯的沙龍
1會員
37內容數
dab戴伯的沙龍的其他內容
2024/09/03
*本文章為參考李弘毅2021年機器學習課程後的筆記。 在訓練模型的時候,常常會遇到訓練上的問題,像是Loss值太大,或是Test出來的結果不如預期,但我們又不知道模型中到底發生了甚麼事,就跟黑盒子一樣。 因此,感謝李弘毅教授傳授了一套SOP來幫助我們判斷模型是哪裡出了問題,應該要怎麼解決!!
Thumbnail
2024/09/03
*本文章為參考李弘毅2021年機器學習課程後的筆記。 在訓練模型的時候,常常會遇到訓練上的問題,像是Loss值太大,或是Test出來的結果不如預期,但我們又不知道模型中到底發生了甚麼事,就跟黑盒子一樣。 因此,感謝李弘毅教授傳授了一套SOP來幫助我們判斷模型是哪裡出了問題,應該要怎麼解決!!
Thumbnail
2024/05/16
本文介紹自我監督學習的概念和訓練方式,以BERT和GPT為例,深入探討Masking Input及Fine-Tune的實際操作和可應用性。
Thumbnail
2024/05/16
本文介紹自我監督學習的概念和訓練方式,以BERT和GPT為例,深入探討Masking Input及Fine-Tune的實際操作和可應用性。
Thumbnail
2024/05/15
這篇文章探討了生成式對抗網路中機率分佈的使用與相關的訓練方式,包括Generator不同的點、Distriminator的訓練過程、生成圖片的條件設定等。此外,也提到了GAN訓練的困難與解決方式以及不同的learning方式。文章內容豐富且詳細,涵蓋了GAN的各個相關面向。
Thumbnail
2024/05/15
這篇文章探討了生成式對抗網路中機率分佈的使用與相關的訓練方式,包括Generator不同的點、Distriminator的訓練過程、生成圖片的條件設定等。此外,也提到了GAN訓練的困難與解決方式以及不同的learning方式。文章內容豐富且詳細,涵蓋了GAN的各個相關面向。
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 仔細看 AI說書 - 從0開始 - 66 中,Decoder 的 Multi-Head Attention 框框,會發現有一條線空接,其實它是有意義的,之所以空接,是因
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 仔細看 AI說書 - 從0開始 - 66 中,Decoder 的 Multi-Head Attention 框框,會發現有一條線空接,其實它是有意義的,之所以空接,是因
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 到 AI說書 - 從0開始 - 63 為止,我們已經介紹完 Multi-Head Attention ,接著我們來談 Add & Norm 兩元件的功能: Add
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 到 AI說書 - 從0開始 - 63 為止,我們已經介紹完 Multi-Head Attention ,接著我們來談 Add & Norm 兩元件的功能: Add
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 52 中,我們已經解析完 Attention 機制如何運作的,以下延伸至 Multi-Head Attention: Head 1
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在 AI說書 - 從0開始 - 52 中,我們已經解析完 Attention 機制如何運作的,以下延伸至 Multi-Head Attention: Head 1
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Attenti
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Attenti
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News