近些年人工智能技術(shù)發(fā)展迅猛,深度學(xué)習(xí)技術(shù)也隨著計(jì)算能力的快速得到發(fā)展。同時(shí),目標(biāo)檢測是機(jī)器視覺以及人工智能領(lǐng)域的一個(gè)基本問題,其主要目標(biāo)是精確定位出圖像中各種目標(biāo)的類別和位置邊框信息。目標(biāo)檢測方法在安全監(jiān)控、智慧交通以及圖像檢索等各領(lǐng)域都有廣泛的運(yùn)用。對(duì)于目標(biāo)檢測的研究,不僅本身有巨大的應(yīng)用需求,還為相關(guān)領(lǐng)域的其他機(jī)器視覺任務(wù)提供了理論基礎(chǔ)和研究思路,比如:目標(biāo)追蹤,人臉檢測,行人檢測等技術(shù)。下面對(duì)深度學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)的概念進(jìn)行了介紹,具體包括全連接神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò),并對(duì)前向和反向傳播算法進(jìn)行了公式推導(dǎo)。 1 全連接神經(jīng)網(wǎng)絡(luò) 監(jiān)督學(xué)習(xí)問題就是使用帶標(biāo)簽的訓(xùn)練樣本,以參數(shù) w 和 b 來擬合出數(shù)據(jù)。最簡單的神經(jīng)網(wǎng)絡(luò):輸入數(shù)據(jù) x 經(jīng)過神經(jīng)網(wǎng)絡(luò)處理輸出 h(x)。若神經(jīng)元有三個(gè)輸入值(??)1,(??)2,(??)3以及一個(gè)輸入的截距項(xiàng)+1(一般寫作 b), 其輸出為:???,??(??) = ??(??T??) = ??(??=??(i)??(i)+ ??)(i=1,2,3)。在神經(jīng)網(wǎng)絡(luò)中,可以通過激活函數(shù) Sigmoid,Relu,Tanh 函數(shù)等來獲取非線性。 神經(jīng)網(wǎng)絡(luò)就是通過將眾多簡單的神經(jīng)元連接在一起得到的,一個(gè)神經(jīng)元的輸出可作為另一神經(jīng)元的輸入。多層神經(jīng)網(wǎng)絡(luò)模型常常如圖 1 所示。對(duì)于神經(jīng)網(wǎng)絡(luò)模型,其最終的目標(biāo)都是要得到最后優(yōu)化后的參數(shù)模型用于分類、檢測以及分割等問題。所以神經(jīng)網(wǎng)絡(luò)模型最重要的一部分就是對(duì)自身模型的不斷優(yōu)化,而實(shí)現(xiàn)這一目標(biāo)最重要的就是前向與反向傳播算法。 (1) 前向傳播算法  上述公式即為前向傳播步驟。其中??(1)= ??為輸入層的激活值,第?? + 1層的激活值??(??+1)的計(jì)算方式如公式如下所示: 
(2) 反向傳播算法 反向傳播算法優(yōu)化的目標(biāo)是最小化把 W 和 b 作為參數(shù)的函數(shù) J(W,b)。為訓(xùn)練神經(jīng)網(wǎng)絡(luò)將會(huì)初始化每一個(gè)??i??(??)參數(shù),以及每一個(gè)??i(??)參數(shù),它們被初始化為隨機(jī)值,這些隨機(jī)值接近 0 且盡可能小,這樣做的主要目的就是使對(duì)稱變得失效。 為了對(duì)(??, ??)進(jìn)行前向傳播運(yùn)算,需要先算出神經(jīng)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的激活值,然后計(jì)算出第??層的每一個(gè)節(jié)點(diǎn) i 的“殘差”??(??),這個(gè)殘差值代表這個(gè)節(jié)點(diǎn)對(duì)于整個(gè)輸出值的殘差有多大的影響力,而最后的輸出節(jié)點(diǎn),可以直接得到神經(jīng)網(wǎng)絡(luò)得到的激活值與實(shí)際之間比較有多大的差距,可以將這個(gè)差距定義為??(??),同時(shí),第??層對(duì)應(yīng)輸出層,對(duì)于中間層??,殘差??(??)可以通過第?? + 1層殘差的加權(quán)平均值來計(jì)算,這些節(jié)點(diǎn)??(??)以作為輸入。具體步驟為: (a)進(jìn)行前向傳播算法計(jì)算,得到??2, ??3, … ??????的激活值。 (b)第??層的每個(gè)輸出結(jié)點(diǎn) i 的殘差,可以按照如下公式來計(jì)算: 
(c)?? = ??? 1, ????? 2, ????? 3, … ,2時(shí),可以通過如下公式來計(jì)算每層第 i 個(gè)節(jié)點(diǎn)的殘差: 
將上述公式中??? 1與????的關(guān)系改為為??與?? + 1的關(guān)系,可以推導(dǎo)得到: 
(d)計(jì)算最終需要的偏導(dǎo)數(shù),如公式如下所示: 
可以用矩陣-向量表示法表達(dá)以上公式: 

2 卷積神經(jīng)網(wǎng)絡(luò) 卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)特征提取網(wǎng)絡(luò),它通常有多個(gè)卷積層以及有池化層,在最后通常還會(huì)接有全連接層。在卷積神經(jīng)網(wǎng)絡(luò)中,所有的權(quán)重都是共享的并且池化操作具有平移不變特征。同時(shí),卷積神經(jīng)網(wǎng)絡(luò)相對(duì)于多層神經(jīng)網(wǎng)絡(luò)而言參數(shù)量更少,訓(xùn)練起來非常容易,卷積神經(jīng)網(wǎng)絡(luò)的常見架構(gòu)如下圖所示。  如圖2,卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)通常包括有輸入層、多級(jí)卷積層、激活層以及輸出部分。但在通常的情況下,我們可以根據(jù)不同的任務(wù)需求、不同的硬件條件等來設(shè)計(jì)出不同的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)。在卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中通常加入全連接層的目的在于對(duì)給定對(duì)象進(jìn)行分類預(yù)測,在實(shí)際中,我們可以使用1×1的卷積來代替全連接層來達(dá)到減少參數(shù)量的目的。
|