深度學習模型1:理解LSTM和BiLSTM

深度學習模型1:理解LSTM和BiLSTM

因為最近科研復現論文中需要了解單向LSTM和雙向LSTM,所以就學習了一下LSTM的基本原理,下面孬孬帶著大家一起學習一下,感謝大家的一鍵三連

一、RNN

因為談到LSTM,就必不可少的會考慮RNN,對應的這是一個脈絡傳承下來的,循環神經網絡。

在這里插入圖片描述
在這里插入圖片描述

對于RNN如上圖所示,對應的輸入的時不同的時間段,對應輸出得到的也是對應的不同的時間段,因為他們神經網絡是相連的,所以會捕獲對應的時間關系,對應舉例比如輸出 “h1” 就會受到輸入x0和x1的共同影響的。但是RNN會有長期以來的問題,簡單來說長期依賴的問題就是在每一個時間的間隔不斷增大時,RNN會喪失到連接到遠處信息的能力,比如對應ht+1的輸出受到x0/x1這種遠處輸入影響。

二、LSTM

因此,LSTM就是為了解決長期依賴問題而生的,LSTM通過刻意的設計來避免長期依賴問題。記住長期的信息在實踐中是 LSTM的默認行為,而非需要付出很大代價才能獲得的能力!

在這里插入圖片描述在這里插入圖片描述
對應的LSTM圖如上,相比前面的RNN的圖,LSTM增加了很多設置,也就是很多"閾值",下面帶著大家介紹一下:包括細胞狀態(Ct)、遺忘門、輸入門和輸出門。

1.細胞狀態(Ct)

t時刻的記憶信息,用來保存重要信息。就好像我們的筆記本一樣,保存了我們以前學過的知識點。如下圖的水平線從圖上方貫穿運行,直接在整個鏈上運行,使得信息在上面流傳保持不變會很容易。
在這里插入圖片描述

2.遺忘門

控制遺忘上一層細胞狀態的內容,根據上一序列的ht-1和本序列的Xt為輸入,通過sigmoid激活函數,得到上一層細胞狀態內容哪些需要去除,那些需要保留。值得注意的是,該輸入是以向量的形式,我們希望遺忘門輸出的值大多為0或1,即對向量中的每個值是完全忘記或者完全記住,因此我們使用的是sigmoid函數作為激活函數,因為該函數在許多取值范圍內的值都接近于0或1(這里不能用階躍函數作為激活函數,因為它在所有位置的梯度都為0,無法作為激活函數)。其他門使用sigmoid函數同理。因此,雖然在其他神經網絡可以變換激活函數,但并不建議變換LSTM的激活函數。
在這里插入圖片描述

以一個例子來說明遺忘門的作用:在語言模型中,細胞狀態可能保存著這樣的重要信息:當前主語為單數或者復數等。如當前的主語為“小明”,當輸入為“同學們”,此時遺傳門就要開始“干活”了,將“小明”遺忘,主語為單數形式遺忘。

3.輸入門

處理當前序列位置的輸入,確定需要更新的信息,去更新細胞狀態。此過程分為兩部分,一部分是使用包含sigmoid層的輸入門決定哪些新信息該被加入到細胞狀態;確定了哪些新信息要加入后,需要將新信息轉換成能夠加入到細胞狀態的形式。所以另一部分是使用tanh函數產生一個新的候選向量。(可以這么理解,LSTM的做法是對信息都轉為能加入細胞狀態的形式,然后再通過第一部分得到的結果確定其中哪些新信息加入到細胞狀態。)
在這里插入圖片描述

有了遺忘門和輸入門,現在我們就能把細胞狀態Ct?1更新為Ct了。如下圖所示,其中ft×Ct?1表示希望刪除的信息,it×Ct表示新增的信息。

在這里插入圖片描述

4.輸出門

最后要基于細胞狀態保存的內容來確定輸出什么內容。即選擇性的輸出細胞狀態保存的內容。類似于輸入門兩部分實現更新一樣,輸出門也是需要使用sigmoid激活函數確定哪個部分的內容需要輸出,然后再使用tanh激活函數對細胞狀態的內容進行處理(因為通過上面計算得到的Ct每個值不是在tanh的取值范圍-1~1中,需要調整),將這兩部分相乘就得到了我們希望輸出的那部分。

