精講深度學習RNN三大核心點,三分鐘掌握迴圈神經網路

dicksonjyl560101發表於2019-03-09

本文將剖析迴圈神經網路(RNN)的工作原理,精講迴圈神經網路的特點和實現方式。野蠻智慧,小白也能看懂的人工智慧。

精講深度學習RNN三大核心點,三分鐘掌握迴圈神經網路

迴圈神經網路從何而來?

我在我的這篇文章介紹了卷積神經網路(CNN)卷積神經網路(CNN)核心知識點彙總,三分鐘讓你從小白到精通,卷積神經網路主要用來處理計算機視覺問題,在計算機“看”的過程中,主要是進行特徵的對比,透過特徵的對比,可以分辨出來這個圖片(影片)是哪一種,是不是我們想要的。這在很大程度可以幫助我們實現計算機的智慧化。

精講深度學習RNN三大核心點,三分鐘掌握迴圈神經網路

但是單單靠計算機視覺能力並不能實現自主的智慧,其他人類能力的實現也是很重要的。例如,人類可以根據一個故事的開頭猜到一個故事的結尾;可以根據對方說的話,揣測他背後的目的;這就是人類的分析能力,根據前因後果、語言的規則、說話的習慣,我們可以得到很多重要的資訊。智者往往處理事情有理有據,層次分明,我們期待計算機也有這樣的能力。所以學者們設計了神奇的迴圈神經網路。

迴圈神經網路的最大創新點

簡單來說,序列指的就是前因後果。這種分辨因果的能力,對於計算機的智慧化具有重要意義,所以序列問題倍受計算機學界關注。為了解決序列問題,迴圈神經網路在1982年被提出,由於當時計算能力不足,無法實現。所以很長一段時間,序列問題的解決方案一直被傳統機器學習演算法所壟斷,但是機器學習依賴於人工提取特徵,這也使得序列問題一直沒有被很好的解決。

精講深度學習RNN三大核心點,三分鐘掌握迴圈神經網路

RNN的第一大創新點是與深度學習結合,自動提取特徵。 深度學習的核心本質是自動提取特徵,這是深度學習對比於機器學習的優勢所在,因此在深度學習理論成熟後,迴圈神經網路快速發展,獲得了成熟的應用。例如,谷歌的翻譯系統拋棄掉原來的機器學習演算法,採用RNN,獲得了遠遠好於之前的效果。

RNN的第二大創新點是,RNN的輸入不僅有資料,也有序列。 一個RNN網路執行過程中,資料輸入進來後,就會被網路記住,然後把這個被記住的資料表達為一個向量,下一次再輸入資料,就繼續填到這個向量裡,這樣反覆迴圈,這個向量就記住了這些資料的先來後到,這個向量叫做 隱狀態 。所以說,RNN的輸入包含兩部分,第一部分是資料,第二部分是上一時刻的隱狀態。

迴圈神經網路記憶的具體過程

精講深度學習RNN三大核心點,三分鐘掌握迴圈神經網路

上圖基本概括了迴圈神經網路的核心。假設我們輸入一句話:我愛北京,這句話就會被分為三個詞我,愛,北京,第一時刻,“我”也就是X1進入系統,經過分解產生一個隱狀態h1,接下來,這個隱狀態h2和第二個詞X2一起輸入網路,再經過運算,又產生了第二個時刻的狀態h2,然後X3再和h2一起輸入,最終得到h3作為輸出。h3作為一個向量,表示了這句話的內容。用一句總結, 當前時刻的資料 + 上一時刻的狀態 = 當前時刻的狀態。

公式表示為:h(i+1) = f { [w*x + b] ,[W*h(i) + B] },公式中“w”表示資料x的權重,b表示資料x的偏置值。“W”表示隱狀態的權重,B表示隱狀態的偏置值。這兩部分進過函式f就得到了下一個隱狀態,經過迴圈,最終得到最終的隱狀態。

迴圈神經網路的具體應用

既然是解決了序列問題,那麼對順序有依賴的問題都將迎刃而解。

機器翻譯系統 :把一種語言經過上述過程,變成一個隱狀態向量,然後再反向用另一種語言解釋出來,就得到了翻譯的結果。你一直以為高大上的翻譯系統其實就是這麼簡單。在小編的後續文章中,會專門寫一篇文章,附加程式碼,來手把手帶你做一個自己的翻譯系統。

語音識別 ,人說的話,其實就是一組音訊,如果每個固定的頻率表示一定的含義,那麼就可以得到語音的全部表達了。解決這一問題的關鍵在於,這樣的特徵是用語言描述不清楚的,所以可以交給深度學習自動提取音訊特徵,進行學習,利用RNN的序列特性,就可以清晰表達所說的內容。

除了以上應用,迴圈神經網路在自然語言處理等其他眾多領域,也有十分可觀的前景。所以下一篇文章,我會帶領大家用程式碼敲出來一個迴圈神經網路。讓理論紮根於實踐!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2637963/,如需轉載,請註明出處,否則將追究法律責任。

相關文章