LSTM概述

一、LSTM的背景與動機

1.1 為什么需要LSTM?

在深度學習中,普通的神經網絡(如全連接網絡或卷積神經網絡)在處理序列數據時表現不佳,因為它們無法捕捉數據中的時間依賴關系。循環神經網絡(RNN)被設計來處理序列數據,通過隱藏狀態在時間步之間傳遞信息。然而,傳統RNN存在兩個主要問題:

  • 梯度消失/爆炸:在反向傳播時,梯度可能隨著時間步的增加變得極小(消失)或極大(爆炸),導致模型難以學習長期依賴關系。
  • 長期依賴問題:RNN在理論上可以記住長時間步的信息,但實際上由于梯度問題,很難捕捉長序列中的遠距離依賴。

LSTM由Hochreiter和Schmidhuber在1997年提出,旨在解決這些問題。它通過引入門控機制(Gates)和記憶單元(Cell State),能夠選擇性地記住或遺忘信息,從而有效建模長期和短期依賴。

1.2 LSTM的核心思想

LSTM的核心是通過一個記憶單元(Cell State)來保存長期信息,并通過門控機制(輸入門、遺忘門、輸出門)控制信息的流動。這些門決定:

  • 哪些信息需要被保留(長期記憶)。
  • 哪些信息需要被遺忘。
  • 當前時間步應該輸出什么。

這使得LSTM在處理長序列時表現優異,適合任務如機器翻譯、文本生成和時間序列預測。


二、LSTM的架構與工作原理

LSTM的基本單元由以下幾個部分組成:

  • 記憶單元(Cell State):負責存儲長期信息,貫穿整個序列。
  • 隱藏狀態(Hidden State):負責輸出當前時間步的信息,包含短期記憶。
  • 門控機制:包括遺忘門(Forget Gate)、輸入門(Input Gate)和輸出門(Output Gate),控制信息的流動。

下面我們詳細解析每個部分。

2.1 記憶單元(Cell State)

記憶單元是LSTM的核心,它像一條“傳送帶”,貫穿所有時間步,負責存儲和傳遞長期信息。Cell State通過門控機制進行更新,確保模型能夠記住關鍵信息(如句子的主語)并遺忘無關信息。

數學上,Cell State在時間步 t t t 的更新公式為:
C t = f t ⊙ C t ? 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct?=ft?Ct?1?+it?C~t?
其中:

  • C t C_t Ct?:當前時間步的Cell State。
  • C t ? 1 C_{t-1} Ct?1?:上一時間步的Cell State。
  • f t f_t ft?:遺忘門輸出,決定保留多少上一時間步的信息。
  • i t i_t it?:輸入門輸出,決定當前輸入有多少信息被加入。
  • C ~ t \tilde{C}_t C~t?:候選Cell State,表示當前時間步的候選記憶。
  • ⊙ \odot :逐元素相乘(Hadamard乘積)。

2.2 隱藏狀態(Hidden State)

隱藏狀態 h t h_t ht? 是LSTM的輸出,包含當前時間步的短期信息。它由Cell State通過輸出門進行調節:
h t = o t ⊙ tanh ? ( C t ) h_t = o_t \odot \tanh(C_t) ht?=ot?tanh(Ct?)
其中:

  • o t o_t ot?:輸出門輸出,控制Cell State的信息流向隱藏狀態。
  • tanh ? \tanh tanh:激活函數,將Cell State的值壓縮到 [ ? 1 , 1 ] [-1, 1] [?1,1].

隱藏狀態 h t h_t ht? 通常被用作模型的輸出,或傳遞到下一層網絡。

2.3 門控機制

LSTM通過三個門控機制控制信息的流動,每個門都使用sigmoid激活函數(輸出范圍為 [ 0 , 1 ] [0, 1] [0,1]),決定信息保留的比例。

2.3.1 遺忘門(Forget Gate)

