這一份視頻教程中,我會用簡明的例子和手繪圖,為你講解循環神經網絡(Recurrent Neural Network, RNN)的原理和使用方法。
關于深度學習,我已經為你講解了不少內容了。
咱們簡單回顧一下。常見的深度學習任務,面對的數據類型主要是三類:
第一類,是結構化數據,也就是樣本和屬性組成的表格。例如《如何用Python和深度神經網絡鎖定即將流失的客戶?》一文中,我們用到的表格:
這種數據格式,最為簡單。你也很容易理解深度神經網絡的結構和處理方法。
第二類,是圖像數據。《如何用 Python 和 fast.ai 做圖像深度遷移學習?》一文中,我給你詳細介紹過如何用卷積神經網絡來處理它。
第三類,是序列數據,例如文本。《如何用 Python 和深度遷移學習做文本分類?》一文里面,咱們已經展示了如何使用 fast.ai 提供的語言模型對其進行處理。
其中,圖像和序列數據,處理起來更需要你對深度神經網絡結構的理解。
作為文科生,你在學習卷積神經網絡和循環神經網絡的時候,可能會遇到一些問題。因為它們大多采用比較復雜的結構圖和公式進行描述。
當然,你看到了,即便你對于循環神經網絡不了解,把它當成一個黑箱,你依然可以用高階的深度學習框架,例如 fast.ai ,執行自然語言處理任務,而且效果還很突出。
Franc?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.
但是注意, Franc?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 調用中文詞嵌入預訓練模型?》。
希望這份視頻教程,對你了解循環神經網絡能有幫助。
祝(深度)學習愉快!
喜歡請點贊和打賞。還可以微信關注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)。
如果你對 Python 與數據科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數據科學?》,里面還有更多的有趣問題及解法。