什麼是 RNN?

遞迴式神經網路 (RNN) 是一種深度學習模型,此模型被訓練來處理並將循序資料輸入轉換為特定的循序資料輸出。循序資料是指其序列組成部分根據複雜的語義和語法規則相互關聯的一種資料,例如單字、文句或時間序列資料。RNN 是一種軟體系統,由許多互連元件組成,模仿人類執行循序資料轉換的方式,例如將文本從一種語言翻譯為另一種語言。由於以轉換器為基礎的人工智慧 (AI) 和大型語言模型 (LLM) 處理循序資料的效率高上許多,因此在很大程度上取代了 RNN。

閱讀有關神經網路的內容

閱讀有關深度學習的內容

閱讀有關人工智慧中的轉換器內容

閱讀有關大型語言模型的內容

循環神經網路如何運作?

以下為 RNN 圖例。

RNN 由神經元組成:一同執行複雜任務的資料處理節點。神經元組織為輸入層、輸出層和隱藏層。輸入層負責接收要處理的資訊,輸出層則提供結果。資料處理、分析和預測會在隱藏層中進行。 

隱藏層

RNN 的運作方式為,將接收到的序列資料傳送至隱藏層,一次完成一步。但是,它們也有自我循環或循環工作流程:隱藏層可記住並運用先前的輸入內容,在短期記憶元件中進行未來預測。其使用當前輸入和儲存的記憶內容來預測下一筆序列。 

例如,想想這筆序列:蘋果是紅色的。您希望 RNN 在收到蘋果的輸入內容時,即可預測出紅色。隱藏層處理蘋果一詞時,將副本儲存於記憶體中。接著,它看到一詞時,便從記憶中回想起蘋果,並理解上下文的完整序列:蘋果是。於是,它便可預測紅色提高準確度。這使 RNN 在語音辨識、機器翻譯和其他語言模型建立方面相當實用。

閱讀有關機器翻譯的內容

機器學習 (ML) 工程師為模型提供訓練資料並改善其性能,藉以訓練 RNN 這一類的深度神經網路。在 ML 中,神經元權重為一信號,用以判定訓練期間學到的資訊在預測輸出結果時有多大影響力。RNN 每層均共用相同權重。 

ML 工程師調整權重,藉以提高預測準確度。他們運用稱為時間反向傳播 (BPTT) 的技術來計算模型錯誤,並據此調整權重。BPTT 將輸出內容恢復到上一時間步驟,並重新計算出錯率。如此一來,它便能找出序列中哪個隱藏狀態導致重大錯誤,並重新調整權重以降低誤差。

閱讀有關機器學習的內容

循環神經網路有哪些類型?

RNN 通常具有一對一架構的特徵:一筆輸入序列與一筆輸出內容相關。但是,您可以根據特定目的靈活調整為各種配置。以下是幾種常見的 RNN 類型。

一對多

此 RNN 類型將一筆輸入資訊傳送至多筆輸出內容。可從單一關鍵字生成一整個句子,藉以啟用圖像字幕等語言應用。

多對多

模型使用多筆輸入資訊來預測多筆輸出內容。例如,您可使用 RNN 建立語言翻譯機,該翻譯機能分析句子,並以不同語言正確建構出單字。 

多對一

數筆輸入資訊反映至一筆輸出內容。這有助於情緒分析等方面的應用,模型透過輸入的感言預測客戶情緒,例如正面、負面中性

循環神經網路與其他深度學習網路有何不同?

RNN 是不同的神經網路架構之一。

循環神經網路與前饋神經網路

前饋神經網路和 RNN 同為人工神經網路,將資訊從架構的一端傳遞到另一端。前饋神經網路可執行簡單分類、迴歸或辨別任務,但無法記住先前處理的輸入內容。例如,在神經元處理這個字時,它已忘了蘋果一詞。RNN 在神經元中納入隱藏記憶狀態,藉以克服這項記憶限制。

循環神經網路與卷積神經網路

卷積神經網路是用於處理時間資料的人工神經網絡。您可將視訊和影像傳遞到神經網路中一系列卷積層和池化層,利用卷積神經網路從視訊和影像中擷取空間資訊。RNN 旨在獲取序列資料中的長期相依性。

循環神經網路架構有哪些變體?

RNN 架構為 ML 模型奠定基礎,使其具有語言處理能力。幾種變體於焉而生,同樣運用其記憶保留原理,並改善其原始功能。以下是一些範例。

雙向循環神經網路

雙向循環神經網路 (BRNN) 處理隱藏節點具有前向層與反向層的資料序列。前向層的運作方式與 RNN 類似,將先前的輸入內容儲存於隱藏狀態,並用以預測後續輸出。同時,反向層採用現有輸入內容和未來隱藏狀態來更新目前的隱藏狀態,以相反的方向運作。結合雙層可使 BRNN 同時考慮過去和未來的情境,藉此提高預測準確性。例如,您可使用 BRNN 預測「蘋果樹很高」這句話當中的「樹」一字。 

