斯坦福CS230官方指南:CNN、RNN及使用技巧速查(列印收藏)

2020-12-11 新智元

新智元報導

來源:Github

編輯:大明、小芹

【新智元導讀】吳恩達史丹福大學CS230《深度學習》課程內容歸納總結放出,全文乾貨。對於不方便正式上課的同學們來說,相信這份核心內容總結一定會對你有所幫助。

作為全球計算機四大名校之一,史丹福大學的CS230《深度學習》課程一直受到全球計算機學子和從業人員的熱烈歡迎。

CS230授課人為全球著名計算機科學家吳恩達和他的助教Kian Katanforoosh。

日前,MIT的Afshine Amidi 和史丹福大學的Shervine Amidi在博客上整理了一份CS230課程知識點的歸納總結,在Reddit上引發熱議。

評論網友紛紛表示喜大普奔,對於沒有條件上課或者沒趕上授課時間的人來說,看看這份總結貼也能獲益頗豐。

這份總結提要基本遵循CS230的授課思路和流程,分三大方面由淺入深地介紹了深度學習的基本概念、網絡模型、研究和實驗操作方法等。三部分內容分別為:卷積神經網絡、遞歸神經網絡、提示與技巧。

本文主要介紹這份總結的第一部分,即CNN部分的內容,後兩部分RNN、竅門與技巧部分,讀者可自行參看Github上放出的資源:

卷積神經網絡(CNN)

https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-convolutional-neural-networks

遞歸神經網絡(RNN)

https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurrent-neural-networks

技巧與竅門

https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-deep-learning-tips-and-tricks

囊括全部內容的「超級VIP」pdf下載

https://github.com/afshinea/stanford-cs-230-deep-learning/blob/master/super-cheatsheet-deep-learning.pdf

卷積神經網絡結構:卷積層、池化層、全連接層

傳統的卷積神經網絡由輸入圖像、卷積層、池化層和全連接層構成。

卷積層(CONV):使用過濾器執行卷積操作,掃描輸入大小。它的超參數包括濾波器的Size和Stride。結果輸出O稱為特徵映射或激活映射。

池化層(POOL)是一種下採樣操作,通常在卷積層之下使用,該卷積層執行一些空間不變性。其中最大池化和平均池化屬於特殊操作,分別採用最大值和平均值。

全連接層(FC)在平坦輸入上運行,每個輸入都連接到所有神經元。如果全連接層存在,通常位於網絡體系結構的末尾,可用於優化諸如分類評分等目標。

過濾器超參數

過濾器維度: 大小為F×F的過濾器應用在C channel上維度為F×F×C。

Stride:對於卷積和池化操作而言,Stride表示每次操作後窗口移動的像素數量。

Zero-padding表示對輸入邊界的每一端加入P個零的過程。這個值可以通過下圖中所示的三個方式手動指定,也可以自動設置。

超參數的調整

卷積層中的超參數兼容性:記輸入量長度為I,過濾器長度為F,補零數量為P,Stride量為S,則該維度下特徵映射的輸出大小O可用下式表示:

理解模型的複雜度:為了獲取模型複雜度,常常可以通過相應架構下的參數數量來達到這一目標。在給定的卷積神經網絡層中,該過程如下圖所示:

感受野:層K上的感受野區域記為Rk×Rk,即第K次激活映射可以「看見」的每個輸入像素。若層j上的過濾器大小為Fj,層i上的Stride值為Si,且S0=1,則層k上的感受野可以由下式計算出:

常用激活函數

整流線性單元 : 整流線性單元層(ReLU)是激活函數g,作用於所有元素。它旨在為網絡引入非線性特徵,其變量總結在下圖中:

Softmax:可以視作一個作用於網絡架構末端通用邏輯函數,輸入為分數向量,輸出為概率向量。其定義如下:

物體檢測

模型的類型:

有三類主要的物體識別算法,其預測的性質是不同的。如下表的描述:

三類物體識別算法

檢測(Detection)

在對象檢測的上下文中,根據我們是僅想要定位對象還是想要在圖像中檢測更複雜的形狀,可以使用不同的方法。下面總結了兩個主要的方法:

