4.11 一维到三维推广-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 4.10 風格代價函數 | 回到目錄 | 4.12 總結 |
一維到三維推廣 (1D and 3D Generalizations of Models)
你已經學習了許多關于卷積神經網絡(ConvNets)的知識,從卷積神經網絡框架,到如何使用它進行圖像識別、對象檢測、人臉識別與神經網絡轉換。即使我們大部分討論的圖像數據,某種意義上而言都是2D數據,考慮到圖像如此普遍,許多你所掌握的思想不僅局限于2D圖像,甚至可以延伸至1D,乃至3D數據。
讓我們回頭看看在第一周課程中你所學習關于2D卷積,你可能會輸入一個14×14的圖像,并使用一個5×5的過濾器進行卷積,接下來你看到了14×14圖像是如何與5×5的過濾器進行卷積的,通過這個操作你會得到10×10的輸出。
如果你使用了多通道,比如14×14×3,那么相匹配的過濾器可能是5×5×3,如果你使用了多重過濾,比如16,最終你得到的是10×10×16。
事實證明早期想法也同樣可以用于1維數據,舉個例子,左邊是一個EKG信號,或者說是心電圖,當你在你的胸部放置一個電極,電極透過胸部測量心跳帶來的微弱電流,正因為心臟跳動,產生的微弱電波能被一組電極測量,這就是人心跳產生的EKG,每一個峰值都對應著一次心跳。
如果你想使用EKG信號,比如醫學診斷,那么你將處理1維數據,因為EKG數據是由時間序列對應的每個瞬間的電壓組成,這次不是一個14×14的尺寸輸入,你可能只有一個14尺寸輸入,在這種情況下你可能需要使用一個1維過濾進行卷積,你只需要一個1×5的過濾器,而不是一個5×5的。
二維數據的卷積是將同一個5×5特征檢測器應用于圖像中不同的位置(編號1所示),你最后會得到10×10的輸出結果。1維過濾器可以取代你的5維過濾器(編號2所示),可在不同的位置中應用類似的方法(編號3,4,5所示)。
當你對這個1維信號使用卷積,你將發現一個14維的數據與5維數據進行卷積,并產生一個10維輸出。
再一次如果你使用多通道,在這種場景下可能會獲得一個14×1的通道。如果你使用一個EKG,就是5×1的,如果你有16個過濾器,可能你最后會獲得一個10×16的數據,這可能會是你卷積網絡中的某一層。
對于卷積網絡的下一層,如果輸入一個10×16數據,你也可以使用一個5維過濾器進行卷積,這需要16個通道進行匹配,如果你有32個過濾器,另一層的輸出結果就是6×32,如果你使用了32個過濾器的話。
對于2D數據而言,當你處理10×10×16的數據時也是類似的,你可以使用5×5×16進行卷積,其中兩個通道數16要相匹配,你將得到一個6×6的輸出,如果你用的是32過濾器,輸出結果就是6×6×32,這也是32的來源。
所有這些方法也可以應用于1維數據,你可以在不同的位置使用相同的特征檢測器,比如說,為了區分EKG信號中的心跳的差異,你可以在不同的時間軸位置使用同樣的特征來檢測心跳。
所以卷積網絡同樣可以被用于1D數據,對于許多1維數據應用,你實際上會使用遞歸神經網絡進行處理,這個網絡你會在下一個課程中學到,但是有些人依舊愿意嘗試使用卷積網絡解決這些問題。
下一門課將討論序列模型,包括遞歸神經網絡、LCM與其他類似模型。我們將探討使用1D卷積網絡的優缺點,對比于其它專門為序列數據而精心設計的模型。
這也是2D向1D的進化,對于3D數據來說如何呢?什么是3D數據?與1D數列或數字矩陣不同,你現在有了一個3D塊,一個3D輸入數據。以你做CT掃描為例,這是一種使用X光照射,然后輸出身體的3D模型,CT掃描實現的是它可以獲取你身體不同片段(圖片信息)。
當你進行CT掃描時,與我現在做的事情一樣,你可以看到人體軀干的不同切片(整理者注:圖中所示為人體軀干中不同層的切片,附CT掃描示意圖,圖片源于互聯網),本質上這個數據是3維的。
一種對這份數據的理解方式是,假設你的數據現在具備一定長度、寬度與高度,其中每一個切片都與軀干的切片對應。
如果你想要在3D掃描或CT掃描中應用卷積網絡進行特征識別,你也可以從第一張幻燈片(Convolutions in 2D and 1D)里得到想法,并將其應用到3D卷積中。為了簡單起見,如果你有一個3D對象,比如說是14×14×14,這也是輸入CT掃描的寬度與深度(后兩個14)。再次提醒,正如圖像不是必須以矩形呈現,3D對象也不是一定是一個完美立方體,所以長和寬可以不一樣,同樣CT掃描結果的長寬高也可以是不一致的。為了簡化討論,我僅使用14×14×14為例。
如果你現在使用5×5×5過濾器進行卷積,你的過濾器現在也是3D的,這將會給你一個10×10×10的結果輸出,技術上來說你也可以再×1(編號1所示),如果這有一個1的通道。這僅僅是一個3D模塊,但是你的數據可以有不同數目的通道,那種情況下也是乘1(編號2所示),因為通道的數目必須與過濾器匹配。如果你使用16過濾器處理5×5×5×1,接下來的輸出將是10×10×10×16,這將成為你3D數據卷積網絡上的一層。
如果下一層卷積使用5×5×5×16維度的過濾器再次卷積,通道數目也與往常一樣匹配,如果你有32個過濾器,操作也與之前相同,最終你得到一個6×6×6×32的輸出。
某種程度上3D數據也可以使用3D卷積網絡學習,這些過濾器實現的功能正是通過你的3D數據進行特征檢測。CT醫療掃描是3D數據的一個實例,另一個數據處理的例子是你可以將電影中隨時間變化的不同視頻切片看作是3D數據,你可以將這個技術用于檢測動作及人物行為。
總而言之這就是1D、2D及3D數據處理,圖像數據無處不在,以至于大多數卷積網絡都是基于圖像上的2D數據,但我希望其他模型同樣會對你有幫助。
這是本周最后一次視頻,也是最后一次關于卷積神經網絡的課程,你已經學習了許多關于卷積網絡的知識,我希望你能夠在未來工作中發現許多思想對你有所裨益,祝賀你完成了這些視頻學習,我希望你能喜歡這周的課后練習,接下來關于順序模型的課程我們不見不散。
參考文獻:
-
Florian Schroff, Dmitry Kalenichenko, James Philbin (2015). FaceNet: A Unified Embedding for Face Recognition and Clustering
-
Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato, Lior Wolf (2014). DeepFace: Closing the gap to human-level performance in face verification
-
The pretrained model we use is inspired by Victor Sy Wang’s implementation and was loaded using his code: https://github.com/iwantooxxoox/Keras-OpenFace
. -
Our implementation also took a lot of inspiration from the official FaceNet github repository: https://github.com/davidsandberg/facenet
-
Leon A. Gatys, Alexander S. Ecker, Matthias Bethge, (2015). A Neural Algorithm of Artistic Style (https://arxiv.org/abs/1508.06576
) -
Harish Narayanan, Convolutional neural networks for artistic style transfer. https://harishnarayanan.org/writing/artistic-style-transfer/
-
Log0, TensorFlow Implementation of “A Neural Algorithm of Artistic Style”. http://www.chioka.in/tensorflow-implementation-neural-algorithm-of-artistic-style
-
Karen Simonyan and Andrew Zisserman (2015). Very deep convolutional networks for large-scale image recognition (https://arxiv.org/pdf/1409.1556.pdf
) -
MatConvNet. http://www.vlfeat.org/matconvnet/pretrained/
課程板書
| 4.10 風格代價函數 | 回到目錄 | 4.12 總結 |
總結
以上是生活随笔為你收集整理的4.11 一维到三维推广-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.10 风格代价函数-深度学习第四课《
- 下一篇: 4.12 总结-深度学习第四课《卷积神经