RNN vs FFNN

FFNN(前饋神經網絡)的局限性

前饋神經網絡(Feedforward Neural Network, FFNN):前饋神經網絡(FFNN),也稱為多層感知機(MLP),通過多個隱藏層將輸入數據映射到輸出數據。它主要由輸入層、一個或多個隱藏層以及輸出層組成,數據在網絡中只能單向流動,即從輸入層經過隱藏層最終到達輸出層,沒有反饋環路。

FFNN

FFNN的局限性:FFNN這種結構在處理序列數據時存在明顯的局限性,因為每個輸入都是獨立處理的,并且沒有考慮它們之間的順序或上下文關系。這意味著無法有效處理順序數據并捕獲輸入之間的依賴關系。例如語言建模、機器翻譯、語音識別、時間序列分析以及許多其他需要順序處理的應用程序。

Sequence Data

RNN(循環神經網絡)

RNN的核心思想為了解決FFNN在處理序列數據時的局限性,循環神經網絡(RNN)被引入。RNN的核心思想是在隱藏層之間引入循環連接,使得每個時間步的隱藏狀態不僅取決于當前時間步的輸入,還取決于前一個時間步的隱藏狀態

RNN 最主要也是最重要的特征是它的隱藏狀態,它可以記住有關序列的一些信息。該狀態也稱為記憶狀態,因為它會記住網絡的先前輸入。

RNN的隱藏狀態

RNN的模型架構:RNN通過其隱藏層的隱藏狀態捕捉輸入序列的時序依賴性,并基于當前輸入和前一隱藏狀態來生成輸出序列的預測結果。

輸入層- 隱藏層 – 輸出層

RNN的工作原理通過一個具體的案例來看看RNN的工作原理。例如,用戶說了一句“what time is it?”,需要判斷用戶的說話意圖,是問時間,還是問天氣?

對句子進行分詞

Hidden State存儲了之前所有的輸入信息

輸出結果:Asking for the time

RNN(循環神經網絡)的局限性

RNN的局限性在于梯度問題導致難以學習長期依賴,長期記憶能力不足,且并行處理能力差。

1. 梯度消失和梯度爆炸問題

2. 長期依賴捕捉能力有限

3. 并行處理能力較差


梯度消失和梯度爆炸

二、神經網絡語言模型(NNLM)

神經網絡語言模型(Neural Network Language Model, NNLM)是一種利用神經網絡架構來預測文本序列中下一個詞的語言模型。NNLM通過學習大量文本數據中的詞匯之間的概率關系,能夠捕捉到語言的結構和語境,從而生成連貫且符合上下文的文本。本文旨在結合經典論文《A Neural Probabilistic Language Model》的內容,詳細解析NNLM的基本原理、網絡架構及模型訓練。

NNLM的基本原理

Yoshua Bengio及其團隊在2003年的論文《A Neural Probabilistic Language Model》中首次展示了如何使用神經網絡(特別是多層感知器MLP)來構建語言模型,這一工作不僅為后續的深度學習在NLP中的應用奠定了基石,還意外地催生了詞嵌入(word embedding)這一重要概念。
NNLM的核心思想:利用神經網絡來建模自然語言中的詞語序列,從而預測給定上下文條件下下一個詞出現的概率。與傳統的n-gram模型相比,NNLM能夠捕捉更長的上下文依賴關系,并且通過詞嵌入技術將詞語映射到連續的向量空間中,使得相似的詞語在向量空間中具有相近的表示。

NNLM開山之作NNLM中的Distributed Representation(分布式表示)是Embedding(嵌入)最早的理論支撐之一,它代表了一種將單詞或文本表示為連續向量空間的技術。這種表示方法相比傳統的獨熱編碼(One-Hot Encoding)具有顯著的優勢,能夠捕捉到單詞之間的語義關系。

distributed representation vs one-hot representation

NNLM的網絡架構

NNLM的目標:NNLM是一個用于語言建模的神經模型,該模型旨在學習一個函數f,該函數可以根據給定的前置詞匯預測序列中的下一個詞匯。

函數f模型 f 分解為兩個主要部分:詞嵌入層(C)和概率函數(g)。詞嵌入層將詞匯轉換為向量表示,而概率函數則利用這些向量預測文本序列中下一個詞匯的概率分布。

  1. 詞嵌入層(C):將詞匯表中的每個詞匯轉換成一個實值向量。這些向量代表了詞匯的分布式特征,即它們不僅僅表示詞匯本身,還包含了詞匯在不同上下文中的語義信息。
  2. 概率函數(g):根據給定的上下文信息來預測下一個詞匯出現的概率。由多個詞匯組成的上下文(比如前面的n-1個詞匯),概率函數g會利用這些詞匯的向量表示(即詞嵌入層輸出的向量)來估計下一個詞匯出現的概率分布。

