吳恩達deeplearning.ai五項課程完整筆記了解一下?

2021-01-11 機器之心Pro

自吳恩達發布 deeplearning.ai 課程以來,很多學習者陸續完成了所有專項課程並精心製作了課程筆記,在此過程中機器之心也一直在為讀者推薦優質的筆記。上個月,deep learning.ai 第五課發布,該系列課程最終結課。Mahmoud Badry 在 GitHub 上開源了五項課程的完整筆記,介紹了包括序列模型在內的詳細知識點。機器之心簡要介紹了該項目,並重點描述了第五項課程序列模型。

項目地址:https://github.com/mbadry1/DeepLearning.ai-Summary

上周吳恩達在推特上展示了一份由 TessFerrandez 完成的深度學習專項課程信息圖,這套信息圖優美地記錄了深度學習課程的知識與亮點。這一份信息圖的詳細介紹請查看:這是一份優美的信息圖,吳恩達點讚的 deeplearning.ai 課程總結 。

Deeplearning.ai 課程開課以來,一直受到大家的關注,也有眾多讀者積極的參與到學習中。機器之心在這段時間內也介紹了多篇該系列課程的學習筆記,以下為前四課的筆記與學習心得:

吳恩達 Deeplearning.ai 課程學習全體驗:深度學習必備課程(已獲證書)入門 | 吳恩達 Deeplearning.ai 全部課程學習心得分享資源 | 吳恩達 deeplearning.ai 第四課學習心得:卷積神經網絡與計算機視覺

Mahmoud Badry 完成的筆記主要分為五部分,分別對應神經網絡與深度學習基礎、提升 DNN 性能的技巧與方法等、結構化機器學習項目、卷積神經網絡和序列模型五門課程。值得注意的是,該項目完成的筆記十分詳細,基本上五門課程的知識點全都覆蓋到了。例如第一項課程以每周不同主題為序記錄了從神經網絡簡介到 Goodfellow 採訪等基本知識點。

由於前四課很多知識點都已經介紹過,因此本文我們著重介紹第五課的筆記概要,讀者可自行查閱 GitHub 閱讀完整的筆記,也可查看機器之心往期發過的一些課程資料。

第五課序列模型簡介

本課程將講授如何構建自然語言、音頻和其他序列數據的模型。在深度學習的幫助下,序列算法比兩年前效果更好,用於大量有趣的應用,如語音識別、音樂合成、聊天機器人、機器翻譯、自然語言理解等。學完本課,你將:

了解如何構建和訓練循環神經網絡(RNN)及其常用變體,如 GRU 和 LSTM。使用序列模型處理自然語言問題,如文本合成。將序列模型應用到音頻應用中,如語音識別和音樂合成。這是 Deep Learning Specialization 課程的第五課,也是最後一課。

適用人群:

學完第一、二、四課的學習者。同樣推薦大家學習第三課。已經對神經網絡(包括 CNN)具備深厚理解,並想學習如何開發循環神經網絡的人。

該課程介紹循環神經網絡(RNN)、自然語言處理和詞嵌入還有序列模型和注意力機制等,以下將簡要介紹 Mahmoud Badry 所完成的序列模型筆記。

序列模型

序列模型(如 RNN 和 LSTM)極大地改變了序列學習,序列模型可通過注意力機制獲得增強。序列模型在語音識別、音樂生成、情感分類、DNA 序列分析、機器翻譯、視頻活動識別、命名實體識別等方面得到應用。

循環神經網絡模型(RNN)

循環神經網絡出現於 20 世紀 80 年代,最近由於網絡設計的推進和圖形處理單元上計算能力的提升,循環神經網絡變得越來越流行。這種網絡尤其是對序列數據非常有用,因為每個神經元或者單元能用它的內部存儲來保存之前輸入的相關信息。在語言的案例中,「I had washed my house」這句話的意思與「I had my house washed」大不相同。這就能讓網絡獲取對該表達更深的理解。

RNN 有很多應用,在自然語言處理(NLP)領域表現良好。下圖是一個用於解決命名實體識別任務的 RNN 網絡。

用於解決命名實體識別任務的 RNN 網絡。

簡化版 RNN 表示法。

沿時間的反向傳播(BPTT)

RNN 架構中的反向傳播,w_a、b_a、w_y、b_y 被序列中的所有元素共享。

這裡使用交叉熵損失函數:

其中第一個公式是序列中一個元素的損失函數,整個序列的損失是每個元素的損失之和。

在上圖中沿時間反向傳播中,激活值 a 從一個序列元素向另一個元素傳播。

RNN 的類型

RNN 的不同類型。

RNN 的梯度消失

