初識Bert

在學習Bert之前我們先了解“遞歸神經網絡(RNN??Recurrent neural network)”?和 “長短期記憶(LSTM?Long short-term memory)”

我們如果僅僅識別每個字的含義,那么在一句話中沒有相同的字還是可以的但是如果一句話中有相同的字,那么我們進不能識別每個字的含義,因為有可能相同的字,位置不一樣,詞性也不一樣,那么含義就會不一樣。?

因此就引出了 遞歸神經網絡(RNN??Recurrent neural network)和長短期記憶(LSTM?Long short-term memory)

遞歸神經網絡

RNN就是在傳入模型的時候,也傳入一個向量,就是一個記憶單元,我們可以形象的稱為“傳家寶”,因為傳家寶會一直串行的傳下去這樣就能。有了這個傳家寶,就可以根據上文判斷當前文字的詞性。

因為是串行傳遞,如果一句話很長,這也導致RRN模型中記憶單元也就是“傳家寶”中記錄的東西過多,導致最前面的信息和最后面的信息很難對應,如:

當我們問“誰與賽罕塔拉結下了不解之緣?”時,“傳家寶”里的東西已經記錄前面的太多信息了,無法準確的找到主語“我”。

為了解決這個問題,因此引出“長短期記憶(LSTM?Long short-term memory)”模型。

長短期記憶

LSTM模型就是,還是那上面的例子,問“誰與賽罕塔拉結下了不解之緣?”時,我們就會把“傳家寶”上鎖,不會讓中間無關緊要的信息進入“傳家寶”,這樣我們就能在“傳家寶”當中找到我們想要的答案。

自注意力機制

通過學習RNN和LSTM模型,雖然問題已經解決,但是速度還是太慢了,先輩的巨人們就創造了Bart模型,在學習Bart模型前,我們要先了解自注意力機制(Self-attention)

所謂的注意力機制就是是一個特征轉換器,考慮了句子整體的前后關系。注意力機制可以讓模型在生成每個目標詞的時候,選擇性地“關注”源句子中相關聯的部分,而不是等同對待整個源句子。

?通俗一點,注意力機制就是對于每個事件所分擔注意力的比例是多少。

那么𝛼1,1, 𝛼1,2, 𝛼1,3, 𝛼1,4這些都是怎么求的呢?

得到的𝛼1,1, 𝛼1,2, 𝛼1,3, 𝛼1,4其概率和不為1,因此在經過一次Soft-max,得到概率和為1,這樣我們就得到了𝛼1分配給每個字多少的注意力

b1就是𝛼1看過整句話結合注意力得到的值?,這樣可以求得b2,b3,b4,在計算得過程中都是全部都是并行的,完全不需要等待前面得內容,因此速度很快。

下面是具體得計算過程,

?

我們把每個字,也就是表示成768維向量稱之為token

Bert

Bert就是一個編碼器,與他對應的就是GPT-2解碼器,先逐步分析Bert的過程:

Inputs就是將一個字以one-hot的編碼形式展示出來,傳去Input Embeadding中,就是對應的“詞Embeadding”進行的操作就是進行一次全連接Linear(22128,768);在進行一次Positional Encoding,就是對應的“位置 Embeadding”,進行的操作是一次全連接Linear(512,768)。

經過兩次全連接,進入的就是Muti-Head Attention(多頭注意力機制),下面的三個箭頭就是Wq、Wk、Wv,都是(768,768)的Linear,后面進行Norm,就是歸一化,觀察到還有一個箭頭指向Add,這就是ResNet殘差連接,因為有殘差連接,網絡才能走很深。傳出還是768維。

傳入Feed Forward,Feed Forward的操作就是進行兩次全連接:nn.linear(768,3072)、nn.linear(3072,768),得到768維,在進行一次歸一化和殘差連接,這就算把特征提取出來了。

這就是Bert的一次完整的過程,當然,因為Bert整體的過程不改變維度,輸入768維,輸出768維,所以可以根據具體的情況進行N次。

