一文看懂循環神經網路 RNN(2種優化演算法+5個實際應用)

您所在的位置:网站首页 93年春晚视频直播 一文看懂循環神經網路 RNN(2種優化演算法+5個實際應用)

一文看懂循環神經網路 RNN(2種優化演算法+5個實際應用)

2023-10-14 16:44| 来源: 网络整理| 查看: 265

HomeAI 知識庫AI 演算法 循環神經網路 – Recurrent Neural Network | RNN 文章目錄

一文看懂循環神經網路RNN

卷積神經網路 – CNN 已經很強大的,為什麼還需要RNN?

本文會用通俗易懂的方式來解釋 RNN 的獨特價值——處理序列數據。同時還會說明 RNN 的一些缺陷和它的變種演算法。

最後給大家介紹一下 RNN 的實際應用價值和使用場景。

 

為什麼需要 RNN ?獨特價值是什麼?

卷積神經網路 – CNN 和普通的演算法大部分都是輸入和輸出的一一對應,也就是一個輸入得到一個輸出。不同的輸入之間是沒有聯繫的。

大部分演算法都是輸入和輸出的一一對應

但是在某些場景中,一個輸入就不夠了!

為了填好下面的空,取前面任何一個詞都不合適,我們不但需要知道前面所有的詞,還需要知道詞之間的順序。

序列數據的處理

這種需要處理「序列數據 – 一串相互依賴的數據流」的場景就需要使用 RNN 來解決了。

典型的集中序列數據:

文章里的文字內容 語音里的音頻內容 股票市場中的價格走勢 ……

RNN 之所以能夠有效的處理序列數據,主要是基於他的比較特殊的運行原理。下面給大家介紹一下 RNN 的基本運行原理。

 

RNN 的基本原理

傳統神經網路的結構比較簡單:輸入層 – 隱藏層 – 輸出層。如下圖所示:

傳統神經網路

RNN 跟傳統神經網路最大的區別在於每次都會將前一次的輸出結果,帶到下一次的隱藏層中,一起訓練。如下圖所示:

RNN區別

下面用一個具體的案例來看看 RNN 是如何工作的:

假如需要判斷用戶的說話意圖(問天氣、問時間、設置鬧鐘…),用戶說了一句「what time is it?」我們需要先對這句話進行分詞:

對輸入進行分詞

然後按照順序輸入 RNN ,我們先將 「what」作為 RNN 的輸入,得到輸出「01」

輸入what,得到輸出01

然後,我們按照順序,將「time」輸入到 RNN 網路,得到輸出「02」。

這個過程我們可以看到,輸入 「time」 的時候,前面 「what」 的輸出也產生了影響(隱藏層中有一半是黑色的)。

以此類推,前面所有的輸入都對未來的輸出產生了影響,大家可以看到圓形隱藏層中包含了前面所有的顏色。如下圖所示:

RNN 對前面輸入有「記憶」作用的體現

當我們判斷意圖的時候,只需要最後一層的輸出「05」,如下圖所示:

RNN 最後一層的輸出是我們最終想要的

RNN 的缺點也比較明顯

隱藏層中的顏色分布

通過上面的例子,我們已經發現,短期的記憶影響較大(如橙色區域),但是長期的記憶影響就很小(如黑色和綠色區域),這就是 RNN 存在的短期記憶問題。

RNN 有短期記憶問題,無法處理很長的輸入序列 訓練 RNN 需要投入極大的成本

由於 RNN 的短期記憶問題,後來又出現了基於 RNN 的優化演算法,下面給大家簡單介紹一下。

 

RNN 的優化演算法 RNN 到 LSTM – 長短期記憶網路

RNN 是一種死板的邏輯,越晚的輸入影響越大,越早的輸入影響越小,且無法改變這個邏輯。

LSTM 做的最大的改變就是打破了這個死板的邏輯,而改用了一套靈活了邏輯——只保留重要的信息。

簡單說就是:抓重點!

RNN的序列邏輯到LSTM的抓重點邏輯

舉個例子,我們先快速的閱讀下面這段話:

快速閱讀這段話

當我們快速閱讀完之後,可能只會記住下面幾個重點:

劃重點

LSTM 類似上面的劃重點,他可以保留較長序列數據中的「重要信息」,忽略不重要的信息。這樣就解決了 RNN 短期記憶的問題。

具體技術上的實現原理就不在這裡展開了,感興趣的可以看看 LSTM 的詳細介紹《長短期記憶網路 – LSTM》

 

從 LSTM 到 GRU

