Transformer、RNN (循環神經網絡) 和 CNN (卷積神經網絡)的區別

我們來詳細對比一下 Transformer、RNN (循環神經網絡) 和 CNN (卷積神經網絡) 這三種在深度學習中極其重要的架構,并通過具體例子說明它們的區別。

核心區別總結:

  1. 處理數據的方式:

    • CNN: 專注于局部特征空間/時間模式。通過卷積核在輸入數據(如圖像的像素網格、文本的詞序列)上滑動,提取局部特征(如邊緣、紋理、短語)。

    • RNN: 專注于序列順序時間依賴性。按順序處理輸入(一個時間步一個時間步),并維護一個隱藏狀態來傳遞之前步驟的信息。擅長建模序列中元素間的時間依賴關系

    • Transformer: 專注于全局依賴關系并行處理。利用自注意力機制 (Self-Attention) 計算序列中所有元素(詞/像素/音符)之間的關聯強度,無論它們相距多遠。能夠同時處理整個序列。

  2. 依賴關系建模:

    • CNN: 主要捕獲局部依賴關系(鄰近元素之間的關系)。通過堆疊層可以捕獲更長距離的依賴,但效率較低且路徑較長。

    • RNN: 理論上可以捕獲任意長度的依賴關系(通過隱藏狀態傳遞)。但實際上,由于梯度消失/爆炸問題,很難有效學習長距離依賴(序列開頭的信息很難傳遞到結尾)。

    • Transformer: 天生擅長建模長距離依賴。自注意力機制允許序列中的任何元素直接關注序列中的任何其他元素,計算它們之間的相關性權重,一步到位。

  3. 并行化能力:

    • CNN: 高度并行化。同一層的不同卷積核可以在輸入的不同部分同時計算。

    • RNN: 順序處理,并行化困難。計算第 t 步必須等待第 t-1 步完成(因為依賴隱藏狀態 h_{t-1})。

    • Transformer: 高度并行化。序列中的所有元素都可以通過自注意力機制同時計算其與其他所有元素的關系。

  4. 位置信息處理:

    • CNN: 通過卷積核的滑動隱含地捕獲位置信息(局部順序)。池化操作會丟失精確位置。

    • RNN: 天然地通過處理順序捕獲位置信息(先處理第1個詞,再處理第2個詞...)。

    • Transformer: 需要顯式編碼。因為自注意力機制本身是排列不變的(打亂輸入順序,輸出關系不變),所以必須通過位置編碼 (Positional Encoding) 將元素的順序信息顯式注入到輸入嵌入中。

詳細舉例說明:機器翻譯任務 - 將英文句子 "I love you" 翻譯成中文 "我愛你"。

假設每個詞都被表示為一個向量(詞嵌入)。

  1. CNN 的處理方式:

    • 將句子視為一個 1D 網格(詞序列)。

    • 使用多個不同寬度的卷積核(比如寬度為 2 和 3)在詞序列上滑動。

      • 寬度為2的核:可能捕獲到 ("I", "love")("love", "you") 這樣的二元組特征。

      • 寬度為3的核:可能捕獲到 ("I", "love", "you") 這個三元組特征。

    • 這些卷積核的輸出(特征圖)會被池化(如最大池化),提取最顯著的特征。

    • 這些局部特征被送入后續的全連接層或其他層進行預測。

    • 關鍵點:

      • CNN 有效地提取了短語級別的局部模式(如 "love you")。

      • 很難直接建模 "I" 和 "you" 之間跨越 "love" 的長距離依賴(主謂關系)。這種關系需要堆疊很多層才能間接捕獲。

      • 輸出翻譯時,模型主要基于它從局部窗口中學到的模式來預測下一個詞。

  2. RNN (例如 LSTM/GRU) 的處理方式:

    • 按順序處理每個詞:

      1. 處理 "I":計算隱藏狀態 h1 = f(Embedding("I"), h0)h0 通常是零向量)。h1 包含了 "I" 的信息。

      2. 處理 "love":計算隱藏狀態 h2 = f(Embedding("love"), h1)h2 包含了 "I""love" 的信息。

      3. 處理 "you":計算隱藏狀態 h3 = f(Embedding("you"), h2)h3 包含了 "I""love""you" 的信息。

    • 在解碼(生成中文)時,通常使用 h3 作為整個句子的“上下文向量”來初始化解碼器,或者解碼器在生成每個中文詞時都參考 h3 (或編碼器的最終狀態)。

    • 關鍵點:

      • RNN 顯式地建模了序列順序"love" 的處理依賴于 "I" 的處理結果 (h1)。

      • 它理論上可以捕獲 "I""you" 的關系,因為 h3 包含了所有歷史信息。

      • 但是: 在這個短句中是有效的。如果句子非常長(如“The cat that chased the mouse that ate the cheese that... was tired”),"The cat" 的信息在傳遞到 "was tired" 時,經過多層傳遞后可能會嚴重衰減或變形(梯度消失),導致模型難以正確理解主語是誰。

      • 處理是順序的,無法并行計算 h1, h2, h3

  3. Transformer 的處理方式:

    • 同時輸入整個句子 ["I", "love", "you"] 的詞嵌入向量,并加上位置編碼(例如 sin/cos 函數)來指示每個詞的位置(第1個,第2個,第3個)。

    • 核心步驟:自注意力機制

      • 對于序列中的 每個詞(Query),計算它與序列中 所有詞(Key)的 關聯度分數(通過點積或縮放點積)。

      • 將這些分數歸一化(Softmax)得到 注意力權重

      • 用這些權重對序列中所有詞的 值(Value) 進行加權求和,得到該詞的 輸出表示

      • 具體到例子:

        • 計算 "I" 的輸出:

          • "I" (Query) 會計算與 "I" (Key), "love" (Key), "you" (Key) 的關聯度。

          • 可能發現 "I""love" 關系強(主語-動詞),與 "you" 關系弱。

          • 加權求和:Output_I = weight_I*Value_I + weight_love*Value_love + weight_you*Value_you。權重 weight_love 最大,所以 Output_I 包含了很強的 "love" 信息。

        • 計算 "love" 的輸出:

          • "love" 會計算與 "I", "love", "you" 的關聯度。

          • 可能發現與 "I""you" 關系都強(主語-動詞-賓語)。

          • Output_love 同時包含了很強的 "I""you" 的信息。

        • 計算 "you" 的輸出:

          • "you" 會計算與 "I", "love", "you" 的關聯度。

          • 可能發現與 "love" 關系非常強(動詞-賓語),與 "I" 關系弱。

          • Output_you 包含了很強的 "love" 信息。

      • 這樣,每個詞的輸出表示都融合了序列中所有其他詞的信息,特別是那些與它語義關系密切的詞(由注意力權重決定)。

    • 這些經過自注意力增強的表示再送入前饋神經網絡進行進一步處理。

    • 在解碼時,Transformer 解碼器也使用自注意力(只能關注已生成的詞)和 編碼器-解碼器注意力(關注整個源語言序列)來生成目標詞。

    • 關鍵點:

      • 直接建模全局依賴: "I" 的輸出直接包含了它最相關的詞 "love" 的信息;"love" 的輸出同時包含了 "I""you" 的信息。長距離依賴(如 "I""you")通過 "love" 的橋梁作用(或者它們自己直接計算權重)被有效捕獲。

      • 高度并行化: 所有詞的 Query, Key, Value 計算以及注意力權重的計算都可以同時進行。

      • 位置編碼至關重要: 沒有它,模型無法區分 "I love you""you love I"

總結表格:

特性CNN (卷積神經網絡)RNN (循環神經網絡)Transformer
核心機制卷積核、池化循環單元、隱藏狀態自注意力機制 (Self-Attention)
擅長建模局部空間/時間模式 (鄰近特征)序列順序、短期依賴全局依賴、長距離依賴
依賴關系范圍局部 (通過堆疊層可擴展,效率低)理論上任意,實踐中長距離困難任意距離,一步到位
并行化能力 (同層卷積核并行) (順序依賴隱藏狀態)非常高 (序列元素并行計算)
位置信息處理隱含 (通過滑動)天然 (通過處理順序)顯式 (位置編碼 Positional Enc.)
主要優勢高效提取局部特征,參數共享,平移不變性天然處理序列,建模時間動態強大建模能力,并行高效,長距離依賴
主要劣勢捕獲長距離依賴效率低、困難梯度消失/爆炸,訓練慢 (無法并行),長距離依賴弱計算復雜度高 (O(n2)),需要大量數據
典型應用圖像識別、目標檢測、短文本分類時間序列預測、簡單文本生成、語音識別機器翻譯、大語言模型 (LLM)、文本摘要、問答