詞嵌入層(C)和概率函數(g)

NNLM的網絡架構:根據《A Neural Probabilistic Language Model》中的描述,NNLM主要由輸入層、隱藏層及輸出層三部分組成。通過輸入層接收前文單詞序列的向量表示,在隱藏層中捕捉復雜的語言結構,最后在輸出層輸出每個單詞作為下一個詞出現的概率分布。

NNLM的網絡架構

輸入層

輸入層

隱藏層

隱藏層

輸出層

輸出層

NNLM的網絡架構

NNLM的模型訓練

NNLM的模型訓練:NNLM的訓練過程旨在最大化訓練數據中序列的聯合概率,即最大化給定前文單詞的條件下,下一個單詞出現的概率。在訓練過程中,分布式表示(即詞嵌入)是作為模型的訓練參數之一進行更新的。

NNLM

NNLM訓練過程:通過前向傳播計算輸出,利用損失函數評估差異,然后反向傳播更新權重,迭代優化直至收斂或達到預設迭代次數。這通常通過最小化負對數似然(negative log-likelihood)損失函數來實現。

最小化負對數似然

其中 R( θ) 是正則化項(例如,權重衰減),使用隨機梯度上升法更新參數 θ

更新參數 θ

其中 ? 是學習率。

三、人工神經網絡與貝葉斯網絡

大模型,特別是那些擁有數十億甚至更多參數的深度學習模型,往往是以人工神經網絡為基礎的。這些模型通過堆疊多個隱藏層、增加神經元數量和使用復雜的非線性激活函數,來構建能夠處理復雜任務(如自然語言處理、圖像識別等)的深度神經網絡。

大模型與人工神經網絡的關系

什么是人工神經網絡(ANN)?人工神經網絡(ANN)是一種模仿生物神經網絡結構和功能的計算模型。它由多個層組成,包括輸入層、隱藏層(可能有多層)和輸出層。每一層都包含多個神經元(或稱為節點),這些神經元通過帶權重的連接相互連接。

ANN 輸入層接收外部數據,隱藏層對數據進行處理,輸出層則產生最終的輸出。神經元的激活通常通過一個非線性函數(如sigmoid、ReLU等)來實現,這使得網絡能夠學習復雜的非線性關系。

ANN 
大模型與人工神經網絡的關系:LLM的核心是ANN(人工神經網絡),基于人工神經網絡構建更大規模和復雜度更高的深度學習模型。

  1. PLM(預訓練模型):預訓練語言模型通常使用互聯網上的海量文本數據作為訓練語料,這些語料庫可能包含數十億甚至數千億個單詞。這些模型通過在大量的未標注文本數據上進行學習,掌握了語言的共性和規律,進而能夠應用于各種NLP下游任務。
  2. 數據 + 算力:算力作基礎,數據為驅動;無監督預訓練(Pre-training),有監督微調(Fine-tuning)。
  3. 權重w和偏置b:模型參數包括每一層的權重(weight)和偏置項(bias)。這些參數在訓練過程中通過反向傳播算法進行調整,以最小化損失函數。

LLM 》DL 》ANN

人工神經網絡與貝葉斯網絡的關系

什么是貝葉斯網絡(BN)?貝葉斯網絡(Bayesian Network,簡稱BN)是一種基于概率推理的圖形模型,用于表示變量之間的依賴關系。它由一個有向無環圖(Directed Acyclic Graph,DAG)和條件概率表(Conditional Probability Table,CPT)組成。

Bayesian Network

Bayesian Network

人工神經網絡與貝葉斯網絡的關系:兩者都是有向圖模型,其中每個節點的取值或狀態僅依賴于其直接前驅節點,即遵循馬爾可夫假設。這種結構使得模型能夠清晰地表示變量之間的依賴關系。

ANN vs Bayesian Network

Direction Graph

Markov Chain

四、語言模型的發展歷程

語言模型的發展歷程

語言模型(LM,Language Model)的發展歷程可以清晰地劃分為三個主要階段:統計語言模型、神經網絡語言模型以及基于Transformer的大語言模型。每個階段的模型都在前一個階段的基礎上進行了改進和優化,使得語言模型的性能得到了顯著提升。

語言模型的發展歷程

統計語言模型