長短期記憶

長短期記憶 (LSTM) 是一種 RNN 變體,可讓模型擴大記憶體容量,以適應更長的時間軸。RNN 只能記住剛輸入的過往資料。無法運用數個過往序列的輸入內容來改善預測。 

想想以下句子:湯姆是一隻貓 湯姆最喜歡吃魚。當您使用 RNN 時,該模型無法記得湯姆是隻貓。因此,預測最後一個詞時,它可能會想出各種食物。LSTM 網路在隱藏層中新增稱為單元的特殊記憶組。每個單元都由輸入閘門、輸出閘門和遺忘閘門控制,使該層得以記住有用的資訊。例如,該單元記得湯姆兩個單字,模型因而能預測出一詞。 

門控循環單元

門控循環單元 (GRU) 是可選擇性保留記憶的 RNN。模型會加入更新,遺忘通往隱藏層的閘門,因此能儲存或移除記憶體中的資訊。 

循環神經網路有何限制?

自 RNN 推出以來,ML 工程師將 RNN 及其變體應用於自然語言處理 (NLP),取得顯著進展。但是,RNN 模型系列具有幾項限制。

閱讀有關自然語言處理的內容

梯度爆炸

RNN 對初始訓練中的輸出內容可能預測失準。您必須透過多次迭代調整模型參數,藉此降低出錯率。您可將模型參數對應的失誤率靈敏度描述為梯度。您可將梯度想像成下山時的斜坡。陡峭的梯度能讓模型更快速地學習,梯度較緩則會降低學習速度。

當梯度以指數增加,直到 RNN 變得不穩定,就會發生梯度爆炸。當梯度變得無限大時,RNN 會運作不規律,導致過度擬合等效能問題。過度擬合現象意指模型可以使用訓練資料準確預測,對現實生活中的資料卻無法達到相同成效。 

梯度消失

當模型在訓練中的梯度趨近於零,便會引發梯度消失的問題。梯度消失時,RNN 無法從訓練資料有效學習,因而導致擬合不足。擬合不足的模型並未適當調整權重,因此無法有效應用於現實生活中。RNN 處理冗長資料序列時,存在梯度消失與梯度爆炸的風險。 

訓練時間緩慢

RNN 會依照序列處理資料,因而限制其有效處理大量文本的能力。例如,RNN 模型透過幾行句子就能分析買家的情緒,卻需要大量運算能力、記憶體空間和時間來總結一頁論文。 

轉換程式如何克服循環神經網路 (RNN) 的限制?

轉換程式是深度學習模型,於編碼器 – 解碼器前饋神經網路中使用自我注意力機制。可運用與 RNN 相同的方式處理序列資料。 

自我注意力

轉換程式並非使用隱藏狀態來獲取資料序列的相互依存性,而是使用自我注意頭,並行處理資料序列。這使轉換程式能比 RNN 在更短時間內訓練和處理更長序列。轉換程式透過自我注意力機制,克服 RNN 面臨的記憶體限制和序列相互依存性。轉換程式可平行處理資料序列,並使用位置編碼記住每項輸入資訊與其他輸入資訊之間的關係。 

平行處理

轉換程式在訓練期間啟用平行處理,藉此解決 RNN 面臨的梯度問題。由於梯度可自由流向所有權重,因此同時處理所有輸入序列,能使轉換程式不受反向傳播限制。轉換程式亦針對平行演算進行最佳化,由圖形處理器 (GPU) 為生成式 AI 開發所提供。平行處理使轉換程式得以建立更大模型,藉以大幅擴展和處理複雜的 NLP 任務。 

AWS 如何支援您的 RNN 需求?

Amazon Web Services (AWS) 的生成式 AI 提供服務、工具和資源,您可運用以轉換程式為基礎的先進技術來建立、管理和拓展傳統 AI 應用程式。例如:

  • Amazon SageMaker 是一項完全受管服務,可為任何使用案例準備資料,並建立、訓練和部署機器學習 (ML) 模型。其基礎架構、工具和工作流程均完全受管。
  • Amazon Bedrock 可安全有效地自訂和部署領先業界的基礎模型 (FM),藉以簡化生成式 AI 開發。
  • AWS Trainium 是一種機器學習加速器,您能以負擔得起的價格,在雲端中訓練和擴展深度學習模型。 

立即註冊帳戶,開始在 AWS 上使用生成式 AI。

AWS 上的後續步驟

註冊免費帳戶

立即存取 AWS 免費方案。

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台進行建置。

登入