斯坦福CS230官方指南:CNN、RNN及使用技巧速查
新智元報道
來源: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上的過濾器大小為F
j
,層i上的Stride值為S
i
,且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:刪除任何與前一個框的IoU?0.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 技術 + 產業落地感興趣的同學,加小助手微信號:aiera2015_2入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。
※特朗普「美國優先」失靈:AI和量子計算雙雙落後!
※是否拘留,演算法說了算!加州全美首個廢除保釋金制度,用演算法評估取代
TAG:新智元 |