使用BatchNorm替代LayerNorm可以減少Vision Transformer訓練時間和推理時間

deephub發表於2024-08-12

以Vision Transformer (ViT)的發現為先導的基於transformer的架構在計算機視覺領域引發了一場革命。對於廣泛的應用,ViT及其各種變體已經有效地挑戰了卷積神經網路(CNN)作為最先進架構的地位。儘管取得了一些成功,但是ViT需要更長的訓練時間,並且對於小型到中型輸入資料大小,推理速度較慢。因此研究更快訓練和推理Vision Transformer就變成了一個重要的方向。

在以前我們都是知道,Batch Normalization(以下簡稱BN)的方法最早由Ioffe&Szegedy在2015年提出,主要用於解決在深度學習中產生的ICS(Internal Covariate Shift)的問題。若模型輸入層資料分佈發生變化,則模型在這波變化資料上的表現將有所波動,輸入層分佈的變化稱為Covariate Shift,解決它的辦法就是常說的Domain Adaptation

而在transformer上使用Layer Normalization(以下簡稱LN)的方法,用於解決BN無法很好地處理文字資料長度不一的問題,但是對於VIT來說,影像的塊數是固定的,並且長度也是固定的,那麼能不能用BN來替代LN呢?

本文我們將詳細探討ViT的一種修改,這將涉及用批次歸一化(BatchNorm)替換層歸一化(LayerNorm) - transformer的預設歸一化技術。ViT有一個僅編碼器的架構,transformer編碼器由兩個不同的模組組成 - 多頭自注意力(MHSA)和前饋網路(FFN)。所以我門將討論這種模型的兩個版本。第一個模型將涉及在前饋網路中實現BatchNorm層 - 這將被稱為ViTBNFFN( 前饋網路中帶有BatchNorm的Vision Transformer**)** 。第二個模型將涉及在Vision Transformer的所有地方用BatchNorm替換LayerNorm - 我將這個模型稱為ViTBN( 帶有BatchNorm的Vision Transformer**)**。因此,模型ViTBNFFN將同時涉及LayerNorm(在MHSA中)和BatchNorm(在FFN中),而ViTBN將僅涉及BatchNorm。

https://avoid.overfit.cn/post/94913313e55b4f3db99d7b07aec57e11

相關文章