【《基于深度學習下的圖像細粒度檢索實踐案例分析》3300字】_第1頁
【《基于深度學習下的圖像細粒度檢索實踐案例分析》3300字】_第2頁
【《基于深度學習下的圖像細粒度檢索實踐案例分析》3300字】_第3頁
【《基于深度學習下的圖像細粒度檢索實踐案例分析》3300字】_第4頁
【《基于深度學習下的圖像細粒度檢索實踐案例分析》3300字】_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

基于深度學習下的圖像細粒度檢索實踐案例分析目錄TOC\o"1-3"\h\u32690基于深度學習下的圖像細粒度檢索實踐案例分析 1211691.1試驗環(huán)境的配置和代碼部署 1241251.2兩種基于代理的損失函數(shù) 5260271.3對不同數(shù)據(jù)集下的檢索效果評估 8271661.4不同模型下的對數(shù)據(jù)集的細粒度檢索評估 111.1試驗環(huán)境的配置和代碼部署本實驗是基于PyTorch開源項目下進行的細粒度圖像檢索任務。同時也使用了tqdm和wandb進行可視化結果處理,因此我們要在實驗前對這些庫進行配置。首先因為本實驗的處理平臺是pycharm,在pycharm中直接進行PyTorch包的自動安裝配置會導致是CPU版本而無法使用GPU進行處理,出現(xiàn)訓練效果減緩的不佳效果。圖3-1使用CPU對模型進行訓練下的訓練數(shù)據(jù)在進行PyTorch的GPU版本安裝前,我們需要預先對CUDA和CUDNN進行安裝和配置。不同GPU下對NVCUDA64和PhysX的版本有著嚴格的要求,與CUDA和CUDNN的版本也要求嚴格的對應,我們需要通過面板調(diào)用到具體的GPU信息和兼容的CUDA版本,然后對CUDA進行配置和安裝,安裝后可以通過nvcc-v來確定CUDA的配置。圖3-2GPU信息和對應兼容的CUDA版本在對CUDA和CUDNN的配置完成后我們可以在中我們可以找到對應版本的pytorch庫安裝指令。因為我們是WINDOWS10系統(tǒng)下的GPU方式,同時已經(jīng)根據(jù)要求的CUDA版本,我們得到了具體的pip指令并進行安裝圖3-3得到的具體pytorch庫的安裝pip指令在通過配置后可以通過簡單地torch.cuda.is_available()來檢測cuda和pytorch的配置成功與否。在環(huán)境和基本庫配置完成后我們可以通過參數(shù)選擇來對代碼進行部署和測試圖3-4項目的模型選擇和參數(shù)設置在首次訓練時我們選擇了CUB_200_2011數(shù)據(jù)集,根據(jù)GPU的性能調(diào)整了batch_size的大小和epoch的輪數(shù),在dataloader的worker數(shù)量也做了合理減少到2來防止顯存不足的溢出。在embedding-size選擇了512,學習率為lr1e-4,同時也對學習率和權重的衰減做出了參數(shù)調(diào)整。最后我們首次選擇的損失函數(shù)為基于代理錨的損失函數(shù),接下來會對這個損失函數(shù)的相關進行介紹。1.2兩種基于代理的損失函數(shù)度量學習中的語義距離度量學習在視覺和圖像處理方面有著非常多的實用性,神經(jīng)網(wǎng)絡的發(fā)展也隨之應用到度量學習中。訓練網(wǎng)絡中的數(shù)據(jù)在空間中通常會成組的聚集,而這種情況下的損失函數(shù)通常有兩種:基于成對的損失函數(shù)和基于代理的損失函數(shù)。其中基于成對的損失函數(shù)則是通過傳入成對的圖像,在細粒度中如果這一對圖像擁有著類相同的標簽,則將其語義距離最小化提取他們其中的小特征,否則將分開并計入損失。通過這種成對的損失函數(shù)我們可以得到豐富的監(jiān)管信號,但是他們作為元數(shù)據(jù)輸入的話會導致訓練的復雜度過高,達到O(M2)甚至O(M3)水平。其中的M是輸入數(shù)據(jù)的樣本量,這樣會導致收斂速度過緩。同時存在一些對訓練沒有幫助的數(shù)據(jù),手動調(diào)整這些數(shù)據(jù)可能會導致過擬合問題的發(fā)生。而引入了代理(proxy)的損失函數(shù)就解決了這種復雜度過高的問題,代理會鼓勵同類別的代理相互靠近而遠離不同類別,最早有關于基于代理的損失函數(shù)研究則是Proxy-NCA[15]。公式1.1則是Proxy-NCA的損失函數(shù)。 (1.1)因為代理的數(shù)量相對于訓練數(shù)量大幅減少,所以會取得更加理想的復雜度和收斂速度。但是基于代理的損失函數(shù)由于過度依靠代理與數(shù)據(jù)的關系,相對于基于成對的損失函數(shù)造成了一些信息丟失。而本次使用的代理錨(proxy-anchor)[16]下的基于代理的損失函數(shù)則解決了這個問題。這種方式是通過把每個代理作為中間信息與其他所有信息相聯(lián)系起來,本身擁有著給予代理的特性可以快速可靠地進行收斂,同時我們也可以利用基于成對的損失函數(shù)的數(shù)據(jù)關系。它的損失函數(shù)結構像Proxy-NCA一樣為每一個類別分配了一個代理。l(1.2)在公式1.2中,其中δ>0是邊距,α>0是比例因子,P代表處理中所有代理的集合,而P+則是所有代理中正代理的數(shù)據(jù)集合。我們將Log-Sum-Exp作為max函數(shù),則很容易得到該損失是將p和它的最為接近的正項靠攏,然后推動p和它相似的負項分離。由于Log-Sum-Exp的性質(zhì),實際中的損失會拉動和推入批處理中的所有嵌入矢量,但強度不同,強度取決于它們的相對硬度,我們可以通過s(x,p)的梯度來證明這個特性。?l(X)?s(x,p)=1P+在公式1.3中hp+(x)=e?αs這種基于代理錨的損失函數(shù)相較于Proxy-NCA,前者主動參考了數(shù)據(jù)之間的關系,可以在訓練期間為網(wǎng)絡提供更多的監(jiān)督信號。在Proxy-NCA損失中,對于每一個正項的梯度比例恒定,而負項的梯度比例是僅通過少量的代理來計算的。在這種情況下,正項的恒定梯度會損害網(wǎng)絡的靈活性和通用性。與此相比下的代理錨損失函數(shù)則通過考慮正項和負項的相對硬度來確定梯度,得以增加了數(shù)據(jù)的緊湊型。在程序中我們通過以下代碼進行對損失函數(shù)的實現(xiàn)圖3-5基于代理錨的損失函數(shù)代碼實現(xiàn)之后我們會在實驗中對Proxy-NCA損失函數(shù)也進行模型訓練,并與代理錨的損失函數(shù)的細粒度檢索效果進行對比。以下是Proxy-NCA損失函數(shù)的實現(xiàn)。圖3-6Proxy-NCA損失函數(shù)的代碼實現(xiàn)1.3對不同數(shù)據(jù)集下的檢索效果評估首先我們使用的是inception網(wǎng)絡模型在基于代理錨的損失函數(shù)下對兩種數(shù)據(jù)集進行訓練和檢索評估。首先是通過對CUB_200_2011數(shù)據(jù)集的訓練和校驗。圖3-7第一次,第二次和第十次的訓練后檢索評估正確率在圖3-7中我們可以得到在十輪訓練中對CUB_200_2000數(shù)據(jù)集進行檢索的正確率趨向。其中R@N代表著對一張圖像進行檢索的次數(shù)對應的正確率。我們可以看出隨著訓練次數(shù)的增加,在初次檢索和二次檢索的成功率有顯著上升,但是在八次檢索仍未正確的情況下后續(xù)提升則相對較小,默認為檢索失敗的情況。因為CUB_200_2000數(shù)據(jù)集為鳥類數(shù)據(jù)集,我們可以推測為在訓練過程中對該種鳥類的特征提取并未提取到有利于細粒度檢索的特征,在有效特征提取存在著失效或者錯誤,導致與其他鳥類混淆從而導致檢索失敗。并且通過最后保存的最優(yōu)模型中我們可以得到,訓練后的評估準確率并非與訓練次數(shù)成正相關,在十次訓練評估中模型與測試效果最好的是第六次的訓練結果,其中加入提前結束機制可以達到提前收斂而減少訓練時長。之后是對CARS196數(shù)據(jù)集利用resnet50網(wǎng)絡模型在基于代理錨的損失函數(shù)下的訓練和圖像細粒度檢索評估。我們根據(jù)圖像訓練次數(shù)和檢索得到的成功率得到下圖3-6圖3-8對CAR196檢索評估正確率在圖3-8中我們可以看到,隨著訓練次數(shù)的增加,在圖像細粒度檢索的正確率上有著很好的進步效果,但是在第八輪訓練后的收益提高都遠小于前三次的收益??梢灶A測在進行了四輪訓練時已經(jīng)達到了比較成熟的檢索效果,可以進行提前結束機制。從第四輪以后的訓練只是做到了提高第一輪的檢索精準度,而對后面的檢索精準度影響并不顯著。圖3-9對CAR196的最優(yōu)訓練輪次和成功率根據(jù)對car196數(shù)據(jù)集的圖像細粒度檢索結果,我們可以推測到相對于鳥類的圖像細粒度檢索,汽車類的細粒度檢索更加方便提取顯著圖,可能與汽車本身的外觀形態(tài)和環(huán)境影響相對鳥類較小,而且汽車本身就有一個非常顯著的特征提取物“車標”。經(jīng)過幾次訓練后網(wǎng)絡可以更快速準確的區(qū)分出可以用來進行細粒度檢索的特征,相較于CUB_200_2000數(shù)據(jù)集的細粒度檢索評估水平有著顯著提升。我們通過代理錨損失函數(shù)的實驗結果與Proxy-NCA[15]在Inception模型下對CUB_200_2000數(shù)據(jù)集的訓練檢索結果對比,我們可以看出基于代理錨的損失函數(shù)對細粒度檢索的結果提升比單純使用基于代理的損失函數(shù)要有明顯的訓練效果提升,平均對每個數(shù)據(jù)集在檢索精準度都有15%-25%的精確度提升,也證明了基于代理錨的損失函數(shù)對細粒度檢索的有效性。(a)Proxy-NCA (b)代理錨圖3-10兩種損失函數(shù)對CUB_200_2000進行細粒度檢索的結果1.4不同模型下的對數(shù)據(jù)集的細粒度檢索評估本節(jié)中我們同樣使用了inception網(wǎng)絡模型和resnet50網(wǎng)絡模型來對CUB_200_2000數(shù)據(jù)集進行訓練并進行細粒度檢索任務和評估,來觀測基于代理錨的損失函數(shù)在不同模型下的細粒度檢索效果。(a)resnet50的檢索成功率(b)inception的檢索成功率圖3-11兩種模型對CUB_200_2000進行檢索的成功率評估通過訓練數(shù)據(jù)我們可以清晰的看出inception網(wǎng)絡模型和resnet50網(wǎng)絡模型在對CUB_200_2000數(shù)據(jù)集進行訓練的時候的最優(yōu)細粒度檢索準確度曲線。在折線圖中我們可以看到大致兩者的準確度

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論