文科生如何理解循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)?

這一份視頻教程中,我會(huì)用簡明的例子和手繪圖,為你講解循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)的原理和使用方法。

關(guān)于深度學(xué)習(xí),我已經(jīng)為你講解了不少內(nèi)容了。

咱們簡單回顧一下。常見的深度學(xué)習(xí)任務(wù),面對(duì)的數(shù)據(jù)類型主要是三類:

第一類,是結(jié)構(gòu)化數(shù)據(jù),也就是樣本和屬性組成的表格。例如《如何用Python和深度神經(jīng)網(wǎng)絡(luò)鎖定即將流失的客戶?》一文中,我們用到的表格:

這種數(shù)據(jù)格式,最為簡單。你也很容易理解深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和處理方法。

第二類,是圖像數(shù)據(jù)?!?a href="http://www.lxweimin.com/p/a23691c4ed99" target="_blank">如何用 Python 和 fast.ai 做圖像深度遷移學(xué)習(xí)?》一文中,我給你詳細(xì)介紹過如何用卷積神經(jīng)網(wǎng)絡(luò)來處理它。

第三類,是序列數(shù)據(jù),例如文本。《如何用 Python 和深度遷移學(xué)習(xí)做文本分類?》一文里面,咱們已經(jīng)展示了如何使用 fast.ai 提供的語言模型對(duì)其進(jìn)行處理。

其中,圖像和序列數(shù)據(jù),處理起來更需要你對(duì)深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的理解。

作為文科生,你在學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)的時(shí)候,可能會(huì)遇到一些問題。因?yàn)樗鼈兇蠖嗖捎帽容^復(fù)雜的結(jié)構(gòu)圖和公式進(jìn)行描述。

當(dāng)然,你看到了,即便你對(duì)于循環(huán)神經(jīng)網(wǎng)絡(luò)不了解,把它當(dāng)成一個(gè)黑箱,你依然可以用高階的深度學(xué)習(xí)框架,例如 fast.ai ,執(zhí)行自然語言處理任務(wù),而且效果還很突出。

Franc?ois Chollet 在他的 "Deep Learning with Python" 一書中,也提到過這種觀點(diǎn)(注意這里說的是 RNN 的一個(gè)變種,叫做 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.

也就是說,它的實(shí)現(xiàn)細(xì)節(jié),你不需要考慮。

當(dāng)然,它的作用,你還是得了解的。

如果你需要做研究,就得針對(duì)具體的任務(wù),對(duì)神經(jīng)網(wǎng)絡(luò)中的各種模塊進(jìn)行調(diào)整、拼裝和整合。

這時(shí)候,如果你對(duì)深度神經(jīng)網(wǎng)絡(luò)的理解,基本上等同于黑箱,那么你甚至都不知道該如何把它的輸出和其他模塊拼接起來。

之前,我給你做了個(gè)視頻講解《文科生如何理解卷積神經(jīng)網(wǎng)絡(luò)?》,為你把卷積神經(jīng)網(wǎng)絡(luò)的原理進(jìn)行了拆解剖析。

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

有不少人留言,希望我以同樣通俗易懂的講法,講講用于處理序列數(shù)據(jù)(例如文本)的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)的原理。

其實(shí),我也早就想為你講解這一部分的知識(shí)。無奈序列是個(gè)動(dòng)態(tài)的概念,所以用文字來給你講解循環(huán)神經(jīng)網(wǎng)絡(luò)模型,效率不高。

好在,我最近剛剛學(xué)會(huì),如何在錄制視頻的時(shí)候,使用手寫輸入。于是我立即把這一技術(shù),納入到咱們的教程制作中來。

我花了一個(gè)晚上的時(shí)間,為你做了這份視頻教程。已發(fā)布到了騰訊視頻,鏈接在這里。

從我們耳熟能詳?shù)囊粋€(gè)故事講起,觸類旁通,讓你更容易理解循環(huán)神經(jīng)網(wǎng)絡(luò)的作用、特點(diǎn)和結(jié)構(gòu)。

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

希望這份視頻教程,對(duì)你了解循環(huán)神經(jīng)網(wǎng)絡(luò)能有幫助。

祝(深度)學(xué)習(xí)愉快!

喜歡請(qǐng)點(diǎn)贊和打賞。還可以微信關(guān)注和置頂我的公眾號(hào)“玉樹芝蘭”(nkwangshuyi)。

如果你對(duì) Python 與數(shù)據(jù)科學(xué)感興趣,不妨閱讀我的系列教程索引貼《如何高效入門數(shù)據(jù)科學(xué)?》,里面還有更多的有趣問題及解法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。