1.1 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)

卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)
- 卷積神經(jīng)網(wǎng)絡(luò)
- 全連接層
- 卷積層
- 池化層

一、卷積神經(jīng)網(wǎng)絡(luò)

CNN歷史
雛形:LeNet:LeCun1998年提出的網(wǎng)絡(luò)結(jié)構(gòu)
只要包含了卷積層的網(wǎng)絡(luò)都可以稱為卷積神經(jīng)網(wǎng)絡(luò)

- 1986年:Rumelhart和Hinton等人提出了反向傳播(Back Propagation, BP)
- 1998年 :LeCun等利用BP算法訓(xùn)練LeNet5網(wǎng)絡(luò),標(biāo)志著CNN的真正面試(硬件跟不上)
- 2006年:Hinton在他們的Science Paper中首次提出了Deep Learning的概念
- 2012年:Hinton的學(xué)生Alex Krizhevsky在寢室用GPU死磕了一個Deep Learning模型,一舉摘下了視覺領(lǐng)域競賽ILSVRC 2012的桂冠,效果大幅度超過傳統(tǒng)的方法,傳統(tǒng)的70%多提升到80%多

卷積神經(jīng)網(wǎng)絡(luò)無處不在

檢測、分割

無人駕駛

有GPU資源盡量使用GPU,因為測試中GPU和CPU的速度相差很大,GPU提升效率在20倍以上
圖像描述

圖像風(fēng)格遷移

全連接層
-1是偏置

BP(back propagation)算法包括信號的前向傳播和誤差的反向傳播兩個過程。即計算誤差輸出時按從輸入到輸出的方向進行,而調(diào)整權(quán)值和閾值則從輸出到輸入的方向進行
3層BP神經(jīng)網(wǎng)絡(luò)可以實現(xiàn)多維單位立方體R^m到R^n的映射,即能夠逼近任何有理函數(shù)。

實例:利用BP神經(jīng)網(wǎng)絡(luò)做車牌數(shù)字識別

讀入一個RGB圖像,可以看到每一個像素里包含三個值,即RGB分量,首先將它灰度化,得到中間圖,每個像素值只有一個分量,在進行二值化處理就得到一個黑白圖像

5行3列滑動窗口,進行滑動,每滑動一個窗口就計算白色像素占整個像素的比例
后面越界可以補0或者提前判斷越界情況更改窗口大小

得到一個5*5的矩陣,將這個矩陣按行進行展開,拼接成一個行向量,把這個行向量當(dāng)成神經(jīng)網(wǎng)絡(luò)的輸入層

輸出層,one-hot編碼是常用對標(biāo)簽編碼的一種方式
不會重復(fù),下面是期望輸出編碼

實際訓(xùn)練過程
輸入層25個節(jié)點,輸出節(jié)點10個,中間隱層可按情況設(shè)置

三、卷積層

CNN中獨特的網(wǎng)絡(luò)結(jié)構(gòu)
其實是一個滑動窗口在特征圖上進行滑動并計算
計算過程:卷積核的值和特征圖上的值進行相乘然后相加得到一個值,每滑動一個窗口計算得到一個值,最后得到一個卷積特征圖
卷積的目的:進行圖像特征提取
卷積特性:
- 擁有局部感知機制
- 權(quán)值共享

普通神經(jīng)網(wǎng)絡(luò)VS 卷積神經(jīng)網(wǎng)絡(luò)

多維卷積操作
RGB
卷積核維度要和輸入特征矩陣維度保持一致
卷積后進行求和操作得到一個卷積層,不同卷積核進行卷積得到不同輸出特征矩陣,然后將不同卷積核得到的輸出特征矩陣進行拼接,得到整個輸出的特征矩陣

總結(jié)
- 卷積核的channel與輸入特征層的channel相同
- 輸出的特征矩陣channel與卷積核個數(shù)相同

思考
- 加上偏移量biass該如何計算
- 最后將卷積核偏置加在輸出特征矩陣上就可以,每個值都加
2.加上激活函數(shù)后該如何計算
引入非線性因素,使其具備解決非線性問題的能力

3.如果卷積過程中出現(xiàn)越界的情況怎么辦
使用padding方式在周圍補上0

四、池化層

例如:MaxPooling下采樣層(取最大值作為特征輸入值)
目的:對特征圖進行稀疏處理,減少數(shù)據(jù)運算量

平均下采樣層(AveragePooling)
相加取平均值

池化層特點:
- 沒有訓(xùn)練參數(shù)
- 只改變特征矩陣的w和h,不改變channel
- 一般poolsize和stride相同