回覆列表
  • 1 # 我為科技狂

    迴圈神經網路的英文全稱為recurrent neural network,英文簡稱為RNN;遞迴神經網路的英文全稱為recursive neural network,英文簡稱同樣是RNN。

    迴圈神經網路是在時間上的展開,處理序列結構的資訊;遞迴神經網路則是在空間上的展開,處理是樹、圖狀結構的資訊。

    迴圈神經網路的模型是這樣的:

    而遞迴神經網路的模型是這樣的:

    迴圈神經網路可以處理包含序列結構的資訊。但是,資訊除了序列結構外,往往還有樹狀結構、圖結構等更復雜的結構。對於更復雜的結構,迴圈神經網路是無能為力的,而一種更強大的網路,即遞迴神經網路則可以很好地處理包括樹狀結構、圖結構的資訊。

    神經網路的輸入層單元個數是固定的,所以,人們必須採用迴圈或者遞迴的方式來處理長度可變的輸入。迴圈神經網路實現了前者,透過將長度不定的輸入分割為等長的小塊,然後再依次地輸入到網路中,從而實現了神經網路對變長輸入的處理。舉例來說,當人們處理一句話“the country of my birth”時,可以把這句話看作是由片語成的序列,之後每次向迴圈神經網路輸入一個詞,如此迴圈直至整句話輸入完畢,迴圈神經網路將產生對應的輸出。如此這般,人們就能處理任意長度的句子了。

    然而,有時候人們把一個句子看做是由片語成的序列顯然是不夠的,如這樣一句話“兩個外語學院的學生”,這句話就存在歧義,不同的語法解析樹則就對應了不同的意思,一個是“兩個外語學院的/學生”,另一個是“兩個/外語學院的學生”。人們若要能夠讓模型區分出這句話所具有的兩個不同的意思,就必須按照樹狀結構去處理,而不能是序列結構,這就是遞迴神經網路的作用。當面對按照樹、圖結構處理資訊更有效的任務時,遞迴神經網路通常都會發揮不錯的效果。

    基本的迴圈神經網路存在梯度爆炸和梯度消失的問題,並不能真正地處理好長距離的依賴。事實上,真正得以廣泛地應用是迴圈神經網路的一個變體,即長短時記憶網路。儘管遞迴神經網路具有更為強大的表示能力,但是在實際的應用中並不太流行。其中一個很主要的原因便是,遞迴神經網路的輸入是樹、圖結構,而這種結構需要花費很多的人工去標註。不妨想象一下,如果人們採用迴圈神經網路處理每個句子,那麼人們可以直接把句子作為輸入。但如果人們採用遞迴神經網路處理每個句子,人們就必須把每個句子標註為語法解析樹的形式,這肯定會讓人耗費非常大的精力和非常多的時間。很多時候,相對於遞迴神經網路能夠帶來的效能提升,這樣的投入其實不怎麼划算的。

  • 中秋節和大豐收的關聯?
  • 跨境電商海外倉有哪些?