一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

dKBf_eetop_1 ? 來源:工程師曾玲 ? 2019-04-06 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、循環(huán)神經(jīng)網(wǎng)絡簡介

循環(huán)神經(jīng)網(wǎng)絡,英文全稱:Recurrent Neural Network,或簡單記為RNN。需要注意的是,遞歸神經(jīng)網(wǎng)絡(Recursive Neural Network)的簡寫也是RNN,但通常RNN指循環(huán)神經(jīng)網(wǎng)絡。循環(huán)神經(jīng)網(wǎng)絡是一類用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡。它與其他神經(jīng)網(wǎng)絡的不同是,RNN可以更好的去處理序列的信息,即認準了前后的輸入之間存在關系。在NLP中,去理解一整句話,孤立的理解組成這句話的詞顯然是不夠的,我們需要整體的處理由這些詞連接起來的整個序列。

如:(1) 我餓了,我要去食堂___。(2) 我飯卡丟了,我要去食堂___。很顯然,第一句話是想表明去食堂就餐,而第二句則很有可能因為剛吃過飯,發(fā)現(xiàn)飯卡不見了,去食堂尋找飯卡。而在此之前,我們常用的語言模型是N-Gram,無論何種語境,可能去食堂大概率匹配的是“吃飯”而不在乎之前的信息。RNN就解決了N-Gram的缺陷,它在理論上可以往前(后)看任意多個詞。

此文是我在學習RNN中所做的筆記,參考資料在文末提及。

二、循環(huán)神經(jīng)網(wǎng)絡分類

a.簡單的MLP神經(jīng)網(wǎng)絡

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

簡單的MLP三層網(wǎng)絡模型,x、o為向量,分別表示輸入層、輸出層的值;U、V為矩陣,U是輸入層到隱藏層的權重矩陣,V是隱藏層到輸出層的權重矩陣。

b.循環(huán)神經(jīng)網(wǎng)絡

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

與簡單的MLP神經(jīng)網(wǎng)絡不容的是,循環(huán)神經(jīng)網(wǎng)絡的隱藏層的值s不僅取決于當前的這次輸入x,還取決于上一次隱藏層的值s。權重就在W就是隱藏層上一次的值作為這一次輸入的輸入的權重。將上圖展開:

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

由上圖可知以下公式,其中V是輸出層權重矩陣,g是激活函數(shù);U是輸入x的權重矩陣,W是上一次的值st-1作為這一次的輸入的權重矩陣,f是激活函數(shù)。

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

反復帶入,即可得到:

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

可見,循環(huán)神經(jīng)網(wǎng)絡的輸出值ot受之前的輸出值xt、xt-1、xt-2所影響。

c. 雙向循環(huán)神經(jīng)網(wǎng)絡

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

雙向循環(huán)神經(jīng)網(wǎng)絡的計算方法:

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

從上面三個公式可以看出: 正向計算時,隱藏層的值與st 和 st-1有關,而反向計算時,隱藏層的值與s't和s't+1有關;最終的輸出取決于正向與反向計算的加和。

d、深度循環(huán)神經(jīng)網(wǎng)絡

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

此前介紹的循環(huán)神經(jīng)網(wǎng)絡只有一個輸入層、一個循環(huán)層和一個輸出層。與全連接神經(jīng)網(wǎng)絡以及卷積神經(jīng)網(wǎng)絡一樣,可以把它推廣到任意多個隱藏層的情況,得到深層循環(huán)神經(jīng)網(wǎng)絡。深度循環(huán)神經(jīng)網(wǎng)絡包含多個隱藏層(上圖為了表示清楚,只列舉了2層),并且也繼承了雙向循環(huán)神經(jīng)網(wǎng)絡的特點。由之前的公式類推,我們可以得到深度循環(huán)神經(jīng)網(wǎng)絡的計算方式:

循環(huán)神經(jīng)網(wǎng)絡RNN學習筆記

