色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析循環神經網絡的運行原理及實現示例

Dbwd_Imgtec ? 來源:未知 ? 作者:胡薇 ? 2018-08-23 11:08 ? 次閱讀

本文簡要介紹了什么是循環神經網絡及其運行原理,并給出了一個 RNN 實現示例。

什么是循環神經網絡(RNN)?它們如何運行?可以用在哪里呢?本文試圖回答上述這些問題,還展示了一個 RNN 實現 demo,你可以根據自己的需要進行擴展。

循環神經網絡架構

基礎知識。Python、CNN 知識是必備的。了解 CNN 的相關知識,是為了與 RNN 進行對比:RNN 為什么以及在哪些地方比 CNN 更好。

我們首先從「循環」(Recurrent)這個詞說起。為什么將其稱為循環?循環的意思是:經常或重復出現

將這類神經網絡稱為循環神經網絡是因為它對一組序列輸入重復進行同樣的操作。本文后續部分將討論這種操作的意義。

我們為什么需要 RNN?

也許你現在想的是,已經有像卷積網絡這樣表現非常出色的網絡了,為什么還需要其他類型的網絡呢?有一個需要用到 RNN 的特殊例子。為了解釋 RNN,你首先需要了解序列的相關知識,我們先來講一下序列。

序列是相互依賴的(有限或無限)數據流,比如時間序列數據、信息性的字符串、對話等。在對話中,一個句子可能有一個意思,但是整體的對話可能又是完全不同的意思。股市數據這樣的時間序列數據也是,單個數據表示當前價格,但是全天的數據會有不一樣的變化,促使我們作出買進或賣出的決定。

當輸入數據具有依賴性且是序列模式時,CNN 的結果一般都不太好。CNN 的前一個輸入和下一個輸入之間沒有任何關聯。所以所有的輸出都是獨立的。CNN 接受輸入,然后基于訓練好的模型輸出。如果你運行了 100 個不同的輸入,它們中的任何一個輸出都不會受之前輸出的影響。但想一下如果是文本生成或文本翻譯呢?所有生成的單詞與之前生成的單詞都是獨立的(有些情況下與之后的單詞也是獨立的,這里暫不討論)。所以你需要有一些基于之前輸出的偏向。這就是需要 RNN 的地方。RNN 對之前發生在數據序列中的事是有一定記憶的。這有助于系統獲取上下文。理論上講,RNN 有無限的記憶,這意味著它們有無限回顧的能力。通過回顧可以了解所有之前的輸入。但從實際操作中看,它只能回顧最后幾步。

本文僅為了與人類大體相關聯,而不會做任何決定。本文只是基于之前關于該項目的知識做出了自己的判斷(我甚至尚未理解人類大腦的 0.1%)。

何時使用 RNN?

RNN 可用于許多不同的地方。下面是 RNN 應用最多的領域。

1. 語言建模和文本生成

給出一個詞語序列,試著預測下一個詞語的可能性。這在翻譯任務中是很有用的,因為最有可能的句子將是可能性最高的單詞組成的句子。

2. 機器翻譯

將文本內容從一種語言翻譯成其他語言使用了一種或幾種形式的 RNN。所有日常使用的實用系統都用了某種高級版本的 RNN。

3. 語音識別

基于輸入的聲波預測語音片段,從而確定詞語。

4. 生成圖像描述

RNN 一個非常廣泛的應用是理解圖像中發生了什么,從而做出合理的描述。這是 CNN 和 RNN 相結合的作用。CNN 做圖像分割,RNN 用分割后的數據重建描述。這種應用雖然基本,但可能性是無窮的。

5. 視頻標記

可以通過一幀一幀地標記視頻進行視頻搜索。

深入挖掘

本文按照以下主題進行。每一部分都是基于之前的部分進行的,所以不要跳著讀。

前饋網絡

循環網絡

循環神經元

基于時間的反向傳播(BPTT)

RNN 實現

前饋網絡入門

前饋網絡通過在網絡的每個節點上做出的一系列操作傳遞信息。前饋網絡每次通過每個層直接向后傳遞信息。這與其他循環神經網絡不同。一般而言,前饋網絡接受一個輸入并據此產生輸出,這也是大多數監督學習的步驟,輸出結果可能是一個分類結果。它的行為與 CNN 類似。輸出可以是以貓狗等作為標簽的類別。

