DenseNets與ResNet的本質區別

DenseNets與ResNet的本質區別

假設一張圖片x0{x_0}在卷積網絡中傳播。網絡共有 L 層,每一層都有一個非線性轉換函數 H(){H_\ell }\left( \bullet \right)(定義爲三種操作的組合函數,分別是:BN、ReLU和卷積),其中 $\ell 表示第幾層。用{x_\ell }$ 表示第 $\ell $層的輸出。

傳統的前饋網絡是將 $\ell-1 $ 層的輸出x1{x_\ell -1 }作爲 $\ell $層的輸入,得到 $\ell 層的輸出 ,可用該{x_\ell }$方程來表示: x=H(x1){x_\ell } = {H_\ell }\left( {{x_{\ell - 1}}} \right)

  • ResNets增加了一個跨層連接,將自身與非線性轉換的結果相加:x=H(x1)+x1{x_\ell } = {H_\ell }\left( {{x_{\ell - 1}}} \right) + {x_{\ell - 1}} 所以對於ResNet而言,$\ell 層的輸出加上對\ell-1 $層輸出的非線性變換,這樣可以直接將梯度從後層傳向前層。然而,自身與經過 H{H_\ell }得到的輸出是通過求和的形式來連接的,這可能使網絡中信息的傳播受到影響。
    在這裏插入圖片描述
    圖1.殘餘學習:構建塊。

  • DenseNets爲了更好的改善層與層之間信息的傳遞,提出一種不同的連接模式:將該層與之後的所有層進行連接。因此,$\ell $ 層將之前所有層的特徵圖[x0,x1,,x1]\left[ {{x_0},{x_1}, \ldots ,{x_{\ell - 1}}} \right]作爲輸入:x=H([x0,x1,,x1]){x_\ell } = {H_\ell }\left( {\left[ {{x_0},{x_1}, \ldots ,{x_{\ell - 1}}} \right]} \right),輸入是之前所有特徵圖的拼接。而前面resnet是做值的相加,通道數是不變的。
    在這裏插入圖片描述
    圖2:具有三個密集塊的深DenseNet。 兩個相鄰塊之間的層稱爲過渡層,並通過卷積和池化更改特徵圖大小。

通過卷積和池化更改特徵圖大小。

以上這兩個公式就能看出DenseNet和ResNet在本質上的區別。

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