BERT在CNN上也能用?字節(jié)跳動(dòng)研究成果中選ICLR 2023 Spotlight
?
如何在卷積神經(jīng)網(wǎng)絡(luò)上運(yùn)行 BERT?
你可以直接用 SparK —— 字節(jié)跳動(dòng)技術(shù)團(tuán)隊(duì)提出的稀疏層次化掩碼建模 (Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling),近期已被人工智能頂會(huì)收錄為 Spotlight 焦點(diǎn)論文:?
論文鏈接:?
??https://arxiv.org/pdf/2301.03580???
開源代碼:?
??https://github.com/keyu-tian/SparK???
這也是 BERT 在卷積神經(jīng)網(wǎng)絡(luò) (CNN) 上的首次成功。先來(lái)感受一下 SparK 在預(yù)訓(xùn)練中的表現(xiàn)吧。?
輸入一張殘缺不全的圖片:?
還原出一只小狗:?
另一張殘缺圖片:?
原來(lái)是貝果三明治:?
其他場(chǎng)景也可實(shí)現(xiàn)圖片復(fù)原:?
BERT 和 Transformer 的天作之合?
“任何偉大的行動(dòng)和思想,都有一個(gè)微不足道的開始。”?
在 BERT 預(yù)訓(xùn)練算法的背后,是簡(jiǎn)潔而深刻的設(shè)計(jì)。 BERT 使用“完形填空”:將一句話中的若干詞語(yǔ)進(jìn)行隨機(jī)刪除,并讓模型學(xué)會(huì)恢復(fù)。?
BERT 非常依賴于 NLP 領(lǐng)域的核心模型 —— Transformer。?
Transformer 由于生來(lái)就適合處理可變長(zhǎng)度的序列數(shù)據(jù)(例如一個(gè)英文句子),所以能輕松應(yīng)付 BERT 完形填空的“隨機(jī)刪除”。?
視覺領(lǐng)域的 CNN 也想享受 BERT:兩個(gè)挑戰(zhàn)何在??
回顧計(jì)算機(jī)視覺發(fā)展史,卷積神經(jīng)網(wǎng)絡(luò)模型凝練了平移等變性、多尺度結(jié)構(gòu)等等眾多經(jīng)典模型精華,可謂CV 界的中流砥柱。但與 Transformer 大相徑庭的是,CNN 天生無(wú)法適應(yīng)經(jīng)過(guò)完形填空“挖空”的、充滿“隨機(jī)孔洞”的數(shù)據(jù),因此乍一看無(wú)法享受到 BERT 預(yù)訓(xùn)練的紅利。?
上圖 a. 展示的是 MAE (Masked Autoencoders are Scalable Visual Learners) 這項(xiàng)工作,由于使用的是 Transformer 模型而非 CNN 模型,其可以靈活應(yīng)對(duì)經(jīng)過(guò)帶有空洞的輸入,乃與 BERT “天作之合”。?
而右圖 b. 則展示了一種粗暴融合 BERT 和 CNN 模型的方式——即把全部空洞區(qū)域“涂黑”,并將這張“黑馬賽克”圖輸入到 CNN 中,結(jié)果可想而知,會(huì)帶來(lái)嚴(yán)重的像素強(qiáng)度分布偏移問(wèn)題,并導(dǎo)致很差的性能 (后文有驗(yàn)證)。這就是阻礙 BERT 在 CNN 上成功應(yīng)用的挑戰(zhàn)一。?
此外,作者團(tuán)隊(duì)還指出,源自 NLP 領(lǐng)域的 BERT 算法,天然不具備“多尺度”的特點(diǎn),而多尺度的金字塔結(jié)構(gòu)在計(jì)算機(jī)視覺的悠久歷史中可謂“金標(biāo)準(zhǔn)”。單尺度的 BERT,和天然多尺度的 CNN 之間的沖突,則是挑戰(zhàn)二。?
解決方案 SparK:稀疏且層次化的掩碼建模?
作者團(tuán)隊(duì)提出了 SparK (Sparse and hierarchical masKed modeling) 來(lái)解決前文兩個(gè)挑戰(zhàn)。?
其一,受三維點(diǎn)云數(shù)據(jù)處理的啟發(fā),作者團(tuán)隊(duì)提出將經(jīng)過(guò)掩碼操作 (挖空操作) 后的零碎圖片視為稀疏點(diǎn)云,并使用子流形稀疏卷積 (Submanifold Sparse Convolution) 來(lái)進(jìn)行編碼。這就讓卷積網(wǎng)絡(luò)能夠自如處理隨機(jī)刪除后的圖像。?
其二,受 UNet 優(yōu)雅設(shè)計(jì)的啟發(fā),作者團(tuán)隊(duì)自然地設(shè)計(jì)了一種帶有橫向連接的編碼器-解碼器模型,讓多尺度特征在模型的多層次之間流動(dòng),讓 BERT 徹底擁抱計(jì)算機(jī)視覺的多尺度黃金標(biāo)準(zhǔn)。?
至此,一種為卷積網(wǎng)絡(luò) (CNN) 量身定制的稀疏的、多尺度的掩碼建模算法 SparK 誕生了。?
SparK 是通用的:其可被直接運(yùn)用在任何卷積網(wǎng)絡(luò)上,而無(wú)需對(duì)它們的結(jié)構(gòu)進(jìn)行任何修改,或引入任何額外的組件——不論是我們耳熟能詳?shù)慕?jīng)典 ResNet,還是近期的先進(jìn)模型 ConvNeXt,均可直接從 SparK 中受益。?
從 ResNet 到 ConvNeXt:三大視覺任務(wù)性能提升?
作者團(tuán)隊(duì)選擇了具代表性的兩個(gè)卷積模型家族 ResNet 和 ConvNeXt,并在圖像分類,目標(biāo)檢測(cè)、實(shí)例分割任務(wù)上進(jìn)行了性能測(cè)試。?
在經(jīng)典 ResNet-50 模型上,SparK 作為唯一的生成式預(yù)訓(xùn)練,達(dá)到了 State-of-the-art 水準(zhǔn):?
在 ConvNeXt 模型上,SparK 依舊領(lǐng)先。在預(yù)訓(xùn)練前,ConvNeXt 與 Swin-Transformer 平分秋色;而經(jīng)預(yù)訓(xùn)練后,ConvNeXt 在三個(gè)任務(wù)上均壓倒性超過(guò)了 Swin-Transformer:?
當(dāng)從小到大,在完整的模型家族上驗(yàn)證 SparK,便可觀察到:?
無(wú)論模型的大與小、新與舊,均可從 SparK 中受益,且隨著模型尺寸/訓(xùn)練開銷的增長(zhǎng),漲幅甚至更高,體現(xiàn)出 SparK 算法的擴(kuò)放 (scaling) 能力:?
最后,作者團(tuán)隊(duì)還設(shè)計(jì)了一個(gè)驗(yàn)證性的消融實(shí)驗(yàn),從中可見稀疏掩碼和層次化結(jié)構(gòu)第3行和第4行) 均是非常關(guān)鍵的設(shè)計(jì),一旦缺失就會(huì)造成嚴(yán)重的性能衰退:?