循環神經網絡 - 深層循環神經網絡

如果將深度定義為網絡中信息傳遞路徑長度的話,循環神經網絡可以看作既“深”又“淺”的網絡。

一方面來說,如果我們把循環網絡按時間展開,長時間間隔的狀態之間的路徑很長,循環網絡可以看作一個非常深的網絡。

從另一方面來 說,如果同一時刻網絡輸入到輸出之間的路徑𝒙𝑡 → 𝒚𝑡,這個網絡是非常淺的。

因此,我們可以增加循環神經網絡的深度從而增強循環神經網絡的能力。增加循環神經網絡的深度主要是增加同一時刻網絡輸入到輸出之間的路徑 𝒙𝑡 → 𝑦𝑡,比如增加隱狀態到輸出 𝒉𝑡 → 𝒚𝑡,以及輸入到隱狀態 𝒙𝑡 → 𝒉𝑡 之間的路徑的深度。

本文我來學習兩種常見的增加循環神經網絡深度的做法。

一、堆疊循環神經網絡

堆疊循環神經網絡(Stacked RNN)是將多個循環神經網絡層級組合在一起的結構,也稱為循環多層感知器,相當于在時間序列上“堆疊”多層隱狀態,從而提高模型對信息的抽象能力和表達復雜性。

1. 基本概念

在傳統的單層 RNN 中,每個時間步的隱藏狀態 ht 的計算通常為:

而在堆疊 RNN 中,我們將多個這樣的 RNN 單元按層級排列,通常稱為“深層 RNN”或“堆疊 RNN”。例如,假設我們有兩層 RNN:

  • 第一層 RNN(低層)處理原始輸入序列 xt 產生隱層表示

  • 第二層 RNN(高層)以第一層的輸出作為輸入,進一步生成更高層次的表示

這種設計使得低層可以捕捉局部、短期的信息,而高層則能抽象出全局或更復雜的模式,特別適合于具有多層語義結構的任務,如自然語言處理、語音識別、時間序列預測等。

下圖給出了按時間展開的堆疊循環神經網絡:

第 𝑙 層網絡的輸入是第 𝑙 ? 1 層網絡的輸出。我們定義 ?為在時刻 𝑡 時第 𝑙 層的隱狀態:

2. 具體例子

任務: 對簡單數列進行預測——給定輸入序列 [1, 2, 3],目標輸出為 [2, 3, 4],即每個數字加 1。

模型設定:

  • 輸入和輸出均為標量。

  • 我們使用一個兩層 RNN,每層都有一個隱藏單元(為了便于示例,我們這里采用單隱藏單元,但后續擴展到多維也類似)。

第一層 RNN(層 1):

公式:

假設參數為:

計算過程:

  • 時間步 1 (t=1):

  • 時間步 2 (t=2):

  • 時間步 3 (t=3):

第二層 RNN(層 2):

公式:

假設參數為:

計算過程:

  • 時間步 1 (t=1):

  • 時間步 2 (t=2):

  • 時間步 3 (t=3):

輸出層:

假設將第二層的隱藏狀態直接映射為輸出,公式為:

假設參數為:

則最終模型輸出:

  • y1≈0.1826

  • y2≈0.347

  • y3≈0.418

為使輸出反映“每個數字加 1”,假設目標輸出應該為 [2, 3, 4],當前輸出與目標有較大差距。通過反向傳播(例如均方誤差損失)計算梯度,再結合 BPTT,將誤差信息逐層反傳,從第二層到第一層,對各層參數 進行更新。

經過多輪迭代后,模型逐漸學會如何利用低層提取到的局部特征和高層傳遞到整體抽象信息,使得輸出能夠更準確地逼近目標(例如最終輸出 [2, 3, 4])。

3. 為什么使用堆疊 RNN?

  • 抽取多層次特征
    低層可以捕捉輸入中局部、短期的模式,比如簡單的數值變化;高層則能捕捉更抽象的全局信息,如序列整體趨勢、結構關系等。

  • 提高模型表現
    對于復雜任務,例如機器翻譯或情感分析,堆疊 RNN 能夠實現更深入的信息處理,進而提升性能。

