當前位置:編程學習大全網 - 編程語言 - 傳說中的RNN是誰?(附上作者和相關信息)

傳說中的RNN是誰?(附上作者和相關信息)

假設妳已經知道最基本的人工神經網絡模型(即全連接前饋神經網絡),希望這篇文章能幫助妳了解RNN,即傳說中的循環神經網絡。嚴格地說,這篇論文是對互聯網上壹些最容易理解、寫得最好的文章的綜合(或翻譯)。但問題是網上的文章良莠不齊,水平參差不齊。而且窮人遠比(甚至被稀釋的)優秀文章多。因此,本文的意義在於避免初學者陷入“垃圾”文章的窘境。當然,如果妳覺得這篇文章還不夠,也非常值得推薦閱讀文末給出的所有經典文獻。

如妳所知,壹個前饋(全連接)神經網絡如下圖所示,由輸入層、隱含層和輸出層組成。如果妳想從頭開始學習前饋神經網絡,那麽參考文獻1和2是最好的教程!現在,假設妳已經掌握了基本的前饋神經網絡,下面這張圖可能和妳在壹般教科書上看到的略有不同。對,是把通常的畫圖方法逆時針旋轉90度得到的。這樣做的目的主要是為了與後續的RNN圖無縫連接。

就像人腦壹樣,當我們看到(接收到)壹只熊的圖像時,經過壹系列的隱藏層(及其極其復雜的計算過程),最後在輸出層得到“熊”的結果。

但前饋神經網絡反映(或完成)的過程往往是相對靜態的。人腦也有處理時間序列數據的能力。換句話說,大腦得到的壹個結果,不僅與當前輸入有關,還與最後時刻的輸出有關。

比如我們看到壹篇文章,裏面有這樣壹句話:“大灰狼靜靜地躲在喜羊羊的家門前,等著獵物上鉤。”很顯然,當我們讀到“獵物”這個詞的時候,妳會立刻反映,它應該是特指喜羊羊,而大野狼卻在等待獵物。很明顯,這種理解程度,僅僅依靠當前的輸入(比如當前的句子或者詞匯)是達不到的。最後壹個階段(或瞬間)的輸出(即最後壹句話的理解)也很重要。

因此,從壹個時刻到下壹個時刻,我們的大腦作為壹種功能運行:它接受來自我們感官(外部)和思想(內部)的輸入,並以行動(外部)和新思想(內部)的形式產生輸出。

我們的大腦在時間中反復運轉。我們看到壹只熊,然後想到“熊”,然後想到“跑”。重要的是,將壹只熊的形象轉換成思想“熊”的功能也將思想“熊”轉換成思想“跑”。這是壹個遞歸函數,我們可以用遞歸神經網絡(RNN)來建模。

RNN是由相同的前饋神經網絡組成的,壹個前饋神經網絡用於壹個時刻或壹個時間步,我們稱之為“RNN細胞”。

在上圖中,神經網絡A的壹個塊查看某個輸入xt,並輸出壹個值ht。環路允許信息從網絡的壹個步驟傳遞到下壹個步驟。

這裏的壹大塊NN實際上相當於前饋神經網絡中的隱層,即多層傳輸的NN結構。並且循環輸入實際上輸入到下壹個狀態,所以上圖實際上暗示了需要壹個延遲。

如果妳對上述循環的“輸入→輸出”的結構感到困惑,如果妳還對這個自我循環感到不解,其實妳只需要“拉開”這個結構,就壹目了然了。遞歸神經網絡可以被認為是同壹網絡的多個副本,每個副本都向後繼者傳遞消息。考慮壹下如果我們展開循環會發生什麽:

或者

另壹個常見的圖示如下(Arnn及其正向計算中涉及的計算的時間展開),但都是相同的例程。

或者表達為以下隨時間擴展的循環神經網絡:

循環神經網絡可以應用於許多不同類型的機器學習任務。根據這些任務的特點,它們可以分為以下幾種模式:

序列到類別模式:該模式是序列數據的分類問題。輸入是壹個序列,輸出是壹個類別。例如,在文本分類中,輸入數據是單詞序列,輸出是文本的類別。

序列到序列模式:這種任務的輸入和輸出都是序列。具體來說,可以分為兩種情況:

同步序列對序列模式:這種模式就是機器學習中的序列標註任務,即每壹時刻都有輸入和輸出,輸入序列和輸出序列長度相同。例如,在詞性標註中,每個單詞都需要用其對應的詞性標簽進行標註。

異步序列對序列模式:這種模式也稱為EncoderDecoder模式,即輸入和輸出不需要有嚴格的對應關系,也不需要保持相同的長度。例如,在機器翻譯中,輸入源語言的單詞序列,輸出目標語言的單詞序列。

首先,我們來看序列到類別的應用模式。假設壹個樣本X={x1,?,xT}是長度為T的序列,輸出是壹個範疇y∈{1,?,C} .我們可以將樣本X在不同時刻輸入遞歸神經網絡,得到不同時刻的隱狀態h1。,hT .我們可以放hT;作為整個序列的最終表示(或特征),並將其輸入到分類器G(),

這裏g(...)可以是簡單的線性分類器(如Logistic回歸),也可以是復雜的分類器(如多層前饋神經網絡)。

除了將最後壹個時刻的隱藏狀態表示為壹個序列(如圖A),我們還可以對整個序列的所有隱藏狀態進行平均,並將這個平均狀態作為整個序列的表示(如圖B)。

在同步序列對序列模式下(如下圖所示),輸入是壹個長度為t X={x1,?,xT},輸出是序列Y={y1,?本年迄今.將樣本x在不同時刻輸入循環神經網絡,得到不同時刻的隱狀態h1。,hT .每個時刻的隱藏狀態hT表示當前時刻和歷史的信息,輸入分類器G()得到當前時刻的標簽。

在異步序列到序列模式下(如下圖所示),輸入是壹個長度為t X={x1,?,xT},輸出是序列Y={y1,?,yM } .將樣本x在不同時刻輸入循環神經網絡,得到不同時刻的隱狀態h1。,hT .然後RNN單元被執行m次。此時,每個RNN細胞的輸入只是最後時刻的隱藏狀態。對於每個時刻的隱藏狀態hT,將t∈[T+1,T+M]輸入到分類器G()中,得到當前時刻的標簽。

參考

1左飛,R語言實踐:機器學習和數據分析,電子工業出版社,第15章。

2邁克爾·尼爾森

3邱希鵬,循環神經網絡,神經網絡與深度學習?

4 DennyBritz,遞歸神經網絡教程,第1部分RNNs簡介

5 Christopher Olah,understanding glstm Networks(/baimafujinji/article/details/78279746

  • 上一篇:舉個栗子!Tableau 技巧(201):在 Prep 中調用 Python 處理復雜數據
  • 下一篇:各位大神,請問VB課程難不難
  • copyright 2024編程學習大全網