深層神經(jīng)網(wǎng)絡有3個方案:第一種叫做 Deep Input-to-Hidden Function,它在循環(huán)層之前加入多個普通的全連接層,將輸入向量進行多層映射之后再送入循環(huán)層進行處理。第二種方案是 Deep Hidden-to-Hidden Transition,它使用多個循環(huán)層,這和前饋神經(jīng)網(wǎng)絡類似,唯一不同的是計算隱含層輸出的時候需要利用本隱含層上一時刻的值。第三種方案是 Deep Hidden-to-Output Function,它在循環(huán)層到輸出層之間加入多個全連接層,這與第一種情況類似。上面公式展示的應為第二種情況。

由于循環(huán)層一般用 tanh 作為激活函數(shù),層次過多之后會導致梯度消失問題。后面會提及。

三、網(wǎng)絡的訓練及BPTT

循環(huán)神經(jīng)網(wǎng)絡的輸入是序列數(shù)據(jù),每個訓練樣本是一個時間序列,包含多個相同維度的向量。網(wǎng)絡的參數(shù)如何通過訓練確定?這里就要使用解決循環(huán)神經(jīng)網(wǎng)絡訓練問題的 Back Propagation Through Time 算法,簡稱BPTT。

循環(huán)神經(jīng)網(wǎng)絡的每個訓練樣本是一個時間序列,同一個訓練樣本前后時刻的輸入值之間有關聯(lián),每個樣本的序列長度可能不相同。訓練時先對這個序列中的每個時刻的輸入值進行正向傳播,再通過反向傳播計算出參數(shù)的梯度值并更新參數(shù)。

它包含三個步驟:(1)正向計算每個神經(jīng)元的輸出值;(2)反向計算每個神經(jīng)元的誤差項δj,它是誤差函數(shù)E對神經(jīng)元 j 的加權輸入netj的偏導數(shù);(3)計算每個權重的梯度;(4)用隨機梯度下降算法更新權重。具體的算法推導我會在之后的筆記整理中總結(jié)。

四、梯度爆炸、梯度消失

循環(huán)神經(jīng)網(wǎng)絡在進行反向傳播時也面臨梯度消失或者梯度爆炸問題,這種問題表現(xiàn)在時間軸上。如果輸入序列的長度很長,人們很難進行有效的參數(shù)更新。通常來說梯度爆炸更容易處理一些。因為梯度爆炸時,我們的程序會收到NaN的錯誤。我們也可以設置一個梯度閾值,當梯度超過這個閾值的時候可以直接截取。

梯度消失更難檢測,而且也更難處理一些。總的來說,我們有三種方法應對梯度消失問題:

(1)合理的初始化權重值。初始化權重,使每個神經(jīng)元盡可能不要取極大或極小值,以多開梯度消失的區(qū)域。

(2) 使用 ReLu 代替 sigmoid 和 tanh 作為激活函數(shù)。

(3) 使用其他結(jié)構的RNNs,比如長短時記憶網(wǎng)絡(LTSM)和 門控循環(huán)單元 (GRU),這是最流行的做法。

五、練手項目

可以參考github上比較出名的char_RNN的代碼來提高自己的興趣。該項目就是通過訓練語料來自己寫詩、歌、文。

下圖是我的訓練結(jié)果:

(1) 一首詩,這首通過RNN訓練寫出的詩還是不錯的?!扒铩迸c“春”是對應的,描繪的是詩人在秋日,欣賞的山中風景。不禁感嘆,自己的青春已去,自己也已經(jīng)白首,吟唱著這首詩(編不下去了…)。

(2) 通過自己找的《三體》全集,來訓練出的小說片段??梢钥吹?,只能模仿句式,不能有準確表達,所以邏輯不通的,但是形式是很像劉慈欣的寫法了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:中國成功研制出世界首個多自由度固態(tài)量子存儲器