在這里插入圖片描述

舉個例子,同樣在語言模型中,細胞狀態中此時包含很多重要信息,比如:主語為單數形式,時態為過去時態,主語的性別為男性等,此時輸入為一個主語,可能需要輸出與動詞相關的信息,這個時候只需要輸出是單數形式和時態為過程,而不需要輸出主語性別就可確定動詞詞性的變化。

三、雙向LSTM(Bi-directional LSTM)

為什么會有雙向的這種考慮,其實也很容易理解,因為之前的LSTM都只能依據之前時刻的時序信息來預測下一時刻的輸出,但在有些問題中,當前時刻的輸出不僅和之前的狀態有關,還可能和未來的狀態有關系。比如預測一句話中缺失的單詞不僅需要根據前文來判斷,還需要考慮它后面的內容,真正做到基于上下文判斷。因此就是和前后都有關系,所以就是需要兩個方向相反的LSTM拼在一起,來實現.

前向的LSTM與后向的LSTM結合成BiLSTM。比如,我們對“我愛中國”這句話進行編碼,模型如圖所示。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

參考文獻

https://zhuanlan.zhihu.com/p/47802053
https://blog.csdn.net/v_JULY_v/article/details/89894058
https://blog.csdn.net/qq_36696494/article/details/89028956
https://www.cnblogs.com/Allen-rg/p/11712703.html

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

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

相關文章

[論文閱讀] 軟件工程 | 一篇關于開源許可證管理的深度綜述

關于開源許可證管理的深度綜述 論文標題:Open Source, Hidden Costs: A Systematic Literature Review on OSS License ManagementarXiv:2507.05270 Open Source, Hidden Costs: A Systematic Literature Review on OSS License Management Boyuan Li, Chengwei Liu…

Qt懸浮動態

粉絲懸浮動態,及抽獎程序#include "masklabel.h"MaskLabel::MaskLabel(int pos_x,QString fans_name,QWidget*parent):QLabel(parent) {this->setAlignment(Qt::AlignHCenter);//設置字體居中this->setStyleSheet("color:white;font-size:20px…

深入拆解Spring思想:DI(依賴注入)

在簡單了解IoC與DI中我們已經了解了DI的基本操作,接下來我們來詳解DI。(IoC詳解請看這里)我們已經知道DI是“你給我,我不用自己創建”的原則。現在我們來看看Spring是如何實現“給”這個動作的,也就是依賴注入的幾種方式。 Spring主要提供了…

Arcgis連接HGDB報錯

文章目錄環境癥狀問題原因解決方案環境 系統平臺:Linux x86-64 Red Hat Enterprise Linux 7 版本:6.0 癥狀 Arcgis連接HGDB報錯: 無法連接到數據庫服務器來檢索數據庫列表;請檢查服務器名稱、用戶名和密碼信息,然后…

Android 應用常見安全問題

背景:OWASP MASVS(Mobile Application Security Verification Standard 移動應用安全驗證標準)是移動應用安全的行業標準。 一、MASVS-STORAGE:存儲 1.1 不當暴露FileProvider目錄 配置不當的 FileProvider 會無意中將文件和目錄暴露給攻擊者…

Netty的內存池機制怎樣設計的?

大家好,我是鋒哥。今天分享關于【Netty的內存池機制怎樣設計的?】面試題。希望對大家有幫助; Netty的內存池機制怎樣設計的? 超硬核AI學習資料,現在永久免費了! Netty的內存池機制是為了提高高并發環境下的內存分配與回收效率…

Python 項目快速部署到 Linux 服務器基礎教程

Linux的開源特性和強大的命令行工具使得部署流程高度自動化,可重復性強。本文將詳細介紹如何從零開始快速部署Python項目到Linux服務器。 Linux系統因其穩定性、安全性和性能優化,成為Python項目部署的首選平臺。無論是使用flask構建Web應用、FastAPI創…

SQL Server通過CLR連接InfluxDB實現異構數據關聯查詢技術指南

一、背景與需求場景 在工業物聯網和金融監控場景中,實時時序數據(InfluxDB)需與業務元數據(SQL Server)聯合分析: 工業場景:設備傳感器每秒采集溫度、振動數據(InfluxDB),需關聯工單狀態、設備型號(SQL Server)金融場景:交易流水時序數據(每秒萬條)需實時匹配客…

機器學習詳解

## 深入解析機器學習:核心概念、方法與未來趨勢機器學習(Machine Learning, ML)作為人工智能的核心分支,正深刻重塑著我們的世界。本文將系統介紹機器學習的基本概念、主要方法、實際應用及未來挑戰,為您提供全面的技術…

汽車間接式網絡管理的概念

在汽車網絡管理中,直接式和間接式管理是兩種用于協調車載電子控制單元(ECUs)之間通信與行為的機制。它們主要用于實現車輛內部不同節點之間的協同工作,特別是在涉及網絡喚醒、休眠、狀態同步等場景中。### 直接式管理直接式網絡管…

npm : 無法加載文件 D:\Node\npm.ps1,因為在此系統上禁止運行腳本。

npm : 無法加載文件 D:\Node\npm.ps1,因為在此系統上禁止運行腳本。 安裝高版本的node.js,可能會導致這個問題, 腳本的權限被限制了,需要你設置用戶權限。 get-ExecutionPolicy set-ExecutionPolicy -Scope CurrentUser remotesig…

搜索算法講解

搜索算法講解 深度優先搜索-DFS P1219 [USACO1.5] 八皇后 Checker Challenge 一個如下的 666 \times 666 的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行、每列有且只有一個,每條對角線(包括兩條主對角線的所有平行線&#xff…

深度學習---Rnn-文本分類

# 導入PyTorch核心庫 import torch # 導入神經網絡模塊 import torch.nn as nn # 導入優化器模塊 import torch.optim as optim # 導入函數式API模塊 import torch.nn.functional as F # 導入數據集和數據加載器 from torch.utils.data import Dataset, DataLoader # 導入NumPy…

20250709解決KickPi的K7開發板rk3576-android14.0-20250217.tar.gz編譯之后刷機啟動不了

【整體替換】 Z:\20250704\rk3576-android14.0\rkbin清理編譯的臨時結果: rootrootrootroot-X99-Turbo:~$ cd 14TB/versions/rk3576-android14.0-20250217k7/ rootrootrootroot-X99-Turbo:~/14TB/versions/rk3576-android14.0-20250217k7$ ll rootrootrootroot-X99-…

怎么創建新的vue項目

首先,新建一個文件點文件路徑,輸入cmd

CIU32L051系列 DMA串口無阻塞性收發的實現

1.CIU32L051 DMA的通道映射由于華大CIU32L051的DMA外設資源有限,DMA只有兩個通道可供使用,對應的通道映射圖如下:2.UART對應的引腳分布及其復用映射CIU32L051對應的UART對應的引腳映射圖如下,這里博主為了各位方便查找,就直接全拿…

飛算 JavaAI 體驗:重塑 Java 開發的智能新范式

飛算 JavaAI 體驗:重塑 Java 開發的智能新范式引言:正文:一、工程化代碼生成:從 "片段拼接" 到 "模塊交付"1.1 傳統工具的局限與突破1.2 代碼質量驗證二、智能重構引擎:從 "問題修復" 到…

深入理解JVM的垃圾收集(GC)機制

引言首先我們來介紹垃圾收集的概念,什么是垃圾收集?垃圾收集 (Garbage Collection,GC),顧名思義就是釋放垃圾占用的空間,防止內存爆掉。有效的使用可以使用的內存,對內存堆中已經死亡…

【筆記】國標-機動車輛及掛車分類

源于:GB/T 15089-2001機動車輛及掛車分類 1.L類:兩輪或三輪車輛2.M類:四輪載客車輛3.N類:四輪載貨車輛4.O類:掛車5.G類:其他

VLLM部署DeepSeek-LLM-7B-Chat 模型

一、部署環境準備1. 基礎環境要求操作系統:Linux(推薦歐拉系統、Ubuntu 等)Python 版本:3.8 及以上依賴工具:pip、git、curl可選依賴:GPU 環境:NVIDIA GPU(支持 CUDA 11.7&#xff0…