循環神經網絡(RNN)、LSTM 與 GRU (一)

循環神經網絡(RNN)、LSTM 與 GRU (一)


文章目錄

  • 循環神經網絡(RNN)、LSTM 與 GRU (一)
  • 循環神經網絡(RNN)、LSTM 與 GRU
    • 一、RNN(Recurrent Neural Network)
      • 1. 基本思想
      • 2. 數學表達
      • 3. 優缺點
    • 二、LSTM(Long Short-Term Memory)
      • 1. 引入背景
      • 2. 核心結構
      • 3. 狀態更新
      • 4. 優缺點
    • 三、GRU(Gated Recurrent Unit)
      • 1. 概述
      • 2. 核心公式
      • 3. 特點
    • 四、對比總結
    • 五、結構對比圖
    • 六、結語


循環神經網絡(RNN)、LSTM 與 GRU

一、RNN(Recurrent Neural Network)

1. 基本思想

  • RNN 通過在網絡中引入“循環”結構,使得當前時刻的輸出不僅依賴當前輸入,還依賴之前的隱藏狀態。
  • 適合處理 序列數據,如文本、語音、時間序列預測。

2. 數學表達

  • 隱藏層更新:
    ht=f(Wxhxt+Whhht?1+bh)h_t = f(W_{xh}x_t + W_{hh}h_{t-1} + b_h) ht?=f(Wxh?xt?+Whh?ht?1?+bh?)
  • 輸出層:
    yt=g(Whyht+by)y_t = g(W_{hy}h_t + b_y) yt?=g(Why?ht?+by?)

3. 優缺點

  • 優點:能夠建模序列信息,捕捉上下文依賴。
  • 缺點:存在梯度消失和梯度爆炸問題,難以學習長期依賴。

二、LSTM(Long Short-Term Memory)

1. 引入背景

  • 針對 RNN 的 長期依賴問題,LSTM 在結構上引入了“門控機制”,有效緩解梯度消失問題。
  • 在自然語言處理、語音識別、時間序列預測等任務中應用廣泛。

2. 核心結構

LSTM 的關鍵在于 細胞狀態(Cell State)三個門(Gates)

  1. 遺忘門(Forget Gate):決定丟棄多少歷史信息。
    ft=σ(Wf[xt,ht?1]+bf)f_t = \sigma(W_f[x_t, h_{t-1}] + b_f) ft?=σ(Wf?[xt?,ht?1?]+bf?)

  2. 輸入門(Input Gate):決定寫入多少新信息。
    it=σ(Wi[xt,ht?1]+bi)i_t = \sigma(W_i[x_t, h_{t-1}] + b_i) it?=σ(Wi?[xt?,ht?1?]+bi?)
    C~t=tanh?(Wc[xt,ht?1]+bc)\tilde{C}_t = \tanh(W_c[x_t, h_{t-1}] + b_c) C~t?=tanh(Wc?[xt?,ht?1?]+bc?)

  3. 輸出門(Output Gate):決定輸出多少細胞狀態的信息。
    ot=σ(Wo[xt,ht?1]+bo)o_t = \sigma(W_o[x_t, h_{t-1}] + b_o) ot?=σ(Wo?[xt?,ht?1?]+bo?)

3. 狀態更新

  • 細胞狀態:
    Ct=ft?Ct?1+it?C~tC_t = f_t * C_{t-1} + i_t * \tilde{C}_t Ct?=ft??Ct?1?+it??C~t?
  • 隱藏狀態:
    ht=ot?tanh?(Ct)h_t = o_t * \tanh(C_t) ht?=ot??tanh(Ct?)

4. 優缺點

  • 優點:能解決長期依賴問題,更好地捕捉長距離信息。
  • 缺點:結構復雜,計算量大,訓練速度較慢。

三、GRU(Gated Recurrent Unit)

1. 概述

  • GRU 是 LSTM 的簡化版本,僅包含 更新門(Update Gate)重置門(Reset Gate)
  • 沒有獨立的細胞狀態,直接用隱藏狀態傳遞信息。

2. 核心公式

  • 更新門:
    zt=σ(Wz[xt,ht?1])z_t = \sigma(W_z[x_t, h_{t-1}]) zt?=σ(Wz?[xt?,ht?1?])
  • 重置門:
    rt=σ(Wr[xt,ht?1])r_t = \sigma(W_r[x_t, h_{t-1}]) rt?=σ(Wr?[xt?,ht?1?])
  • 新隱藏狀態:
    h~t=tanh?(W[xt,(rt?ht?1)])\tilde{h}_t = \tanh(W[x_t, (r_t * h_{t-1})]) h~t?=tanh(W[xt?,(rt??ht?1?)])
  • 最終隱藏狀態:
    ht=(1?zt)?ht?1+zt?h~th_t = (1 - z_t) * h_{t-1} + z_t * \tilde{h}_t ht?=(1?zt?)?ht?1?+zt??h~t?

3. 特點

  • 結構更簡潔,參數更少,訓練更快。
  • 在很多任務中性能與 LSTM 接近甚至更優。

四、對比總結

特性RNNLSTMGRU
結構簡單,循環層復雜,含門控單元(3門+細胞狀態)較簡潔,僅2門
長期依賴建模
計算復雜度中等
訓練速度較快
典型應用簡單序列建模機器翻譯、語音識別NLP、推薦系統、時序預測

五、結構對比圖

GRU
反饋
更新門+重置門
隱藏狀態 h_t
x_t
y_t
LSTM
反饋
門控
隱藏狀態 h_t
x_t
細胞狀態 C_t
y_t
RNN
反饋
隱藏狀態 h_t
x_t
y_t

六、結語

  • RNN 是序列建模的基礎,但受限于梯度消失問題。
  • LSTM 通過門控機制成功解決長期依賴,是深度學習里程碑式的模型。
  • GRU 在保持效果的同時,計算更高效,是實際工程中的常見選擇。
    在這里插入圖片描述
    在這里插入圖片描述

總結一句:

如果序列較短,用 RNN 即可;
如果需要捕捉長期依賴,LSTM 更穩健;
如果追求訓練速度和效果平衡,GRU 是不錯的選擇。

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

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

相關文章

【AAOS】Android Automotive 16模擬器源碼下載及編譯

源碼下載repo init -u https://android.googlesource.com/platform/manifest -b android-16.0.0_r2 repo sync -c --no-tags --no-clone-bundle源碼編譯source build/envsetup.sh lunch sdk_car_x86_64-bp2a-eng make -j8運行效果emualtorHomeAll appsSettingsHAVCNotification…

jvm三色標記

好的,咱們把專業概念和生活例子結合起來,一步一步說清楚三色標記法:一、核心概念:用“顏色”給對象貼“狀態標簽”就像給家里的物品貼標簽,每種顏色代表它在“垃圾回收(大掃除)”中的狀態&#…

生成式AI的能力邊界與職業重構:從“百科實習生“到人機協作增強器

根據微軟最新研究,基于20萬條Copilot使用數據及用戶反饋,研究者揭示了生成式AI在實際應用中的能力邊界與職業影響。數據顯示,用戶使用AI助手最頻繁的任務是信息獲取(占比近40%),其次是公眾溝通類工作&#…

java17學習筆記

Java17是一個重要的特性發布,也是比較常用的一個版本,根據 2024Java生態統計,Java 17、11 和 8 的用戶比例分別為 35%、33% 和 29%。它遵循了自Java10以來引入的Java發布步調,并于2021年 9 月 14 日發布,在Java16發布后…

【AI應用】修改向量數據庫Milvus默認密碼

說明: 1)部署向量數據庫milvus運行一段時間后,想開啟密碼認證登錄attu頁面 2)開啟密碼認證登錄,提示用戶和密碼不正確,因為默認密碼已存儲在物理機 3)通過attu管理頁面修改向量數據庫milvus默認…

分布式系統消息隊列:可靠投遞與延時消息實戰

在分布式系統架構中,消息隊列(MQ)作為解耦服務、削峰填谷、異步通信的核心組件,其消息投遞的可靠性與延時消息的精準性直接影響業務系統的穩定性。本文結合實際業務場景,詳細解析消息投遞的全流程設計與延時消息的通用…

Java 學習筆記(基礎篇6)

