解決問題:
- 提取特征:卷積操作提取圖像特征,如邊緣、紋理等,保留圖像特征。
- 數據降維:池化操作大幅降低參數量級,實現數據降維,大大減少運算量,避免過擬合。
工作原理:
- 卷積層:通過卷積核的過濾提取出圖片中局部的特征,類似初級視覺皮層進行初步特征提取。
池化層:下采樣實現數據降維,大大減少運算量,避免過擬合。
- 全連接層:經過卷積層和池化層處理過的數據輸入到全連接層,得到最終想要的結果
LeNet-5:被譽為卷積神經網絡的“Hello Word”,是圖靈獎獲得者Yann LeCun(楊立昆)在1998年提出的CNN算法,用來解決手寫識別的問題。
LeNet-5通過引入卷積層、池化層和全連接層等關鍵組件,構建了一個高效且強大的圖像識別網絡,為后續卷積神經網絡的發展奠定了基礎。
- 輸入層:INPUT
- 三個卷積層:C1、C3和C5
- 兩個池化層:S2和S4
- 一個全連接層:F6
- 輸出層:OUTPUT
二、什么是RNN?
循環神經網絡(RNN):一種能處理序列數據并存儲歷史信息的神經網絡,通過利用先前的預測作為上下文信號,對即將發生的事件做出更明智的決策。
網絡結構:
- 輸入層:接收輸入數據,并將其傳遞給隱藏層。輸入不僅僅是靜態的,還包含著序列中的歷史信息。
- 隱藏層:核心部分,捕捉時序依賴性。隱藏層的輸出不僅取決于當前的輸入,還取決于前一時刻的隱藏狀態。
- 輸出層:根據隱藏層的輸出生成最終的預測結果。
解決問題:
- 序列數據處理:RNN能夠處理多個輸入對應多個輸出的情況,尤其適用于序列數據,如時間序列、語音或文本,其中每個輸出與當前的及之前的輸入都有關。
- 循環連接:RNN中的循環連接使得網絡能夠捕捉輸入之間的關聯性,從而利用先前的輸入信息來影響后續的輸出。
工作原理:
- 輸入層:先對句子“what time is it ?” 進行分詞,然后按照順序輸入。
隱藏層:在此過程中,我們注意到前面的所有輸入都對后續的輸出產生了影響。圓形隱藏層不僅考慮了當前的輸入,還綜合了之前所有的輸入信息,能夠利用歷史信息來影響未來的輸出。
輸出層:生成最終的預測結果:Asking for the time。
詳細了解看這篇:《一文搞懂RNN(循環神經網絡)》
長短期記憶網絡(LSTM):一種特殊的循環神經網絡,通過引入內存塊和門控機制來解決梯度消失問題,從而更有效地處理和記憶長期依賴信息。
網絡結構:
- 細胞狀態(Cell State):負責保存長期依賴信息。
- 門控結構:每個LSTM單元包含三個門:輸入門、遺忘門和輸出門。
解決問題:
- 短時記憶:RNN難以捕捉和利用序列中的長期依賴關系,從而限制了其在處理復雜任務時的性能。
- 梯度消失/梯度爆炸:在RNN的反向傳播過程中,梯度會隨著時間步的推移而逐漸消失(變得非常小)或爆炸(變得非常大)。
工作原理:
- 遺忘門:決定哪些舊信息應該從記憶單元中遺忘或移除。
- 輸出門:決定記憶單元中的哪些信息應該被輸出到當前時間步的隱藏狀態中。
三、什么是Transformer?
Transformer:一種基于自注意力機制的神經網絡結構,通過并行計算和多層特征抽取,有效解決了長序列依賴問題,實現了在自然語言處理等領域的突破。
網絡結構:由輸入部分(輸入輸出嵌入與位置編碼)、多層編碼器、多層解碼器以及輸出部分(輸出線性層與Softmax)四大部分組成。
- 輸入部分:
- 源文本嵌入層:將源文本中的詞匯數字表示轉換為向量表示,捕捉詞匯間的關系。
- 位置編碼器:為輸入序列的每個位置生成位置向量,以便模型能夠理解序列中的位置信息。
- 目標文本嵌入層(在解碼器中使用):將目標文本中的詞匯數字表示轉換為向量表示。
- 編碼器部分:
- 由N個編碼器層堆疊而成。
- 每個編碼器層由兩個子層連接結構組成:第一個子層是一個多頭自注意力子層,第二個子層是一個前饋全連接子層。每個子層后都接有一個規范化層和一個殘差連接。
- 解碼器部分:
- 由N個解碼器層堆疊而成。
- 每個解碼器層由三個子層連接結構組成:第一個子層是一個帶掩碼的多頭自注意力子層,第二個子層是一個多頭注意力子層(編碼器到解碼器),第三個子層是一個前饋全連接子層。每個子層后都接有一個規范化層和一個殘差連接。
- 輸出部分:
- 線性層:將解碼器輸出的向量轉換為最終的輸出維度。
- Softmax層:將線性層的輸出轉換為概率分布,以便進行最終的預測。
解決問題:
- 長期依賴問題:在處理長序列輸入時,傳統的循環神經網絡(RNN)會面臨長期依賴問題,即難以捕捉序列中的遠距離依賴關系。Transformer模型通過自注意力機制,能夠在不同位置對序列中的每個元素賦予不同的重要性,從而有效地捕捉長距離依賴關系。
- 并行計算問題:傳統的RNN模型在計算時需要按照序列的順序依次進行,無法實現并行計算,導致計算效率較低。而Transformer模型采用了編碼器-解碼器結構,允許模型在輸入序列上進行編碼,然后在輸出序列上進行解碼,從而實現了并行計算,大大提高了模型訓練的速度。
- 特征抽取問題:Transformer模型通過自注意力機制和多層神經網絡結構,能夠有效地從輸入序列中抽取豐富的特征信息,為后續的任務提供更好的支持。
工作原理:
- 輸入線性變換:對于輸入的Query(查詢)、Key(鍵)和Value(值)向量,首先通過線性變換將它們映射到不同的子空間。這些線性變換的參數是模型需要學習的。
- 分割多頭:經過線性變換后,Query、Key和Value向量被分割成多個頭。每個頭都會獨立地進行注意力計算。
- 縮放點積注意力:在每個頭內部,使用縮放點積注意力來計算Query和Key之間的注意力分數。這個分數決定了在生成輸出時,模型應該關注Value向量的部分。
- 注意力權重應用:將計算出的注意力權重應用于Value向量,得到加權的中間輸出。這個過程可以理解為根據注意力權重對輸入信息進行篩選和聚焦。
- 拼接和線性變換:將所有頭的加權輸出拼接在一起,然后通過一個線性變換得到最終的Multi-Head Attention輸出。
BERT:BERT是一種基于Transformer的預訓練語言模型,它的最大創新之處在于引入了雙向Transformer編碼器,這使得模型可以同時考慮輸入序列的前后上下文信息。
- 輸入層(Embedding):
- Token Embeddings:將單詞或子詞轉換為固定維度的向量。
- Segment Embeddings:用于區分句子對中的不同句子。
- Position Embeddings:由于Transformer模型本身不具備處理序列順序的能力,所以需要加入位置嵌入來提供序列中單詞的位置信息。
- 編碼層(Transformer Encoder):BERT模型使用雙向Transformer編碼器進行編碼。
- 輸出層(Pre-trained Task-specific Layers):
- MLM輸出層:用于預測被掩碼(masked)的單詞。在訓練階段,模型會隨機遮蓋輸入序列中的部分單詞,并嘗試根據上下文預測這些單詞。
- NSP輸出層:用于判斷兩個句子是否為連續的句子對。在訓練階段,模型會接收成對的句子作為輸入,并嘗試預測第二個句子是否是第一個句子的后續句子。
GPT:GPT也是一種基于Transformer的預訓練語言模型,它的最大創新之處在于使用了單向Transformer編碼器,這使得模型可以更好地捕捉輸入序列的上下文信息。
GPT架構
- 輸入層(Input Embedding):
- 將輸入的單詞或符號轉換為固定維度的向量表示。
- 可以包括詞嵌入、位置嵌入等,以提供單詞的語義信息和位置信息。
- 編碼層(Transformer Encoder):GPT模型使用單向Transformer編碼器進行編碼和生成。
- 輸出層(Output Linear and Softmax):
- 線性輸出層將最后一個Transformer Decoder Block的輸出轉換為詞匯表大小的向量。
- Softmax函數將輸出向量轉換為概率分布,以便進行詞匯選擇或生成下一個單詞。
文章轉自微信公眾號@架構師帶你玩轉AI
我們有何不同?
API服務商零注冊
多API并行試用
數據驅動選型,提升決策效率
查看全部API→