簡單類比:

  • CNN: 像拿著不同放大鏡(卷積核)在照片(輸入)上局部區域仔細查看,找出特定圖案(特征)。

  • RNN: 像一個人逐字閱讀句子,一邊讀一邊在便簽(隱藏狀態)上記下當前的理解,這個理解依賴于之前讀過的內容和之前的筆記。句子太長容易忘記開頭。

  • Transformer: 像把整個句子鋪開在桌上,給每個詞都發一個調查問卷,問它:“你覺得這個句子里的每個詞對你來說有多重要?” 然后每個詞根據收到的所有問卷結果(注意力權重),重新組合一個能反映全局關系的“理解報告”。

總而言之,Transformer 因其強大的全局建模能力和并行性,在處理復雜序列任務(尤其是需要理解長距離依賴的任務如機器翻譯、文本理解)上取得了革命性的成功,成為當前大語言模型(LLM)如 GPT、BERT 等的基石架構。CNN 在圖像和局部模式識別上依然不可替代。RNN 在特定序列任務(尤其短序列或實時流處理)中仍有應用價值,但其重要性已被 Transformer 大幅超越。

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

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

相關文章

408第二季 - 組成原理 - 數據類型轉換

這章內容會比較少 閑聊 如果題目說把8位改成4位,你保留低位就行了 這里保留的是0101 然后是有符號數和無符號數的轉換 機器數就是二進制長什么樣子 然后就是小數點是不參與存儲的 然后簡單看看代碼 這是short就說明是有符號數 unsigned就是說明是無符號數 然后y…

讓 Deepseek 寫電器電費計算器(html版本)

以下是一個簡單的電器電費計算器的HTML和CSS代碼&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

react_flow自定義節點、邊——使用darg布局樹狀結構

文章目錄 ?前言?引入react-flow?自定義節點nodeType?自定義邊edgeType?添加節點?inscode代碼塊?結束 ?前言 大家好&#xff0c;我是yma16&#xff0c;本文分享 前端 ——react_flow自定義節點、邊——使用darg布局樹狀結構。 自定義效果 可以自定義節點、邊、線條流動…

word表格批量轉excel,提取表格數據到excel

本文將帶你一步步實現一個將 Word 中的表格內容批量提取并轉換為 Excel 文件的自動化工具&#xff0c;適用于需要手動復制粘貼數據到excel的場景 假設我們有這樣的表格在word中&#xff0c;圖片世放在excel中便于截圖&#xff0c;現在需要將表格中有顏色的數據提取到對應的exce…

day2課程

1.添加pinia到Vue項目 2.counter基礎使用 3.getters和異步action 4.storeToRefs和調試 5.項目初始化和git管理 6.別名路徑聯想設置 7.elementsPlus自動按需導入配置 這個項目使用的是按需引入 1.安裝包管理器 npm install element-plus --save 2.按需引入 npm install -D unp…

Vue3 + TypeScript + Element Plus 設置表格行背景顏色

技術要點&#xff1a; 1、使用 :row-class-name"setRowClassName" 設置表格行類名 2、不能同時使用 stripe 3、設置行類名的樣式 應用效果&#xff1a; 同時使用 stripe 出來的效果&#xff1a; 參考代碼&#xff1a; ReagentTable.vue <script setup lang&…

山東大學 軟件項目管理知識點總結

軟件項目管理背誦總結 將老師所發ppt的知識點整理&#xff0c;方便查閱與背誦。 文章目錄 軟件項目管理背誦總結1. 概述1.1 什么是項目&#xff1f;1.2 項目有那些特征&#xff1f;1.3 項目于日常工作有什么區別&#xff1f;1.4 如何衡量一個項目是否成功&#xff1f;1.5 軟件項…

css基礎筆記簡潔版1

&#x1f4d8; CSS 基礎筆記 1 一、CSS 簡介 CSS&#xff08;層疊樣式表&#xff09;用于為網頁添加樣式&#xff0c;實現結構與樣式分離&#xff0c;能夠控制顏色、字體、布局、位置、動畫等視覺效果。 二、基本語法 選擇器 {屬性1: 值1;屬性2: 值2; }說明&#xff1a; 選…

reactor模型學習

學習鏈接 狂野架構師第四期netty視頻 - B站視頻 狂野架構師訓練營6期 - B站視頻 Netty學習example示例&#xff08;含官方示例代碼&#xff09; LG-Netty學習 【硬核】肝了一月的Netty知識點 - 啟動過程寫的很詳細 Reactor模型講解 一文搞懂Reactor模型與實現 高性能網絡編…

應用探析|千眼狼高速攝像機、sCMOS相機、DIC測量、PIV測量在光學領域的應用

