Andrew NG親授!Stanford CS230深度學習課程資源

2021-02-21 機器學習實驗室

由吳恩達與 Kian Katanforoosh 指導的 CS230(深度學習)課程已經結束並放出了課程資料。這一門課程結合 Coursera 課外教學與課內教學展示了深度學習的基本概念與完整結構,本文簡要介紹了該課程及基本內容。

課程地址:https://web.stanford.edu/class/cs230/

課程簡介:深度學習是 AI 領域中最受歡迎的技能之一。這門課程將幫助你學好深度學習。你將學到深度學習的基礎,理解如何構建神經網絡,並學習如何帶領成功的機器學習項目。你將學到卷積神經網絡(CNN)、循環神經網絡(RNN)、長短期記憶網絡(LSTM)、Adam 優化器、Dropout 方法、BatchNorm 方法、Xavier/He 初始化方法等。你將在醫療、自動駕駛、手語識別、音樂生成和自然語言處理等領域中進行案例研究。你不僅能掌握理論,還能看到深度學習如何應用到產業中。我們將需要使用 Python 和 TensorFlow 來實現所有的項目,課程中也會教這一部分。完成這門課程後,你將能以創新的方式將深度學習應用到你的工作中。該課程是以翻轉課堂的形式教學的。你將先在家裡觀看 Coursera 視頻、完成編程任務以及在線測驗,然後來到課堂上做進一步討論和完成項目。該課程將以開放式的最終項目結束,教學團隊會在過程中提供幫助。

CS230 採取課內和 Coursera 在線課程相結合的形式,其中每一個課程的模塊都需要在 Coursera 上觀看視頻、做測試並完成編程作業。一周的課程約需要在 Cousera 上在線學習兩個模塊再加上 80 分鐘的課內時間。

這門課程要求學生有一些背景知識,首先學生需要了解計算機科學基本原理與技能,並且能寫合理、簡潔的電腦程式。其次學生需要熟悉概率論與線性代數等基本的數學知識。

目前 CS230 的結課項目報告與 Poster 展示都已經發布,包含多種主題,如音樂生成、情緒檢測、電影情感分類、癌症檢測等。課程報告和 Poster 前三名已經公布:

報告第一名:Image-to-Image Translation with Conditional-GAN (Weini Yu, Jason Hu, Yujo Zhouchangwan Yu)

該報告使用條件生成對抗網絡(C-GAN)研究航空圖圖像翻譯。參與者首先復現了 Isola 等人提出的 C-GAN 模型,然後探索了不同的網絡架構、損失函數和訓練策略。對不同模型進行了定性和定量評估,得出結論:基於殘差的模型在僅使用 1000 個訓練樣本的情況下得到了非常高質量的圖像。

C-GAN 網絡架構

生成器網絡架構

報告第二名:Deep Knowledge tracing and Engagement with MOOCs (Klint Kanopka, Kritphong Mongkhonvanit, David Lang)

該報告利用深度知識追蹤網絡以及 MOOC 課程互動協變量,計算學生的課程參與度,發現該方法能夠以超過 88% 的準確率預測學生的下一個項目反應。利用這些預測可以向學生提供針對性的幹預,也可以對課程進行針對性的改進。

模型結構

報告第三名:Deep Learning for Improving Power-Accuracy of Heart Rate Monitors (Albert Gural)

該報告利用深度學習方法解決從低採樣率 PPG 中確定心率以及如何確定運動偽影中的加速度計信號的問題。

Poster 第一名:Painting Outside the Box: Image Outpainting with GANs (Mark Sabini, Gili Rusak)

Poster 第二名:LeafNet: A Deep Learning Solution to Tree Species Identification (Krishna Rao, Elena Herrero, Gabrielle Pacalin)

該 Poster 使用殘差網絡基於圖像對北美 185 個樹種進行分類。

Poster 第三名:Earthquake warning system: Detecting earthquake precursor signals using deep neural networks (Mustafa Al Ibrahim, Jihoon Park, Noah Athens)

該 Poster 對 1D CNN、2D CNN、RNN 的地震預測性能進行了評估。

課程主要內容

CS230 與吳恩達在 Coursera 上的深度學習專項課程一樣分 5 部分,即神經網絡與深度學習、提升深度神經網絡、機器學習項目的策略、卷積神經網絡及序列模型。

在第一課中介紹了神經網絡和深度學習的基礎。主要在課堂內介紹了深度學習的直觀概念,並藉助兩個模塊從頭開始學習神經網絡到底是什麼。