前饋網絡是基于一系列預先標注過的數據訓練的。訓練階段的目的是減少前饋網絡猜類別時的誤差。一旦訓練完成,我們就可以用訓練后的權重對新批次的數據進行分類。

一個典型的前饋網絡架構

還有一件事要注意。在前饋網絡中,無論在測試階段展示給分類器的圖像是什么,都不會改變權重,所以也不會影響第二個決策。這是前饋網絡和循環網絡之間一個非常大的不同。

與循環網絡不同,前饋網絡在測試時不會記得之前的輸入數據。它們始終是取決于時間點的。它們只會在訓練階段記得歷史輸入數據。

循環網絡

也就是說,循環網絡不僅將當前的輸入樣例作為網絡輸入,還將它們之前感知到的一并作為輸入。

我們試著建立了一個多層感知器。從簡單的角度講,它有一個輸入層、一個具備特定激活函數的隱藏層,最終可以得到輸出。

多層感知器架構示例

如果在上述示例中的層數增加了,輸入層也接收輸入。那么第一個隱藏層將激活傳遞到下一個隱藏層上,依此類推。最后到達輸出層。每一個隱藏層都有自己的權重和偏置項。現在問題變成了我們可以輸入到隱藏層嗎?

每一層都有自己的權重(W)、偏置項(B)和激活函數(F)。這些層的行為不同,合并它們從技術層面上講也極具挑戰性。為了合并它們,我們將所有層的權重和偏置項替換成相同的值。如下圖所示:

現在我們就可以將所有層合并在一起了。所有的隱藏層都可以結合在一個循環層中。所以看起來就像下圖:

我們在每一步都會向隱藏層提供輸入。現在一個循環神經元存儲了所有之前步的輸入,并將這些信息和當前步的輸入合并。因此,它還捕獲到一些當前數據步和之前步的相關性信息。t-1 步的決策影響到第 t 步做的決策。這很像人類在生活中做決策的方式。我們將當前數據和近期數據結合起來,幫助解決手頭的特定問題。這個例子很簡單,但從原則上講這與人類的決策能力是一致的。這讓我非常想知道我們作為人類是否真的很智能,或者說我們是否有非常高級的神經網絡模型。我們做出的決策只是對生活中收集到的數據進行訓練。那么一旦有了能夠在合理時間段內存儲和計算數據的先進模型和系統時,是否可以數字化大腦呢?所以當我們有了比大腦更好更快的模型(基于數百萬人的數據訓練出的)時,會發生什么?

