(1)計算機視覺的應用包括影象分類、目標檢測、影象分割、風格遷移等,下圖展示了風格遷移案例:
(2)影象的特徵量非常之大,比如乙個3通道的1000*1000的**,其特徵為3*1000*1000達到300萬,如果第乙個隱藏層有1000個單元那麼w[1]有20億個引數,計算量不僅大,而且由於影象樣本相對於特徵實在是太少,導致很容易過擬合,所以需要其他的方式來連線,即卷積。
(1)卷積運算是輸入影象與過濾器(也叫核)進行的運算,得到輸出影象。卷積核與影象對應的位置相乘求和得到乙個新值,如下圖所示:
輸出中第乙個綠色框的值為:
(2)每個不同的核可以檢測到不同的邊緣特性,如下面的核就可以檢測到影象的垂直特性,即輸入影象中的邊緣會在輸出影象中用白色顯示出來,非邊緣部分顯示為黑色或灰色。同理還有其他水平邊緣檢測等各種核(過濾器)。
(1)除了上面提到的卷積核,還有其他許多卷積核,把上面3*3的卷積核看成9個引數,然後不是通過人工的確定,而是通過神經網路來學習這些引數,這就是卷積神經網路。
(1)邊緣不填充會有兩個缺點:第一是隨著不斷卷積,影象會變得越來越小,有時你可不想讓它變小;第二是最角落的點只被使用了一次,這意味著在下傳的過程中丟掉了影象邊緣位置的資訊。如下圖所示(角落的綠色點只被計算了一次,中間紅色點可以被計算多次):
(2)padding經常可以設定成為兩個引數:第乙個是valid,即不做填充;第二個是same,即輸出尺寸與輸入尺寸相等。
(3)在步長為1是有公式:n+2p-f+1為輸出的尺寸。其中n是輸入的尺寸(比如說寬),f是卷積核的大小(比如3),p是每一邊額外新增的列數(如新增一列就為1)。所以根據這個式子很容易計算出用same引數時,p=(f-1)/2,注意此處前提都是步長為1。
(1)輸入與輸出的尺寸關係如下,注意當結果不是整數時是向下取整。
(2)在深度學習的卷積沒有必要像數學或者訊號處理教材中,先將卷積核順時針旋轉90°,然後在水平翻轉,最後再進行與上面相同的卷積運算。深度學習直接忽略了那些旋轉翻轉的步驟。影響不大。
(1)三維的卷積方法如下圖所示,卷積核的通道數與輸入影象的通道數相同,輸出影象的通道數為所使用的卷積核的個數,至於高和寬還是按照上面提到的公式計算:
(1)每乙個卷積核的輸出對應乙個實數b(偏差),然後在進行啟用函式的非線性轉換得到輸出,如下圖所示:
(2)引數個數的計算:比如10個卷積核3*3*3,b的個數跟卷積核個數相同,所以總的引數為(3*3*3+1)*10=280,不管輸入尺寸多大,引數個數始終保持不變,而在全連線網路中引數個數是會隨著輸入不同而不同的。
(3)一些符號如下所示,習慣上w用m*nh[l]
*nw[l]*nc
[l]表示,b用1*1*1*nc
(1)案例圖如下:最核心的就是要會計算輸出尺寸(公式((n+2p-f)/s)+1,向下取整)。
(1)池化層中沒有需要學習的引數,所以通常不把池化層當做獨立的一層來看。
(2)池化層是一般不會設定padding,即一般padding為0。
(3)fitter為2,stride為2是最常見的引數設定,尺寸影象縮小為原來的一半。
(4)卷積時用的尺寸計算公式同樣適用於池化層,如下圖所示:
(5)最大池化層比平均池化層更為常用。
(1)下面是乙個0-9陣列分類的網路,包括了卷積層、池化層、全連線層:
(2)一般而言,不斷卷積之後,影象的高度和寬度會變小,通道數(深度)會增加。
(3)在神經網路中,另乙個常見的模式就是乙個或多個卷積層之後跟隨乙個池化層,然後乙個或多個卷積層之後跟隨乙個池化層,然後跟幾個全連線層,最後是乙個softmax.
(4)下面是針對上面網路的一些輸出和引數的個數,其中引數一欄最後三行的值應該是48000+120、10080+84、840+10,208應改為(5*5*3+1)*8=608,416應改為(5*5*8+1)*16=3216。
(1)卷積網路的引數遠少於全連線的原因主要有兩點:第一是引數共享,如左上角用乙個垂直的卷積核檢測,那麼這個卷積核也同樣適用於影象的其他區域;第二是稀疏連線,如某個輸出值只與特定的幾個值相連線(如九個值)。
(2)卷積神經網路善於捕捉偏移不變形,例如把影象往右平移幾個畫素,對於網路而言沒什麼影響。
reference:
吳恩達《深度學習》第一門課(1)深度學習引言
主要講了五門課的內容 第一門課 神經網路基礎,構建網路等 第二門課 神經網路的訓練技巧 1 常說的深度學習指的就是訓練神經網路,或者也指特別大規模的神經網路。2 每乙個神經元都代表著從輸入到輸出的函式對映,如下的房價 3 啟用函式relu rectified linear unit 其實就是max ...
吳恩達深度學習第四課配置keras
吳恩達老師的深度學習專項課程,第四課的第二週作業需要用到keras這個高階api框架,所有就去配置了。結果配置安裝包是有順序的,我看了乙個部落格就開始弄,當然啦。順序不對!查了資料,配置分兩步 1.安裝 graphviz 包 進入conda命令窗,輸入 pip install graphviz 2....
吳恩達深度學習第2課第1周(上)
1.1資料分集 將所有的訓練劃分為3個集 訓練集,驗證集,測試集 驗證集 迭代選擇出最優的幾個演算法 測試集如果不需要做無偏估計時,可省略 資料量小622 73 開 大時可以 98 1 1 或者 99.5 0.4 0.1 開 無偏估計,驗證你的資料是否遵循同乙個分布 1.2 方差,偏差 在神經網路中...