自然語言處理NLP(3)

上文:
自然語言處理NLP(1)
自然語言處理NLP(2)

Gated RNN & LSTM
  1. 簡單RNN存在的問題

    隨著時間的回溯,簡單RNN不能避免梯度消失或者梯度爆炸

  2. 梯度裁剪

    用來解決梯度爆炸問題

    code:

    g:所有參數梯度的和;threshold:閾值

    在這里插入圖片描述

  3. Gated RNN

    用來解決梯度消失問題

    Gated RNN框架下的兩種結構:LSTM GRU

  4. LSTM (Long Short-Term Memory:長短期記憶)長時間維持短期記憶

    僅輸出隱藏狀態向量h,記憶單元c對外不可見

    1. ht = tanh(Ct)

    在這里插入圖片描述

    1. Gated 門:用來控制數據的流動,門的開合程度是自動從數據中學習到的,有專門的權重參數用于控制門的開合程度,這些權重參數也是通過學習被更新,sigmoid函數用于求門的開合程度

    2. 輸出門

      對tanh(Ct)施加門,因為這個門管理下一個隱藏狀態ht的輸出,所以這個門稱為輸出門output gate

      輸出門的開合程度由xt和ht-1求出 sigmoid函數用于求門的開合程度:

      在這里插入圖片描述

在這里插入圖片描述

  1. 遺忘門

    對記憶但會員Ct-1添加一個忘記不必要記憶的門,這個門稱為遺忘門 forget gate

    遺忘門的開合程度:

    在這里插入圖片描述

  2. 新的記憶單元

    遺忘門從上一時刻的記憶單元刪除了應該忘記的,現在我們還想向這個記憶單元添加一些應當記住的,為此我們添加新的tanh節點

    g:向記憶單元添加的新信息

    將g加到上一時刻的Ct-1上,從而形成新的記憶

    在這里插入圖片描述

    在這里插入圖片描述

  3. 輸入門

    對這個新的記憶單元g添加門,這個門稱為輸入門 input gate

    輸入門的開合程度:

    在這里插入圖片描述

  4. 使用LSTM的語言模型

    Embedding -> LSTM -> Affine -> Softmax with Loss

  5. 改進

    1. LSTM的多層化

      我們可以疊加多個LSTM層,從而學習更加復雜的模式(在PTB數據集上學習語言模型的情況下,LSTM的層數為2~4時,結果比較好)

    2. Dropout抑制過擬合

      常規Dropout:在深度方向(垂直方向)上插入Dropout層

      變分Dropout:用在時間方向上

    3. 權重共享 weight tying

      Embedding層和Affine層的權重共享,可以減少需要學習的參數數量

基于RNN生成文本
  1. 如何生成下一個新單詞?

    概率性的選擇:根據概率分布進行選擇,這樣概率高的單詞容易被選到,概率低的單詞難以被選到。然后再把選中的詞當作輸入,再次選擇下一個新的單詞

  2. seq2seq模型:Encoder-Decoder模型 編碼器-解碼器模型

    編碼器對輸入數據進行編碼,解碼器對被編碼的數據進行解碼

    編碼:就是將任意長度的文本轉換為一個固定長度的向量

    seq2seq由兩個LSTM層構成:編碼器的LSTM和解碼器的LSTM。LSTM層的隱藏狀態是編碼器和解碼器的橋梁,在正向傳播時,編碼器的編碼信息通過LSTM層的隱藏狀態傳遞給解碼器;反向傳播時,解碼器的梯度通過這個橋梁傳遞給編碼器

  3. seq2seq改進

    1. 反轉輸入數據 Reverse

      反轉輸入數據的順序,反轉數據后梯度的傳播可以更加平滑

    2. 偷窺 Peeky

      將集中了重要信息的編碼器的輸出h分配給解碼器的其他層

  4. seq2seq的應用

    1. 聊天機器人 chatgpt

    2. 算法學習

    3. 自動圖像描述

      編碼器從LSTM換成CNN

Attention 注意力機制

Attention從數據中學習兩個時序數據之間的對應關系,計算向量之間的相似度,輸出這個相似度的加權和向量

  1. 結構

    Attention層放入LSTM和Affine層之間

    hs:LSTM中各個時刻的隱藏狀態向量被整合為hs

    在這里插入圖片描述

  2. 雙向RNN

    讓LSTM從兩個方向進行處理:雙向LSTM

    各個單詞對應的隱藏狀態向量可以從左右兩個方向聚集信息,這些向量就編碼了更均衡的信息

  3. Attention層的不同使用

    1. Attention層放入LSTM和Affine層之間(垂直方向)
    2. Attention層放入上一時刻的LSTM層、Affine層和當前時刻的LSTM層之間(時間方向)
  4. seq2seq的深層化 & skip connection

    為了讓帶Attention的seq2seq具有更強的表現力,加深LSTM層

    在加深層時使用到的一個技巧是殘差連接(skip connection / residual connection / shortcut):是一種跨層連接的簡單技巧

  5. Attention應用

    1. GNMT 谷歌神經機器翻譯系統

    2. Transformer

      Attention is all you need

      Transformer不用RNN,而用Attention進行處理:self-Attention

    3. NTM Neural Turing Machine 神經圖靈機

      計算機的內存操作可以通過神經網絡復現:

      在rnn的外部配置一個存儲信息的存儲裝置,使用Attention向這個存儲裝置讀寫必要的信息