「梯度消失」指的是隨著網絡深度增加,參數的梯度範數指數式減小的現象。梯度很小,意味著參數的變化很緩慢,從而使得學習過程停滯。循環神經網絡在語言建模等序列問題上有非常強大的力量,但同時它也存在很嚴重的梯度消失問題。因此像 LSTM 和 GRU 等基於門控的 RNN 有非常大的潛力,它們使用門控機制保留或遺忘前面時間步的信息,並形成記憶以提供給當前的計算過程。

門控循環單元(GRU)

GRU 旨在解決標準 RNN 中出現的梯度消失問題。GRU 背後的原理與 LSTM 非常相似,即用門控機制控制輸入、記憶等信息而在當前時間步做出預測,表達式如下:

GRU 有兩個有兩個門,即一個重置門(reset gate)和一個更新門(update gate)。從直觀上來說,重置門決定了如何將新的輸入信息與前面的記憶相結合,更新門定義了前面記憶保存到當前時間步的量。如果我們將重置門設置為 1,更新門設置為 0,那麼我們將再次獲得標準 RNN 模型。使用門控機制學習長期依賴關係的基本思想和 LSTM 一致,但還是有一些關鍵區別:

GRU 有兩個門(重置門與更新門),而 LSTM 有三個門(輸入門、遺忘門和輸出門)。GRU 並不會控制並保留內部記憶(c_t),且沒有 LSTM 中的輸出門。LSTM 中的輸入與遺忘門對應於 GRU 的更新門,重置門直接作用於前面的隱藏狀態。在計算輸出時並不應用二階非線性。

為了解決標準 RNN 的梯度消失問題,GRU 使用了更新門(update gate)與重置門(reset gate)。基本上,這兩個門控向量決定了哪些信息最終能作為門控循環單元的輸出。這兩個門控機制的特殊之處在於,它們能夠保存長期序列中的信息,且不會隨時間而清除或因為與預測不相關而移除。

帶有門控循環單元的循環神經網絡

以下展示了單個門控循環單元的具體結構。

門控循環單元

LSTM

使用傳統的通過時間的反向傳播(BPTT)或實時循環學習(RTTL/Real Time Recurrent Learning),在時間中反向流動的誤差信號往往會爆炸(explode)或消失(vanish)。但 LSTM 可以通過遺忘和保留記憶的機制減少這些問題。

LSTM 單元一般會輸出兩種狀態到下一個單元,即單元狀態和隱藏狀態。記憶塊負責記憶各個隱藏狀態或前面時間步的事件,這種記憶方式一般是通過三種門控機制實現,即輸入門、遺忘門和輸出門。

以下是 LSTM 單元的詳細結構,其中 Z 為輸入部分,Z_i、Z_o 和 Z_f 分別為控制三個門的值,即它們會通過激活函數 f 對輸入信息進行篩選。一般激活函數可以選擇為 Sigmoid 函數,因為它的輸出值為 0 到 1,即表示這三個門被打開的程度。

圖片來源於李弘毅機器學習講義。

若我們輸入 Z,那麼該輸入向量通過激活函數得到的 g(Z) 和輸入門 f(Z_i ) 的乘積 g(Z) f(Z_i ) 就表示輸入數據經篩選後所保留的信息。Z_f 控制的遺忘門將控制以前記憶的信息到底需要保留多少,保留的記憶可以用方程 c*f(z_f)表示。以前保留的信息加上當前輸入有意義的信息將會保留至下一個 LSTM 單元,即我們可以用 c' = g(Z)f(Z_i) + cf(z_f) 表示更新的記憶,更新的記憶 c' 也表示前面與當前所保留的全部有用信息。我們再取這一更新記憶的激活值 h(c') 作為可能的輸出,一般可以選擇 tanh 激活函數。最後剩下的就是由 Z_o 所控制的輸出門,它決定當前記憶所激活的輸出到底哪些是有用的。因此最終 LSTM 的輸出就可以表示為 a = h(c')f(Z_o)。

雙向 RNN(BRNN)

雙向 RNN 和深度 RNN 是構建強大序列模型的有效方法。下圖是一個命名實體識別任務的 RNN 模型:

BRNN 架構

BRNN 的缺點是在處理之前需要整個序列。

深度 RNN

深度 RNN 可幫助構建強大的序列模型。

3 層深度 RNN 圖示。

RNN 的反向傳播

在現代深度學習框架中,你只需實現前向傳播,框架會執行反向傳播,因此大部分機器學習工程師不需要擔心反向傳播。但是,如果你是微積分專家,想了解 RNN 中反向傳播的細節,可參考該 notebook:https://www.coursera.org/learn/nlp-sequence-models/notebook/X20PE/building-a-recurrent-neural-network-step-by-step。

自然語言處理與詞表徵

