動機
想象一下,如果有數(shù)十萬到數(shù)百萬張圖像的數(shù)據(jù)集,卻沒有描述每張圖像內(nèi)容的元數(shù)據(jù)。我們?nèi)绾谓⒁粋€系統(tǒng),能夠找到這些圖像的子集來更好地回答用戶的搜索查詢?
我們基本上需要的是一個搜索引擎,它能夠根據(jù)圖像與搜索查詢的對應(yīng)程度對圖像結(jié)果進行排序,可以用一種自然語言表示,,也可以用其他查詢圖像表示。
我們將在本文中解決問題的方法是訓(xùn)練一個深度神經(jīng)模型,該模型學(xué)習(xí)任何輸入圖像和文本的固定長度表示形式(或嵌入形式),使得如果文本-圖像或圖像-圖像是“相似的”,則他們在歐氏空間中接近,。
數(shù)據(jù)集
我找不到足夠大的搜索結(jié)果排名數(shù)據(jù)集,但我能夠得到這個數(shù)據(jù)集:http://jmcauley.ucsd.edu/data/amazon/它將電子商務(wù)項目的圖像鏈接到它們的標題和描述。我們將使用這些元數(shù)據(jù)作為監(jiān)督源來學(xué)習(xí)有意義的聯(lián)合文本-圖像表示。為了管理計算和存儲成本,這些實驗僅限于時尚(服裝、鞋子和珠寶)物品和50萬張圖像。
問題設(shè)置
我們的數(shù)據(jù)集將每個圖像與用自然語言編寫的描述鏈接起來。因此,我們定義了一個任務(wù),在該任務(wù)中,我們要學(xué)習(xí)圖像和文本的固定長度的聯(lián)合表示,以便每個圖像表示都接近其描述的表示。
模型
該模型有3個輸入:圖像(即錨點)、圖像標題與描述(即正例)和第三個輸入是一些隨機采樣的文本(即負例)。
然后定義兩個子模型:
圖像編碼器:Resnet50預(yù)訓(xùn)練的ImageNet+GlobalMaxpooling2D
文本編碼器:GRU+GlobalMaxpooling1D
圖像子模型產(chǎn)生錨點E_a的嵌入,文本子模型輸出正標題和描述E_p的嵌入和負例文本E_n的嵌入。
然后,我們通過優(yōu)化以下?lián)p失函數(shù)進行訓(xùn)練:
L = max( d(Ea, Ep)-d(Ea, En)+alpha, 0)
其中d為歐氏距離,alpha為超參數(shù),在本實驗中為0.4。
基本上,這種損失允許做的是使d(E_a,E_p)變小,使d(E_a,E_n)變大,這樣每個圖像的嵌入就接近于它的描述的嵌入,而遠離隨機文本的嵌入。
可視化結(jié)果
一旦我們學(xué)習(xí)了圖像嵌入模型和文本嵌入模型,我們就可以通過使用tsne (https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html)將它們投影到二維空間中來實現(xiàn)可視化。測試圖像及其對應(yīng)的文本描述用綠線連接
從圖中可以看出,通常在嵌入空間中,圖像及其對應(yīng)的描述是接近的。考慮到使用的訓(xùn)練損失,這是我們期望的。
文字圖片搜索
在這里,我們使用幾個文本查詢示例來在一組70,000張圖像中搜索最佳匹配。我們計算查詢的文本嵌入,然后計算集合中每個圖像的嵌入。我們最終在嵌入空間中選擇最接近查詢的前9張圖像。
這些例子表明,嵌入模型能夠?qū)W習(xí)圖像的有用表示形式和簡單單詞組成的嵌入。
圖像搜索
在這里,我們將使用圖像作為查詢,然后在包含70,000張圖像的數(shù)據(jù)庫中搜索與之最相似的示例。排序是由每對圖像在嵌入空間內(nèi)的歐氏距離決定的。
結(jié)果表明,生成的嵌入是圖像的高級表示,它捕獲了所表示對象的最重要特征,而不受方向、光照或局部細節(jié)的過度影響,也沒有經(jīng)過明確的訓(xùn)練。
結(jié)論:在這個項目中,我們研究了機器學(xué)習(xí)模塊,它允許我們構(gòu)建一個基于關(guān)鍵字和圖像的搜索引擎,應(yīng)用于圖像集合。其基本思想是學(xué)習(xí)一個有意義的文本和圖像的聯(lián)合嵌入函數(shù),然后利用嵌入空間中項之間的距離對搜索結(jié)果進行排序。
-
存儲
+關(guān)注
關(guān)注
13文章
4355瀏覽量
86175 -
keras
+關(guān)注
關(guān)注
2文章
20瀏覽量
6096
發(fā)布評論請先 登錄
相關(guān)推薦
評論