YoloR:又一個(gè)YOLO系列新框架!速度遠(yuǎn)遠(yuǎn)高于Yolov4
論文:https://arxiv.org/pdf/2105.04206.pdf
開源代碼:https:// github.com/WongKinYiu/yolor
1 前言
人們通過視覺、聽覺、觸覺以及過去的經(jīng)驗(yàn)“理解”世界。人類經(jīng)驗(yàn)可以通過正常學(xué)習(xí)(我們稱之為顯性知識(shí))或潛意識(shí)(我們稱之為隱性知識(shí))來(lái)學(xué)習(xí)。這些通過正常學(xué)習(xí)或潛意識(shí)習(xí)得的經(jīng)驗(yàn)將被編碼并儲(chǔ)存在大腦中。使用這些豐富的經(jīng)驗(yàn)作為一個(gè)龐大的數(shù)據(jù)庫(kù),人類可以有效地處理數(shù)據(jù),即使它們是事先不可見的。
在今天分享中,研究者提出了一個(gè)統(tǒng)一的網(wǎng)絡(luò),將隱性知識(shí)和顯性知識(shí)編碼在一起,就像人腦可以從正常學(xué)習(xí)和潛意識(shí)學(xué)習(xí)中學(xué)習(xí)知識(shí)一樣。統(tǒng)一網(wǎng)絡(luò)可以生成統(tǒng)一的表示以同時(shí)服務(wù)于各種任務(wù)。可以在卷積神經(jīng)網(wǎng)絡(luò)中執(zhí)行內(nèi)核空間對(duì)齊、預(yù)測(cè)優(yōu)化和多任務(wù)學(xué)習(xí)。結(jié)果表明,當(dāng)隱性知識(shí)被引入神經(jīng)網(wǎng)絡(luò)時(shí),它有利于所有任務(wù)的性能。研究者進(jìn)一步分析了從所提出的統(tǒng)一網(wǎng)絡(luò)中學(xué)習(xí)到的隱式表示,它在捕捉不同任務(wù)的物理意義方面表現(xiàn)出很強(qiáng)的能力。
2 背景
如下圖所示,人類可以從不同角度分析同一條數(shù)據(jù)。然而,經(jīng)過訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)模型通常只能實(shí)現(xiàn)一個(gè)目標(biāo)。一般來(lái)說(shuō),可以從經(jīng)過訓(xùn)練的CNN中提取的特征通常對(duì)其他類型的問題適應(yīng)性較差。造成上述問題的主要原因是我們只從神經(jīng)元中提取特征,沒有使用CNN中豐富的隱式知識(shí)。當(dāng)真正的人腦在運(yùn)行時(shí),上述隱性知識(shí)可以有效地輔助大腦執(zhí)行各種任務(wù)。
隱性知識(shí)是指在潛意識(shí)狀態(tài)下學(xué)到的知識(shí)。然而,對(duì)于隱性學(xué)習(xí)如何運(yùn)作以及如何獲得隱性知識(shí),并沒有系統(tǒng)的定義。在神經(jīng)網(wǎng)絡(luò)的一般定義中,從淺層獲得的特征通常稱為顯性知識(shí),從深層獲得的特征稱為隱性知識(shí)。在今天分享中,研究者將與觀察直接對(duì)應(yīng)的知識(shí)稱為顯性知識(shí)。對(duì)于模型中隱含的與觀察無(wú)關(guān)的知識(shí),稱之為隱性知識(shí)。
3 新框架
研究者提出了一個(gè)統(tǒng)一的網(wǎng)絡(luò)來(lái)整合隱性知識(shí)和顯性知識(shí),并使學(xué)習(xí)模型包含一個(gè)通用表示,而這個(gè)通用表示使子表示適用于各種任務(wù)。上圖(c)說(shuō)明了提出的統(tǒng)一網(wǎng)絡(luò)架構(gòu)。
接下來(lái)我們好好詳細(xì)分析下隱性知識(shí)如何運(yùn)作的?
本研究的主要目的是進(jìn)行一個(gè)統(tǒng)一的網(wǎng)絡(luò),可以有效地訓(xùn)練隱性知識(shí),所以在后續(xù)我們將首先關(guān)注如何訓(xùn)練隱性知識(shí)并對(duì)其進(jìn)行快速推理。由于隱式表示zi與觀察無(wú)關(guān),我們可以將其視為一組常數(shù)張量Z={z1, z2, ..., zk}。接下來(lái)我們將介紹作為常數(shù)張量的隱性知識(shí)如何應(yīng)用于各種任務(wù)。
· Manifold space reduction ·
研究者認(rèn)為一個(gè)好的表示應(yīng)該能夠在它所屬的流形空間中找到合適的投影,并促進(jìn)后續(xù)客觀任務(wù)的成功。例如,如下圖所示,如果目標(biāo)類別可以通過投影空間中的超平面成功分類,那將是最好的結(jié)果。在上面的例子中,我們可以通過投影向量和隱性表示的內(nèi)積來(lái)達(dá)到降低流形空間維數(shù),有效完成各種任務(wù)的目的。
· Kernel space alignment ·
在多任務(wù)和多head神經(jīng)網(wǎng)絡(luò)中,內(nèi)核空間未對(duì)齊是一個(gè)常見問題,圖上圖(a)說(shuō)明了多任務(wù)和多Head神經(jīng)網(wǎng)絡(luò)中內(nèi)核空間未對(duì)齊的示例。
為了解決這個(gè)問題,研究者可以對(duì)輸出特征和隱性表示進(jìn)行加法和乘法,從而可以平移、旋轉(zhuǎn)和縮放核空間以對(duì)齊神經(jīng)網(wǎng)絡(luò)的每個(gè)輸出核空間,如下圖(b)所示。
上述操作模式可以廣泛應(yīng)用于不同領(lǐng)域,例如特征金字塔網(wǎng)絡(luò)(FPN)中大目標(biāo)和小目標(biāo)的特征對(duì)齊,使用知識(shí)蒸餾來(lái)整合大模型和小模型,以及處理零樣本域轉(zhuǎn)移和其他問題。
· More functions ·
除了可以應(yīng)用于不同任務(wù)的功能外,隱性知識(shí)還可以擴(kuò)展到更多的功能中。如下圖所示,通過引入加法,可以使神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)中心坐標(biāo)的偏移。還可以引入乘法來(lái)自動(dòng)搜索Anchor的超參數(shù)集,這是基于錨的目標(biāo)檢測(cè)器經(jīng)常需要的。此外,可以分別使用點(diǎn)乘和串聯(lián)來(lái)執(zhí)行多任務(wù)特征選擇并為后續(xù)計(jì)算設(shè)置前提條件。
在常規(guī)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,通常會(huì)最小化以使fθ(x)盡可能接近目標(biāo)。這意味著我們期望對(duì)同一目標(biāo)的不同觀察是fθ獲得的子空間中的單個(gè)點(diǎn),如下圖(a)所示。換句話說(shuō),我們期望得到的解空間是僅對(duì)當(dāng)前任務(wù)ti有區(qū)別,對(duì)各種潛在任務(wù)中的ti以外的任務(wù)不變,T \ ti,其中 T = {t1, t2, ..., tn}。
對(duì)于通用神經(jīng)網(wǎng)絡(luò),我們希望得到的表征可以服務(wù)于屬于T的所有任務(wù)。因此,我們需要放松,使得可以在流形空間上同時(shí)找到每個(gè)任務(wù)的解,如上圖(b)所示。但是,上述要求使我們無(wú)法使用簡(jiǎn)單的數(shù)學(xué)方法,例如one-hot向量的最大值或歐幾里得距離的閾值來(lái)獲得ti的解。為了解決這個(gè)問題,我們必須對(duì)誤差項(xiàng)進(jìn)行建模,以找到不同任務(wù)的解決方案,如上圖6所示。
4 實(shí)驗(yàn)及檢測(cè)可視化
這個(gè)作者實(shí)驗(yàn)做的也特別充分,有興趣的同學(xué)可以自己看下論文,從中發(fā)現(xiàn)一些創(chuàng)作靈感。我也是根據(jù)公布的源代碼隨便在公共數(shù)據(jù)集上測(cè)試下,效果與YoloV4比,精度可能差不多,速度確實(shí)快不少。今天就以鬼吹燈——云南蟲谷這一小段檢測(cè)片段,效果不是很好,因?yàn)槲矣玫氖枪矓?shù)據(jù)集簡(jiǎn)單訓(xùn)練的效果,等有機(jī)會(huì)基于優(yōu)化的網(wǎng)絡(luò)好好訓(xùn)練一個(gè)模型。
從抖音的檢測(cè)過程中,可以看出效果一般般,還是要針對(duì)性的數(shù)據(jù)及高質(zhì)量的訓(xùn)練,我為了顯示基本的效果,就簡(jiǎn)單訓(xùn)練了一個(gè)輕量級(jí)網(wǎng)絡(luò),視頻中可以看出“粽子”確實(shí)是“人“變的!