? ? ? ? ? ??

這就是他們之間的關系?

?

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

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

相關文章

clickhouse源碼分析

《ClickHouse源碼分析》 當我們談論數據庫時,ClickHouse是一個不容忽視的名字。它是一個用于聯機分析處理(OLAP)的列式數據庫管理系統(DBMS),以其快速的數據查詢能力而聞名。對于想要深入了解這個高效工具…

[網絡爬蟲] 動態網頁抓取 — Selenium 元素定位

🌟想系統化學習爬蟲技術?看看這個:[數據抓取] Python 網絡爬蟲 - 學習手冊-CSDN博客 在使用 Selenium 時,往往需要先定位到指定元素,然后再執行相應的操作。例如,再向文本輸入框中輸入文字之前,…

ArcGIS操作:15 計算點的經緯度,并添加到屬性表

注意:需要轉化為地理坐標系 1、打開屬性表,添加字段 2、計算字段(以計算緯度為例 !Shape!.centroid.Y ) 3、效果

[項目]基于FreeRTOS的STM32四軸飛行器: 七.遙控器按鍵

基于FreeRTOS的STM32四軸飛行器: 七.遙控器 一.遙控器按鍵搖桿功能說明二.搖桿和按鍵的配置三.按鍵掃描 一.遙控器按鍵搖桿功能說明 兩個手柄四個ADC。 左側手柄: 前后推為飛控油門,左右推為控制飛機偏航角。 右側手柄: 控制飛機飛行方向&a…

Redis 內存淘汰策略深度解析

Redis 作為高性能的內存數據庫,其內存資源的高效管理直接關系到系統的穩定性和性能。當 Redis 的內存使用達到配置的最大值(maxmemory)時,新的寫入操作將觸發內存淘汰機制(Eviction Policy),以釋…

【面試】Java 集合

集合 1、常見的集合有哪些2、說說 List、Set、Queue、Map 四者的區別3、Collection 和 Collections 有什么區別4、Comparable 和 Comparator 的區別5、ArrayList 和 LinkedList 的區別是什么6、ArrayList 和 Vector 的區別是什么7、ArrayList 和 Vector 的擴容機制8、CopyOnWri…

【c++】平移字符串

說明 實現字符串的左移與右移 示例代碼 #include <iostream> #include <string> using namespace std;int main() {string str1 "12345";//左移2位string str2 str1.substr(2) str1.substr(0, 2);cout << str2 << endl;//右移2位&…

密碼學(終極版)

加密 & 解密 備注&#xff1a;密碼學領域不存在完全不能破解的密碼&#xff0c;但是如果一個密碼需要很久很久&#xff0c;例如一萬年才能破解&#xff0c;就認為這個密碼是安全的了。 對稱加密 非對稱加密 公鑰加密、私鑰解密 私鑰簽名、公鑰認證 非對稱的底層原理是…

FreeRTOS任務狀態查詢

一.任務相關API vTaskList&#xff08;&#xff09;&#xff0c;創建一個表格描述每個任務的詳細信息 char biaoge[1000]; //定義一個緩存 vTaskList(biaoge); //將表格存到這緩存中 printf("%s /r/n",biaoge); 1.uxTaskPriorityGet&#xff08;&#xf…

yolov5代碼詳解--3.python代碼腳本

三、val.py val.py的主要作用是對訓練好的模型進行驗證&#xff08;或評估&#xff09;。具體來說&#xff0c;它用于在指定的驗證集上評估模型的性能&#xff0c;計算各項評估指標&#xff0c;并輸出結果。val.py通常在模型訓練完成后運行&#xff0c;用于驗證模型的檢測精度、…

無人機應用探索:玻纖增強復合材料的疲勞性能研究

隨著無人機技術的快速發展&#xff0c;輕量化已成為其結構設計的核心需求。玻纖增強復合材料憑借高強度、低密度和優異的耐環境性能&#xff0c;成為無人機機身、旋翼支架等關鍵部件的理想選擇。然而&#xff0c;無人機在服役過程中需應對復雜多變的環境&#xff1a;高空飛行時…