4. 應用場景

  • 自然語言處理
    在語句建模、語言翻譯中,堆疊 RNN 能夠從詞匯級別到句子級別提取不同層次的語法和語義信息。

  • 語音識別
    利用多層結構捕捉語音信號中局部發音和全局語調等特征,提升識別準確率。

  • 時間序列預測
    在金融數據、傳感器數據等任務中,堆疊 RNN 能夠建模短期波動和長期趨勢,提高預測精度。

堆疊循環神經網絡通過在不同層次上堆疊多個 RNN 層,使模型能夠逐步抽象出從局部模式到全局語義的復雜表示。在以上例子中,我們以簡單的數字序列預測為例,通過兩層 RNN 分別提取原始輸入的低級特征和高級抽象信息,再通過輸出層映射得到預測結果。盡管示例中采用了非常簡單的數值和單隱藏單元,但在實際應用中,這種多層結構可以大幅提升模型對長序列和復雜依賴關系的表達能力,因此在 NLP、語音識別、時間序列預測等領域得到廣泛應用。

二、雙向循環神經網絡?

在有些任務中,一個時刻的輸出不但和過去時刻的信息有關,也和后續時刻 的信息有關。比如給定一個句子,其中一個詞的詞性由它的上下文決定,即包含左右兩邊的信息。因此,在這些任務中,我們可以增加一個按照時間的逆序來傳遞信息的網絡層,來增強網絡的能力。即所謂的雙向循環神經網絡,由兩層循環神經網絡組成,它們的輸入相同,只是信息傳遞的方向不同:

假設第 1 層按時間順序,第 2 層按時間逆序,在時刻 𝑡 時的隱狀態定義為

雙向循環神經網絡(Bidirectional RNN, Bi-RNN)是一種擴展自傳統RNN的架構,其基本思想是同時利用序列的正向和反向信息,從而使每個時間步的隱層狀態能夠綜合考慮前后文信息。這對于很多自然語言處理任務非常關鍵,因為理解一個詞語或字符往往不僅依賴于它之前的信息,也與它之后的語境密切相關。

下圖給出了按時間展開的雙向循環神經網絡:

下面通過詳細的解釋和一個具體例子來說明雙向RNN的原理和應用。

1. 核心原理

在傳統的單向RNN中,隱藏狀態 ht 只依賴于從序列起點到時間步 t?的信息,這意味著對于當前時間步的輸出,只能利用其歷史信息。這在某些任務中可能不足以捕捉上下文的全部信息。

雙向RNN的關鍵在于構建兩個RNN子網絡:

最后,把正向和反向隱藏狀態進行合并(例如拼接、加權平均或求和),形成每個時間步的綜合表示 ht=。這種綜合表示既包含了過去的信息,也包含了未來的信息,為后續任務(如分類、標注、生成)提供了更完整的上下文。

2. 詳細例子:命名實體識別(NER)

任務說明:
在命名實體識別任務中,我們需要從一段文本中識別出人名、地點、組織等實體。正確判斷一個詞是否為實體,往往需要綜合該詞前后的上下文信息。

輸入示例:
假設有一句話:"Barack Obama visited Berlin last summer."
我們對這句話進行分詞,得到:

["Barack",?"Obama",?"visited",?"Berlin",?"last",?"summer"]

雙向RNN建模:

  1. 正向處理:
    正向RNN從第一個單詞 "Barack" 開始,一直向后計算隱藏狀態:

    其中 f?表示 RNN 單元的前向更新函數,這里可理解為典型的 tanh?(Wx+Uh+b) 形式。

  2. 反向處理:
    反向RNN從最后一個單詞 "summer" 開始,往回計算隱藏狀態:

  3. 合并隱藏狀態:

模型訓練和輸出:

  • 訓練過程中,模型會在每個時間步計算一個預測(例如通過 softmax 輸出每個詞的實體類別標簽)。

  • 損失函數(如交叉熵)被計算在整個序列上,反向傳播時兩個方向的梯度分別求出,再根據參數共享機制更新網絡參數。

  • 經過訓練,模型能學習到如何利用正向和反向信息共同對每個詞進行分類,從而提高命名實體識別的準確率。