Gated Recurrent Unit – GRU 是 LSTM 的一個變體。他保留了 LSTM 劃重點,遺忘不重要信息的特點,在long-term 傳播的時候也不會被丟失。

GRU 主要是在LSTM的模型上做了一些簡化和調整

GRU 主要是在 LSTM 的模型上做了一些簡化和調整,在訓練數據集比較大的情況下可以節省很多時間。

 

RNN 的應用和使用場景

只要涉及到序列數據的處理問題,都可以使用到,NLP 就是一個典型的應用場景。

RNN的應用和使用場景

文本生成:類似上面的填空題,給出前後文,然後預測空格中的詞是什麼。

機器翻譯:翻譯工作也是典型的序列問題,詞的順序直接影響了翻譯的結果。

語音識別:根據輸入音頻判斷對應的文字是什麼。

生成圖像描述:類似看圖說話,給一張圖,能夠描述出圖片中的內容。這個往往是 RNN 和 CNN 的結合。

生成圖像描述

視頻標記:他將視頻分解為圖片,然後用圖像描述來描述圖片內容。

 

總結

RNN的獨特價值在於:它能有效的處理序列數據。比如:文章內容、語音音頻、股票價格走勢…

之所以他能處理序列數據,是因為在序列中前面的輸入也會影響到後面的輸出,相當於有了「記憶功能」。但是 RNN 存在嚴重的短期記憶問題,長期的數據影響很小(哪怕他是重要的信息)。

於是基於 RNN 出現了 LSTM 和 GRU 等變種演算法。這些變種演算法主要有幾個特點:

長期信息可以有效的保留 挑選重要信息保留,不重要的信息會選擇「遺忘」

RNN 幾個典型的應用如下:

文本生成 語音識別 機器翻譯 生成圖像描述 視頻標記

 

百度百科+維基百科 百度百科版本

循環神經網路(Recurrent Neural Network, RNN)是一類以序列(sequence)數據為輸入,在序列的演進方向進行遞歸(recursion)且所有節點(循環單元)按鏈式連接形成閉合迴路的遞歸神經網路(recursive neural network)。

對循環神經網路的研究始於二十世紀80-90年代,並在二十一世紀初發展為重要的深度學習(deep learning)演算法 ,其中雙向循環神經網路(Bidirectional RNN, Bi-RNN)和長短期記憶網路(Long Short-Term Memory networks,LSTM)是常見的的循環神經網路。

循環神經網路具有記憶性、參數共享並且圖靈完備(Turing completeness),因此能以很高的效率對序列的非線性特徵進行學習。循環神經網路在自然語言處理(Natural Language Processing, NLP),例如語音識別、語言建模、機器翻譯等領域有重要應用,也被用於各類時間序列預報或與卷積神經網路(Convoutional Neural Network,CNN)相結合處理計算機視覺問題。

查看詳情

維基百科版本

循環神經網路(RNN)是一類神經網路,其中節點之間的連接形成一個有向圖沿著序列。這允許它展示時間序列的時間動態行為。與前饋神經網路不同,RNN可以使用其內部狀態(存儲器)來處理輸入序列。這使它們適用於諸如未分段,連接手寫識別或語音識別等任務。

術語「遞歸神經網路」被不加選擇地用於指代具有類似一般結構的兩大類網路,其中一個是有限脈衝而另一個是無限脈衝。兩類網路都表現出時間動態行為。有限脈衝遞歸網路是一種有向無環圖,可以展開並用嚴格的前饋神經網路代替,而無限脈衝循環網路是一種無法展開的有向循環圖。

有限脈衝和無限脈衝周期性網路都可以具有額外的存儲狀態,並且存儲可以由神經網路直接控制。如果存儲包含時間延遲或具有反饋循環,則存儲也可以由另一個網路或圖表替換。這種受控狀態稱為門控狀態或門控存儲器,並且是長短期存儲器網路(LSTM)和門控循環單元的一部分。

查看詳情

 

擴展閱讀 入門類文章(2)

如何理解RNN?(理論篇)

2種簡單的方式緩解RNN的優化問題

實踐類文章(1)

ACL 2018|西北大學:RNN語言模型的重要訓練數據抽樣

2019年1月3日 by 打不死的小強 Updated: 2022年8月15日

AI 演算法, 深度學習 Recurrent Neural Network, RNN, 人工神經網路, 循環神經網路, 遞歸神經網路

Thanks for your rating!

You have already rated this article

An error occured, please try again later

Was This Article Helpful?


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3