深度學習 殘差塊

目錄

恆等殘差塊——The identity block

卷積殘差塊——The convolutional block


 

  • 恆等殘差塊——The identity block

 The identity block是ResNets中使用的標準塊,對應於輸入激活(例如 a [1])與輸出激活具有相同維度(例如a [l +2])。

(1)、兩層恆等殘差塊

下圖展示了ResNets的兩層的恆等殘差塊 identity block:

上面的路徑是“shortcut path”,下面的路徑是“main path”,在這個圖中,同樣也進行了CONV2D和ReLU操作,爲了加速訓練的速度也加入了Batch正則化“Batch Norm”,Batch Norm在Keras框架中就一句代碼。

(2)、三層恆等殘差塊

在下面的這個例子中,將實際上實現一個略微更強大的版本,這個跳轉連接“跳過”3個隱藏層而不是2層。

(3)、下面是細節的步驟:

a、主路徑的第一部分:

第一個CONV2D的過濾器F1大小是(1*1),步長s大小爲(1*1),卷積填充padding="valid"即無填充卷積。

將這一部分命名爲conv_name_base+'2a',初始化時利用種子爲seed=0。

第一個BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base+'2a'.

應用ReLU激活函數,這裏沒有超參數。

b、主路徑的第二部分:

第二個CONV2D的過濾器F2大小是(f*f),步長s大小爲(1*1),卷積填充padding="same"即相同卷積。

將這一部分命名爲conv_name_base'2b',初始化時利用種子爲seed=0。

第二個BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base+'2b'.

應用ReLU激活函數,這裏沒有超參數。

c、主路徑的第三部分:

 

第三個CONV2D的過濾器F3大小是(1*1),步長s大小爲(1*1),卷積填充padding="valid"即無填充卷積。

將這一部分命名爲conv_name_base+'2c',初始化時利用種子爲seed=0。

第三個BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base +'2c'.

這一部分中沒有應用ReLU激活函數。

d、最後部分:

將shortcut和輸入一起添加到模塊中,然後再應用ReLU激活函數,這裏沒有超參數。

 

 

  • 卷積殘差塊——The convolutional block

(1)、綜述

ResNet的convolutional_block是另一種類型的殘差塊,當輸入和輸出尺寸不匹配時,可以使用這種類型的塊。

與identity block恆等殘差塊不同的地方是:在shortcut路徑中是一個CONV2D的層。

shortcut路徑中的CONV2D層用於將輸入x調整爲不同的尺寸,以便在添加shortcut殘差塊的值返回到主路徑時需要最後添加的尺寸相匹配(與矩陣Ws的作用相同)。例如,要將激活值維度的高度和寬度縮小2倍,可以使用步長爲2的1x1卷積。shortcut路徑上的CONV2D層路徑不使用任何非線性激活函數。 它的主要作用是隻應用一個(學習的)線性函數來減小輸入的尺寸,使得尺寸匹配後面的添加步驟。

(2)、convolutional_block的細節步驟

a、主路徑第一部分

第一個CONV2D的過濾器F1大小是(1*1),步長s大小爲(s*s),卷積填充padding="valid"即無填充卷積。

將這一部分命名爲conv_name_base+'2a'。

第一個BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base+'2a'.

應用ReLU激活函數,這裏沒有超參數。

b、主路徑第二部分

第二個CONV2D的過濾器F2大小是(f*f),步長s大小爲(1*1),卷積填充padding="same"即相同卷積。

將這一部分命名爲conv_name_base+'2b',初始化時利用種子爲seed=0。

第二個BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base+'2b'.

 應用ReLU激活函數,這裏沒有超參數。

c、主路徑第三部分

第三個CONV2D的過濾器 F3大小是(1*1),步長s大小爲(1*1),卷積填充padding="valid"即無填充卷積。

將這一部分命名爲 conv_name_base+'2c',初始化時利用種子爲seed=0。

第三個BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base+'2c'.

這一部分中沒有應用ReLU激活函數。

d、shortcut 路徑

該部分CONV2D的過濾器 F3大小是(1*1),步長s大小爲(s*s),卷積填充 padding="valid"即無填充卷積。

將這一部分命名爲conv_name_base+'1'。

該部分BatchNorm是在通道/厚度的軸上進行標準化,並命名爲bn_name_base+'1' 

e、最後部分

將shortcut和輸入一起添加到模塊中,然後再應用ReLU激活函數,這裏沒有超參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章