Reflection: Deep Learning with R-Ch5.1

imflorachen
6 min readApr 17, 2020

--

ch5.1

終於進入 Part 2 了,Part 2 會開始有 Deep Learning 的實際應用,先從了解捲積網路開始吧!

## Part2-Ch5 Deep learning for computer vision

* 章節目標: 圖片分類

- 了解卷積神經網絡(卷積網絡)

- 使用數據擴充來減輕過度擬合

- 使用預訓練的捲積網絡進行特徵提取

- 優化預訓練的捲積網絡

- 可視化卷積網絡學習的內容以及如何做出分類決策

### 5.1. INTRODUCTION TO CONVNETS

* convnet 基本範例

* basics of convnets — feature maps, convolution, and max pooling

#### 5.1.1. The convolution operation

* 密集層在其輸入特徵空間中學習全局模式(例如,對於MNIST數字,涉及所有像素的模式),而卷積層則學習局部模式:對於圖像,在2D小窗口中可以找到模式輸入。

* 捲積層學習到的模式是翻譯不變(translation invariant)的。學習了圖片右下角的某種模式後,卷積網絡可以在任何地方識別它:

* 捲積層可以學習模式的空間層次結構。 第一卷積層將學習較小的局部圖案,例如邊緣,第二卷積層將學習由第一層的特徵製成的較大圖案,依此類推。 這使卷積網可以有效地學習日益複雜和抽象的視覺概念

* [1]卷積在稱為特徵圖的3D張量上運行,具有兩個空間軸(高度和寬度)以及深度軸(也稱為通道軸)。

* 對於RGB圖像,深度軸的尺寸為3,因為該圖像具有三個顏色通道:紅色,綠色和藍色。黑白圖片,如MNIST,深度軸是1(levels of gray)

* [2]卷積操作從其輸入特徵圖中提取“補丁”,並將相同的變換應用於所有這些補丁,從而生成輸出特徵圖。

* 輸出要素圖仍然是3D張量:具有寬度和高度。 它的深度可以是任意的,因為輸出深度是圖層的參數,並且該深度軸上的不同通道不再代表RGB輸入中的特定顏色,而是代表過濾器(filter)。過濾器對輸入數據的特定方面進行編碼:例如,從一個較高的層次上講,單個過濾器可以對“輸入中存在面部”這一概念進行編碼。

* convolution 兩個重要參數:

- 從輸入中提取的補丁的大小-通常為3x3或5x5。

- 輸出要素圖的深度-卷積計算的過濾器數。

- layer_conv_2d(output_depth, c(window_height, window_width))

* [3]通過在3D輸入要素地圖上滑動這些大小為3x3或5x5的窗口,在每個可能的位置停止並提取周圍要素的3D補丁來進行卷積,然後將每個此類3D補丁(通過具有相同學習權重矩陣的張量積,稱為卷積核)轉換為1D向量。然後將所有這些向量在空間上重組為3D輸出圖。同樣位置的輸出有相同位置的資訊,如輸出的右下角包含有關輸入的右下角的信息

* 輸出寬度和高度可能與輸入寬度和高度不同。 它們可能由於兩個原因而不同:1.邊框效果,可以通過填充輸入要素圖來抵消。2.strides。

* 如果要獲得具有與輸入相同的空間尺寸的輸出要素圖,則可以使用填充。 填充包括在輸入要素貼圖的每一側上添加適當數量的行和列,以使其能夠在每個輸入圖塊周圍適應中心卷積窗口。(figure 5.6: 填充 5x5 的 input 以萃取出 25 個 3x3 的補丁)

* 可能影響輸出大小的另一個因素是步幅(strides)的概念。到目前為止,對卷積的描述都假定卷積窗口的中心圖塊都是連續的。但是兩個連續窗口之間的距離是卷積的一個參數,稱為步幅,默認為1。

* 使用跨度2表示要素地圖的寬度和高度將以2的比例進行下採樣(除了邊界效應引起的任何變化之外)。實際上很少用,為了對特徵圖進行下採樣,很少用strides,我們傾向於使用maxpooling 操作

#### 5.1.2. The max-pooling operation

* 最大池化 (max-pooling) 的作用:像跨步卷積一樣,主動對特徵圖進行下採樣。

* 最大池化包括從輸入要素圖中提取窗口並輸出每個通道的最大值。它在概念上與卷積類似,不同之處在於,它們不是通過學習的線性變換(卷積內核)來變換局部面片,而是通過硬編碼的最大張量操作進行變換。

* 最大池化通常使用2x2窗口和跨度2來完成,以便以2的因數對特徵圖進行下採樣。

* 卷積通常使用3×3窗口且無跨度(跨度1)完成。

* no-max-pool

* 這不利於學習要素的空間層次。 第三層中的3×3窗口將僅包含來自初始輸入中7×7窗口的信息。對於初始輸入,卷積網絡學習到的高級模式仍然很小,這可能不足以學習對數字進行分類

* 最終特徵圖每個樣本具有22×22×64 = 30976個總係數。如果將其壓平以在頂部粘貼一個大小為512的密集層,則該層將具有1580萬個參數。對於這麼小的模型,這太大了,並且會導致過度擬合。

* 簡而言之,使用下採樣的原因是為了減少要處理的特徵圖係數的數量,以及通過使連續的捲積層查看越來越大的窗口(根據它們覆蓋的原始輸入的比例)來誘導空間過濾器層次結構。

* max pooling 比其他的方式好,原因是要素往往會在要素圖的不同圖塊上對某種模式或概念的空間存在進行編碼,因此查看不同特徵的最大存在比平均存在更具參考價值。

--

--

imflorachen
imflorachen

Written by imflorachen

Hi i’m trying to write what i’ve learned from work or from books. Wish I could become a better data scientist.

No responses yet