詞表徵在自然語言處理中是必不可少的部分,從早期的 One-Hot 編碼到現在流行的詞嵌入,研究者一直在尋找高效的詞表徵方法。Mahmoud Badry 在筆記中詳細記錄了詞嵌入方法,包括用於命名實體識別、人臉識別和翻譯系統的詞嵌入等,下圖展示了用於人臉識別的詞嵌入結構:

在這種詞嵌入方法中,我們可以將不同的人臉編碼壓縮為一個向量,進而根據該向量比較是不是同一張臉。

詞嵌入有非常多的優秀屬性,例如給定一張詞嵌入表。該筆記用案例來解釋詞嵌入的語義相近關係,如下圖所示,男性變化到女性與國王變化到女王的反向在嵌入空間內是相同的,這意味著詞嵌入捕捉到了詞與詞之間的語義相關性。

一般來說,Word2Vec 方法由兩部分組成。首先是將高維 one-hot 形式表示的單詞映射成低維向量。例如將 10,000 列的矩陣轉換為 300 列的矩陣,這一過程被稱為詞嵌入。第二個目標是在保留單詞上下文的同時,從一定程度上保留其意義。Word2Vec 實現這兩個目標的方法有 skip-gram 和 CBOW 等,skip-gram 會輸入一個詞,然後嘗試估計其它詞出現在該詞附近的概率。還有一種與此相反的被稱為連續詞袋模型(Continuous Bag Of Words,CBOW),它將一些上下文詞語作為輸入,並通過評估概率找出最適合(概率最大)該上下文的詞。

對於連續詞袋模型而言,Mikolov 等人運用目標詞前面和後面的 n 個詞來同時預測這個詞。他們稱這個模型為連續的詞袋(CBOW),因為它用連續空間來表示詞,而且這些詞的先後順序並不重要。CBOW 可以看作一個具有先知的語言模型,而 skip-gram 模型則完全改變將語言模型的目標:它不像 CBOW 一樣從周圍的詞預測中間的詞;恰恰相反,它用中心語去預測周圍的詞。

Mahmoud Badry 還展示了另一種學習詞嵌入的方法 GloVe,該方法雖然不像語言模型那樣使用廣泛,但它精簡的結構非常容易理解:

序列模型與注意力機制

最後一部分作者著重介紹了注意力機制,包括編碼器解碼器架構的缺陷和引入注意力機制的解決方案。下圖展示了使用語境向量 C 或注意力權重編碼信息的過程。

其實當我們翻譯一個句子時,會尤其關注於正在翻譯的單詞。神經網絡可以通過注意力來實現同樣的行為,即關注所收到信息子集的一部分。

我們通常是使用基於上下文的注意力生成注意力分布。參與的 RNN 會生成一個描述它想關注內容的查詢。每一個條目和這個查詢做點乘來產生一個分數,這個分數描述這個條目與查詢匹配程度。這些分數被輸入一個 softmax 來生成注意力分布。