其中第一課的第一個模塊 C1M1 主要從線性回歸與房價預測引出神經網絡,並著重介紹了監督式深度學習的基本概念。如下 C1M1 展示了基本神經網絡的類別:

其中標準神經網絡即我們常見的全連接網絡,它是最基礎也是最本質的「神經網絡式」層級表徵方法。標準神經網絡簡單而言即後一層的單個神經元接收前一層所有神經元激活值的加權和,並判斷本神經元是不是需要激活。而卷積網絡與全連接網絡最大的區別是後一層的神經元只與前一層神經元部分連接,且神經元之間存在權重共享,這樣的神經網絡減少了冗餘參數,並有利於建模如圖像那樣有局部結構的數據。最後的循環網絡又與前兩個前饋網絡不同,它在不同時間步上使用相同的神經網絡函數,並每一個時間步都利用前面時間步的必要信息,這樣的網絡能有效處理自然語言等序列問題。

隨後在 C1M2 中,該課程開始具體介紹神經網絡。當然理解神經網絡還是需要從 Logistic 回歸與感知機算法開始,而最基礎的梯度下降與如何計算導數也是必須的。

如上所示為 Logistic 回歸的主要過程,我們先根據初始化的參數計算激活值 a,再根據預測值與標註值之間的差距計算損失函數,最後推導損失函數對各參數的梯度就能使用梯度下降更新參數。

第二課介紹深度學習模型的內部數學結構,從淺層網絡逐步過渡到深度網絡,理解「深度」的重要意義。掌握了這些概念之後,對於如何從零開始構建深度學習網絡,能有一個基本的思路。

然後是深度模型的優化或調參技巧,例如初始化、正則化、數據集劃分、Dropout、歸一化、梯度檢查等,和各種經典的學習率衰減方法,如動量算法、Adam 等。

在 C1M3 中,吳恩達主要描述了感知機與神經網絡的表徵方法,這裡仍需要推導大量的表達式。但只要理解了多層感知機的表達方法,那麼深度全連接網絡與其它深度神經網絡的理解就會變得容易得多。如下所示為感知機向量化的表達式,其中主要是將前一層激活值的加權和 z 表示為矩陣運算。

若理解的感知機或淺層網絡的計算過程與表達式,那麼深度前饋網絡的推斷過程就能輕鬆掌握。不過對於深度前饋網絡,另一個非常重要的過程是反向傳播。因為模型參數需要梯度才能更新,因此將根據損失函數計算出來的梯度反向傳遞到各個層級就非常有必要了。如下,C1M4 主要就介紹了這種反向傳播:

如上所示,當我們根據損失函數 L(y hat, y) 計算出最後一層的梯度,我們需要根據求導的鏈式法則將梯度反向傳遞到前層。

此外,這一部分 C2M1 和 C2M2 分別介紹了深度學習的技巧與基本的最優化方法。其中雖優化方法從批量梯度下降和小批量梯度下降開始到 Adam 最優化方法介紹了基本的學習過程。如下是手推的小批量梯度下降,但我們更常見的稱呼是隨機梯度下降。

小批量與批量的不同在於計算梯度的樣本比較少,一般是 32、64 等。這樣每一次迭代所需要的計算量就大大減少,且還能通過引入噪聲增加收斂結果的魯棒性。

第三課介紹結構化機器學習項目。基礎部分涉及超參數調整、批規一化方法等,以及深度學習框架(如 TensorFlow、PyTorch)的應用。然後是機器學習策略,包括垂直化調參、評估指標設置、數據集劃分等。

這一課會介紹如何在實際案例中應用深度學習,Pranav Rajpurkar 將教你構建醫療領域的深度學習應用,即吳恩達團隊開發的 Chest X-Rays 項目。

在這個項目中,你將以 DenseNet 為骨幹網絡架構,實現對肺部 X 射線圖像的分類(是否有肺炎)。其中涉及了數據集構建、模型訓練和模型評估等,可以體驗深度學習產業化的完整過程。

在這一課的幾個模塊中,C3M1 和 C3M2 都介紹了機器學習中的策略。機器學習中的策略主要關注於如何訓練模型,例如什麼時候需要調整樣本數、怎麼樣算過擬合以及度量方法等。這裡最經典的就是偏差與方差問題,我們常常需要根據偏差與方差確定我們的模型到底出現了什麼狀況,例如過擬合與欠擬合等。

