7-卷積神經網絡-讀書筆記


本筆記根據PaddlePaddlePPT中第7章內容整理總結。

1. 概述

1.1 深層神經網絡問題導入

  • 神經網絡的問題
  • 圖像模式的特徵

1.2 卷積神經網絡概念引出
1.2.1 卷積神經網絡的誕生

  • 卷積:平移不變模式
  • 池化:下采樣被檢測物體不變模式

1.2.2 CNN基礎結構

  • CNN應用圖像模式的一般框架:卷積層+激活函數+池化層+全連接層
  • CONV+RELU+CONV+RELU+POOL出現多次:用作提取特徵
  • FC在最後出現一次或多次:用作分類

2. 自己動手搭CNN

2.1 CNN網絡結構

  • CNN基本結構:輸入層、卷積層、激活層、池化層、全連接層

2.1.1 輸入層:
2.1.2 卷積層:

  • 卷積的直覺:卷積計算=特徵提取
  • 灰度圖像上使用單卷積核:單個特徵的抽取
  • 術語:feature map(特徵映射)、activation map(激活映射)、convolved feature(卷積特徵)、receptive field(感受野)
  • RGB圖像上使用單卷積核:單個特徵的抽取
  • 卷積核的深度=上一層數據輸入的深度(channel數)
  • RGB圖像上使用多卷積核:多個不同特徵的抽取
  • 一個卷積核提取一種局部模式,多個卷積核提取多種不同局部模式
  • 卷積隱層的堆疊
  • 卷積核的個數=下一層數據的深度=下一卷積層卷積核的深度
  • 卷積核的個數=提取特徵的數量,超參數,可以調節
  • 隱層的卷積:特徵組合
  • 多層卷積:一層卷積得到的特徵只是局部的,層數越高,學到的特徵越全局化
  • 需要注意的參數:stride
  • 一次滑動的步長,有height上的和width上的stride
  • stride>1時,相當於在stride=1的卷積結果中做了下采樣
  • 需要注意的參數:padding
  • padding=valid:不進行補零操作,s=1時,每卷積一次,寬和高數據維度下降F-1,F爲卷積核大小
  • padding=same:在輸入的周圍進行0或複製補充;卷積前後寬高不變

小結

  • 輸入:W1H1D1W1*H1*D1
  • 超參數:①the number of filters:K②the dimension of filters:F③stride步長:S④padding:P
  • 輸出:W2×H2×D2W=W1+2PFS+1,H2=H1+2PFS+1,D2=KW2×H2×D2 W=\frac{W1+2P-F}{S} +1, H2={H1+2P-F}{S} +1, D2=K
  • 參數:(F×F×D1+1)×K(F×F×D1+1) ×K

2.1.3 激活層

  • 激活函數:sigmoid(x)、tanh(x)、relu(x)

2.1.4 池化層

  • 在寬高維度進行下采樣,不改變深度的維度
  • 能成倍減少計算量
    -相比stride,池化層可以選擇進行下采樣的方式
  • 最大池化(max-pooling):對鄰域內特徵點取最大作爲最後的特徵值
  • 平均池化(mean-pooling):對鄰域內特徵點取平均作爲最後的特徵值

小結

  • 輸入:W1×H1×D1W1×H1×D1
  • 超參數:the dimension of filters:F
  • 輸出:W2×H2×D2,W2=W1FS+1,H2=H1FS+1,D2=D1W2×H2×D2 ,W2=\frac{W1-F}{S}+1, H2=\frac{H1-F}{S} +1, D2=D1
  • 參數:max-pooling和mean-pooling沒參數

2.1.5 全連接層

  • 將多層的特徵映射伸直成一個一維的向量
  • 採用全連接的方式將向量連接向輸出層
  • 輸出層就是對應每個類別的得分

2.1.6 網絡搭建小結

  • 卷積神經網絡的一般結構:
  • CONV+ReLU和POOL的組合多次出現:提取特徵
  • 多個FC或特殊的CNN結構作爲輸出層:作分類器/檢測器/分割器

2.2 CNN網絡訓練
2.2.1 損失與誤差的反向傳播

  • 多分類(打標)損失導入:
  • 損失函數
  • 交叉熵損失&SoftMax概率歸一化:H(p,q)=p(x)logq(x)H(p,q)=-\sum_{}^{}p(x)logq(x),用來衡量兩個概率分佈間的差異性
    a.所以在網絡中先將得分結果歸一化爲概率分佈\toSoftMax:Si=eijejS_i=\frac{e^i}{\sum_j^{}e^j}
    b.由輸出和真實標籤間的概率分佈計算交叉熵,度量二者的差異情況
  • 梯度下降
    a.公式:θjθjαθjJ(θ)θ_j≔θ_j-α\frac{∂}{∂θ_j} J(θ)
    b.梯度下降使用樣本方式的變種:批量梯度下降(Batch gradient descent)、隨機梯度下降(Stochastic gradient descent)、小批量梯度下降(Mini-batch gradient descent)
    c.梯度下降方式的優化:Momentum法、Nesterov加速梯度法、Adagrad法、Adadelta法、RMSprop法、Adam法
  • 反向傳播
    a.求解損失對所有參數的梯度
    b.兩個過程:Forward pass(逐層計算,保存參數,便於反向計算時用)、Backward pass(由最後的損失倒序逐層計算每一參數的梯度,便於更新)
    c.基本原理:鏈式法則
  • 神經元中梯度的計算

2.2.2 模型評估與正則化

  • 模型的泛化
    a.學習算法的基本假設:用來訓練模型的數據(測試集)和真實數據(測試集)間是獨立同分布的
    b.泛化能力:機器學習算法對未知樣本的適應能力
    c.如何提高學習算法效果:降低訓練誤差(欠擬合)、縮小訓練誤差和測試誤差的差距(過擬合)
    d.深度神經網絡的泛化能力:高模型容量、正則化
  • 模型的正則化
    a.Early-stopping(早停法)
    b.權重正則化:L1正則:J=J0+λw1J=J_0+λ‖w‖_1、L2正則weight decay:J=J0+λ2w2J=J_0+\frac{λ}{2} ‖w‖_2
    c.數據增強:dropout

2.3 第一個CNN

  • MNIST
  • CIFAR
  • ImageNet
  • 如何用PaddleCNN

3. 經典CNN結構探索

3.1 AlexNet
3.2 VGG
3.3 GoogLeNet/Inception
3.4 ResNet

4. 課程實踐

缺公式,公式後面再補

發佈了13 篇原創文章 · 獲贊 1 · 訪問量 634
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章