另一篇文章(https://deeplearning4j.org/lstm.html)的有趣觀點:人總是被自己的行為所困擾。

我們用一個例子來闡述上面的解釋,這個例子是預測一系列字母后的下一個字母。想象一個有 8 個字母的單詞 namaskar。

namaskar(合十禮):印度表示尊重的傳統問候或姿勢,將手掌合起置于面前或胸前鞠躬。

如果我們在向網絡輸入 7 個字母后試著找出第 8 個字母,會發生什么呢?隱藏層會經歷 8 次迭代。如果展開網絡的話就是一個 8 層的網絡,每一層對應一個字母。所以你可以想象一個普通的神經網絡被重復了多次。展開的次數與它記得多久之前的數據是直接相關的。

循環神經網絡的運作原理

循環神經元

這里我們將更深入地了解負責決策的實際神經元。以之前提到的 namaskar 為例,在給出前 7 個字母后,試著找出第 8 個字母。輸入數據的完整詞匯表是 {n,a,m,s,k,r}。在真實世界中單詞或句子都會更復雜。為了簡化問題,我們用的是下面這個簡單的詞匯表。

在上圖中,隱藏層或 RNN 塊在當前輸入和之前的狀態中應用了公式。在本例中,namaste 的字母 n 前面什么都沒有。所以我們直接使用當前信息推斷,并移動到下一個字母 a。在推斷字母 a 的過程中,隱藏層應用了上述公式結合當前推斷 a 的信息與前面推斷 n 的信息。輸入在網絡中傳遞的每一個狀態都是一個時間步或一步,所以時間步 t 的輸入是 a,時間步 t-1 的輸入就是 n。將公式同時應用于 n 和 a 后,就得到了一個新狀態。

用于當前狀態的公式如下所示:

h_t 是新狀態,h_t-1 是前一個狀態。x_t 是時間 t 時的輸入。在對之前的時間步應用了相同的公式后,我們已經能感知到之前的輸入了。我們將檢查 7 個這樣的輸入,它們在每一步的權重和函數都是相同的。

現在試著以簡單的方式定義 f()。我們使用 tanh 激活函數。通過矩陣 W_hh 定義權重,通過矩陣 W_xh 定義輸入。公式如下所示:

上例只將最后一步作為記憶,因此只與最后一步的數據合并。為了提升網絡的記憶能力,并在記憶中保留較長的序列,我們必須在方程中添加更多的狀態,如 h_t-2、h_t-3 等。最后輸出可以按測試階段的計算方式進行計算:

其中,y_t 是輸出。對輸出與實際輸出進行對比,然后計算出誤差值。網絡通過反向傳播誤差來更新權重,進行學習。本文后續部分會對反向傳播進行討論。

基于時間的反向傳播算法(BPTT)

本節默認你已經了解了反向傳播概念。如果需要對反向傳播進行深入了解,請參閱鏈接:?http://cs231n.github.io/optimization-2/?。

現在我們了解了 RNN 是如何實際運作的,但是在實際工作中如何訓練 RNN 呢?該如何決定每個連接的權重呢?如何初始化這些隱藏單元的權重呢?循環網絡的目的是要準確地對序列輸入進行分類。這要靠誤差值的反向傳播和梯度下降來實現。但是前饋網絡中使用的標準反向傳播無法在此應用。

與有向無環的前饋網絡不同,RNN 是循環圖,這也是問題所在。在前饋網絡中可以計算出之前層的誤差導數。但 RNN 的層級排列與前饋網絡并不相同。

答案就在之前討論過的內容中。我們需要展開網絡。展開網絡使其看起來像前饋網絡就可以了。

展開 RNN

在每個時間步取出 RNN 的隱藏單元并復制。時間步中的每一次復制就像前饋網絡中的一層。在時間步 t+1 中每個時間步 t 層與所有可能的層連接。因此我們對權重進行隨機初始化,展開網絡,然后在隱藏層中通過反向傳播優化權重。通過向最低層傳遞參數完成初始化。這些參數作為反向傳播的一部分也得到了優化。

展開網絡的結果是,現在每一層的權重都不同,因此最終會得到不同程度的優化。無法保證基于權重計算出的誤差是相等的。所以每一次運行結束時每一層的權重都不同。這是我們絕對不希望看到的。最簡單的解決辦法是以某種方式將所有層的誤差合并到一起。可以對誤差值取平均或者求和。通過這種方式,我們可以在所有時間步中使用一層來保持相同的權重。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4773

    瀏覽量

    100877
  • rnn
    rnn
    +關注

    關注

    0

    文章

    89

    瀏覽量

    6895

原文標題:一文簡述循環神經網絡(RNN)

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是RNN (循環神經網絡)?

    循環神經網絡 (RNN) 是一種深度學習結構,它使用過去的信息來提高網絡處理當前和將來輸入的性能。RNN 的獨特之處在于該網絡包含隱藏狀態和循環
    發表于 02-29 14:56 ?4077次閱讀
    什么是RNN (<b class='flag-5'>循環</b><b class='flag-5'>神經網絡</b>)?

    labview BP神經網絡實現

    請問:我在用labview做BP神經網絡實現故障診斷,在NI官網找到了機器學習工具包(MLT),但是里面沒有關于這部分VI的幫助文檔,對于”BP神經網絡分類“這個范例有很多不懂的地方,比如
    發表于 02-22 16:08

    人工神經網絡實現方法有哪些?

    人工神經網絡(Artificial Neural Network,ANN)是一種類似生物神經網絡的信息處理結構,它的提出是為了解決一些非線性,非平穩,復雜的實際問題。那有哪些辦法能實現人工神經
    發表于 08-01 08:06

    matlab實現神經網絡 精選資料分享

    神經神經網絡,對于神經網絡實現是如何一直沒有具體實現一下:現看到一個簡單的神經網絡模型用于訓
    發表于 08-18 07:25

    淺析循環神經網絡的概念、變體及應用

    AI對話的未來已經取得了第一個重大突破,這一切都要感謝語言建模的發電廠,循環神經網絡
    的頭像 發表于 10-04 08:52 ?4882次閱讀

    循環神經網絡是如何工作的

    關于時間展開的循環神經網絡,在序列結束時具有單個輸出。
    發表于 07-05 14:44 ?1163次閱讀
    <b class='flag-5'>循環</b><b class='flag-5'>神經網絡</b>是如何工作的

    卷積神經網絡循環神經網絡的區別

    在深度學習領域,卷積神經網絡(Convolutional Neural Networks, CNN)和循環神經網絡(Recurrent Neural Networks, RNN)是兩種極其重要
    的頭像 發表于 07-03 16:12 ?3439次閱讀

    循環神經網絡和遞歸神經網絡的區別

    循環神經網絡(Recurrent Neural Network,簡稱RNN)和遞歸神經網絡(Recursive Neural Network,簡稱RvNN)是深度學習中兩種重要的神經網絡
    的頭像 發表于 07-04 14:19 ?946次閱讀

    循環神經網絡和卷積神經網絡的區別

    循環神經網絡(Recurrent Neural Network,RNN)和卷積神經網絡(Convolutional Neural Network,CNN)是深度學習領域中兩種非常重要的神經網絡
    的頭像 發表于 07-04 14:24 ?1345次閱讀

    循環神經網絡的基本原理是什么

    結構具有循環,能夠將前一個時間步的信息傳遞到下一個時間步,從而實現對序列數據的建模。本文將介紹循環神經網絡的基本原理。 RNN的基本結構 1.1
    的頭像 發表于 07-04 14:26 ?682次閱讀

    循環神經網絡的基本概念

    循環神經網絡(Recurrent Neural Network,簡稱RNN)是一種具有循環結構的神經網絡,其核心思想是將前一個時間步的輸出作為下一個時間步的輸入,從而
    的頭像 發表于 07-04 14:31 ?718次閱讀

    循環神經網絡算法原理及特點

    )相比,RNN在處理序列數據時具有明顯的優勢。本文將介紹循環神經網絡的原理、特點及應用。 1. 循環神經網絡的原理 1.1 基本概念 循環
    的頭像 發表于 07-04 14:49 ?726次閱讀

    遞歸神經網絡循環神經網絡

    遞歸神經網絡(Recurrent Neural Network,簡稱RNN)和循環神經網絡(Recurrent Neural Network,簡稱RNN)實際上是同一個概念,只是不同的翻譯方式
    的頭像 發表于 07-04 14:54 ?803次閱讀

    遞歸神經網絡循環神經網絡一樣嗎

    遞歸神經網絡(Recursive Neural Network,RvNN)和循環神經網絡(Recurrent Neural Network,RNN)是兩種不同類型的神經網絡結構,它們在
    的頭像 發表于 07-05 09:28 ?903次閱讀

    rnn是遞歸神經網絡還是循環神經網絡

    RNN(Recurrent Neural Network)是循環神經網絡,而非遞歸神經網絡循環神經網絡是一種具有時間序列特性的
    的頭像 發表于 07-05 09:52 ?590次閱讀
    主站蜘蛛池模板: 亚洲免费视频在线观看| 精品亚洲国产成AV人片传媒| 日本888xxxx| 狠狠人妻久久久久久综合九色| 67194con免费福和视频| 亚洲AV成人无码999WWW| 日本人娇小hd| 久久足恋网| 国产欧美在线亚洲一区刘亦菲| avove主播| 正在播放一区二区| 新妺妺窝人体色WWW| 区一区二视频免费观看| 久久这里只精品热在线99| 国产手机在线视频| 打扑克床上视频不用下载免费观看| 中国农村真实bbwbbwbbw| 亚洲精品九色在线网站| 天天看高清影视在线18| 日本wwwhdsex69| 女性BBWBBWBBWBBW| 久久午夜伦理| 久久99r66热这里只有精品| 国产免费人成在线视频有码 | 台湾18成人影院| 日本高清不卡码无码v亚洲| 快乐激情站| 久久精品天天爽夜夜爽| 国内精品久久久久影院亚洲| 国产成人自产拍免费视频| 超碰97免费人妻| china年轻小帅脸直播飞机| 0951影音在线| 友田真希息与子中文字幕| 亚洲欧美中文日韩视频| 亚洲国产成人久久一区www妖精| 天美麻豆成人AV精品| 视频一区亚洲视频无码| 日韩在线中文字幕无码| 日韩亚洲视频一区二区三区| 青草久久伊人|