【Transformer】深入淺出自注意力機制

? ? ? ? 寫在前面:博主本人也是剛接觸計算機視覺領域不久,本篇文章是為了記錄自己的學習,大家一起學習,有問題歡迎大家指出。(博主本人的習慣是看文章看到不懂的有立馬去看不懂的那塊,所以博文可能內容比較雜)

? ? ? ? 本篇將詳細講解transfomer中的自注意力機制,自注意力機制使模型能夠同時考慮輸入序列中的所有位置(循環神經網絡RNN和卷積神經網絡CNN只能逐步處理,不了解RNN和CNN的同學可以看本篇的第三大點)。自注意力機制允許模型根據輸入序列中的不同部分來賦予不同的注意權重,從而更好地捕捉語義關系。

論文鏈接:[1706.03762] Attention Is All You Needicon-default.png?t=O83Ahttps://arxiv.org/abs/1706.03762

目錄

一、自注意力機制的輸入

二、自注意力機制的計算方式

三、額外知識擴展


下圖是原論文在中的自注意力機制的計算流程圖:

一、自注意力機制的輸入

????????首先是從整個模型的最開始,輸入一個句子(序列)X,然后從這個輸入中生成三個向量,分別為查詢向量(Q,Query)、鍵向量(K,Key)、值向量(V,Value)。這個時候,肯定會有同學疑惑,這三個向量是咋生成的嘞?這三個向量是通過輸入序列與三個權重矩陣相乘(即線性變換)創建出來的,其實就是最簡單的矩陣乘法。

下圖是生成過程的直觀表達:

二、自注意力機制的計算方式

????????上圖是原論文給出的計算公式——首先是將生成的Q和K進行點積,原論文中提到點積是計算兩個矩陣相似度的方法,即為每個向量都計算了一個score分數,也就是相似度分數。然后,為了梯度的穩定(不出現梯度爆炸和梯度消失的情況),進行了score分數歸一化,即將上一步得到的分數除以\sqrt{d_{x}}(輸入向量的維度的平方根)。緊接著是將得到的分數放到softmax中,經過softmax后,所有分數的都是正值且總和為1。最后再將經過softmax后的輸出與V進行點乘,這樣就得到了加權的每個輸入向量的評分,從而實現了篩選值得注意的部分。

????????值得注意的一部分是,在最開始的流程圖有一個Mask(opt.)模塊,這個模塊是將計算相似度分數之后的數轉換為一個非常大的負數,這樣經過softmax后就無限趨于0,也就是完全不需要關注了。

? ? ? ? 可能有的同學看完上面一段感覺非常難理解,的確是,因為我語言組織能力有限,同學們可以根據自己的矩陣知識來理解這個公式,就是將得到的相似分數歸一化后再加權得到注意力分數,大家不要把它想得過于復雜了。

三、額外知識擴展

????????RNN主要用于語言處理,類似與耳朵和嘴巴,用于解析語言,RNN的假設——事物的發展是按照時間順序展開的,即前一刻發生的事物會對未來的事情的發展產生影響通常用于自然語言處理中,可以用來處理時間序列數據,RNN的主要思想是把前面的信息傳遞到后面,這樣網絡可以利用之前的信息做出預測,能夠處理序列中每個時間步的數據。(“時間步”通常指的是序列數據中一個觀察點到下一個觀察點之間的時間間隔。)

????????CNN主要用于圖像識別,類似眼睛,用于圖像處理,CNN的假設——人的視覺總是會關注視線內特征最明顯的點。通常用于計算機視覺中,CNN用于提取圖像的空間特征,通過不斷的卷積和池化操作實現特征提取和降維。

? ? ? ? Word2Vec是一種流行的詞嵌入(word embedding)方法,將詞匯映射到向量的技術,使得語義上相似的詞在向量空間中彼此接近。

????????我覺得我這篇博客寫的好水啊,但是我還是得寫,以后復習也能有參考,還能發現自己的漏洞,同學們,繼續一起努力吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64200.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HarmonyOS NEXT 實戰之元服務:靜態案例效果---教育培訓服務

背景: 前幾篇學習了元服務,后面幾期就讓我們開發簡單的元服務吧,里面豐富的內容大家自己加,本期案例 僅供參考 先上本期效果圖 ,里面圖片自行替換 效果圖1完整代碼案例如下: import { authentication } …

3.阿里云flinkselectdb-py作業

1.概述 Python API中文文檔 本文介紹在阿里云實時計算flink中使用python作業,把oss中的數據同步數據到阿里云selectdb的過程。python簡單的語法特性更適合flink作業的開發; 先說結論: 在實際開發中遇到了很多問題,導致python作業基本基本無法…

互聯網視頻云平臺EasyDSS無人機推流直播技術如何助力野生動植物保護工作?

在當今社會,隨著科技的飛速發展,無人機技術已經廣泛應用于各個領域,為我們的生活帶來了諸多便利。而在動植物保護工作中,無人機的應用更是為這一領域注入了新的活力。EasyDSS,作為一款集視頻處理、分發、存儲于一體的綜…

51c視覺~YOLO~合集8

我自己的原文哦~ https://blog.51cto.com/whaosoft/12897680 1、Yolo9 1.1、YOLOv9SAM實現動態目標檢測和分割 主要介紹基于YOLOv9SAM實現動態目標檢測和分割 背景介紹 在本文中,我們使用YOLOv9SAM在RF100 Construction-Safety-2 數據集上實現自定義對象檢測模…

Docker Container 可觀測性最佳實踐

Docker Container 介紹 Docker Container( Docker 容器)是一種輕量級、可移植的、自給自足的軟件運行環境,它在 Docker 引擎的宿主機上運行。容器在許多方面類似于虛擬機,但它們更輕量,因為它們不需要模擬整個操作系統…

