日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

深度学习表征的不合理有效性——从头开始构建图像搜索服务(二)

發(fā)布時(shí)間:2024/1/17 pytorch 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习表征的不合理有效性——从头开始构建图像搜索服务(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要:還在為搜索引擎的工作原理感到困惑嗎?看完本篇就可以自己動(dòng)手構(gòu)建搜圖服務(wù)了。


接著上篇《深度學(xué)習(xí)表征的不合理有效性——從頭開始構(gòu)建圖像搜索服務(wù)(一)》的內(nèi)容,上次遇到的問題是搜索相似圖的時(shí)候還是會(huì)出現(xiàn)瑕疵,因此本文介紹相關(guān)的處理辦法。

半監(jiān)督搜索

解決上文問題的常用方法是,首先使用目標(biāo)檢測(cè)模型,檢測(cè)貓圖像,然后對(duì)原始圖像裁剪之后再進(jìn)行圖像搜索,這樣做會(huì)很大程度地增加計(jì)算開銷,如果可能的話,希望能夠避免這種開銷。?
有一種更簡(jiǎn)單的“hacky”方法,包括重新權(quán)衡激活值,這可以通過加載最初丟棄的最后一層權(quán)重來完成,并且僅使用與正在尋找的類索引相關(guān)聯(lián)的權(quán)重來重新加權(quán)嵌入。例如,在下圖中,使用Siamese cat類的權(quán)重來重新權(quán)衡數(shù)據(jù)集上的激活(用綠色突出顯示)。


加權(quán)嵌入


根據(jù)Imagenet,Siamese cat中的284類權(quán)衡激活,來研究它是如何工作的。

正在搜索類似的圖像todataset / bottle / 2008_000112.jpg使用加權(quán)特征:

圖像13



可以看到,搜索一直偏向于尋找Siamese cat的照片,而不再展示任何的瓶子圖像,此外,可能會(huì)注意到最后一張照片是一只羊!這就非常有趣了,此時(shí)的模型又導(dǎo)致了另外一種不同類型的錯(cuò)誤,但模型更適合目前的任務(wù)需求。

從上面的結(jié)果可以看出,通過寬泛方式搜索類似的圖像,或者通過調(diào)整模型所訓(xùn)練的特定類別,使得模型向前邁出的了一大步,但由于使用的是在Imagenet上預(yù)訓(xùn)練的模型,因此僅限于1000個(gè)Imagenet類別。這些類別不能包羅萬象,所以希望找到更加靈活的東西。另外,如果我們只是在不提供輸入圖像的情況下搜索貓呢?

為了做到這一點(diǎn),使用的不僅僅是簡(jiǎn)單的技巧,還需利用一個(gè)能夠理解單詞語(yǔ)義能力的模型。

文本-->文本

嵌入文本

下面進(jìn)入自然語(yǔ)言處理(NLP)世界,可以使用類似的方法來索引和搜索單詞。
從GloVe加載了一組預(yù)先訓(xùn)練的矢量,這些矢量是通過從維基百科上爬蟲并學(xué)習(xí)該數(shù)據(jù)集中單詞之間的語(yǔ)義關(guān)系而獲得的。
像之前一樣創(chuàng)建一個(gè)索引,這次包含所有GloVe向量。之后就可以在嵌入中搜索類似的單詞。
例如,搜索said,返回[word,distance]列表:

  • ['said', 0.0]
  • ['told', 0.688713550567627]
  • ['spokesman', 0.7859575152397156]
  • ['asked', 0.872875452041626]
  • ['noting', 0.9151610732078552]
  • ['warned', 0.915908694267273]
  • ['referring', 0.9276227951049805]
  • ['reporters', 0.9325974583625793]
  • ['stressed', 0.9445104002952576]
  • ['tuesday', 0.9446316957473755]
    這似乎非常合理,大多數(shù)單詞在含義上與我們的原始單詞非常相似,或代表一個(gè)合適的概念。最后的結(jié)果(tuesday)也表明這個(gè)模型存在一些瑕疵,但它會(huì)讓我們這種方法會(huì)讓我們開始起步。現(xiàn)在,讓我們嘗試在模型中既包含單詞,又包含圖像。

一個(gè)大問題

使用嵌入之間的距離作為搜索方法似乎看起來非常合理,大多數(shù)單詞在含義上與原始單詞非常相似,但對(duì)單詞和圖像的表示似乎并不兼容。圖像的嵌入大小為4096,而單詞的嵌入大小為300,如何使用一個(gè)來搜索另一個(gè)?此外,即使兩個(gè)嵌入大小都相同,它們也會(huì)以完全不同的方式進(jìn)行訓(xùn)練,因此圖像和相關(guān)單詞很可能不會(huì)發(fā)生有隨機(jī)相同的嵌入。因此,需要訓(xùn)練一個(gè)聯(lián)合模型。
圖像<-->文本
現(xiàn)在創(chuàng)建一個(gè)混合模型,可以從單詞到圖像,反之亦然。?
在本教程中,將第一次實(shí)踐自己的模型,模型是從一篇名為DeViSE的優(yōu)秀論文中汲取靈感。我們的想法是通過重新訓(xùn)練圖像模型,并改變其標(biāo)簽的類型來結(jié)合這兩種表示。
通常,圖像分類器被訓(xùn)練為從許多類中選擇一個(gè)類別(Imagenet為1000類)。以Imagenet為例,轉(zhuǎn)化最后一層為大小1000的一維向量來表示每個(gè)類的概率。這意味著模型沒有語(yǔ)義理解哪些類與其他類相似,即將貓的圖像分類為狗導(dǎo)致與將其分類為飛機(jī)的錯(cuò)誤是一樣的。?
對(duì)于混合模型,用我們的類別單詞向量替換模型的最后一層,這允許模型學(xué)習(xí)到將圖像語(yǔ)義映射到單詞語(yǔ)義,這也意味著類似的類將彼此更接近(因?yàn)閏at的單詞向量比airplane更靠近dog)。我們將預(yù)測(cè)一個(gè)大小為300的語(yǔ)義豐富的單詞向量,而不是大小為1000的單詞向量,通過添加兩個(gè)全連接層來實(shí)現(xiàn)此目的:

  • 一個(gè)大小為2000的中間層
  • 一個(gè)大小為300的輸出層(GloVe單詞向量的大小)
    以下是在Imagenet上訓(xùn)練模型時(shí)的樣子:



這是修改后模型的樣子:



訓(xùn)練模型

在數(shù)據(jù)集的訓(xùn)練集上重新訓(xùn)練我們的模型,以學(xué)習(xí)預(yù)測(cè)與圖像標(biāo)簽相關(guān)聯(lián)的單詞向量。例如,對(duì)于具有類別cat的圖像,嘗試預(yù)測(cè)與cat相關(guān)聯(lián)的300長(zhǎng)度向量。訓(xùn)練需要一些時(shí)間,但這仍然要比Imagenet訓(xùn)練快得多。
與通常的數(shù)據(jù)集相比,本文使用的訓(xùn)練數(shù)據(jù)(數(shù)據(jù)集的80%作為訓(xùn)練集,即800個(gè)圖像)是微不足道的(Imagenet有一百萬張圖像)。如果使用傳統(tǒng)的類別訓(xùn)練技術(shù),我們不會(huì)指望模型在測(cè)試集上表現(xiàn)得非常好,并且也不會(huì)期望它在全新的例子上有不錯(cuò)的效果。
一旦模型被訓(xùn)練好,就可以從上面獲得GloVe單詞索引,并通過運(yùn)行數(shù)據(jù)集中的所有圖像,將其保存到磁盤,構(gòu)建圖像特征的新快速索引。

標(biāo)注

現(xiàn)在可以輕松地從任何圖像中提取標(biāo)簽,只需將我們的圖像提供給訓(xùn)練有素的網(wǎng)絡(luò),保存出來的大小為300的矢量,并從GloVe中找到英語(yǔ)單詞索引中最接近的單詞。讓我們?cè)囋囅旅孢@張圖片——它的類別標(biāo)簽是瓶子,雖然它包含各種各樣的物品。
圖像16
以下是生成的標(biāo)簽:

  • [6676, 'bottle', 0.3879561722278595]
  • [7494, 'bottles', 0.7513495683670044]
  • [12780, 'cans', 0.9817070364952087]
  • [16883, 'vodka', 0.9828150272369385]
  • [16720, 'jar', 1.0084964036941528]
  • [12714, 'soda', 1.0182772874832153]
  • [23279, 'jars', 1.0454961061477661]
  • [3754, 'plastic', 1.0530102252960205]
  • [19045, 'whiskey', 1.061428427696228]
  • [4769, 'bag', 1.0815287828445435]
    是一個(gè)非常好的結(jié)果,因?yàn)榇蠖鄶?shù)標(biāo)簽非常相關(guān)。這種方法仍然有提升空間,但它可以很好地掌握?qǐng)D像中的大多數(shù)元素。該模型學(xué)習(xí)提取許多相關(guān)標(biāo)簽,甚至從未經(jīng)過訓(xùn)練的類別中提取到的!