相關焦點

  • 302頁吳恩達Deeplearning.ai課程筆記,詳記基礎知識與作業代碼
    原標題:302頁吳恩達Deeplearning.ai課程筆記,詳記基礎知識與作業代碼 機器之心整理 作者:WanZhen 參與:機器之心編輯部 吳恩達的 DeepLearning.ai 已經於 1 月 31 日發布了最後一門課程。
  • 選機器學習課程怕踩雷?有人幫你選出了top 5優質課
    本文介紹了 top 5 機器學習課程:吳恩達《機器學習》課程:https://www.learndatasci.com/out/coursera-machine-learning/吳恩達《深度學習專項課程》:https://www.learndatasci.com/out/coursera-deep-learning-specialization/SAEED AGHABOZORGI
  • 吳恩達悄然發布 AI 維基,另外他的技術崗已經招滿了-虎嗅網
    虎嗅註:似乎從百度離職之後,吳恩達回歸教育事業老本行,施展更加自如了。本文轉載自量子位,作者問耕。吳恩達又有新動作。wiki首先來說第一個。這個長假期間,吳恩達團隊在deeplearning.ai上悄然發布了一個新項目:AI維基百科。這個維基百科還向學習者們發出號召:一起來貢獻內容。目前這個維基有12個頁面,分別對應:歡迎、概述(神經網絡)、數學(導數、向量)、平臺和工具(Python、深度學習框架)、分類器、激活函數、超參數調整、代價函數等。
  • 吳恩達創業關你什麼事?
    來源:techcrunch.com作者:John Mannes譯者:劉小芹、張易【新智元導讀】百度前首席科學家吳恩達幾小時前剛剛在推特上宣布了他的下一個企業 Deeplearning.ai,據 Techcrunch 的 John Mannes 分析,Deeplearning.ai 應該是致力於開發 AI 基礎設施相關技術的公司
  • 高效「煉丹」必備技能:一文實現深度學習數學原理入門,還有吳恩達...
    下面的深度學習數學基礎詳解,以DLP為例,你讀完後會對它的數學基礎有全面的了解,並且熟悉用數學解釋算法的基本思路。除了DLP,文末還一併為你準備了RNN、CNN數學原理,以及吳恩達老師的AI數學基礎課程。一文實現AI數學基礎入門,還在等什麼?
  • ​大牛的《深度學習》筆記,Deep Learning速成教程
    聽起來感覺deeplearning很牛那樣。那什麼是deep learning?為什麼有deep learning?它是怎麼來的?又能幹什麼呢?目前存在哪些困難呢?這些問題的簡答都需要慢慢來。咱們先來了解下機器學習(人工智慧的核心)的背景。
  • 這些優質的 AI 資源絕對不要錯過
    Coursera部分課程資料是免費提供的,但若想獲得證書必須付款。當中最著名和最受推崇的課程之一就是吳恩達的斯坦福機器學習課程。其他的Coursera課程在7天免費試用之後會收取費用,你可以免費收看課程視頻等內容。在這些課程中,我推薦以下這幾個好評最多的課程。
  • 深度學習筆記8:利用Tensorflow搭建神經網絡
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 吳恩達授課,斯坦福CS230深度學習課程資源開放
    機器之心整理參與:劉曉坤、雪、思源近日由吳恩達與 Kian Katanforoosh 指導的 CS230(深度學習)課程已經結束並放出了課程資料。這一門課程結合 Coursera 課外教學與課內教學展示了深度學習的基本概念與完整結構,機器之心簡要介紹了該課程及基本內容。
  • 我在Google用AI研究基因,入門從吳恩達的課程開始
    但之後了解到機器學習的原理,毫無疑問,如果能夠將我們的研究與機器學習結合,必然能大大提升效率,所以我們決定將機器學習應用到基因工程研究中。起步階段,最關鍵的是進一步了解機器學習的原理。於是在Google員工的推薦下,我把Coursera上吳恩達(Andrew Ng)的機器學習課程學習了一遍,有了不少入門知識和樂趣,如果現在讓我推薦入門課程,我想沒有比吳恩達的課程更好的了。
  • 「終極收藏」AI領域你不能不關注的大牛、機構、課程、會議、圖書...
    了解更多可以查看原文。也有一些很好的付費課程,但本文主要提供免費內容的推薦。有相當多的大學課程都提供在線課程材料,但沒有視頻。--ud262Udacity — 深度學習(Deep Learning)授課:Vincent Vanhouckehttps://www.udacity.com/course/deep-learning--ud730機器學習(Machine Learning)授課:mathematicalmonkhttps://www.youtube.com
  • Multi-Label Classification with Deep Learning
    想了解更多好玩的人工智慧應用,請關注公眾號「機器AI學習 數據AI挖掘」,」智能應用"菜單中包括:顏值檢測、植物花卉識別、文字識別、人臉美妝等有趣的智能應用
  • 吳恩達:史上最通俗易懂的人工智慧概念解釋
    編者按:本文來自微信公眾號"筆記俠「(ID:Notesman),作者:吳恩達,責編:戈多內容來源:2017年9月11日,斯坦福,吳恩達為GASA大學作主題為「探索人工智慧」的分享。筆記俠作為獨家課程筆記合作夥伴,經主辦方審閱授權發布。筆記君邀您,先思考:1. 為什麼AI會突然在這幾年進步這麼快?2.
  • 吳恩達導師Michael I. Jordan剛去清華講了三天課,這有課程筆記
    Jordan教授本次親自上陣授課實屬難得,為保證教學質量,本次系列課程也只面向清華學生開放,且不設錄像直播,頗為珍貴。據大數據文摘了解,Jordan教授授課風格頗傳統,全程拋棄多媒體設備,手寫版書公式。本次講座內容由機器學習方法和系統組成,主要涉及概率圖模型、統計推斷和模型評判,以及大規模機器學習的分布式優化算法和計算框架,為清華學生分享了大量乾貨。
  • MIT 6.S094· 計算機視覺 | 學霸的課程筆記,我們都替你整理好了
    課程團隊授權翻譯自動駕駛課程,視頻連結:http://www.mooc.ai/course/483/info我們為你整理了每一個 Lecture 的課程筆記,提煉出每一講的要點精華,推薦結合課程筆記觀看視頻內容,學習效果更佳。
  • 這是23門全世界最好的計算機科學課程
    評價:★★★★★課程連結:https://www.coursera.org/learn/python3、機器學習來自史丹福大學,Coursera吳恩達老師的課程,廣泛介紹機器學習、數據挖掘和統計模式識別等內容,同時還引用了許多機器學習案例,讓你學會在智慧機器人(感知和控制)、文本理解(網絡搜索和垃圾郵件過濾)、計算機視覺、醫學信息學