面向對象基礎1. 類和對象(1) 示例:public class Student {String name "張三";int age 23;public void study() {System.out.println("學習 Java");}public void eat() {System.out.println("吃飯");} }public class Test {public …

光學件加工廠倚光科技:陪跑光學未來力量

在光學創新的漫漫長路上,總有一些看似 “不劃算” 的堅持,卻在悄然改寫行業的未來。倚光科技的故事,就始于這樣一種選擇 —— 明知光學打樣利潤微薄,明知上百個項目中能走到量產的寥寥無幾,仍愿意投入全球頂尖的設備與…

RabbitMQ:生產者可靠性(生產者重連、生產者確認)

目錄一、生產者重連二、生產者確認一、生產者重連 當網絡不穩定的時候,利用重試機制可以有效提高消息發送的成功率。不過SpringAMQP提供的重試機制是阻塞式的重試,也就是說多次重試過程中,當前線程是被阻塞的,會影響業務性能。 …

【深度學習新浪潮】空天地數據融合技術在城市三維重建中的應用

空天地數據融合技術在城市三維重建中的應用已取得顯著進展,尤其在提升精度以滿足具身智能機器人仿真訓練需求方面,研究和產品均呈現多樣化發展。以下是關鍵研究進展、產品方案及精度要求的詳細分析: 一、研究進展與技術路徑 1. 多源數據融合的技術突破 時空基準統一:通過…

Selenium自動化測試入門:cookie處理

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快driver.get_cookies() # 獲得cookie 信息driver.get_cookies(name) # 獲得對應name的cookie信息add_cookie(cookie_dict) # 向cookie 添加會話信息delete_cookie(na…

快解析如何讓遠程訪問更安全?

一、勒索病毒攻擊服務器的途徑很多用戶服務器對外開放,實現外網訪問,擔心服務器被勒索病毒攻擊!勒索病毒攻擊服務器的途徑之一是通過路由器開放的端口進行掃描攻擊,所以盡量不要在服務器的路由器和防火墻中開放端口二、快解析如何…

Linux下編譯ARPACK

本文記錄Linux下編譯ARPACK的流程。 零、環境 操作系統Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、依賴 1.1 安裝oneAPI 參見:Get the Intel oneAPI Base Toolkit , Get the Intel oneAPI HPC Toolkit 二、編譯ARPACK …

芋道RBAC實現介紹

說明:之前寫過一篇博客,介紹如何搭建一個基于角色的權限驗證框架 搭建一個基于角色的權限驗證框架 本文介紹在非常受歡迎的開源框架——芋道中是如何實現 RBAC 的,芋道的部署參考下面這篇文章: 芋道微服務代碼部署 介紹 一般…

Docker部署Jellyfin,沒有公網IP如何使用內網穿透遠程訪問?

Jellyfin是一款完全開源、免費的媒體服務器,可幫助你快速搭建屬于自己的私人流媒體平臺:電影、劇集、音樂、照片統統收納,跨設備隨點隨播。本文將以最簡潔的步驟,演示如何在Docker容器中部署Jellyfin,并通過貝銳花生殼…

Podman:Mysql(使用卷)

下載鏡像hpphcomp:~$ podman pull docker.1ms.run/mysql:latest Trying to pull docker.1ms.run/mysql:latest... Getting image source signatures Copying blob c81e70a25040 done | Copying blob 31f7d8dc4024 done | Copying blob b9916866e45f done | Copying blob …

2025年滲透測試面試題總結-21(題目+回答)

安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。 目錄 一、文件上傳繞過方式(Top 5) 二、文件包含高危函數(PHP為例&#xff0…

像海綿一樣吸收技術書籍的高效學習方法

像海綿一樣吸收技術書籍的高效學習方法前言六步高效閱讀法步驟1:快速瀏覽章節步驟2:先讀章末測驗步驟3:只讀粗體字步驟4:只讀每段的首句和末句步驟5:通讀整章步驟6:復習與重復高效學習技術書籍的實用技巧1.…

Day60--圖論--94. 城市間貨物運輸 I(卡碼網),95. 城市間貨物運輸 II(卡碼網),96. 城市間貨物運輸 III(卡碼網)

Day60–圖論–94. 城市間貨物運輸 I(卡碼網),95. 城市間貨物運輸 II(卡碼網),96. 城市間貨物運輸 III(卡碼網) 今天是Bellman_ford專場。帶你從普通的Bellman_ford,到隊列…

Jenkins服務器SSH公鑰配置步驟

步驟1. 在Jenkins服務器上生成SSH密鑰在Jenkins服務器上執行以下命令:# 1. 生成SSH密鑰對 ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""# 2. 設置正確的權限 chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub# 3. 查看公鑰內…