使用文本搜索圖像

最重要的是,可以使用聯(lián)合嵌入,輸入任何單詞都可以搜索圖像數(shù)據(jù)庫(kù)。只需要從GloVe獲取預(yù)先訓(xùn)練好的單詞嵌入,并找到具有最相似嵌入的圖像即可。

使用最少數(shù)據(jù)進(jìn)行廣義圖像搜索。

首先從搜索dog這個(gè)詞開始:

搜索dog術(shù)語(yǔ)的結(jié)果


結(jié)果相當(dāng)不錯(cuò),但是我們可以從標(biāo)簽上訓(xùn)練的任何分類器中都得到這個(gè)!

搜索ocean術(shù)語(yǔ)的結(jié)果。

模型了解ocean與water類似,并從boat類中返回許多物品。

搜索街道又會(huì)發(fā)生什么呢?


搜索“street”的結(jié)果

從圖中可以看到,返回的圖像來自各種類別(car,dog,bicycle,bus,person),但大多數(shù)圖像都包含或靠近街道,盡管我們?cè)谟?xùn)練模型時(shí)從未使用過這個(gè)概念。因?yàn)橥ㄟ^預(yù)先訓(xùn)練的單詞向量,利用外部知識(shí)來學(xué)習(xí)比簡(jiǎn)單類別在語(yǔ)義上更豐富的圖像向量映射,所以模型可以很好地概括為外部概念。

無以言表

英語(yǔ)雖然已經(jīng)發(fā)展了很久,但還不足以為一切都有對(duì)應(yīng)的詞。例如,沒有英文單詞表示“躺在沙發(fā)上的貓”,但這是一個(gè)對(duì)輸入搜索引擎完全有效的查詢。如果想要同時(shí)搜索多個(gè)單詞,就可以使用一種非常簡(jiǎn)單的方法,即利用單詞向量的算術(shù)屬性。事實(shí)證明,總結(jié)兩個(gè)單詞向量通常是非常有效的。因此,如果只是通過使用貓和沙發(fā)的平均單詞矢量來搜索我們的圖像,就可以希望獲得非常像貓、像沙發(fā)一樣的圖像、或者在沙發(fā)上有貓的圖像。

多個(gè)單詞的組合嵌入


下面使用混合嵌入搜索


搜索sofa+cat的結(jié)果


從圖中可以看到,結(jié)果不錯(cuò)。因?yàn)榇蠖鄶?shù)圖像都包含一些毛茸茸的動(dòng)物和一個(gè)沙發(fā)。我們的模型只訓(xùn)練單個(gè)單詞,也可以處理兩個(gè)單詞的組合,但還沒有構(gòu)建Google Image Search,但對(duì)于相對(duì)簡(jiǎn)單的架構(gòu)來說,本文絕對(duì)是有用的。

這種方法實(shí)際上可以很自然地?cái)U(kuò)展到各種域,感興趣的讀者可以應(yīng)用于各自的領(lǐng)域之中。

結(jié)論

希望讀者能夠發(fā)現(xiàn)這篇文章內(nèi)容的豐富,它揭開了一些基于內(nèi)容的推薦和語(yǔ)義搜索世界的神秘面紗,感興趣的讀者快上手試試吧。


以上為譯文,由阿里云云棲社區(qū)組織翻譯。

譯文鏈接
文章原標(biāo)題《The unreasonable effectiveness of Deep Learning Representations》

譯者:海棠,審校:Uncle_LLD。
文章為簡(jiǎn)譯,更為詳細(xì)的內(nèi)容,請(qǐng)查看原文。

總結(jié)

以上是生活随笔為你收集整理的深度学习表征的不合理有效性——从头开始构建图像搜索服务(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。