2025&#xff0c;長春&#xff0c;中國光學學會學術大會。中科視界攜千眼狼品牌四大科學儀器高速攝像機、sCMOS科學相機、DIC應變測量系統、PIV流場測量系統亮相&#xff0c;在光學領域多個細分研究方向承載科學實驗的感知與測量任務。 1先進制造技術及其應用 激光切割、激光焊…

Kafka 4.0.0集群部署

Kafka 4.0.0集群部署 1.1 關閉防火墻和 selinux 關閉防火墻 systemctl stop firewalld.service systemctl disable firewalld.service關閉selinux setenforce 0 #&#xff08;臨時生效&#xff09; sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config #&…

探秘卷積神經網絡(CNN):從原理到實戰的深度解析

在圖像識別、視頻處理等領域&#xff0c;卷積神經網絡&#xff08;Convolutional Neural Network&#xff0c;簡稱 CNN&#xff09;如同一位 “超級偵探”&#xff0c;能夠精準捕捉圖像中的關鍵信息&#xff0c;實現對目標的快速識別與分析。從醫療影像診斷到自動駕駛中的路況感…

vue3導入xlsx表格處理數據進行渲染

下載插件 npm install -S xlsx import * as XLSX from "xlsx"; // Vue3 版本 <el-upload class"upload-demo"accept".xlsx":http-request"channel":show-file-list"false":limit"1"><el-button type&qu…

生成模型_條件編碼器

條件編碼器可以采用不同的網絡結構&#xff0c;UNet 是其中非常常見的一種&#xff0c;尤其在 Diffusion 和圖像生成任務中用得最多。 &#x1f9e0; 什么是“條件編碼器”&#xff1f; 在 **條件生成模型&#xff08;Conditional GAN / Diffusion&#xff09;**中&#xff0c…

@Scheduled, @PostConstruct, @PreDestroy, @Async, @OnApplicationEvent

注解名稱模塊功能引入年份版本是否推薦使用PostConstructjavax.annotation (Java EE) / spring-beansBean 初始化完成后執行的方法2006Java EE 5 / Spring 2.0?? 推薦PreDestroyjavax.annotation (Java EE) / spring-beansBean 銷毀前執行的方法2006Java EE 5 / Spring 2.0?…

小程序請求加載提示防閃爍機制詳解

目錄 一、問題背景&#xff1a;閃爍現象的產生 二、完整解決方案代碼 三、核心防閃爍機制解析 1. 請求計數器&#xff08;requestCount&#xff09; 2. 延遲隱藏定時器&#xff08;關鍵創新&#xff09; 3. 100ms緩沖期的重要意義 四、關鍵場景對比分析 場景1&#xff…

linux防火墻講解

目錄 安全管理 一、SELinux安全上下文 1、SELinux 簡介 2、基礎操作命令 1. 查看SELinux狀態 2. 切換工作模式* 3、安全上下文&#xff08;Security Context&#xff09; 1. 查看上下文* 2. 修改上下文 chcon命令 semanage 命令 4、SELinux布爾值&#xff08;Boole…

巧用 Python:將 A3 作業 PDF 輕松轉為 A4 可打印格式

在孩子的學習過程中&#xff0c;我們常常會遇到這樣的困擾&#xff1a;學校老師發的作業是以 A3 格式的 PDF 文件呈現的&#xff0c;然而家里的打印機卻只支持 A4 打印。這時候&#xff0c;要是能有一個簡單的方法把 A3 的 PDF 轉換為 A4 可打印的格式就好了。別擔心&#xff0…

Transformer 核心概念轉化為夏日生活類比

以下是把 Transformer 核心概念轉化為「夏日生活類比」&#xff0c;不用看代碼也能秒懂&#xff0c;搭配冰鎮西瓜式記憶法&#xff1a; 一、Transformer 夏日冷飲制作流水線 編碼器&#xff08;Encoder&#xff09;&#xff1a;相當于「食材處理間」 把輸入&#xff08;比如…

【Linux基礎知識系列】第二十九篇-基本的網絡命令(ping, traceroute, netstat)

在Linux系統中&#xff0c;網絡診斷是系統管理員和用戶日常工作中不可或缺的一部分。無論是排查網絡連接問題、檢查網絡延遲&#xff0c;還是監控網絡狀態&#xff0c;掌握一些基本的網絡命令至關重要。本文將詳細介紹ping、traceroute和netstat這三種常用的網絡命令&#xff0…