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