其中高偏差代表擬合數據集的函數集合併不包含真正的那個,即偏離正確答案有點遠。而高方差表示擬合數據集的函數集合確實包含了真正的那個,但這個函數集合太大了,以至於每次搜索的都不準。

第四課介紹卷積神經網絡,卷積神經網絡主要用於處理空間型數據,如圖像、視頻等,因此在計算機視覺中應用甚廣。在這一部分課程期間有一個期中測驗,可以幫助你重溫之前學習過的內容。

CNN 的基礎部分涉及卷積運算、步幅、池化等,然後進一步介紹了幾個經典的 CNN 架構,如 LeNet-5、AlexNet、VGG、ResNet、Inception 等。之後給出了幾個 CNN 開發過程中的建議,涉及遷移學習、數據增強等。最後介紹了 CNN 領域的當前研究現狀。

這一部分以目標檢測應用為主,詳細介紹了目標檢測的整個工作流,並在最後以 YOLO 算法為例進行整合。之後還介紹了一些特殊的應用,例如人臉識別、神經風格遷移(畫風遷移)等,其中神經風格遷移有更為詳細的工作流介紹。

在 C4M1 中,吳恩達重點介紹了 CNN 及各個模塊,包括卷積層、池化層、卷積步幅和 Padding 等。其中卷積層試圖將神經網絡中的每一小塊進行更加深入的分析,從而得出抽象程度更高的特徵。一般來說通過卷積層處理的神經元結點矩陣會變得更深,即神經元的組織在第三個維度上會增加。

以上展示了經典的 LeNet-5 架構,正如 LeCun 在 LeNet-5 原論文中所說,卷積網絡結合了三種關鍵性思想來確保模型對圖像的平移、縮放和扭曲具有一定程度的不變性,這三種關鍵思想即局部感受野、權重共享和空間/時間子採樣。其中局部感受野表示卷積核只關注圖像的局部特徵,而權重共享表示一個卷積核在整張圖像上都使用相同的權值,最後的子採樣即我們常用的池化操作,它可以精煉抽取的特徵。

第五課介紹序列模型。序列模型主要用於處理序列型數據,如音樂、語音、文本等。序列模型主要以循環神經網絡為代表,本課將介紹 RNN 的基礎結構、類型、計算過程等,並以語言建模作為典型案例進行分析。之後是一些著名的 RNN 變體,例如 GRU、LSTM、雙向 RNN、深度 RNN 等。

這一部分先簡單概述深度強化學習,然後開始以自然語言處理和詞嵌入為主題,進一步講解 RNN 的進階應用。詞嵌入是很多自然語言處理模型的基礎,這一部分以詞嵌入為主,強調了詞嵌入技術的遷移學習作用,然後介紹幾個經典的詞嵌入模型,例如 Word2Vec、GloVe word vectors 等,最後以情感分類作為應用案例。

在 C5M1 中,吳恩達重點解釋了循環神經網絡,循環神經網絡是一類用於處理序列問題的神經網絡,它可以擴展到更長的序列。循環網絡相比經典的全連接網絡有非常大的提升,例如參數共享和構建長期依賴關係等。對於語句的序列建模,全連接網絡會給每個輸入特徵分配一個單獨的參數,所以它需要分別學習句子每個位置的所有語言規則。而循環神經網絡會在多個時間步內共享相同的參數,因此不必學習句子每個位置的所有語言規則。此外,循環網絡會有一個記憶機制為當前時間步的預測提供前面時間步的信息。

如上展示了循環網絡的基本結構,它只使用前一個時間步的隱藏單元信息和當前時間步的輸入信息,並利用相同的函數計算下一個隱藏單元的值。

完成這些課程後,就可以開始準備最終項目了。

往期精彩:

 機器學習實驗室的一點年度小結

【原創首發】機器學習公式推導與代碼實現30講.pdf

【原創首發】深度學習語義分割理論與實戰指南.pdf

 談中小企業算法崗面試

 算法工程師研發技能表

 真正想做算法的,不要害怕內卷

 技術學習不能眼高手低

 技術人要學會自我營銷

 做人不能過擬合

點個在看

