徐傳運,孫 越,李 剛,袁含香
(1.重慶理工大學 兩江人工智能學院,重慶 401135;2.重慶理工大學 計算機科學與工程學院,重慶 400054)
深度學習現(xiàn)已經被廣泛應用于人工智能的眾多領域,自2012年以來,Krizhevsky等[1]提出的AlexNet使圖像特征提取與分類技術有了重大進步。近些年以卷積神經網絡為代表的各類深度學習方法快速發(fā)展,憑借其較高的識別率與準確率,己經逐漸取代了諸如SIFT[2](scale-invariant feature transform)、HOG 等[3](histogram of oriented gradient)人工標注特征的方法,成為了計算機視覺領域的標準算法。在超市、電商等應用領域中,隨著人力成本的增加和人們對新技術的逐漸接受,根據(jù)圖像特征對商品進行識別與分類具有越來越重要的研究價值。梁青青等[4]于2013年開始研究貨架商品的分割與識別;趙瑩等[5]研究了基于人工特征商品圖像匹配;孫昂[6]使用改進的Alex-Net對電商網站多類商品圖片的分類進行研究;包青平等[7]使用了基于三重損失函數(shù)(triplet-loss)的度量學習方法對服裝圖像進行分類與檢索;胡正委等[8]基于Faster RCNN框架探究了在無邊框標定情況下訓練商品分類并容易運用到其他數(shù)據(jù)集。在智能零售場景中,利用計算機視覺對商品進行結算是主要研究方向,曠視推出了新零售自動結算場景下的大型超市零售商品數(shù)據(jù)集RPC[9],為商品檢測、小樣本學習等研究方向提供了數(shù)據(jù)支持;Li等[10]提出了DPN網絡,其對RPC結算圖的檢測與識別高于基線。然而另一方面,深度學習分類模型對數(shù)據(jù)極度饑渴,需要海量標記數(shù)據(jù)來達到良好效果[1,11-12],尤其在零售商品識別場景下,商品的巨量類別,與飛速迭代,使得收集大規(guī)模的標記數(shù)據(jù)困難重重。面對零售商品樣本數(shù)據(jù)嚴重不足的問題,如何使用機器學習模型在小樣本情況下進行有效學習,是實現(xiàn)零售商品分類商業(yè)化的重要研究方向。早期的小樣本學習研究主要圍繞Vapnik等[13]提出的基于支持向量機(support vector machine,SVM)的應用,但SVM對于種類繁多的計算機視覺任務仍有局限性。進入21世紀后,李飛飛等[14]首次提出了單樣本學習(one-shot learning)概念,并首次使用貝葉斯框架實現(xiàn)了小樣本分類。2015年,Lake等[15]仍采用貝葉斯方法,并將其運用于小樣本學習問題,該算法首次在小樣本學習問題上取得超越人類的表現(xiàn),且該工作第一次提出以C-way K-shot任務作為小樣本學習評價標準,并提出小樣本學習數(shù)據(jù)集Omniglot,這些標準為后來的小樣本學習的快速發(fā)展具有重要意義。近年來隨著神經網絡的興起,小樣本學習的研究在圖像領域有了很大進展。小樣本學習使用深度學習模型通過先驗知識約束假設空間,從模型上可分為3類[16]:①基于模型(model based);②基于度量(metric based);③基于優(yōu)化(optimization based)?;谀P偷姆椒ㄖ荚谠O計一種模型結構能夠在少量樣本上訓練并更新參數(shù),直接建立輸入x到預測值p的映射函數(shù);基于度量的方法通過批樣本與支撐集(support set)的距離分布進行建模,使得同類樣本靠近而異類遠離,完成分類;基于優(yōu)化的方法認為傳統(tǒng)梯度下降法難以在Few-shot分類任務中擬合,通過調整優(yōu)化方法來完成小樣本分類任務。對于基于度量方法,為了避免嚴重的過擬合問題,許多研究采取了非參數(shù)化的度量方法來優(yōu)化參數(shù)。Koch等[17]最初提出了孿生網絡(siamese network)來識別有判別性的特征,然后再推廣到未知的類別中。隨后Vinyals等[18]為批樣本與查詢集(query set)分別構建了不同的編碼器,提出了基于注意力與記憶的匹配網絡(match network)。Snell等[19]以每個類的均值作為對應的原型表示來學習一個度量空間,提出了原型網絡(prototypical network)。Sung等[20]認為網絡不應該只滿足單一固定的距離度量方式,而是通過訓練一個網絡來學習距離度量,于是提出了關系網絡(relation network),并改進了損失函數(shù)。最近,Li等[21]考慮到全局特征對小樣本數(shù)據(jù)不友好,使用了局部描述符度量方法,并借鑒樸素貝葉斯最近鄰方法[22],提出了深度最近鄰網絡(deep nearest neighbor neural network),該網絡由深度嵌入模塊與圖像-類別模塊組成,其中圖像-類別模塊可由其他深度嵌入模塊替代或共同工作。Xu等[23]基于人類會通過對比來識別特定環(huán)境下的物體的特點,提出局部對比學習的思想,從對比差異特征中學習。Geng[24]提出的包含了膠囊網絡[25](capsuleNet)的Encoder-Induction-Relation三級框架,應用于NLP語義分類問題。
本文受到DN4[21]與Relation Network[20]的啟發(fā),采用深部局部描述符連接和神經網絡度量,提出了小樣本學習分類模型LDR-Net。與DN4[21]采用最近鄰度量方法[22]不同的是,LDR-Net將DN4[21]中的圖像-類別模塊進行改進與擴展,使支撐集特征圖的轉置矩陣與查詢集特征圖矩陣相乘,并將結果直接作為下一個卷積神經網絡的輸入。該模型在RPC超市零售商品數(shù)據(jù)集上的對比實驗結果表明,LDR-Net在商品的小樣本分類任務中的性能優(yōu)于現(xiàn)有方法。
現(xiàn)實世界中已有大量零售商品圖像數(shù)據(jù),然而商品類別迭代飛速,例如電商領域有大量的第三方商家商品圖片需進行類別標注。針對此問題,本文旨在設計一個基于Few-shot的圖像分類器,在訓練數(shù)據(jù)集中學習到類別區(qū)分的元知識,再對未知的新類別進行相似度比對,從而達到對開放類別進行分類的目的。
Few-shot任務在訓練階段會將數(shù)據(jù)集分為多個元任務(meta-task),去學習類別變化的泛化能力,在測試階段,面對全新類別的少量樣本,無需改變已有模型,直接進行分類。其中,訓練集包含多個類別,每個類別有多個樣本。訓練階段每次迭代(episode)將會在訓練集中隨機抽取C個類別,每類隨機K個樣本,總共C×K個數(shù)據(jù),構建一個元任務,作為模型的支撐集輸入,再從這C類剩余的數(shù)據(jù)中抽取一批樣本(batch)作為模型預測的對象,即要求模型從C×K個數(shù)據(jù)中學會如何區(qū)分這C個類別。這類問題被定義為C-way K-shot問題。
每次迭代都會采樣到不同的元任務,訓練包含了大量隨機不同的類別組合,使得當?shù)螖?shù)增加時,模型能夠在不同的元任務中學習到共性部分,從而在測試中面對包含開放類別的元任務時,也能較好地分類。本文在實驗時將采用5-way 1-shot與5-way 5-shot方式,結合卷積神經網絡進行訓練和測試。
圖像局部描述符是計算機視覺中的一個基本研究問題,早期被使用較多的一般為手工設計的局部描述符,如SIFT。本文算法所使用的主要是基于深度特征的局部描述符。
給定一個大小為h×w的輸入圖像,通過卷積層后輸出的特征圖可以表示成一個3維的張量T,有c×h×w個元素,從另一個角度來看,T也可以被看成擁有h×w個單元且每個單元包含一個c維的深度特征描述符。因為該描述符的感受野對應著原圖像上的某一塊局部特征,所以將其稱之為深度局部描述符(deep local descriptor)。局部描述符如圖1所示,d(i,j)即一個深度局部描述符。
本 文 結 合Relation-Net[20]與DN4[21](deep nearest neighbor neural network)思想,提出了將局部描述符連接并用神經網絡學習度量的方法,建立了小樣本商品圖像分類模型LDR-Net。該模型首先使用卷積神經網絡構成特征提取模型fφ來獲得高維特征,將得到的特征圖中包含所有通道的單個元素作為一個局部特征單位,即深度局部描述符。通過深度局部特征連接方式,將支撐集與查詢集生成特征圖的每個深度局部描述符各自連接,形成深度局部描述符連接空間,該空間可表示為圖片間每個局部特征的拼湊組合。最后使用度量學習網絡對其進行映射,提取局部不變特征,學習圖像到每個類池的相似度。
根據(jù)人類視覺模式中同一類圖像的可交換性,一個新圖像可由同一類圖像的局部特征位置信息打亂拼湊而成,同一類的所有訓練樣本的局部特征被收集到一個池中。此方法對于零售商品圖像有更優(yōu)秀的效果,模型如圖2所示。
該模型由3個模塊組成:特征提取網絡fφ(·)-深度局部描述符連接Ψ(·)-度量學習網絡mΦ(·),θ為最后得到的相似度。
式(1)中,每次迭代支撐集的樣本xi與查詢集樣本xq作為輸入數(shù)據(jù)進入特征提取網絡得到fφ(xi)、fφ(xq),即對應圖2中的特征圖Fi(i=1,2,3,4,5)、Q。在C-way K-shot情形下,xi數(shù)量為c*k,xq數(shù)量為1。對fφ(xi)、fφ(xq)進行局部描述符連接處理得到Ψ(fφ(xi),fφ(xq)),再將連接后的特征圖輸入進度量學習模塊mΦ(·)。
對于5-way 5-shot訓練方式,本文遵循小樣本學習文獻[18-21]做法將支撐集中所有通過特征提取網絡fφ(·)的特征圖(feature map)直接進行按類求和,得到5個代表類別的疊加特征圖F1-F5,接下來的步驟與5-way 1-shot相同,LDR-Net網絡結構如圖3所示。
1.3.1 特征提取模型
為了與其他方法公平比較,本文的特征提取網絡由之前工作[20]所采取的4層卷積塊構成。每個卷積塊操作順序包含一個卷積層、一個批量歸一化層(batch normalization)、一個ReLU線性激活層,前3個卷積塊后各有一個2×2最大池化層(max-pooling)。
該模塊中每個卷積塊參數(shù)相同,都使用64通道的3×3卷積核[20],步長(stride)為1,填充(padding)為0。批量歸一化層中,ε作為一個很小的常數(shù)保證公式中分母不等于0,使得數(shù)據(jù)穩(wěn)定而添加的值,默認為0.000 01,動量(momentum)同文獻[20-21]相同,設置為1。
網絡輸入尺寸為84×84,輸出為64×9×9(c×h×w)。如此設置可以快速降低輸出特征圖大小,避免后續(xù)局部描述符連接生成的矩陣過大,導致度量學習網絡參數(shù)過多。這樣做也可以緩解小樣本學習中普遍存在的過擬合問題。
1.3.2 深度局部描述符連接
如圖2所示,支撐集與查詢集輸入圖像在經過fφ計算后分別生成大小為c×h×w的特征圖Fi與Q,c為通道數(shù),h為特征圖高度,w為寬度。在這里將其展開為c×m(m=h×w),公式可表示如下。
式中:D為深度局部特征表示空間;di即為第i個深度局部描述符。本文中輸入圖像大小為84×84,在這里可得到h=w=9,c=64的特征圖,經過上述維度處理后可得到81個深度局部描述符。
接下來對支撐集圖像和查詢集圖像進行深度局部描述符連接,通過Ψ(·)生成一個深度局部描述符連接空間L,特征連接表示如下。
其中DFi、Dq分別為支撐集和查詢集維度處理后的深度局部特征表示空間,連接空間L維度為m×m,通道為1,空間中的每一個元素為支撐集圖像深度局部描述符轉置矩陣與查詢集圖像相應矩陣的外積。最終查詢圖像與支撐集的所有圖像分別連接,共形成5個深度局部描述符連接空間,如圖4所示。
連接空間L中包含了2張圖片中每兩個深度局部描述符的連接結果,以局部特征為單位展示了2張圖片之間的聯(lián)系,相比于維度疊加[20],該連接方法提供了一種更豐富的圖像到類的表示。對于空間L中豐富的特征語義表示,本文不使用傳統(tǒng)度量方式,而是嘗試使用卷積神經網絡去擬合,L將作為下階段度量學習網絡的輸入。
1.3.3 度量學習網絡
該網絡將對深度局部描述符連接空間進行進一步的特征映射,提取圖像的類間局部不變特征,學習一種類間度量方式,最后對每個連接空間都生成一個相似度,分數(shù)最高者即視為同一類。在本文中,因深度局部描述符連接方式使得合成后的新特征圖尺寸增大,擁有相當于原輸入圖片尺寸甚至更大的規(guī)模,為了使網絡有效工作,在度量學習模塊中需要更深的網絡層數(shù)對其進行特征映射,使得降維映射更加平滑。
卷積神經網絡的確帶來了更豐富的度量方式,但鑒于小樣本學習極易陷入過擬合的特點,該模塊網絡參數(shù)量應盡量壓縮。由此原則,最終選取了如圖3所示的網絡結構,該部分網絡由8個卷積塊、4個池化層和2個全連接層組成,卷積塊參數(shù)與fφ中相同,此結構在最終池化操作后特征圖的感受野為76。2個全連接層分別為8維和1維,分別包含ReLU與Sigmoid激活函數(shù),使最終網絡輸出0到1的值。
1.3.4 損失函數(shù)
參考Relation-Net[20],由于使用了卷積神經網絡去擬合一種度量方式,從而度量未知的類別,可以視為要解決的是回歸問題。所以本文的損失函數(shù)不采用交叉熵函數(shù),而是使用了均方誤差(mean squared error,MSE)來訓練模型。損失函數(shù)可表示如下:
模型預測出的相似性分數(shù)θiq,將與標簽yk(類別匹配為1,不匹配為0)比較,并累加求和得到損失值。
本文旨在研究智能零售場景下的商品圖像分類,實驗數(shù)據(jù)來自曠視科技推出的RPC[9]超市零售商品圖像數(shù)據(jù)集。RPC數(shù)據(jù)集共17個元類(如方便面、紙巾、飲料等),包含200個單類,總共圖像數(shù)量83 739張,單品圖為53 739張,結算圖30 000張。本文使用RPC單品圖作為數(shù)據(jù)集,其中單品圖包含全部類別商品圖像。考慮到元類商品間的差異性,本文在17個元類中各抽取一個單類作為驗證集val,再各抽取2個單類作為測試集test,剩余數(shù)據(jù)全部作為訓練集train,分配結果如表1所示。
RPC數(shù)據(jù)集對于每個單類均有約160張包含不同角度拍攝的樣本圖片。本文根據(jù)官方提供的邊框坐標數(shù)據(jù),對所有RPC單品圖進行邊框裁剪處理,圖片大小設置為84×84,處理結果如圖5所示。
LDR-Net網絡模型實驗參數(shù)設置如表2所示。
表2 實驗參數(shù)設置
本文采取了5-way 1-shot和5-way 5-shot兩種實驗方式,LDR-Net特征提取模塊fφ使用了基于Mini-ImageNet數(shù)據(jù)集的Relation-Net特征提取模塊作為預訓練模型,由于模型更改,度量學習模塊mФ則從零開始訓練。根據(jù)預實驗測得學習率衰減最佳步數(shù)為50 000,相應的訓練次數(shù)設為300 000次,學習率、批樣本量、測試次數(shù)遵循小樣本學習文獻[19-21]設置。
為了驗證本文提出的LDR-Net模型在RPC數(shù)據(jù)集上進行小樣本分類的有效性,將該模型與其他基于度量方式的Few-shot經典模型進行對比實驗。對比模型分別為:Matching-Nets、Prototypical-Nets、Relation-Net、DN4(k=1),實驗數(shù)據(jù)集統(tǒng)一為RPC單品圖,本文將對比實驗的特征提取層統(tǒng)一修改為與LDR-Net一致。
此外為了說明RPC數(shù)據(jù)集的基本分類性能,本文還實現(xiàn)了一個基線方法k-NN。該方法采用LDR-Net的特征提取網絡并額外附加3個全連接層作為分類器來訓練RPC全部訓練集,測試階段采用C-way K-shot方式,從上述訓練好的網絡中提取倒數(shù)第2個全連接層的特征,并使用一個k-NN分類器得到最終分類結果,距離度量采用歐氏距離公式,結果如表3所示。
表3 模型實驗結果
表3展示了RPC數(shù)據(jù)集在各個Few-shot分類模型上訓練得到的分類結果,表中數(shù)據(jù)表示測試集600次測試的平均精度。本文提出的LDR-Net在保留神經網絡度量學習的前提下,改進了特征連接方式,引入了深度局部描述符連接,相比于DN4在1-shot與5-shot分別提升了1.98%與1.67%,驗證了深度局部描述符連接對網絡的分類能力有較明顯的提升。此外為了進一步研究深度局部描述符連接,在式(3)之前,本文實驗了深度局部描述符di的多種范數(shù)來生成不同的D,進而生成深度局部描述符連接空間L,并進行對比實驗。
表4 深度局部描述符連接空間對比實驗
表4展示了深度局部描述符di與其一范數(shù)二范數(shù)無窮范數(shù)對準確率的影響,實驗模型結構為圖3所示網絡結構。無窮范數(shù)方法由于損失了大量特征信息,效果較差,原始深度局部描述符和其二范數(shù)都可得到較高精度??梢钥闯?,引入深度局部描述符連接對于度量學習性能有著明顯提升。
為了進一步研究深度局部描述符方法在小樣本學習中的魯棒性,本文將訓練集類別數(shù)量逐步縮減,在不同類別數(shù)量情況下分別實驗探究模型的精度變化。
訓練集劃分遵循包含全部17個元類的原則,實驗訓練集組分別為17類、34類、51類、85類、119類、136類、149類,驗證集與測試集保持不變。本文分別實驗了5-way 1-shot與5-way 5-shot下LDR-Net與其他小樣本學習模型的分類效果,結果如下。
根據(jù)圖6、圖7展示,LDR-Net在5-way 1-shot與5-way 5-shot情形下隨著訓練類別減少,精度仍能保持在80%以上,明顯優(yōu)于Relation-Net[20],略微優(yōu)于同樣采用深度局部描述符的DN4[21],這一結果證明了對比局部特征在小樣本學習特別是商品圖像領域的魯棒性。
本文采用深度局部描述符連接結合神經網絡度量的方法,提出了小樣本學習分類模型LDRNet,將其應用于超市零售商品圖像分類,并進一步研究了此應用場景下用神經網絡擬合深度局部描述符連接空間的優(yōu)越性。實驗表明,LDR-Net在RPC超市零售商品數(shù)據(jù)集的表現(xiàn)優(yōu)于其他小樣本圖像分類模型,并且卷積神經網絡仍有優(yōu)化空間。本文的研究為零售商品圖像分類引入一個新的思路,下一步工作重點是增強數(shù)據(jù)集,并繼續(xù)探索更高效的度量學習模塊網絡結構,結合小樣本學習提升對零售商品圖像的分類精度與泛化能力。