文章出處:【微信號:eetop-1,微信公眾號:EETOP】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是RNN循環(huán)神經(jīng)網(wǎng)絡)?

    循環(huán)神經(jīng)網(wǎng)絡 (RNN) 是一種深度學習結(jié)構,它使用過去的信息來提高網(wǎng)絡處理當前和將來輸入的性能。RNN
    發(fā)表于 02-29 14:56 ?4972次閱讀
    什么是<b class='flag-5'>RNN</b> (<b class='flag-5'>循環(huán)</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>)?

    循環(huán)神經(jīng)網(wǎng)絡RNN)的詳細介紹

    循環(huán)神經(jīng)網(wǎng)絡可以用于文本生成、機器翻譯還有看圖描述等,在這些場景中很多都出現(xiàn)了RNN的身影。
    的頭像 發(fā)表于 05-11 14:58 ?1.4w次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>(<b class='flag-5'>RNN</b>)的詳細介紹

    循環(huán)神經(jīng)網(wǎng)絡RNN)和(LSTM)初學者指南

    最近,有一篇入門文章引發(fā)了不少關注。文章中詳細介紹了循環(huán)神經(jīng)網(wǎng)絡RNN),及其變體長短期記憶(LSTM)背后的原理。
    發(fā)表于 02-05 13:43 ?1174次閱讀

    卷積神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡的區(qū)別

    在深度學習領域,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,
    的頭像 發(fā)表于 07-03 16:12 ?5754次閱讀

    什么是RNN(循環(huán)神經(jīng)網(wǎng)絡)?RNN的基本原理和優(yōu)缺點

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡)是一種專門用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡結(jié)構,它能夠在序列的演進方向上進行遞歸,并通過所有節(jié)點(
    的頭像 發(fā)表于 07-04 11:48 ?7085次閱讀

    循環(huán)神經(jīng)網(wǎng)絡和遞歸神經(jīng)網(wǎng)絡的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱RNN)和遞歸神經(jīng)網(wǎng)絡(Recursive Neural Network,簡稱RvNN)是深度
    的頭像 發(fā)表于 07-04 14:19 ?1548次閱讀

    循環(huán)神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)是深度
    的頭像 發(fā)表于 07-04 14:24 ?2122次閱讀

    循環(huán)神經(jīng)網(wǎng)絡算法原理及特點

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱RNN)是一種具有記憶功能的神經(jīng)網(wǎng)絡,能夠處理序列數(shù)據(jù)。與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-04 14:49 ?1379次閱讀

    遞歸神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡

    遞歸神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱RNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱R
    的頭像 發(fā)表于 07-04 14:54 ?1549次閱讀

    RNN神經(jīng)網(wǎng)絡適用于什么

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡)是一種具有循環(huán)結(jié)構的神經(jīng)網(wǎng)絡,它可以處理序列數(shù)據(jù),具有記憶功能。
    的頭像 發(fā)表于 07-04 15:04 ?1563次閱讀

    rnn神經(jīng)網(wǎng)絡模型原理

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡)是一種具有循環(huán)結(jié)構的神經(jīng)網(wǎng)絡,它能夠處理序列數(shù)據(jù),具有記憶功能。
    的頭像 發(fā)表于 07-04 15:40 ?1121次閱讀

    rnn是什么神經(jīng)網(wǎng)絡

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡)是一種具有循環(huán)連接的神經(jīng)網(wǎng)絡,它能夠處理序列數(shù)據(jù),并且具有記憶能力。
    的頭像 發(fā)表于 07-05 09:49 ?1394次閱讀

    rnn是什么神經(jīng)網(wǎng)絡模型

    RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡)是一種具有循環(huán)結(jié)構的神經(jīng)網(wǎng)絡模型,它能夠處理序列數(shù)據(jù),并對序列中的元
    的頭像 發(fā)表于 07-05 09:50 ?1224次閱讀

    rnn是遞歸神經(jīng)網(wǎng)絡還是循環(huán)神經(jīng)網(wǎng)絡

    RNN(Recurrent Neural Network)是循環(huán)神經(jīng)網(wǎng)絡,而非遞歸神經(jīng)網(wǎng)絡。循環(huán)神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-05 09:52 ?1055次閱讀

    LSTM神經(jīng)網(wǎng)絡與傳統(tǒng)RNN的區(qū)別

    在深度學習領域,循環(huán)神經(jīng)網(wǎng)絡RNN)因其能夠處理序列數(shù)據(jù)而受到廣泛關注。然而,傳統(tǒng)RNN在處理長序列時存在梯度消失或梯度爆炸的問題。為了解
    的頭像 發(fā)表于 11-13 09:58 ?1224次閱讀