attention注意力機制學習
【參考資料】:
注:本文的內容均來自上面所羅列的參考資料,只是在學習的過程中對所學的內容進行整理,感謝上面的各位大佬,讓我這個nlp小白對attention有了一定的瞭解。
Attention機制的血緣關係:
encoder-decoder:
是一種神經網路的結構,常見的encoder和decoder可以是RNN、LSTM、GRU這些能夠處理序列資料的模型。
seq2seq:
任務:輸入一個序列,輸出一個序列。
主要部分:encoder和decoder,encoder首先處理輸入序列中的每一個item(需要做embeeding處理),並且將其轉換成一個向量(context向量),然後encoder將context向量傳遞給decoder,decoder根據context向量一個接一個的生成輸出序列中的每個item。
Attention:
從上面的encoder和decoder結構seq2seq模型可以發現,encoder只把最後一個hidden state作為context向量餵給decoder,所以這種結構在處理長句子翻譯問題的時候表現並不好。為解決這個問題,Attention應運而生,Attention使得模型能夠關注輸入序列中與目標相關的部分。
1. 什麼要引入Attention機制?
迴圈神經網路已經的很強的記憶能力,但想要記憶長距離的資訊需要更復雜的模型,需要更強大的計算能力,而往往在很多場合計算能力是一個瓶頸,使得不能一味增加模型的複雜度來提高模型效果。
2. Attention機制的理解
引入人腦處理資訊過載的方式,只選擇一些關鍵資訊進行處理,來提高神經網路的效率。在影像識別中人的面部、文字中的標題以及文章首句等位置就是關鍵資訊。
3. Attention機制有哪些?
按照認知神經學中的注意力,可以分為兩類:
- 聚焦式(focus)注意力:自上而下的有意識的注意力,主動注意--------是指有預定目的、依賴任務、主動有意識地聚焦於某一物件的注意力。
- 顯著性(saliency-based)注意力:自下而上的有意識的注意力,被動注意—基於顯著性的注意力是由外界刺激驅動的注意力,不需要主動干預,也和任務無關;可以將max-pooling和門控(gating)機制來近似地看做是自下而上的基於顯著性的注意力機制。
在人工神經網路中,注意力機制一般就特指聚焦式注意力。
4. Attention機制的原理
上面的圖是QKV模型,假設輸入為 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳 q q q,Memory 中以( k k k, v v v)形式儲存需要的上下文。感覺在 Q&A 任務中,這種設定比較合理,transformer 是採用的這種建模方式。 k k k 是 question, v v v是 answer, q q q是新來的 question,看看歷史 memory 中 k k k 更相似,然後依葫蘆畫瓢,根據相似 v v v,合成當前問題的答案。
decoder中的資訊定義為一個Query,encoder中包含了所有可能出現的詞語,我們將其作為一個字典,該字典的key為所有encoder的序列資訊。n個單詞相當於當前字典中有n條記錄,而字典的value通常也是所有encoder的序列資訊。
注意力機制可以分為三步:
-
step1-資訊輸入:
用X = [x1, · · · , xN ]表示N 個輸入資訊 -
step2-計算注意力分佈α:
令Key=Value=X,則可以給出注意力分佈
α i = s o f t m a x ( s ( k e y i , q ) ) = s o f t m a x ( s ( X i , q ) ) α_i = softmax(s(key_i,q)) = softmax(s(X_i,q)) αi=softmax(s(keyi,q))=softmax(s(Xi,q))
我們將 α i \alpha_i αi稱之為注意力分佈(概率分佈), s ( X i , q ) s(X_i,q) s(Xi,q)為注意力打分機制,有幾種打分機制:
-
step3-根據注意力分佈α來計算輸入資訊的加權平均:
注意力分佈 α i \alpha_i αi可以解釋為在上下文查詢q時,第i個資訊受關注的程度,採用一種“軟性”的資訊選擇機制對輸入資訊X進行編碼為:
a t t ( q , X ) = ∑ i = 1 N α i X i att(q,X) =\sum_{i=1}^{N}\alpha_iX_i att(q,X)=i=1∑NαiXi
這種編碼方式為軟性注意力機制(soft Attention),軟性注意力機制有兩種:普通模式(Key=Value=X)和鍵值對模式(Key!= Value )
關於Attention的更多內容可以在開頭的參考資料中進行查閱學習。
相關文章
- 深度學習中的注意力機制(Attention Model)深度學習
- 【機器學習】李宏毅——自注意力機制(Self-attention)機器學習
- 淺析注意力(Attention)機制
- 8.1 Attention(注意力機制)和TransformerORM
- 注意力機制----RNN中的self-attentionRNN
- 大模型學習筆記:attention 機制大模型筆記
- 【吳恩達深度學習筆記】5.3序列模型和注意力機制Sequence models&Attention mechanism吳恩達深度學習筆記模型
- 解碼注意力Attention機制:從技術解析到PyTorch實戰PyTorch
- Attention機制全流程詳解與細節學習筆記筆記
- 李沐大佬-動手學深度學習筆記-注意力機制深度學習筆記
- 注意力機制
- 通俗理解自注意力機制和多頭注意力機制
- Self-Attention GAN 中的 self-attention 機制
- 深度學習教程 | Seq2Seq序列模型和注意力機制深度學習模型
- 哈佛大學提出變分注意力:用VAE重建注意力機制
- Attention Model(注意力模型)思想初探模型
- 解讀注意力機制原理,教你使用Python實現深度學習模型Python深度學習模型
- transformer中的attention機制詳解ORM
- Seq2Seq那些事:詳解深度學習中的“注意力機制”深度學習
- 從各種注意力機制窺探深度學習在NLP中的神威深度學習
- 什麼是注意力機制?
- 深度學習中的序列模型演變及學習筆記(含RNN/LSTM/GRU/Seq2Seq/Attention機制)深度學習模型筆記RNN
- 深入理解圖注意力機制
- 圖學習(一)Graph Attention Networks
- umich cv-6-2 注意力機制
- 為什麼使用自注意力機制?
- 計算機視覺中的注意力機制計算機視覺
- Qt 事件機制 學習QT事件
- 注意力(Attention)與Seq2Seq的區別
- 基於自注意力機制的輕量級人體姿態估計(Lightweight Human Pose Estimation Based on Self-Attention Mechanism)
- 多頭注意力機制的python實現Python
- 目標檢測中的注意力機制
- Redis學習之管道機制Redis
- Sigmoid注意力一樣強,蘋果開始重新審視注意力機制Sigmoid蘋果
- 自注意力機制(2)-多頭自注意層
- 學習筆記(2)IPC機制筆記
- java反射機制的學習心得Java反射
- 學習資料庫索引機制資料庫索引