遺忘門決定上一時間步的Cell State中有多少信息需要被遺忘。它的計算公式為:
f t = σ ( W f ? [ h t ? 1 , x t ] + b f ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ft?=σ(Wf??[ht?1?,xt?]+bf?)
其中:

  • h t ? 1 h_

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

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

相關文章

DDS信號發生器設計

一、基本概述 1.1 DDS簡介 DDS信號發生器即直接數字頻率合成(Direct Digital Frequency Synthesis,簡稱DDS)是一種利用數字技術生成信號的方法。它通過數字信號處理技術,將數字信號轉換為模擬信號,從而生成高質量的正…

生成式AI:如何用大模型呼叫系統提升銷售轉化率?

生成式AI技術正以驚人的速度重塑商業版圖。從智能助手到自動化營銷,從數據分析到客戶洞察,生成式AI正在顛覆傳統商業模式,云蝠智能以大模型、智能體為核心技術,致力于為百萬企業提供語音互動智能體平臺與解決方案,為企業在銷售轉化…

OOP丨《Java編程思想》閱讀筆記Chapter 6 : 訪問權限控制

《Java編程思想》Chapter 6 : 訪問權限控制 1. 前言 1.1. 訪問權限控制的等級1.2. package關鍵字的引入 2. 包:庫單元 2.1. 代碼組織2.2. 包名的創建 3. Java訪問權限修飾詞 3.1. 包訪問權限3.2. public: 接口訪問權限3.3. private: 你無法訪問3.4. protected: 繼承…

reconic 天空 模型

目錄 推理代碼: EnvLight 代碼: 推理代碼: sky_model self.models["Sky"]outputs["rgb_sky"] sky_model(image_info)outputs["rgb_sky_blend"] outputs["rgb_sky"] * (1.0 - outputs["opa…

從服務器多線程批量下載文件到本地

1、客戶端安裝 aria2 下載地址:aria2 解壓文件,然后將文件目錄添加到系統環境變量Path中,然后打開cmd,輸入:aria2c 文件地址,就可以下載文件了 2、服務端配置nginx文件服務器 server {listen 8080…

C++ | 可變模板參數

1. 為什么需要可變模板參數? 在C11之前,若想實現一個接受任意數量參數的函數,只能依賴va_list等C風格可變參數,但這種方式類型不安全且難以調試。例如printf函數: printf("%d %f %s", 10, 3.14, "hel…

【機器學習】每日一講-樸素貝葉斯公式

文章目錄 **一、樸素貝葉斯公式詳解****1. 貝葉斯定理基礎****2. 從貝葉斯定理到分類任務****3. 特征獨立性假設****4. 條件概率的估計** **二、在AI領域的作用****1. 文本分類與自然語言處理(NLP)****2. 推薦系統****3. 醫療與生物信息學****4. 實時監控…

AI Agents系列之AI代理的類型

在本文中,我們將探討不同類型的 AI 代理,包括它們的實現、實際應用、優勢和局限性。從簡單反射代理到多代理系統,我們將了解這些模型如何推動自動化、決策制定和智能問題解決。 文章目錄 1. AI代理的類型1.1 簡單反射代理1.1.1 實現**1.1.2 優勢****1.1.3 局限性**1.2 基于…

C# --- IEnumerable 和 IEnumerator

C# --- IEnumerable 和 IEnumerator IEnumerableIEnumeratorIEnumerable 和 IEnumerator 的作用手動實現 IEnumerableIEnumerable vs. IQueryable為什么有了ienumerator還需要ienumerable IEnumerable 在C#中,IEnumerable 是一個核心接口,用于表示一個可…

鏡舟科技助力某大型電網企業破解數據架構升級難題,打造國產化湖倉標桿

在 “十四五” 規劃全面推進國產化替代的背景下,某大型電網企業聯合鏡舟科技與騰訊云,基于全球領先的開源分析型數據庫 StarRocks 及騰訊 TBDS 大數據平臺,構建電力行業國產化湖倉一體架構。該項目實現 PB 級電力數據的統一管理,為…

Spark-SQL核心編程3

數據加載與保存 通用方式: SparkSQL 提供了通用的保存數據和數據加載的方式。這里的通用指的是使用相同的API,根據不同的參數讀取和保存不同格式的數據,SparkSQL 默認讀取和保存的文件格式為parquet 數據加載方法: spark.read.lo…

使用HTML + CSS + JS,編寫一個臺球追分計分器

目錄 一.代碼 二.效果展示 三.該計分器的優點 一.代碼 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

LLM小白自學筆記:1.兩種指令微調

一、LoRA 簡單來說&#xff0c;LoRA不直接調整個大模型的全部參數&#xff08;那樣太費資源&#xff09;&#xff0c;而是在模型的某些層&#xff08;通常是注意力層&#xff09;加個“旁路”——兩個小的矩陣&#xff08;低秩矩陣&#xff09;。訓練時只更新這倆小矩陣&#x…

2026《數據結構》考研復習筆記一(C++基礎知識)

C基礎知識復習 一、數據類型二、修飾符和運算符三、Lambda函數和表達式四、數學函數五、字符串六、結構體 一、數據類型 1.1基本類型 基本類型 描述 字節&#xff08;位數&#xff09; 范圍 char 字符類型&#xff0c;存儲ASCLL字符 1&#xff08;8位&#xff09; -128…

基于骨骼識別的危險動作報警分析系統

基于骨骼識別的危險動作報警分析系統 【包含內容】 【一】項目提供完整源代碼及詳細注釋 【二】系統設計思路與實現說明 【三】基于骨骼識別算法的實時危險行為預警方案 【技術棧】 ①&#xff1a;系統環境&#xff1a;Windows 10/11、macOS Ventura、Ubuntu 20.04 ②&#x…

【雙指針】四數之和(medium)

四數之和&#xff08;medium&#xff09; 題?描述&#xff1a;解法&#xff08;排序 雙指針&#xff09;算法思路&#xff1a; C 算法代碼&#xff1a;Java 算法代碼&#xff1a; 題?鏈接&#xff1a;18. 四數之和 題?描述&#xff1a; 給你?個由 n 個整數組成的數組 num…

Flask+Influxdb+grafna構建電腦性能實時監控系統

Influx下載地址&#xff0c;這里下載了以下版本influxdb-1.8.5_windows_amd64.zip 運行前需要先啟動Influx數據庫&#xff1a; 管理員方式運行cmd->F:->cd F:\influxdb\influxdb-1.8.5-1->influxd -config influxdb.conf&#xff0c;以influxdb.conf配置文件啟動數…

如何在Keil中配置國民技術N32G系列MCU開發環境

如何在Keil及Jlink中搭建國民技術N32G系列MCU開發環境 根據自己的MCU型號&#xff08;我這里的型號是N32G452REL7&#xff09;訪問國民技術官網&#xff0c;依次從N32G通用MCU-技術資源-固件和軟件-軟件開發套件&#xff0c;獲取對應MCU型號的SDK&#xff0c;也可點擊這里從網盤…

微軟承認Win11出現極端錯誤,只能強制關機或重裝系統

最近&#xff0c;不少使用 Windows 11 的用戶反映&#xff0c;在系統更新后&#xff0c;“Windows Hello”突然失效&#xff0c;原本便捷的人臉識別和PIN登錄功能統統無法使用。更糟的是&#xff0c;有人在重置系統后直接被擋在系統門外&#xff0c;這讓人不禁發問&#xff1a;…

【android bluetooth 協議分析 02】【bluetooth hal 層詳解 1】【uart 介紹】

一、什么是 UART&#xff1f; UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09; 是一種 串行通信協議&#xff0c;它的特點是通信時不需要專門的時鐘信號&#xff08;叫做“異步”通信&#xff09;&#xff0c;常用于兩個設備之間的簡單數據通信&…