兩個(gè)小模型就能吊打大模型!北大校友、谷歌華人一作「模型集合」,CNN、Transformer都適用!
模型非要大,性能才會(huì)好嗎?
那可不一定!
當(dāng)為新的機(jī)器學(xué)習(xí)應(yīng)用程序構(gòu)建深度模型時(shí),研究人員通常會(huì)從現(xiàn)有的網(wǎng)絡(luò)架構(gòu),比如ResNets或EfficientNets中篩選出一個(gè)初始架構(gòu)。
如果初始模型的精度不夠高,那么換用一個(gè)更大的模型可能是一個(gè)比較常見(jiàn)的選擇,但這實(shí)際上可能不是最佳解決方案。
相反,通過(guò)設(shè)計(jì)一個(gè)針對(duì)特定任務(wù)優(yōu)化的新模型,可能會(huì)獲得更好的性能。然而,這種努力可能具有挑戰(zhàn)性,通常需要耗費(fèi)大量資源。
華人研究員Wang Xiaofang在Google Research實(shí)習(xí)期間,發(fā)表的論文「Wisdom of Committees:An Overlooked Approach to Faster and More Accurate Models」中,給出了模型集成和模型級(jí)聯(lián)兩種方法。
https://arxiv.org/pdf/2012.01988.pdf
這兩種方法都是通過(guò)收集現(xiàn)有模型并組合它們的輸出來(lái)構(gòu)建新模型的簡(jiǎn)單方法。
研究證明,即使是少量易于構(gòu)建的模型的集合也可以匹配或超過(guò)最先進(jìn)模型的精度,同時(shí)效率顯著提高。
Wang Xiaofang是卡內(nèi)基梅隆大學(xué)機(jī)器人研究所的一名博士研究生,本科就讀于北京大學(xué)計(jì)算機(jī)科學(xué)專(zhuān)業(yè),是IJCV、TIP、ACM Computing Surveys等期刊的審稿人,也是CVPR、ICCV、ECCV、NeurIPS、ICML、ICLR等會(huì)議的審稿人。
什么是模型集成和級(jí)聯(lián)?
集成(ensemble)和級(jí)聯(lián)(cascade)是相關(guān)的方法,它們利用多個(gè)模型的優(yōu)勢(shì)來(lái)實(shí)現(xiàn)更好的解決方案。
集成并行執(zhí)行多個(gè)模型,然后組合它們的輸出來(lái)進(jìn)行最終預(yù)測(cè)。
級(jí)聯(lián)是集合的子集,但是順序執(zhí)行收集的模型,并且一旦預(yù)測(cè)具有足夠高的置信度,就合并解。
對(duì)于簡(jiǎn)單的輸入,級(jí)聯(lián)使用較少的計(jì)算,但是對(duì)于更復(fù)雜的輸入,可能會(huì)調(diào)用更多的模型,從而導(dǎo)致更高的計(jì)算成本。
集成和級(jí)聯(lián)概述,此示例顯示了集成和級(jí)聯(lián)的二模型組合。
與單一模型相比,如果收集到的模型預(yù)測(cè)存在差異,集成可以提供更高的準(zhǔn)確性。
例如,ImageNet中的大多數(shù)圖像對(duì)于現(xiàn)在的圖像識(shí)別模型來(lái)說(shuō)很容易分類(lèi),但是有許多圖像的預(yù)測(cè)在模型之間有所不同,這種情況下,模型集成受益最大。
雖然集成(ensemble)是眾所周知的,但它們通常不被認(rèn)為是深度模型架構(gòu)的核心構(gòu)建塊,并且在研究人員開(kāi)發(fā)更高效的模型時(shí)很少被探索。
因此,該工作對(duì)集成效率進(jìn)行了全面的分析,并表明簡(jiǎn)單的集成或現(xiàn)成預(yù)訓(xùn)練模型的級(jí)聯(lián)可以提高最先進(jìn)模型的效率和準(zhǔn)確性。
模型集成有以下有益特性:
- 易于構(gòu)建:集成不需要復(fù)雜的技術(shù)(例如,早期退出學(xué)習(xí))。
- 易于維護(hù):模型經(jīng)過(guò)獨(dú)立訓(xùn)練,易于維護(hù)和部署。
- 可負(fù)擔(dān)的訓(xùn)練成本:一個(gè)集合中模型的總訓(xùn)練成本通常低于同樣精確的單個(gè)模型。
- 設(shè)備加速:計(jì)算成本的降低成功地轉(zhuǎn)化為真實(shí)硬件上的加速。
效率和訓(xùn)練速度
集成可以提高準(zhǔn)確性并不奇怪,但是在集成中使用多個(gè)模型可能會(huì)在運(yùn)行時(shí)引入額外的計(jì)算成本。
問(wèn)題來(lái)了,一個(gè)模型集合是否能比具有相同計(jì)算成本的單個(gè)模型更精確呢?
通過(guò)分析一系列模型,從EfficientNet-B0到EfficientNet-B7,當(dāng)應(yīng)用于ImageNet輸入時(shí),它們具有不同的精度和浮點(diǎn)運(yùn)算水平(FLOPS)。
集成模型比ImageNet上的單一模型精度更高,同時(shí)使用的FLOPs更少。
集成預(yù)測(cè)是通過(guò)平均每個(gè)單獨(dú)模型的預(yù)測(cè)來(lái)計(jì)算的。
他們發(fā)現(xiàn),在大計(jì)算量范圍內(nèi)(大于 5B FLOPS),集成明顯更具成本效益。
例如,兩個(gè)EfficientNet-B5模型的集成可以匹配單個(gè)EfficientNet-B7模型的精度,但是使用大約50%的FLOPS。
在大計(jì)算量范圍內(nèi)(超過(guò)5B FLOPS),模型集成優(yōu)于單個(gè)模型。
這表明,在這種情況下,應(yīng)該使用多個(gè)小得多的模型的集合,而不是使用大的模型,這將降低計(jì)算要求,同時(shí)保持準(zhǔn)確性。
此外,集成的訓(xùn)練成本可以低得多(例如,訓(xùn)練兩個(gè)B5模型需要總共96個(gè)TPU天;訓(xùn)練一個(gè)B7模型需要160TPU天)。
在實(shí)踐中,模型集成訓(xùn)練可以使用多個(gè)加速器并行化,從而進(jìn)一步減少訓(xùn)練時(shí)長(zhǎng)。這種模式也適用于ResNet和MobileNet系列。
級(jí)聯(lián)的強(qiáng)大和簡(jiǎn)潔
雖然我們已經(jīng)演示了模型集成的效用,但是應(yīng)用集成對(duì)于簡(jiǎn)單的輸入來(lái)說(shuō)往往是浪費(fèi)的,因?yàn)榧傻淖蛹瘯?huì)給出正確的答案。
在這些情況下,級(jí)聯(lián)通過(guò)允許提前退出來(lái)節(jié)省計(jì)算量,可能會(huì)在使用所有模型之前停止并輸出答案,而挑戰(zhàn)在于確定何時(shí)退出級(jí)聯(lián)。
級(jí)聯(lián)(cascade)算法偽代碼
為了突出級(jí)聯(lián)的實(shí)際好處,選擇一種簡(jiǎn)單的啟發(fā)式方法來(lái)測(cè)量預(yù)測(cè)的置信度:將模型的置信度視為分配給每個(gè)類(lèi)的概率的最大值。
例如,如果圖像是貓、狗或馬的預(yù)測(cè)概率分別為20%、80%和20%,則模型預(yù)測(cè)(狗)的置信度為0.8,使用置信度得分的閾值來(lái)確定何時(shí)退出級(jí)聯(lián)。
為了測(cè)試這種方法,他們?yōu)镋fficientNet、ResNet和MobileNetV2系列構(gòu)建模型級(jí)聯(lián),以匹配計(jì)算成本或精度(將級(jí)聯(lián)限制為最多四個(gè)模型)。
集成在大計(jì)算量區(qū)域工作良好,級(jí)聯(lián)在所有計(jì)算量區(qū)域都顯示出優(yōu)勢(shì)。
通過(guò)級(jí)聯(lián)設(shè)計(jì),一些困難的圖像輸入比簡(jiǎn)單的圖像需要更多的FLOPS,因?yàn)楦咛魬?zhàn)性的輸入比更容易的輸入在級(jí)聯(lián)中經(jīng)歷更多的模型。
而所有測(cè)試圖像的平均FLOPS計(jì)算結(jié)果表明,級(jí)聯(lián)在所有計(jì)算領(lǐng)域都優(yōu)于單個(gè)模型(當(dāng)FLOPS的范圍從0.15B到37B時(shí)),并且可以提高所有測(cè)試模型的精度或減少FLOPS(有時(shí)兩者都有)。
當(dāng)使用類(lèi)似的FLOPS時(shí),級(jí)聯(lián)比單個(gè)模型獲得更高的精度(由指向上方的紅色箭頭顯示)。級(jí)聯(lián)也可以匹配具有明顯更少FLOPS的單一模型的精度,例如B7為5.4倍(綠色箭頭指向左側(cè))。
在某些情況下,限制因素不是平均計(jì)算成本,而是最壞情況下的成本。通過(guò)在級(jí)聯(lián)構(gòu)建過(guò)程中添加簡(jiǎn)單的約束,可以保證級(jí)聯(lián)計(jì)算成本的上限。
除了卷積神經(jīng)網(wǎng)絡(luò),研究人員還考慮了基于Transformer架構(gòu)的ViT。
他們構(gòu)建了ViT-Base和ViT-Large模型的級(jí)聯(lián),以匹配單個(gè)最先進(jìn)的ViT-Large模型的平均計(jì)算或精度,并表明級(jí)聯(lián)的優(yōu)勢(shì)也適用于基于Transformer的架構(gòu)。
ViT模型的級(jí)聯(lián)在ImageNet上的表現(xiàn)。級(jí)聯(lián)可以以相似的吞吐量實(shí)現(xiàn)比ViT-L-384高1.0%的精度,或者在與其精度匹配的情況下實(shí)現(xiàn)比該模型高2.3倍的速度。
推理結(jié)果
上面的分析中使用了FLOPS進(jìn)行平均來(lái)衡量計(jì)算成本,而驗(yàn)證級(jí)聯(lián)的FLOPS降低實(shí)際上轉(zhuǎn)化為了硬件加速也很重要。
TPUv3上用于在線處理的級(jí)聯(lián)的平均延遲。每對(duì)相同顏色的條形都有相當(dāng)?shù)木_度,而級(jí)聯(lián)可以大幅降低延遲。
通過(guò)比較性能相似的單一模型與級(jí)聯(lián)模型在設(shè)備上的延遲和加速,他們發(fā)現(xiàn)與精度相當(dāng)?shù)膯蝹€(gè)模型相比,高效網(wǎng)絡(luò)的級(jí)聯(lián)模型在TPUv3上的平均在線延遲降低了高達(dá)5.5倍。隨著模型越來(lái)越大,類(lèi)似級(jí)聯(lián)帶來(lái)的速度提升也越來(lái)越多。