文科生如何理解循環神經網絡(RNN)?

這一份視頻教程中,我會用簡明的例子和手繪圖,爲你講解循環神經網絡(Recurrent Neural Network, RNN)的原理和使用方法。

關於深度學習,我已經爲你講解了不少內容了。

咱們簡單回顧一下。常見的深度學習任務,面對的數據類型主要是三類:

第一類,是結構化數據,也就是樣本和屬性組成的表格。例如《如何用Python和深度神經網絡鎖定即將流失的客戶?》一文中,我們用到的表格:

這種數據格式,最爲簡單。你也很容易理解深度神經網絡的結構和處理方法。

第二類,是圖像數據。《如何用 Python 和 fast.ai 做圖像深度遷移學習?》一文中,我給你詳細介紹過如何用卷積神經網絡來處理它。

第三類,是序列數據,例如文本。《如何用 Python 和深度遷移學習做文本分類?》一文裏面,咱們已經展示瞭如何使用 fast.ai 提供的語言模型對其進行處理。

其中,圖像和序列數據,處理起來更需要你對深度神經網絡結構的理解。

作爲文科生,你在學習卷積神經網絡和循環神經網絡的時候,可能會遇到一些問題。因爲它們大多采用比較複雜的結構圖和公式進行描述。

當然,你看到了,即便你對於循環神經網絡不瞭解,把它當成一個黑箱,你依然可以用高階的深度學習框架,例如 fast.ai ,執行自然語言處理任務,而且效果還很突出。

François Chollet 在他的 "Deep Learning with Python" 一書中,也提到過這種觀點(注意這裏說的是 RNN 的一個變種,叫做 LSTM):

you don’t need to understand anything about the specific architecture of an LSTM cell; as a human, it shouldn’t be your job to understand it.

但是注意, François Chollet 後面還有一句話:

Just keep in mind what the LSTM cell is meant to do.

也就是說,它的實現細節,你不需要考慮。

當然,它的作用,你還是得了解的。

如果你需要做研究,就得針對具體的任務,對神經網絡中的各種模塊進行調整、拼裝和整合。

這時候,如果你對深度神經網絡的理解,基本上等同於黑箱,那麼你甚至都不知道該如何把它的輸出和其他模塊拼接起來。

之前,我給你做了個視頻講解《文科生如何理解卷積神經網絡?》,爲你把卷積神經網絡的原理進行了拆解剖析。

從讀者和觀衆們的反饋來看,許多人覺得有幫助。

有不少人留言,希望我以同樣通俗易懂的講法,講講用於處理序列數據(例如文本)的循環神經網絡(Recurrent Neural Network, RNN)的原理。

其實,我也早就想爲你講解這一部分的知識。無奈序列是個動態的概念,所以用文字來給你講解循環神經網絡模型,效率不高。

好在,我最近剛剛學會,如何在錄製視頻的時候,使用手寫輸入。於是我立即把這一技術,納入到咱們的教程製作中來。

我花了一個晚上的時間,爲你做了這份視頻教程。已發佈到了騰訊視頻,鏈接在這裏。

從我們耳熟能詳的一個故事講起,觸類旁通,讓你更容易理解循環神經網絡的作用、特點和結構。

除了前文提到的一些材料,視頻中還提及了詞嵌入(word embedding)的相關知識。這一部分,你可以參考《如何用Python處理自然語言?(Spacy與Word Embedding)》和《如何用 Python 和 gensim 調用中文詞嵌入預訓練模型?》。

希望這份視頻教程,對你瞭解循環神經網絡能有幫助。

祝(深度)學習愉快!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章