Python SQLite3 保姆級教程:從零開始學數據庫操作

Python SQLite3 保姆級教程&#xff1a;從零開始學數據庫操作 本文適合純新手&#xff01;無需任何數據庫基礎&#xff0c;跟著步驟操作即可掌握 SQLite3 的核心用法。 目標&#xff1a;讓你像用記事本一樣輕松操作數據庫&#xff01; 目錄 什么是 SQLite3&#xff1f;環境準…

C語言中的整數類型(short,int,long和long long)

整數是編程中最常見的一種數據類型&#xff0c;C語言提供了多種整數類型&#xff0c;包括 short、int、long 和 long long&#xff0c;它們的主要區別在于存儲范圍和內存占用的大小。 本節將詳細講解這些整數類型的定義、特性、使用場景以及注意事項&#xff0c;幫助你全面理解…

使用jcodec庫,訪問網絡視頻提取封面圖片上傳至oss

注釋部分為FFmpeg&#xff08;確實方便但依賴太大&#xff0c;不想用&#xff09; package com.zuodou.upload;import com.aliyun.oss.OSS; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.zuodou.oss.OssProperties;…

游戲引擎學習第147天

倉庫:https://gitee.com/mrxiao_com/2d_game_3 上一集回顧 具體來說&#xff0c;我們通過隱式計算來解決問題&#xff0c;而不是像數字微分分析器那樣逐步增加數據。我們已經涵蓋了這個部分&#xff0c;并計劃繼續處理音量問題。不過&#xff0c;實際上我們現在不需要繼續處理…

使用Dockerfile打包java項目生成鏡像部署到Linux_java項目打docker鏡像的dockerfile

比起容器、鏡像來說&#xff0c;Dockerfile 非常普通&#xff0c;它就是一個純文本&#xff0c;里面記錄了一系列的構建指令&#xff0c;比如選擇基礎鏡像、拷貝文件、運行腳本等等&#xff0c;每個指令都會生成一個 Layer&#xff0c;而 Docker 順序執行這個文件里的所有步驟&…

Linux -- 磁盤結構、文件系統ext2

一、磁盤 1.磁盤的物理結構 2.磁盤的存儲結構 盤片&#xff1a;是機械硬盤存儲數據的主要介質&#xff0c;一般由鋁合金或玻璃等材料制成&#xff0c;表面涂有一層磁性材料。數據通過磁頭在盤片的磁性涂層上進行磁化來記錄&#xff0c;磁化的不同方向代表二進制的 0 和 1。盤面…

標量、向量、矩陣與張量:從維度理解數據結構的層次

在數學和計算機科學中,維度描述了數據結構的復雜性,而標量、向量、矩陣、張量則是不同維度的數據表示形式。它們的關系可以理解為從簡單到復雜的擴展,以下是詳細解析: 1. 標量(Scalar):0維數據 定義:單個數值,沒有方向,只有大小。 維度:0維(無索引)。 示例: 溫度…

點云數據處理--splat轉3dtiles

文章目錄 處理流程簡介核心功能實現數據讀取與格式轉換定義Point類數據讀取splat轉gltf 點云數據分割定義四叉樹遞歸生成3dtiles瓦片 生成tileset.json遞歸生成tileset.json計算box 主函數調用渲染 下一步工作性能優化渲染效果調優其他 源碼地址&#xff1a; github 處理流程簡…

OneM2M:全球性的物聯網標準-可應用于物聯網中

OneM2M 是一個全球性的物聯網(IoT)標準,旨在為物聯網設備和服務提供統一的框架和接口,以實現設備之間的互操作性、數據共享和服務集成。OneM2M 由多個國際標準化組織(如 ETSI、TIA、TTC、ARIB 等)共同制定,目標是解決物聯網領域的碎片化問題,提供一個通用的標準,支持跨…