Attention的基本原理與模型結構
我們嘗試用人記憶和理解事物的方式來思考人工智慧:
為什麼我們需要引入這種Attention機制,以seq2seq為例:
傳統的seq2seq可以理解為讓RNN從左往右看一遍要Encode的序列,並將記憶不斷存入隱藏層。但是隱藏層的維度是有限的,就像人類的記憶力有限,當序列很長時,讀到最後一個word時很可能已經對開頭的word發生遺忘,要以看一遍的記憶完整複述整個序列或者對序列做翻譯等操作,是存在侷限的。
因此我們可以藉助人類產生工作記憶的方式,在decode時計算當前隱藏層和之前序列隱藏層的關聯度,或者說當前這個decoder模組要關注的encoder隱藏層有哪些,要有多少關注度。
decoder端的隱藏層 z z z和encoder端隱藏層 h h h的關聯度 α \alpha α計算可以有幾種常見的方法:
- 利用餘弦相似度計算 c o s ( z , h ) cos(z,h) cos(z,h)
- 以[ z , h z,h z,h]為輸入, α \alpha α為目標輸入訓練全連線層
- α = h T W z \alpha = h^TWz α=hTWz, W W W是可訓練引數
求得每一個decoder隱藏層 z 0 , z 1 . . . z i , . . . z n z_0,z_1...z_i,...z_n z0,z1...zi,...zn和encoder端隱藏層 h 0 , h 1 , . . . , h j , . . . h m h_0,h_1,...,h_j,...h_m h0,h1,...,hj,...hm的關聯度 α i j \alpha_i^j αij,並對其做softmax歸一化,得到 α 0 ^ , α 1 ^ . . . α n ^ \hat{\alpha_0},\hat{\alpha_1}...\hat{\alpha_n} α0^,α1^...αn^, c i = ∑ k α i k ^ h k c_i = \sum_k \hat{\alpha_i^k}h^k ci=∑kαik^hk
c i 和 z i c_i和z_i ci和zi作為decoder端RNN的輸入和隱藏層
相關文章
- 機器閱讀理解Attention-over-Attention模型模型
- OBJ模型檔案的結構、匯入與渲染OBJ模型
- Attention與SelfAttention
- RealFormer: 殘差式 Attention 層的Transformer 模型ORM模型
- 中文巨量模型“源1.0”:模型結構與生成效果解析模型
- Attention Model(注意力模型)思想初探模型
- 因果模型:邊緣結構模型MSM模型
- 大模型學習筆記:attention 機制大模型筆記
- Redis資料結構—連結串列與字典的結構Redis資料結構
- 結構化與非結構化
- Stata實現結構方程模型模型
- Qt 5模型/檢視結構QT模型
- 如何使得軟體架構與業務模型相結合? - VLINGO架構模型Go
- 大模型API與前端的結合使用大模型API前端
- 順序結構與選擇結構
- python分支結構與迴圈結構Python
- DOM(文件物件模型):理解網頁結構與內容操作的關鍵技術物件模型網頁
- 域結構進化的馬爾可夫模型馬爾可夫模型
- Self-Attention GAN 中的 self-attention 機制
- Attention
- CNN結構演變總結(一)經典模型CNN模型
- 注意力(Attention)與Seq2Seq的區別
- 類與結構體結構體
- 結構化資料與非結構化資料的差異
- Python(二):選擇結構與迴圈結構Python
- 「模型解讀」歷數GAN的5大基本結構模型
- 資料結構知識點--儲存結構與邏輯結構資料結構
- HarmonyOS:應用程式包結構(1)Stage模型應用程式包結構模型
- Attention模型方法綜述 | 多篇經典論文解讀模型
- 資料結構與演算法:圖形結構資料結構演算法
- 什麼是LLM大模型訓練,詳解Transformer結構模型大模型ORM
- Swift 類與結構體Swift結構體
- 資料結構與排序資料結構排序
- 結構體與共用體結構體
- SSD結構與工作原理
- JVM結構與機制JVM
- 吳恩達《序列模型》課程筆記(3)– Sequence models & Attention mechanism吳恩達模型筆記
- 語言模型(五)—— Seq2Seq、Attention、Transformer學習筆記模型ORM筆記