精講深度學習RNN三大核心點,三分鐘掌握循環神經網絡

每天給小編五分鐘,小編用自己的代碼,讓你輕鬆學習人工智能。本文將剖析循環神經網絡(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的序列特性,就可以清晰表達所說的內容。

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

野蠻智能,小白也能看懂的人工智能。大家有什麼見解歡迎評論!


分享到:


相關文章: