卷積神經網絡

一 卷積神經網絡層級結構
保持了層級網絡結構
不同層次有不同形式(運算)與功能

主要是以下層次:
數據輸入層/input layer
三種常見的數據處理方式

  1. 去均值:把輸入數據各個維度都中心化到0
  2. 歸一化:幅度歸一化到同樣的範圍
  3. PCA/白化:用PCA降維,白化是對數據每個特徵軸上的幅度歸一化

卷積計算層/CONV layer
局部關聯:每個神經元看作一個filter
窗口(receptive filed)滑動,filter對局部數據計算

  1. 涉及概念: 深度/depth ,神經元的個數有關
  2. 步長/stride :窗口每次滑動多少個格子
  3. 填充值/zero-padding
    參數共享機制:假設每個神經元連接數據窗的權重是固定的
    固定每個神經元連接權重,可以看作模板:每個神經元只關注一個特性
    需要估算的權重個數減少
    一組固定的權重和不同窗口內數據做內積:卷積。
    每個窗口數據會和神經元進行計算得到一個值,
    激勵層 / Activation layer
    激活函數
    在這裏插入圖片描述
    1)CNN慎用sigmoid!慎用sigmoid!
    2)首先試RELU,因爲快,但要小心點
    3)如果2)失敗,請用Leaky RELU 或者Maxout
    4)某些情況下,tanh倒是有不錯的效果,但是很少

池化層/Pooling layer

  • 又叫下采樣層

  • 夾在連續的卷積層中間

  • 壓縮數據和參數的量,減小過擬合

  • Max Pooling:保持最顯著特徵

  • average pooling

全連接層/FC layer

  1. 兩層之間所有神經元都有權重連接
  2. 通常全連接層在卷積神經網絡尾部
    典型的CNN結構爲:1)Input; 2)[[CONV -> RELU]*N -> POOL ?]*M; 3)[FC ->RELU]*K ;
    4)FC

Batch Normalization層(B規範化處理,可能有)

二 卷積神經網絡訓練算法

  • 同一般機器學習算法,先定義Loss function,衡量和實際結果之間的差距
  • 找到最小化損失函數的W和b,CNN中用的算法是SGD
  • SGD需要計算W和b的偏導
  • BP算法就是計算偏導用的
  • BP算法的核心是求導鏈式法則

三 卷積神經網絡優缺點

  • 優點:共享卷積核,優化計算量 ;無需手動選擇特徵,訓練好權重,即得特徵;深層次的網絡抽取圖象信息豐富,表達效果好
  • 缺點:需要調參,需要大樣本量,GPU等硬件依賴;物理含義不明確

四 典型CNN
LeNet,這是最早用於數字識別的CNN
Alexnet,比LeNet更深,用多層小卷積層疊加替換單大卷積層
ZF Net,
GoogLeNet
VGGNet:在很多圖象轉化學習問題上效果好
ResNet:結構修正(殘差學習)以適應深層次CNN訓練

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章