什么是統計語言模型?統計語言模型是早期自然語言處理(NLP)中的重要工具,它們主要通過分析詞序列的出現頻率來預測下一個詞。這種方法基于統計學的原理,利用大規模語料庫中的詞頻信息來建模語言的概率分布。代表模型:N-gram模型、隱馬爾可夫模型(HMM)

  1. N-gram模型:這是最常見的統計語言模型之一,它基于馬爾可夫假設,認為一個詞出現的概率僅與其前面的n-1個詞有關。N-gram模型簡單易用,但存在數據稀疏和無法捕捉長距離依賴關系的問題。
  2. 隱馬爾可夫模型(HMM):另一種重要的統計語言模型,通過引入隱藏狀態來捕捉序列數據中的潛在結構。

統計語言模型

N-gram模型:N-gram模型是一種基于統計語言模型的文本分析算法,它用于預測文本中下一個詞出現的概率,基于前面出現的n-1個詞的序列。這里的n代表序列中元素的數量,因此稱為N-gram。

N-gram

N-gram模型的工作原理:N-gram模型通過統計語料庫中n-gram序列的頻率,估計給定前n-1個元素后下一個元素出現的概率,從而實現文本預測。

  1. 語料庫準備:首先,需要有一個大型的文本語料庫,用于訓練N-gram模型。
  2. 計算頻率:然后,計算語料庫中所有可能的n-gram序列的頻率。
  3. 概率估計:根據這些頻率,可以估計出給定n-1個詞后,下一個詞出現的概率。
  4. 預測:在預測階段,給定一個詞序列的前n-1個詞,模型可以輸出下一個詞的概率分布,從而可以選擇最可能的詞作為預測結果。

N-gram

神經網絡語言模型

什么是神經網絡語言模型?隨著深度學習技術的發展,神經網絡開始被應用于語言建模任務中。神經網絡語言模型通過引入神經網絡結構來捕捉詞與詞之間的復雜關系,從而提高了語言模型的性能。代表模型:NNLM、RNN、LSTM、GRU

  1. 神經網絡語言模型(NNLM):由Bengio等人提出,通過嵌入層將單詞映射到連續的向量空間中,并通過多個隱藏層來學習語言的內部結構。NNLM能夠捕捉詞與詞之間的語義關系,提高了語言模型的預測能力。
  2. 循環神經網絡(RNN)及其變體(LSTM、GRU):RNN通過引入循環連接來處理序列數據中的長期依賴關系。LSTM和GRU是RNN的改進版本,通過引入門控機制來解決梯度消失或梯度爆炸問題。

神經網絡語言模型

NNLM:一種基于神經網絡的方法來建模自然語言中的詞語序列。與傳統的統計語言模型(如n-gram模型)相比,NNLM能夠捕捉更復雜的語言結構和語義信息,因為它利用了神經網絡強大的非線性建模能力。

NNLM

NNLM的工作原理:通過嵌入層將輸入的固定長度前文單詞序列轉換為連續向量表示,然后利用一個或多個隱藏層學習這些向量的語言結構,最后由輸出層輸出下一個單詞的概率分布,以最大化給定前文條件下的單詞預測準確性。

NNLM

基于Transformer的大語言模型

什么是基于Transformer的大語言模型?基于Transformer的大語言模型在預訓練階段利用大規模語料庫進行訓練,然后在特定任務上進行微調,取得了驚人的效果。代表模型:BERT、GPT系列

  1. BERT:由Google提出的一種基于Transformer的雙向編碼器表示模型。BERT在預訓練階段采用了遮蔽語言模型(Masked Language Model)和下一句預測(Next Sentence Prediction)兩個任務來訓練模型,提高了模型的語言表示能力。
  2. GPT系列:由OpenAI開發的基于Transformer的生成式預訓練模型。GPT系列模型在預訓練階段采用了自回歸語言建模任務來訓練模型,能夠生成連貫、自然的文本。隨著模型規模的增大(如GPT-3、GPT-4等),GPT系列模型在多個NLP任務上取得了優異的表現。

基于Transformer的大語言模型

Transformer模型:Transformer模型由Vaswani等人在2017年提出,是一種基于自注意力機制的深度學習模型。它徹底摒棄了傳統的循環神經網絡結構,通過自注意力機制和位置編碼來處理序列數據中的長期依賴關系和位置信息。

Transformer

  1. Encoder-Decoder Architecture(編碼器-解碼器架構)
  2. Embedding(向量化)
  3. Attention(注意力機制)
  4. Position Encoding(位置編碼)
  5. Multi-Head Attention(多頭注意力機制)
  6. Feed-Forward Network(前饋網絡)
  7. Residual Connection and Layer Normalization(殘差連接和層歸一化)

Transformer

文章轉自微信公眾號@架構師帶你玩轉AI

上一篇:

圖神經網絡研究綜述(GNN)

下一篇:

一文徹底搞懂機器學習 - 決策樹(Decision Tree)
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費