氣相色譜-質譜聯用分析方法中的常用部件,分流平板更換

分流平板,是氣相色譜-質譜聯用分析方法中的一個常用部件,它可以實現氣相色譜柱流與MS檢測器流的分離和分流。常見的氣質聯用儀分流平板有很多種,如單層T型分流平板、雙層T型分流平板、螺旋分流平板等等。 操作視頻http://www.spcctech.com/v…

易基因: BS+ChIP-seq揭示DNA甲基化調控非編碼RNA(VIM-AS1)抑制腫瘤侵襲性|Exp Mol Med

大家好,這里是專注表觀組學十余年,領跑多組學科研服務的易基因。 肝細胞癌(hepatocellular carcinoma,HCC)早期復發仍然是一個具有挑戰性的領域,其中涉及的機制尚未完全被理解。盡管微血管侵犯&#xff08…

鴻蒙系統文件管理基礎服務的設計背景和設計目標

有一定經驗的開發者通常對文件管理相關的api應用或者底層邏輯都比較熟悉,但是關于文件管理服務的設計背景和設計目標可能了解得不那么清楚,本文旨在分享文件管理服務的設計背景及目標,方便廣大開發者更好地理解鴻蒙系統文件管理服務。 1 鴻蒙…

如何配置 Java 環境變量:設置 JAVA_HOME 和 PATH

目錄 一、什么是 Java 環境變量? 二、配置 Java 環境變量 1. 下載并安裝 JDK 2. 配置 JAVA_HOME Windows 系統 Linux / macOS 系統 3. 配置 PATH Windows 系統 Linux / macOS 系統 4. 驗證配置 三、常見問題與解決方案 1. 無法識別 java 或 javac 命令 …

Doris 數據庫外部表-JDBC 外表,Oracle to Doris

簡介 提供了 Doris 通過數據庫訪問的標準接口 (JDBC) 來訪問外部表,外部表省去了繁瑣的數據導入工作,讓 Doris 可以具有了訪問各式數據庫的能力,并借助 Doris 本身的 OLAP 的能力來解決外部表的數據分析問題: 支持各種數據源接入…

分布式 IO 模塊助力沖壓機械臂產線實現智能控制

在當今制造業蓬勃發展的浪潮中,沖壓機械臂產線的智能化控制已然成為提升生產效率、保障產品質量以及增強企業競爭力的關鍵所在。而分布式 IO 模塊的應用,正如同為這條產線注入了一股強大的智能動力,開啟了全新的高效生產篇章。 傳統挑戰 沖壓…

CSS系列(37)-- Overscroll Behavior詳解

前端技術探索系列:CSS Overscroll Behavior詳解 📱 致讀者:探索滾動交互的藝術 👋 前端開發者們, 今天我們將深入探討 CSS Overscroll Behavior,這個強大的滾動行為控制特性。 基礎概念 🚀 …

深度學習中的并行策略概述:4 Tensor Parallelism

深度學習中的并行策略概述:4 Tensor Parallelism 使用 PyTorch 實現 Tensor Parallelism 。首先定義了一個簡單的模型 SimpleModel,它包含兩個全連接層。然后,本文使用 torch.distributed.device_mesh 初始化了一個設備網格,這代…

企業銷售人員培訓系統|Java|SSM|VUE| 前后端分離

【技術棧】 1??:架構: B/S、MVC 2??:系統環境:Windowsh/Mac 3??:開發環境:IDEA、JDK1.8、Maven、Mysql5.7 4??:技術棧:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5??數據庫…

vue 本地自測iframe通訊

使用 postMessage API 來實現跨窗口(跨域)的消息傳遞。postMessage 允許你安全地發送消息到其他窗口,包括嵌套的 iframe,而不需要擔心同源策略的問題。 發送消息(父應用) 1. 父應用:發送消息給…

Linux:code:network:devinet_sysctl_forward;IN_DEV_FORWARD

文章目錄 簡介sysctl 設置使用,arp_process間接使用IN_DEV_RX_REDIRECTSdev_disable_lro簡介 最近在看Linux里的forwarding的功能。順便在這里總結一下。有些詳細代碼邏輯,如果可以記錄一下,會好一點。 sysctl 設置 這個函數在查看的時候需要注意的問題:變量名起的有點簡…

自然語言處理與知識圖譜的融合與應用

目錄 前言1. 知識圖譜與自然語言處理的關系1.1 知識圖譜的定義與特點1.2 自然語言處理的核心任務1.3 二者的互補性 2. NLP在知識圖譜構建中的應用2.1 信息抽取2.1.1 實體識別2.1.2 關系抽取2.1.3 屬性抽取 2.2 知識融合2.3 知識推理 3. NLP與知識圖譜融合的實際應用3.1 智能問答…

PHP 數組

PHP 數組 PHP 是一種流行的服務器端編程語言,它提供了強大的數組處理能力。PHP 數組是一種數據結構,用于存儲相同類型或不同類型的多個值。在 PHP 中,數組可以分為一維數組、二維數組和多維數組。本文將詳細介紹 PHP 數組的各種操作&#xf…

CSS(三)盒子模型

目錄 Content Padding Border Margin 盒子模型計算方式 使用 box-sizing 屬性控制盒子模型的計算 所有的HTML元素都可以看作像下圖這樣一個矩形盒子: 這個模型包括了四個區域:content(內容區域)、padding(內邊距…

基于NodeMCU的物聯網窗簾控制系統設計

最終效果 基于NodeMCU的物聯網窗簾控制系統設計 項目介紹 該項目是“物聯網實驗室監測控制系統設計(仿智能家居)”項目中的“家電控制設計”中的“窗簾控制”子項目,最前者還包括“物聯網設計”、“環境監測設計”、“門禁系統設計計”和“小…