邊界框檢測和特徵點檢測

Intersection over Union:

Intersection over Union(交並比),也稱為IoU,是一種量化預測邊界框

在實際邊界框

上的正確定位的函數。它的定義是:

備註:IoU∈[0,1]。按照慣例,如果IoU(Bp,Ba)0.5,預測邊界框Bp被認為是合理的。

Anchor boxes:

Anchor boxing是一種用於預測重疊邊界框的技術。在實際應用中,網絡可以同時預測多個box,其中每個box的預測被約束具有給定的一組幾何特性。例如,第一個預測可能是給定形狀的矩形框,而第二個預測可能是另一個形狀不同的矩形框。

Non-max suppression:

Non-max suppression技術旨在通過選擇最具代表性的對象來刪除同一對象的重疊邊界框。在刪除了概率預測低於0.6的所有框之後,在剩餘框中重複以下步驟:

對於一個給定的類,

步驟1:選擇具有最大預測概率的框。

步驟2:刪除任何與前一個框的IoU0.5的框。

YOLO - You Only Look Once,這是一種對象檢測算法,它執行以下步驟:

步驟1:將輸入圖像分割成G×G的網格。

步驟2:對於每個網格單元,運行一個CNN網絡,預測下面公式中的y:

其中

是檢測對象的概率,

是檢測到的邊界框的屬性,

是檢測到的p類的one-hot representation,k是anchor boxes的數量。

步驟3:運行 non-max suppression 算法,刪除任何可能的重複重疊邊界框。

R-CNN

Region with Convolutional Neural Networks (R-CNN) 是一種對象檢測算法,它首先對圖像進行分割以找到潛在的相關邊界框,然後運行檢測算法,在那些邊界框中找到最可能的對象。

備註:雖然原始算法計算成本高且速度慢,但新的架構能讓算法運行得更快,例如Fast R-CNN和Faster R-CNN。

面部驗證和識別

模型類型:下面總結了兩種主要類型的模型:

One Shot Learning

One Shot Learning是一種面部驗證算法,它使用有限的訓練集來學習相似函數,該函數量化兩個給定圖像的差異。應用於兩個圖像的相似度函數通常被標註為d(image 1,image 2).。

Siamese Network

Siamese Networks的目的是學習如何編碼圖像,然後量化不同的兩個圖像。對於給定的輸入圖像

,編碼輸出通常記為

Triplet loss

Triplet loss 是在圖像A (anchor), P (positive) 和N (negative)這三個圖像的嵌入表示上計算的損失函數。 anchor和positive示例屬於同一個類,negative示例屬於另一個類。通過調用

margin參數,該損失定義如下:

神經風格遷移

動機:

神經風格轉移(neural style transfer)的目標是基於給定內容C和給定風格S,生成圖像G。

激活:

在給定層l中,激活被標記為

,並且具有維度

內容成本函數(Content cost function)

內容成本函數

用於確定生成的圖像G與原始內容圖像C的不同之處。它的定義如下:

風格矩陣(Style matrix)

style matrix

是一個Gram矩陣,其中每個元素

量化了通道k和k'的相關性。它是根據激活

定義的:

風格成本函數(Style cost function )

風格成本函數

用於確定生成的圖像G與風格S的不同之處。它的定義如下:

總成本函數(Overall cost function)

總成本函數的定義是內容和風格成本函數的組合,由參數α, β加權,如下所示:

使用計算技巧的架構

生成對抗網絡(Generative Adversarial Network)

生成對抗網絡,也稱為GAN,由生成模型和判別模型組成,其中生成模型旨在生成最真實的輸出,這些輸出將被用於區分生成圖像和真實圖像。

ResNet(Residual Network)

殘差網絡架構(也稱為ResNet),使用具有大量層的residual blocks來減少訓練誤差。 residual blocks 具有以下特徵:

Inception Network

該架構使用 inception modules,目的是嘗試不同的卷積,以通過特徵的多樣化來提高其性能。具體來說,它使用1×1卷積技巧來限制計算負擔。

