MatConvnet工具箱文档翻译理解(3)
第2章 神經網絡計算
本章簡要介紹了神經網絡的計算方面,尤其是卷積神經網絡,強調了理解和使用MatConvNet所需的概念。
2.1概述
神經網絡(NN)是將數(shù)據x(例如圖像)映射到輸出向量y(例如圖像標簽)的函數(shù)。函數(shù)g = fL … f 1是較簡單函數(shù)序列fl的組合,稱為計算塊或層。令x1; x2; :::; xL是網絡中每個層的輸出,并且令x0 = x表示網絡輸入。通過應用具有參數(shù)wl的函數(shù)fl,從先前輸出xl-1計算每個中間輸出xl = fl(xl-1; wl)。
在卷積神經網絡(CNN)中,數(shù)據具有空間結構,是3D陣列或張量,其中第一兩維H1(高度)和W1(寬度)被解釋為空間維度。第三維度C1被解釋為特征通道的數(shù)量。因此,張量x1表示C1維特征向量的H1 * W1字段,每個空間位置一個。張量中的第四維N1跨越多個數(shù)據樣本,這些數(shù)據樣本被打包在單個批次中用于效率并行處理。一個批次中的數(shù)據樣本N1的數(shù)量被稱為批量基數(shù)。網絡被稱為卷積,因為函數(shù)f1是本地和轉換不變操作符(即非線性濾波器),如線性卷積。
還可以設想具有多于兩個空間維度的CNN,其中附加尺寸可以表示體積或時間。 事實上,幾乎沒有先驗對神經網絡中數(shù)據格式的限制。 許多有用的NN包含卷積層與處理其他數(shù)據類型(例如文本字符串)的層的混合,或者執(zhí)行不嚴格符合CNN假設的其他操作。
MatConvNet包括各種圖層,包含在matlab /目錄中,例如vl_nnconv(卷積),vl_nnconvt(卷積轉置或去卷積)vl_nnpool(最大和平均池),vl_nnrelu(ReLU激活),vl_nnsigmoid(Sigmoid激活),vl_nnsoftmax(softmax運算符),vl_nnloss(分類正常丟失),vl_nnbnorm(分批正規(guī)化),vl_nnspnorm(空間規(guī)范化),vl_nnnormalize(局部響應規(guī)范化LRN)或vl_nnpdist(p距離)。?
有足夠多的層來實現(xiàn)許多有趣的最先進的網絡開箱即用,甚至從其他工具箱,如caffe導入。?
NNs通常用作分類器或回歸。在fig. 1.1的示例中,輸出^ y = f(x)是概率的向量,一個用于1000個可能的圖像標簽(狗,貓,三葉蟲,…)中的每一個。如果y是圖像x的真實標簽,我們可以通過損失函數(shù)來測量CNN性能,該損失函數(shù)對分類錯誤賦予懲罰。然后可以調整或學習CNN參數(shù)以最小化在標記的示例圖像的大數(shù)據集上的平均損失。
學習通常使用隨機梯度下降(SGD)的變體。 雖然這是一個有效的方法(對于這種類型的問題),但網絡可能包含幾百萬個參數(shù),需要在數(shù)百萬的圖像上進行訓練; 因此,效率是MATLAB設計中的一個重要部分,如第1.4節(jié)中進一步討論的。 SGD還需要計算CNN導數(shù),如下一節(jié)所述。
2.2網絡結構
在最簡單的情況下,NN中的層按順序排列; 然而,更復雜的互連也是可能的,并且事實上在許多情況下非常有用。 本節(jié)討論這種配置,并引入一個圖形符號來可視化它們。
2.2.1序列
首先考慮網絡中的計算塊f。 這可以表示示意性地作為接收數(shù)據x和參數(shù)w作為輸入并且產生數(shù)據y作為輸出的框:?
?
如上所述,在最簡單的情況下,塊被鏈接在序列f1-> f2-> … fL中,產生以下結構:?
給定輸入x0,評估網絡是評估所有塊的簡單問題。從左到右,其定義復合函數(shù)xL = f(x0; w1;:::; wL)。
2.2 網絡結構
2.2.2定向非循環(huán)圖
一個不限于一個接一個地鏈接層。 事實上,評估NN唯一的要求是,當必須評估層時,在其之前已經評估了其所有輸入。 當層之間的互連形成有向無環(huán)圖或簡稱DAG時,這是可能的。?
為了可視化DAG,引入用于網絡變量的附加節(jié)點是有用的,fig.2.1的示例中那樣。這里框表示函數(shù),圓圈表示變量(參數(shù)被視為特殊類型的變量)。 在該示例中,x0和x4是CNN的輸入,x6和x7是輸出。?
函數(shù)可以采取任何數(shù)量的輸入(例如f3和f5取兩個)并且具有任何數(shù)量的輸出(例如f4具有兩個)。 這個圖的幾個值得注意的屬性:?
1圖表是二分的,在某種意義上,箭頭總是從框到圓和?
從圓圈到框。?
2函數(shù)可以有任意數(shù)量的輸入或輸出; 變量和參數(shù)可以具有任意數(shù)量的輸出(具有更多一個輸出的參數(shù)被共享在不同層之間); 變量最多只有一個輸入和參數(shù)無。?
3沒有輸入箭頭和參數(shù)的變量不由網絡計算,但必須在評估之前設置,即它們是輸入。 任何變量(或甚至參數(shù))可以用作輸出,但是這些變量通常是沒有輸出的變量。?
4由于圖是非循環(huán)的,因此可以通過對函數(shù)和函數(shù)進行排序來評估CNN一個接一個地計算它們(在該示例中,評估函數(shù)階f1; f2; f3; f4; f5將工作)。
2.3計算具有反向傳播的導數(shù)
學習NN需要計算相對于網絡的損失的導數(shù)參數(shù)。使用稱為反向傳播的算法計算導數(shù),其是用于導數(shù)的鏈規(guī)則的存儲器有效實現(xiàn)。首先,我們討論單層的導數(shù),然后討論整個網絡的導數(shù)。
2.3.1張量函數(shù)的導數(shù)
···這一章公式太多,不知道怎么在這個編輯器頁面上打公式,暫時放一下,以后有時間再補上···主要是原理,在前面CNN基本模型里已經有分析,做這個主要還是為了用工具包···
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的MatConvnet工具箱文档翻译理解(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sound recording and
- 下一篇: 什么是飞鸽传书