Transformer的殘差連線

2021-10-12 13:53:59 字數 498 閱讀 6532

在學習transformer的過程中,編碼器和解碼器都用到了殘差連線,下面我總結一下殘差連線。

假如我們的輸入為x,要得到的輸出為h(x)。那麼我們可以通過 h = f(x) + x,轉換為學習f。等得到f的輸出後,在此基礎上加上x即可得h的輸出。

在transformer中,此時的f即是下圖中的multi-head attention和feed forward,我們再加上x即可得到需要的輸出。下圖中的add & norm中的add即為此意。norm的意思就是在後面跟了乙個歸一化層。**原文中的公式為 layernorm(x + sublayer(x)),sublayer就是我上文說的f。

說完這些,那殘差連線有什麼好處呢?

主要有兩點,一是解決梯度消失的問題,二是解決權重矩陣的退化問題。具體可以看看知乎的這篇文章:【模型解讀】resnet中的殘差連線,你確定真的看懂了?

深度殘差網路

深度殘差學習 deep residual learning 的思想 在residual net中 1 identity 為恒等對映,此條路徑一直存在 2 f x 為需要學習的殘差函式 residual function h x x f x 問題的重新表示或預處理會簡化問題的優化 假設我們期望的網路層...

殘差結構詳解

背景知識 為什麼要構建深層網路?答 認為神經網路的每一層分別對應於提取不同層次的特徵資訊,有低層,中層和高層,而網路越深的時候,提取到的不同層次的資訊會越多,而不同層次間的層次資訊的組合也會越多。resnets為什麼能構建如此深的網路?答 深度學習對於網路深度遇到的主要問題是梯度消失和梯度 傳統對應...

殘差網路雜記

深度增加的乙個問題在於這些增加的層是引數更新的訊號。梯度是從後向前傳播的,增加網路深度後,比較靠前的層梯度會很小。當網路更深時意味著引數空間更大,優化問題變得更難,因此簡單地去增加網路深度反而出現更高的訓練誤差。殘差網路resnet設計一種殘差模組讓我們可以訓練更深的網路。殘差模組在輸入和輸出之間建...