相關焦點

  • 資源 | 吳恩達斯坦福CS230深度學習課程補充資料放出
    那是繼deeplearning.ai深度學習專項課程之後吳恩達的又一神作。課程助教課程涉及深度學習的基礎知識、神經網絡構建,以及如何完成一個成功的機器學習項目。CS230項目示例代碼:https://github.com/cs230-stanford/cs230-code-examples數據的預處理也包括兩部分
  • 吳恩達斯坦福CS230深度學習課程補充資料放出
    大數據文摘出品還記的吳恩達在斯坦福最新的深度學習課程麼?那是繼deeplearning.ai深度學習專項課程之後吳恩達的又一神作。CS230項目示例代碼:https://github.com/cs230-stanford/cs230-code-examples數據的預處理也包括兩部分
  • 【機器學習基礎】重磅發布!吳恩達 AI 完整課程資源超級大匯總!
    毫無疑問,吳恩達的 AI 課程在國內外都是入門的首選課程,而且有非常完整的學習路線,無數新手都從這門課中收穫滿滿。然而,吳恩達從最早的 CS229,到後來的 deeplearning.ai 深度學習專項課程,還有其它 AI 資源,大神發布的 AI 知名課程和資料非常多。對大部分學習者來說,肯定搜集得不完全而且非常耗時間。這確實是意見麻煩事!沒關係!
  • 資源 | 吳恩達斯坦福CS230深度學習課程全套資料放出(附下載)
    吳恩達老師對斯坦福CS230深度學習課程資源進行開放了,大家都知道吳恩達老師最出名的是他在coursera的機器學習課程,可以說讓很多剛開始接觸機器學習(ML)的小白入門該領域。吳恩達在開設了機器學習課程之後,最近發布的DeepLearning.ai的課程也是廣受好評,我沒有看完,看了一兩門課程,作業也跟著去做,得到的感受就是吳恩達老師就是那種擅長將知識尋尋漸進的傳授給你的老師。Deeplearning.ai這個課程也非常推薦!
  • 強化學習從入門到放棄:汪軍李宏毅等大佬資源大放送!
    1、基礎課程 [Rich Sutton 強化學習課程(Alberta)](#Rich Sutton 強化學習課程(Alberta)) [David Silver 強化學習課程(UCL)](#David Silver 強化學習課程(UCL))
  • 資源|Stanford NLP組2019最新NLP與深度學習-CS224n課程分享
    點擊上方「AI遇見機器學習」,選擇「星標」公眾號重磅乾貨,第一時間送達一、資源簡介斯坦福自然語言處理小組2019年的最新課程《CS224n: NLP與深度學習》春季課程已經全部結束了,課程內容囊括了深度學習在各項NLP任務中應用的最新技術,非常值得一看。
  • 斯坦福CS224n《基於深度學習的NLP》課程更新,C.Manning主講
    課程《基於深度學習的自然語言處理》詳細安排,主講人為史丹福大學人工智慧實驗室主任,著名計算機科學家Christopher Manning教授,1月份課程閱讀材料已公布。近年來,深度學習方法在許多不同的NLP任務中已經具備了極高的性能,這些方法使用單個端到端神經模型,不需要傳統的、針對特定的功能的項目。在本課程中,學生將深入了解NLP深度學習的前沿研究現狀。
  • 資源|機器學習/深度學習線上開放課程集錦
    [CMU: 11-785 Introduction to Deep Learning](http://deeplearning.cs.cmu.edu/) [Spring 2018] [DL][Stanford: CS230 Deep Learning](https://web.stanford.edu/class/cs230/) [Winter 2018][DL] [[
  • 吳恩達授課,斯坦福CS230深度學習課程資源開放
    機器之心整理參與:劉曉坤、雪、思源近日由吳恩達與 Kian Katanforoosh 指導的 CS230(深度學習)課程已經結束並放出了課程資料。這一門課程結合 Coursera 課外教學與課內教學展示了深度學習的基本概念與完整結構,機器之心簡要介紹了該課程及基本內容。課程簡介:深度學習是 AI 領域中最受歡迎的技能之一。這門課程將幫助你學好深度學習。
  • 斯坦福CS230官方指南:CNN、RNN及使用技巧速查(列印收藏)
    作為全球計算機四大名校之一,史丹福大學的CS230《深度學習》課程一直受到全球計算機學子和從業人員的熱烈歡迎。CS230授課人為全球著名計算機科學家吳恩達和他的助教Kian Katanforoosh。這份總結提要基本遵循CS230的授課思路和流程,分三大方面由淺入深地介紹了深度學習的基本概念、網絡模型、研究和實驗操作方法等。三部分內容分別為:卷積神經網絡、遞歸神經網絡、提示與技巧。
  • 【資源】斯坦福CS231n 2017春季課程全公開,視頻+PPT+英文字幕
    來源:cs231n.stanford.edu編輯:劉小芹【新智元導讀】史丹福大學的 CS231n(全稱:面向視覺識別的卷積神經網絡)一直是計算機視覺和深度學習領域的經典課程,每年開課都吸引很多學生。今年的CS231n Spring的instructors 是李飛飛、Justin Johnson和Serena Yeung,並邀請 Ian Goodfellow 等人講解GAN等重要主題。最近史丹福大學公開了該課程的全部視頻(配備英文)、slides等全部課程資料,新智元帶來介紹。
  • CMU深度學習秋季課程開課了(附PPT 、視頻)
    本課程內容涵蓋了深度學習的基礎內容,以及較新的強化學習、GAN等。[ 導讀 ]CMU深度學習秋季課程開課了!課程的主講老師是深度學習大牛、CMU計算機學院的Bhiksha Raj,課程內容涵蓋了深度學習的基礎內容,以及較新的強化學習、GAN等。
  • 資源連結|深度學習教程資源整理(伯克利、斯坦福、MIT、阿里、吳恩達)
    時隔兩年,斯坦福NLP標準公開課CS224N將再次開放視頻http://web.stanford.edu/class/cs224n/https://www.youtube.com/playlist?GAN,內容很全面,感興趣的同學可做為學習資源。
  • 資源| Github項目:史丹福大學CS-224n課程中深度NLP模型的PyTorch...
    選自GitHub機器之心編譯參與:李亞洲該 Github 項目是史丹福大學 cs-224n 課程中各種深度 NLP 模型的 PyTorch 實現。>項目地址:https://github.com/DSKSD/DeepNLP-models-Pytorch該實現項目並不是面向 PyTorch 初學者,如果你還未用過 PyTorch,建議以下教程:https://github.com/DSKSD/DeepNLP-models-Pytorch#references如果你對 DeepNLP 感興趣,建議觀看 cs223n
  • 【NLP專題】斯坦福CS224n課程筆記01:自然語言處理與深度學習簡介
    (15 mins)課程安排 (15mins)為什麼語言理解很困難(10mins)基於深度學習的自然語言處理應用介紹 (20 mins)一.自然語言處理• 本課程我們將重點關注不同類型的神經網絡以及在深度學習中佔主導地位的模型。我們將不再採用歷史方法,而是專注於目前在NLP問題上行之有效的方法。 2. 為什麼要用深度學習?
  • 資源 | UC Berkeley CS 294深度強化學習課程(附視頻、學習資料)
    本文主要介紹了課程中的強化學習主題,涉及深度強化學習的基本理論與前沿挑戰。CS294 深度強化學習 2017 年秋季課程的所有資源已經放出。該課程為各位讀者提供了強化學習的進階資源,且廣泛涉及深度強化學習的基本理論與前沿挑戰。本文介紹了該課程主要討論的強化學習主題,讀者可根據興趣愛好與背景知識選擇不同部分的課程。
  • 資源推薦|機器學習與深度學習視頻和書籍資源拿去!
    也有一些很好的付費課程,但本文主要提供免費內容的推薦。有相當多的大學課程都提供在線課程材料,但沒有視頻。Stanford CS231n —面向視覺識別的卷積神經網絡( Convolutional Neural Networks for Visual Recognition) (Winter 2016)授課:李飛飛、Justin Johnson & Serena Yeung http://cs231n.stanford.edu
  • 【入門必備】史上最全的深度學習資源匯總,速藏!
    本篇文章將針對深度學習資源進行一下匯總,歡迎轉發、點讚、收藏。深度學習近年來發展迅猛,在國內外都引起了廣泛的關注,也吸引了越來越多的人投身於深度學習領域的研究。今天小編有幸為大家介紹一些我自認為不錯的深度學習資源,希望幫助熱愛深度學習的小夥伴能夠走的更遠。
  • Andrew NG深度學習專業化課程介紹
    本專項課程介紹    如果你想了解和學習AI,這個專業化課程將可以幫助你。深度學習是技術中最受追捧的技能之一。我們將幫助您成為擅長深度學習的專業者。    在五個課程中,您將學習深度學習的基礎,了解如何構建神經網絡,並學習如何成功領導的機器學習項目。
  • 資源 | 學到了!UC Berkeley CS 294深度強化學習課程(附視頻與PPT)
    CS294 深度強化學習 2017 年秋季課程的所有資源已經放出。