3. 應用場景

  • 命名實體識別、序列標注等 NLP 任務
    例如,翻譯、情感分析、對話系統中,詞的含義往往受其前后文影響,雙向RNN可以同時捕捉兩側上下文信息,從而提升模型性能。

  • 語音識別
    在語音識別中,雙向模型可以利用未來和過去的信息提高語音轉寫的準確率,尤其是在需要后處理來消除噪音的場景中更為有效。

  • 視頻分析任務
    在一些需要同時考慮前后幀信息的任務(如視頻中的動作識別)中,雙向信息也能提供更全面的時間上下文。

雙向循環神經網絡通過并行計算正向和反向隱藏狀態,并將它們合并為每個時間步的最終表示,使得每個時間步的輸出不僅利用了過去信息,也利用了未來信息。以命名實體識別任務為例,雙向RNN能夠為每個單詞提供全局上下文的特征,顯著提升了序列標注的準確性。這種方法廣泛應用于需要全局語境理解的自然語言處理、語音識別和視頻分析任務中,成為提升序列模型性能的重要技術之一。

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

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

相關文章

GoLand 標紅但程序可正常運行:由符號索引緩存失效引起的假報錯問題

問題描述: 在 GoLand 中,api/tls.go 文件中引用了 api/type.go 中定義的結構體 Options,但 GoLand 把 Options 標紅顯示為未定義(undefined symbol),盡管程序實際可以正常編譯和運行(go build /…

python-各種文件(txt,xls,csv,sql,二進制文件)讀寫操作、文件類型轉換、數據分析代碼講解

1.文件txt讀寫標準用法 1.1寫入文件 要讀取文件,首先得使用 open() 函數打開文件。 file open(file_path, moder, encodingNone) file_path:文件的路徑,可以是絕對路徑或者相對路徑。mode:文件打開模式,r 代表以…

Uniapp:確認框

目錄 一、 出現場景二、 效果展示三、具體使用 一、 出現場景 在項目的開發中,會經常出現刪除數據的情況,如果直接刪除的話,可能會存在誤刪,用戶體驗不好,所以需要增加一個消息提示,提醒用戶是否刪除。 二…

解密 Vue 打包策略

1. 總體概述 在現代前端開發中,Vue 已成為流行框架之一,開發者通常使用 webpack、vite 或 vue-cli 來構建項目。可能會困惑: 為什么源碼中的資源引用路徑與打包后實際產出的路徑會不一樣?靜態路徑與動態路徑到底如何正確書寫&am…

Golang|接口并發測試和壓力測試

文章目錄 這里出現某些獎品和數據庫中庫存量不一致的問題原因就是在并發的情況下,sync.Map仍然會出現臟寫問題,就是在同時操作下的操作覆蓋問題可以先把數據放到channel里,然后用一個單一的協程負責讀取channel并寫入map

CentOS下,Xftp中文文件名亂碼的處理方式

亂碼原因 中文版Windows默認使用GBK編碼,現代Linux發行版(如CentOS、Ubuntu等)默認使用UTF-8編碼。Windows下正常的編碼,可能在linux下無法識別,例如:Windows的GBK字節0xD6D0被Linux用UTF-8解碼時&#xf…

解決 Vue 中 input 輸入框被賦值后,無法再修改和編輯的問題

目錄 需求: 出現 BUG: Bug 代碼復現 解決問題: 解決方法1: 解決方法2 關于 $set() 的補充: 需求: 前段時間,接到了一個需求:在選擇框中選中某個下拉菜單時,對應的…

【含文檔+PPT+源碼】基于微信小程序的衛生院預約掛號管理系統的設計與實現

項目視頻介紹: 畢業作品基于微信小程序的衛生院預約掛號管理系統的設計與實現 課程簡介: 本課程演示的是一款基于微信小程序的衛生院預約掛號管理系統的設計與實現,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習…

【Vue】案例——To do list:

【Vue】案例——To do list: 一、案例介紹:二、效果展示(如圖)三、主要功能:四、技術要點:補充:【Vue】Vue模板語法(點擊可跳轉)補充:【Vue】數據綁定(單雙向&#xff09…

導入 .sql 文件到 云服務器上的MySQL中

導入 .sql 文件到 云服務器上的MySQL中 步驟 1:確保 .sql 文件已上傳到云服務器步驟 2:登錄到云服務器步驟 3:檢查文件是否成功傳輸步驟 4:登錄 MySQL步驟 5:創建空數據庫(如果尚未創建)步驟 6&…

我的機器學習之路(初稿)

文章目錄 一、機器學習定義二、核心三要素三、算法類型詳解1. 監督學習(帶標簽數據)2. 無監督學習(無標簽數據)3. 強化學習(決策優化)(我之后主攻的方向) 四、典型應用場景五、學習路線圖六、常見誤區警示七…

VueDOMPurifyHTML 防止 ??XSS(跨站腳本攻擊)?? 風險

VueDOMPurifyHTML 是一個 ??Vue.js 插件??,用于在 v-html 指令中安全地渲染 HTML 內容,防止 ??XSS(跨站腳本攻擊)?? 風險。 ??作用?? ??解決 v-html 的安全問題?? Vue 的 v-html 會直接渲染原始 HTML&#xff0…

【數據結構】之散列

一、定義與基本術語 (一)、定義 散列(Hash)是一種將鍵(key)通過散列函數映射到一個固定大小的數組中的技術,因為鍵值對的映射關系,散列表可以實現快速的插入、刪除和查找操作。在這…

How AI could empower any business - Andrew Ng

How AI could empower any business - Andrew Ng References 人工智能如何為任何業務提供支持 empower /?m?pa??(r)/ vt. 授權;給 (某人) ...的權力;使控制局勢;增加 (某人的) 自主權When I think about the rise of AI, I’m reminded …

微服務的服務調用詳解以及常見解決方案對比

微服務服務調用詳解 1. 服務調用分類 服務調用根據通信方式、同步性、實現模式可分為以下類型: 按通信協議分類 類型典型協議/框架特點RPC(遠程過程調用)Dubbo、gRPC、Apache Thrift高性能、二進制協議、強類型定義HTTP/RESTSpring RestTe…

MySQL:B+樹索引

InnoDB索引方案 為了使用二分法快速定位具體的目錄項,假設所有目錄項都可以在物理存儲器上連續存儲,有以下問題: InnoDB使用頁為管理存儲空間的基本單位,最多只能保證16KB的連續存儲空間,記錄數據量多可能需要非常大…

THCON 2025

Crypto OTPas_ouf 用10個字符異或加密的jpg圖片,通過頭得到key再恢復原圖 Mammoths Personnal Slot Machine 梅森旋轉恢復 from pwn import * from randcrack import RandCrack from tqdm import trange context.log_level errorp remote(74.234.198.209, 33…

3.8 字符串的常用函數

重點:字符串的常用函數 #1.測試轉換大小寫 lower:大寫->小寫 upper:小寫->大寫 swapcase:自動將大寫轉小寫小寫轉大寫 print("ABC".lower()) #abcprint("abc".upper()) #ABCprint…

Docker:SkyWalking 鏈路追蹤的技術指南

1、簡述 Apache SkyWalking 是一個開源的 APM(應用性能監控)工具,能夠實現分布式系統的全鏈路監控、性能分析以及服務依賴關系分析。SkyWalking 支持多種語言的探針,提供強大的可視化監控和分析能力,是微服務架構下性能調優和問題排查的利器。 樣例代碼: https://gitee.…

[Lc] 最長公共子序列 | Fenwick Tree(樹狀數組):處理動態前綴和

目錄 LCR 095. 最長公共子序列 題解 Fenwick Tree(樹狀數組):處理動態前綴和 一、問題背景:當傳統方法遇到瓶頸 二、Fenwick Tree核心設計 2.1 二進制索引的魔法 2.2 關鍵操作解析 更新操作(O(log n)&#xff0…