標籤:note 過程 log 概述 這一 tor group 類型 不能
卷積神經網路(CNN)學習筆記1:基礎入門Posted on 2016-03-01 | In Machine Learning | 9 Comments | 14935 Views概述
卷積神經網路(Convolutional Neural Network, CNN)是深度學習技術中極具代表的網路結構之一,在影像處理領域取得了很大的成功,在國際標準的ImageNet資料集上,許多成功的模型都是基於CNN的。CNN相較於傳統的影像處理演算法的優點之一在於,避免了對映像複雜的前期預先處理過程(提取人工特徵等),可以直接輸入原始映像。
影像處理中,往往會將映像看成是一個或多個的二維向量,如之前博文中提到的MNIST手寫體圖片就可以看做是一個28 × 28的二維向量(黑白圖片,只有一個色彩通道;如果是RGB表示的彩色圖片則有三個色彩通道,可表示為三張二維向量)。傳統的神經網路都是採用全串連的方式,即輸入層到隱藏層的神經元都是全部串連的,這樣做將導致參數量巨大,使得網路訓練耗時甚至難以訓練,而CNN則通過局部串連、權值共用等方法避免這一困難,有趣的是,這些方法都是受到現代生物神經網路相關研究的啟發(感興趣可閱讀以下部分)。
下面重點介紹下CNN中的局部串連(Sparse Connectivity)和權值共用(Shared Weights)方法,理解它們很重要。
局部串連與權值共用
是一個很經典的圖示,左邊是全串連,右邊是局部串連。
對於一個1000 × 1000的輸入映像而言,如果下一個隱藏層的神經元數目為10^6個,採用全串連則有1000 × 1000 × 10^6 = 10^12個權值參數,如此數目巨大的參數幾乎難以訓練;而採用局部串連,隱藏層的每個神經元僅與映像中10 × 10的局部映像相串連,那麼此時的權值參數數量為10 × 10 × 10^6 = 10^8,將直接減少4個數量級。
儘管減少了幾個數量級,但參數數量依然較多。能不能再進一步減少呢?能!方法就是權值共用。具體做法是,在局部串連中隱藏層的每一個神經元串連的是一個10 × 10的局部映像,因此有10 × 10個權值參數,將這10 × 10個權值參數共用給剩下的神經元,也就是說隱藏層中10^6個神經元的權值參數相同,那麼此時不管隱藏層神經元的數目是多少,需要訓練的參數就是這 10 × 10個權值參數(也就是卷積核(也稱濾波器)的大小),如。
這大概就是CNN的一個神奇之處,儘管只有這麼少的參數,依舊有出色的效能。但是,這樣僅提取了映像的一種特徵,如果要多提取出一些特徵,可以增加多個卷積核,不同的卷積核能夠得到映像的不同映射下的特徵,稱之為Feature Map。如果有100個卷積核,最終的權值參數也僅為100 × 100 = 10^4個而已。另外,偏置參數也是共用的,同一種濾波器共用一個。
卷積神經網路的核心思想是:局部感受野(local field),權值共用以及時間或空間亞採樣這三種思想結合起來,獲得了某種程度的位移、尺度、形變不變性(?不夠理解透徹?)。
網路結構
是一個經典的CNN結構,稱為LeNet-5網路。
可以看出,CNN中主要有兩種類型的網路層,分別是卷積層和池化/採樣層(Pooling)。卷積層的作用是提取映像的各種特徵;池化層的作用是對原始特徵訊號進行抽象,從而大幅度減少訓練參數,另外還可以減輕模型過擬合的程度。
卷積層
卷積層是卷積核在上一級輸入層上通過逐一滑動視窗計算而得,卷積核中的每一個參數都相當於傳統神經網路中的權值參數,與對應的局部像素相串連,將卷積核的各個參數與對應的局部像素值相乘之和,(通常還要再加上一個偏置參數),得到卷積層上的結果。如所示。
下面的動圖能夠更好地解釋卷積過程:
池化/採樣層
通過卷積層獲得了映像的特徵之後,理論上我們可以直接使用這些特徵訓練分類器(如softmax),但是這樣做將面臨巨大的計算量的挑戰,而且容易產生過擬合的現象。為了進一步降低網路訓練參數及模型的過擬合程度,我們對卷積層進行池化/採樣(Pooling)處理。池化/採樣的方式通常有以下兩種:
- Max-Pooling: 選擇Pooling視窗中的最大值作為採樣值;
- Mean-Pooling: 將Pooling視窗中的所有值相加取平均,以平均值作為採樣值;
如所示。
LeNet-5網路詳解
以上較詳細地介紹了CNN的網路結構和基本原理,下面介紹一個經典的CNN模型:LeNet-5網路。
LeNet-5網路在MNIST資料集上的結果
本文結束,感謝欣賞。
歡迎轉載,請註明本文的連結地址:
http://www.jeyzhang.com/cnn-learning-notes-1.html
參考資料
Deep Learning(深度學習)學習筆記整理系列之(七)
部分圖片出自北京大學資訊科學技術學院李戈教授的《深度學習技術與應用》課件
卷積神經網路(CNN)學習筆記1:基礎入門