原文連結:

https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-convolutional-neural-networks

新智元 AI 技術 + 產業社群招募中,歡迎對 AI 技術 + 產業落地感興趣的同學,加小助手_2 入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。

相關焦點

  • 斯坦福CS230課程簡明講義,CNN、RNN包教包會[手動狗頭]
    【導讀】斯坦福CS230:Deep Learning 課程,是斯坦福每年秋季開設的深度學習課程,由Andrew Ng 以及 Kian Katanforoosh
  • 吳恩達斯坦福CS230深度學習課程補充資料放出
    可以幫助非斯坦福的同學學習課程,現在文摘菌給出課程的補充資料,吳恩達的粉絲快快收藏吧~~~此補充資料分為實踐項目和最終項目,而且所有的資料都放在GitHub中,下面文摘菌給出簡介和GitHub地址,感興趣的同學自行瀏覽和下載。
  • 資源 | 吳恩達斯坦福CS230深度學習課程補充資料放出
    可以幫助非斯坦福的同學學習課程,現在文摘菌給出課程的補充資料,吳恩達的粉絲快快收藏吧~~~此補充資料分為實踐項目和最終項目,而且所有的資料都放在GitHub中,下面文摘菌給出簡介和GitHub地址,感興趣的同學自行瀏覽和下載。
  • 最新(2019)斯坦福CS224n深度學習自然語言處理課程(視頻+筆記+2017年合集)
    向AI轉型的程式設計師都關注了這個號👇👇👇機器學習AI算法工程  公眾號:datayx史丹福大學2019年新一季的CS224n深度學習自然語言處理課程(CS224n: Natural Language Processing with Deep Learning-Stanford/Winter 2019)今年1月份已經開課,截止目前,官方已經開發了所有20節視頻。
  • CNN與RNN中文文本分類-基於TensorFlow 實現
    本文是基於TensorFlow在中文數據集上的簡化實現,使用了字符級CNN和RNN對中文文本進行分類,達到了較好的效果。本文採用了清華NLP組提供的THUCNews新聞文本分類數據集的一個子集(原始的數據集大約74萬篇文檔,訓練起來需要花較長的時間)。
  • CNN卷積特徵的可視化
    Machine Learning Yearning 中文翻譯稿螞蟻金服2018秋招-算法工程師(共四面)通過全球AI挑戰-場景分類的比賽源碼(多模型融合)斯坦福CS230官方指南:CNN、RNN及使用技巧速查(列印收藏)python+flask搭建CNN在線識別手寫中文網站中科院Kaggle
  • 資源 | 吳恩達斯坦福CS230深度學習課程全套資料放出(附下載)
    吳恩達老師對斯坦福CS230深度學習課程資源進行開放了,大家都知道吳恩達老師最出名的是他在coursera的機器學習課程,可以說讓很多剛開始接觸機器學習(ML)的小白入門該領域。最近吳恩達在斯坦福又開了一門學分課,這門課涉及到深度學習的基礎知識、神經網絡構建,以及如何完成一個成功的機器學習項目。具體將涉及卷積網絡,RNNs,LSTM,Adam,Dropout,BatchNorm,Xavier / He初始化等,還提供醫療,自動駕駛,手語閱讀,音樂創作和自然語言處理等多領域的案例研究。
  • 斯坦福經典AI課程CS 221官方筆記來了!機器學習模型、貝葉斯網絡等...
    新智元報導 來源:Stanford編輯:鵬飛【新智元導讀】史丹福大學的人工智慧課程為了方便廣大不能親臨現場聽講的同學,課程官方推出了課程筆記CheatSheet,涵蓋4大類模型。史丹福大學的人工智慧課程「CS 221」,這門鐵打的課程從2011年開始已經走過了8個年頭,流水的講師換了一批又一批,送走的畢業生一撥又一撥,至今仍然是人工智慧學習的經典課程之一。目前2019年春季課程正在如火如荼的開展中。
  • 循環神經網絡(RNN)入門帖:向量到序列,序列到序列,雙向RNN,馬爾科夫化
    作者:David 9地址:http://nooverfit.com/rnn似乎更擅長信息的保存和更新,而cnn似乎更擅長精確的特徵提取;rnn輸入輸出尺寸靈活,而cnn尺寸相對刻板。聊到循環神經網絡RNN,我們第一反應可能是:時間序列 (time sequence)。
  • 文本分類實戰--從TFIDF到深度學習CNN系列效果對比(附代碼)
    此外,還是用cnn卷積神經網絡實現了中文的文本分類,效果要優於上述算法。完整源碼(包括冠軍源碼) 獲取方式:關注微信公眾號 datayx  然後回復 文本分類 即可獲取。其實這裡也應該做參數優化的工作,比如xgboost的max_depth、n_estimate、學習率等參數等應該進行調節,因為時間太緊我這部分工作也沒做,而是使用的默認設置==4, 卷積神經網絡這裡使用YOON KIM的模型框架,代碼使用WILDML的,可以參見我之前的一篇博客,為了適用於本任務,修改一下 data_helpers.py文件中的代碼,增加load_AI100
  • 2019 斯坦福 CS224n 已完結,視頻(有字幕)放出!附 PPT、優秀項目等
    與斯坦福NLP課程上一版資源(2017年)相比,這次課程有了巨大的更新,加入了近兩年非常流行的Transformer和預訓練表徵等內容。如果你對NLP感興趣,千萬不要錯過~課程都講了啥?課程主講人是史丹福大學計算機科學和語言學教授Chris Manning和他的學生Abigail See。
  • 面試常問的深度學習(DNN、CNN、RNN)的相關問題
    加Batch Normalization(BN首先是把所有的samples的統計分布標準化,降低了batch內不同樣本的差異性,然後又允許batch內的各個samples有各自的統計分布),BN最大的優點為允許網絡使用較大的學習速率進行訓練,加快網絡的訓練速度(減少epoch次數),提升效果。
  • CS229 機器學習速查表
    項目地址:https://github.com/afshinea/stanford-cs-229-machine-learning據項目介紹,該 repository 旨在總結斯坦福 CS 229 機器學習課程的所有重要概念,包括:VIP Cheatsheets在這一部分中,該項目根據 CS 229
  • 史丹福大學CS課程清單
    2019年在史丹福大學攻讀CS學位的本科生數量比其他任何學科的兩倍還多[1]。史丹福大學的CS課程已經從幾個核心學科[2]發展出許多分支方向和交叉學科[3]。大部分史丹福大學的CS課程都有獨立的網頁,一些內容僅僅向校內的學生開放。
  • 架構模型技巧全都有,大牛LeCun推薦
    /rnn/rnn_lstm_packed_imdb-glove.ipynbGRU核的RNN:PyTorch版https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_gru_packed_imdb.ipynb多層雙向RNN:PyTorch版https
  • 斯坦福 CS183 系列中文筆記
    /apachecn/stanford-cs183-notes/blob/master/docs/a/13.md)Ch14: 創始人的潘多拉魔盒(https://github.com/apachecn/stanford-cs183-notes/blob/master/docs/a/14.md)斯坦福 CS183b YC 創業課文字版(https://github.com/apachecn
  • 2019斯坦福CS224n深度學習自然語言處理筆記(1)Word2Vec與Glove
    課程視頻、Pytorch實現代碼獲取方式:最新(2019)斯坦福CS224n深度學習自然語言處理課程(視頻+筆記+2017年合集)2019斯坦福CS224n深度學習自然語言處理筆記(1)——緒論與Word2Vec本文內容整理自2019年斯坦福CS224n深度學習自然語言處理課程,其筆記為本人聽課心得
  • 斯坦福CS224n《基於深度學習的NLP》課程更新,C.Manning主講
    新智元報導 來源:Stanford編輯:大明【新智元導讀】史丹福大學官方公布cs224n課程《基於深度學習的自然語言處理》詳細安排,主講人為史丹福大學人工智慧實驗室主任,著名計算機科學家Christopher Manning教授,1月份課程閱讀材料已公布。