GRU

GRU:Gated Recurrent Unit 門控循環單元

  1. 結構

    GRU相比于LSTM的結構,取消了記憶單元的使用,只使用隱藏狀態

    在這里插入圖片描述

    r:reset門:決定在多大程度上忽略過去的隱藏狀態

    h~:新的隱藏狀態(下列第三個式子)

    z:update門:更新隱藏狀態

    (1-z)· ht-1:forget門

    z · h~:input門

在這里插入圖片描述

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

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

相關文章

內循環全部滿足條件后,為true

### 實現方式在 C 中&#xff0c;可以通過在內循環外部定義一個布爾變量&#xff0c;并在內循環的每次迭代中檢查特定條件是否滿足。如果所有迭代均滿足條件&#xff0c;則在內循環結束后將布爾變量設置為 true。以下是一個示例代碼&#xff1a;cpp #include <iostream>i…

STM32--DHT11(標準庫)驅動開發

一、前言在我們進行嵌入式開發時&#xff0c;驅動開發也是十分重要的一步&#xff0c;在很多時候&#xff0c;我們的都需要自己來編寫硬件的底層驅動&#xff0c;實現硬件與芯片的通信&#xff0c;常見的協議有SPI&#xff0c;IIC&#xff0c;以及單總線的一些通信方式&#xf…

HttpServletRequest 和 HttpServletResponse核心接口區別

HttpServletRequest 和 HttpServletResponse核心接口區別在 Java Web 開發&#xff08;基于 Servlet 規范&#xff09;中&#xff0c;HttpServletRequest 和 HttpServletResponse 是兩個核心接口&#xff0c;分別代表 ??HTTP 請求?? 和 ??HTTP 響應??。它們的主要區別在…

win10 環境刪除文件提示文件被使用無法刪除怎么辦?

因為我沒想太好怎么模擬一個文件被使用&#xff0c;我就使用 "java -jar xxx.jar" 模擬 xxx.jar 文件被使用無法刪除吧。現在有一個后臺進行在執行 java -jar chat-robot-1.0.0.jar &#xff0c;所以此時刪除 chat-robot-1.0.0.jar 提示&#xff1a;當然這個提示對于…

1.7vue生命周期

生命周期階段與鉤子函數創建階段beforeCreate()&#xff1a;實例初始化之后&#xff0c;數據觀測和事件配置之前調用。此時無法訪問到data、methods等屬性。created()&#xff1a;實例創建完成后調用。完成了數據觀測&#xff0c;屬性和方法的運算&#xff0c;watch/event事件回…

第十八天(指紋識別WAF判斷蜜罐排除)

Web架構 開源CMS&#xff1a; Discuz、WordPress、PageAdmin、蟬知等 前端技術&#xff1a; HTML5、Jquery、Bootstrap、Vue、NodeJS等 開發語言&#xff1a; PHP、JAVA、Ruby、Python、C#、JS、Go等 框架組件&#xff1a; SpringMVC、Thinkphp、Yii、Tornado、Vue等 Web服…

Real-Time Rendering 4th Edition 完整學習路徑

課程計劃&#xff1a;Real-Time Rendering 4th Edition 完整學習路徑 &#x1f4da;? 階段一&#xff1a;數學基礎鞏固 (2-3周) &#x1f9ee;向量與矩陣運算 3D變換矩陣的本質理解齊次坐標系統的實際意義幾何數學 點、線、面的幾何關系法向量與切向量計算三角函數在圖形學中的…

MC0364魔法鏈路

碼蹄集OJ-魔法鏈路 MC0364?魔法鏈路 難度&#xff1a;黃金 時間限制&#xff1a;1 秒 占用內存&#xff1a;256 M 收藏 報錯 小碼妹學會了多重施法&#xff0c;也就是同時施放多個法術的能力&#xff0c;然而多重施法中每個最終施放的法術都需要一些前置的法力運轉&#xff…

《解密React key:虛擬DOM Diff中的節點身份錨點》

在React的性能優化體系中&#xff0c;key屬性始終是一個看似簡單卻暗藏玄機的存在。它并非可有可無的標記&#xff0c;而是虛擬DOM Diff算法識別節點身份的核心錨點&#xff0c;直接決定著React如何判斷節點是否需要重渲染、如何復用已有元素。理解key的本質&#xff0c;不僅能…

react 和 react native 的開發過程區別

React 和 React Native 雖然都使用 React 思想和語法&#xff08;函數組件、Hooks、JSX 等&#xff09;&#xff0c;但在 開發流程、渲染機制、UI 組件、樣式處理、運行平臺 等方面有明顯差異。以下是對比總結&#xff1a;? 一、開發目的和平臺不同對比項ReactReact Native應用…

什么是股指期貨的不對沖策略?

不對沖策略的核心思想是把股指期貨當作ETF基金來用。ETF基金是一種跟蹤指數的基金&#xff0c;比如滬深300ETF&#xff0c;它會按照滬深300指數的成分股比例來配置資產。而股指期貨則是直接跟蹤滬深300指數的期貨合約。假設現在滬深300指數是4000點&#xff0c;你有120萬資金。…

C++ vector底層實現與迭代器失效問題

目錄 前言 一、vector 的框架 二、基礎實現 1、無參的構造&#xff1a; 2、析構函數 3、size 4、capacity 5、reserve擴容 6、push_back 7、迭代器 8、 operator[ ] 9、pop_back 10、insert 以及 迭代器失效問題 11、erase 以及 迭代器失效問題 12、resize 13、 拷貝…

HTML 表單詳解:構建用戶交互的完整指南

在上一篇文章中&#xff0c;我們學習了HTML的基礎標簽和頁面結構。今天我們將深入探討HTML中最重要的交互元素——表單。表單是網頁與用戶交互的核心組件&#xff0c;從簡單的登錄頁面到復雜的數據收集系統&#xff0c;都離不開表單的支持。表單基礎概念表單&#xff08;Form&a…

云原生周刊:2025年的服務網格

開源項目推薦 kaito kaito 是由微軟開源并托管于 GitHub 的項目&#xff0c;旨在自動化在 K8s&#xff08;主目前支持 Azure AKS&#xff09;中部署與管理大型語言模型&#xff08;如 Falcon、Phi?3、Llama&#xff09;推理及微調工作負載。它通過定義 CRD&#xff08;Works…

國產開源大模型崛起:使用Kimi K2/Qwen2/GLM-4.5搭建編程助手

近期&#xff0c;國產大模型領域的發展令人矚目&#xff0c;多款高性能開源模型的涌現&#xff0c;為我們開發者帶來了前所未有的機遇。這些模型不僅在各大基準測試中名列前茅&#xff0c;其強大的代碼能力也為我們打造個性化的編程助手提供了堅實的基礎。HuggingFace的開源大模…

淺析責任鏈模式在視頻審核場景中的應用

本文字數&#xff1a;3161字預計閱讀時間&#xff1a;20分鐘01設計模式設計模式的概念出自《Design Patterns - Elements of Reusable Object-Oriented Software》中文名是《設計模式 - 可復用的面向對象軟件元素》&#xff0c;該書是在1994 年由 Erich Gamma、Richard Helm、R…

洛谷 P3372 【模板】線段樹 1-普及+/提高

題目描述 如題&#xff0c;已知一個數列 {ai}\{a_i\}{ai?}&#xff0c;你需要進行下面兩種操作&#xff1a; 將某區間每一個數加上 kkk。求出某區間每一個數的和。 輸入格式 第一行包含兩個整數 n,mn, mn,m&#xff0c;分別表示該數列數字的個數和操作的總個數。 第二行包含 n…

flink寫paimon表的過程解析

背景 apache paimon是構建湖倉一體的重要組成部分&#xff0c;由于paimon的寫入速度很快&#xff0c;通過flink進行數據寫入是很自然的選擇&#xff0c;本文就介紹下使用flink寫入paimon的兩階段協議的大概邏輯 技術實現 flink通過兩階段協議寫入paimon表&#xff0c;分成三個步…

迅為RK3568開發板OpeHarmony學習開發手冊-點亮 HDMI 屏幕

OpenHarmony 源碼中默認支持 HDMI 屏幕&#xff0c;但是默認的分辨率是采用 mipi 的分辨率&#xff0c;我們修改代碼&#xff0c;關閉 MIPI 就可以正常顯示了。在之前視頻修改的基礎上&#xff0c;修改/home/topeet/OH4.1/OpenHarmony-v4.1-Release/OpenHarmony/out/kernel/src…

北京理工大學醫工交叉教學實踐分享(1)|如何以實踐破解數據挖掘教學痛點

如何有效提升醫工交叉領域數據挖掘課程的教學效果&#xff1f;近日&#xff0c;北京理工大學醫學技術學院辛怡副教授在和鯨組織的分享會上&#xff0c;系統介紹了其團隊在《數據挖掘在生物醫學中的應用》課程中的創新實踐&#xff0c;為解決普遍教學痛點提供了可借鑒的“平臺化…