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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Zero-shot learning(零样本学习)

發(fā)布時間:2024/8/26 综合教程 65 生活家
生活随笔 收集整理的這篇文章主要介紹了 Zero-shot learning(零样本学习) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、介紹

在傳統(tǒng)的分類模型中,為了解決多分類問題(例如三個類別:貓、狗和豬),就需要提供大量的貓、狗和豬的圖片用以模型訓(xùn)練,然后給定一張新的圖片,就能判定屬于貓、狗或豬的其中哪一類。但是對于之前訓(xùn)練圖片未出現(xiàn)的類別(例如牛),這個模型便無法將牛識別出來,而ZSL就是為了解決這種問題。在ZSL中,某一類別在訓(xùn)練樣本中未出現(xiàn),但是我們知道這個類別的特征,然后通過語料知識庫,便可以將這個類別識別出來。

zero-shot learning的一個重要理論基礎(chǔ)就是利用高維語義特征代替樣本的低維特征,使得訓(xùn)練出來的模型具有遷移性。語義向量就是高維語義特征,比如一個物體的高維語義為“四條腿,有尾巴,會汪汪叫,寵物的一種”,那我們就可以判斷它是狗,高維語義對它沒有細(xì)節(jié)描述,但是能夠很好的對其分類,分類是我們的目的,所以可以舍去低維特征,不需要“全面”。

二、DAP模型

《Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer》

DAP可以理解為一個三層模型:第一層是原始輸入層,例如一張電子圖片(可以用像素的方式進行描述);第二層是p維特征空間,每一維代表一個特征(例如是否有尾巴、是否有毛等等);第三層是輸出層,輸出模型對輸出樣本的類別判斷。在第一層和第二層中間,訓(xùn)練p個分類器,用于對一張圖片判斷是否符合p維特征空間各個維度所對應(yīng)的特征;在第二層和第三層間,有一個語料知識庫,用于保存p維特征空間和輸出y的對應(yīng)關(guān)系,這個語料知識庫是事先人為設(shè)定的(暫時理解是這樣?)。

假設(shè)我們已經(jīng)訓(xùn)練好了一個DAP模型,第一層和第二層間的分類器可以判斷 是否黑眼圈、是否喜歡吃竹子 之類的特征,然后在語料知識庫里面包含一個映射:黑眼圈 喜歡吃竹子--> 熊貓,那么即使我們的模型在訓(xùn)練時沒有見過熊貓的圖片,在遇到熊貓的圖片時,我們可以直接通過對圖片的特征進行分析,然后結(jié)合知識語料庫判斷出這張圖片是熊貓。假設(shè)即使語料知識庫里面不包含 黑眼圈 喜歡吃竹子--> 熊貓 的映射,我們也可以通過計算熊貓圖片的特征與其他訓(xùn)練樣本的特征的漢明距離度量,得到熊貓和什么動物比較類似的信息。整個DAP的運作思想就是類似于上述過程。

缺點

算法引入了中間層,核心在于盡可能得判定好每幅圖像所對應(yīng)的特征,而不是直接去預(yù)測出類別;因此DAP模型在判定屬性時可能會做得很好,但是在預(yù)測類別時卻不一定;
無法利用新的樣本逐步改善分類器的功能;
無法利用額外的屬性信息(如Wordnet等)

三、ALE模型

《Label-Embedding for Attribute-Based Classification》

概要

在分類問題中,每個類別被映射到屬性空間中,即每個類別可用一個屬性向量來表示(例如:熊貓—>(黑眼圈,愛吃竹子,貓科動物......))。ALE模型即學(xué)習(xí)一個函數(shù)F,該函數(shù)用于衡量每一幅圖像和每個屬性向量之間的匹配度. ALE模型確保對于每幅圖像,和分類正確的類別的相容性比和其他類別的匹配度高。通過在AWA和CUB數(shù)據(jù)集上的實驗表明,ALE模型比DAP等模型在ZSL問題上的表現(xiàn)更好,而且ALE可以利用額外的類別信息來提高模型表現(xiàn),以及可以從零樣本學(xué)習(xí)遷移到其他擁有大量數(shù)據(jù)的學(xué)習(xí)問題中。

在CV領(lǐng)域,大部分的工作都集中與如何從一幅圖像里抽取出合適的特征信息(即上圖左側(cè)),而在ALE中,研究的重心在于如何把一個類別映射到合適的歐幾里得屬性空間。

模型推導(dǎo)

定義f(x; w)為預(yù)測函數(shù),定義F(x, y; w)為輸入x和類別y之間的匹配度。則當(dāng)給定一個需要預(yù)測類別的數(shù)據(jù)x時,預(yù)測函數(shù)f所做的便是從所有類別y中,找到一個類別y使得F(x, y; w)的值最大。

對于模型的參數(shù)w的求解過程為:對于所有樣本(x, y),盡可能得最大化 (frac{1}{n} sum_{n=1}^{N}{F(x,y;omega)}) ,但是對于這個目標(biāo)函數(shù),在圖像分類問題中無法直接優(yōu)化得出我們的最終目標(biāo)(具體為什么我也不知道。。。)因此作者從WSABIE算法中得到靈感,并借此來實現(xiàn)ALE算法。

Zero-shot learning:

文中借鑒WSABIE算法,得到我們的目標(biāo)函數(shù)為:(frac {1}{N} sum_{n=1}^{N} max_{y∈Y}l(x_n, y_n, y)).該目標(biāo)函數(shù)和SSVM很類似,對此解釋如下:

對于每一個樣本,計算對應(yīng)每個類別的得分。然后從其他所有不是正確類別的得分中找出最大的得分;
逐樣本累加后即得到損失函數(shù)的值,然后利用SGD等方法對參數(shù)進行更新即可;
算法的核心思想和SVM很像,即讓錯誤分類的得分得盡可能得比正確分類的得分小。

Few-shots learning:

在上述的Zero-shot learning下對應(yīng)的模型中,每個類別通過映射(phi(y))得到語義空間的值是實現(xiàn)通過先驗信息固定的,但是在使用模型預(yù)測的過程中,可能會逐步遇到之前訓(xùn)練樣本中不存在對應(yīng)類別的數(shù)據(jù),那么ALE就具有能逐步利用新的訓(xùn)練樣本來改善模型的作用。在此問題下,模型的目標(biāo)函數(shù)變?yōu)椋?/p>

[frac {1}{N} sum_{n=1}^{N} max_{y∈Y}l(x_n, y_n, y) + frac{mu }{2}egin{Vmatrix} Phi - Phi ^{Lambda }end{Vmatrix}^{2}
]

在上述公式中,參數(shù)(Phi)為在一定維度隨機初始化的參數(shù)。在使用SGD等方法進行參數(shù)更新的時候,為使該損失函數(shù)的值盡可能得小,顯然(Phi)要盡可能得接近(Phi^{Lambda}),同時也利用了訓(xùn)練樣本中存在的部分信息。從而使得AEL模型達到可以逐步利用新的訓(xùn)練樣本(之前的訓(xùn)練樣本中不存在的類別)的信息來改善模型。

ALE模型如何利用額外的屬性等信息來源?

DAP模型針對每一個屬性訓(xùn)練一個分類器,再從屬性向量空間里面找到和測試樣本最接近的類別。然后ALE并沒有特別針對語義向量空間的每一個維度進行學(xué)習(xí),ALE直接學(xué)習(xí)了從特征空間到語義向量空間的映射。其中( heta(x))表示從圖像得到的特征,(varphi (y))則是從類別到語義向量空間的映射。

因為(varphi (y))是獨立于訓(xùn)練數(shù)據(jù)的,因此可以根據(jù)需要變換為其他種類的先驗信息,例如HLE模型,而在DAP模型中,因為模型限定了只能對單一屬性進行訓(xùn)練,因為就無法利用其他種類的先驗信息了。

模型如何對ZS類進行預(yù)測

ALE模型利用屬性等語義信息,將每個類別標(biāo)簽嵌入到維度為85的語義空間內(nèi)(假設(shè)使用85個屬性描述類別)。ALE模型所做的就是學(xué)習(xí)到一個從特征空間到語義空間的映射,該映射確保得到語義空間內(nèi)的點與正確類別的語義向量更近,盡可能得與錯誤類別的語義向量更遠(yuǎn)。這樣,在對ZS進行預(yù)測時,映射所得到的在語義空間上的點與在訓(xùn)練時出現(xiàn)過的那些類別所對應(yīng)點會很遠(yuǎn),從而使得與正確的ZS類對應(yīng)的語義向量更近,從而進行預(yù)測。

DAP與ALE

針對每個測試樣本,DAP利用分類器得到一個屬性向量,然后直接從預(yù)定義好的屬性空間里找到一個與該屬性向量最近的類別作為預(yù)測結(jié)果輸出。而ALE在訓(xùn)練時利用映射函數(shù)衡量每個輸入與語義向量之間的得分,損失函數(shù)的訓(xùn)練過程確保正確類別的得分都比錯誤類別的得分高出一定值(類似SVM),因此ALE的訓(xùn)練過程是直接以類別預(yù)測為指導(dǎo)的。

DAP的模型結(jié)構(gòu)其實和ALE模型的結(jié)構(gòu)大體上是一致的,甚至連映射矩陣、語義空間的矩陣維度都是相同的,但是區(qū)別在于兩者的監(jiān)督方式不同。DAP針對是在屬性上進行 監(jiān)督學(xué)習(xí)的,針對每個屬性維度學(xué)習(xí)一個分類器;而ALE是針對類別進行監(jiān)督學(xué)習(xí)的,從而導(dǎo)致映射層的參數(shù)不同。

DAP的監(jiān)督方式?jīng)]有學(xué)習(xí)到屬性之間的相關(guān)性,而ALE訓(xùn)練之后確保類別相似的在語義空間內(nèi)都具有類似的分布,且類別相似大都具有相同的特征,導(dǎo)致了具有不同特征的類別在語義空間內(nèi)具有不同的分布,從而學(xué)習(xí)到屬性間的相關(guān)性。

四、SAE模型

《Semantic Autoencoder for Zero-Shot learning》

概要

傳統(tǒng)的ZSL問題,經(jīng)常遇到映射領(lǐng)域漂移問題,在SAE模型中,為了解決這個問題,要求輸入x經(jīng)過變換生成的屬性層S,擁有恢復(fù)到原來輸入層x的功能,并且添加了映射層必須具有具體的語義意思的限制,通過加入這個限制,確保了映射函數(shù)必須盡可能得保留原輸入層的所有信息。

映射領(lǐng)域漂移(Projection domain shift)

對于zero-shot learning問題,由于訓(xùn)練模型時,對于測試數(shù)據(jù)類別是不可見的,因此,當(dāng)訓(xùn)練集和測試集的類別相差很大的時候,比如一個里面全是動物,另一個全是家具,在這種情況下,傳統(tǒng)zero-shot learning的效果將受到很大的影響。

為什么SAE模型可以解決映射領(lǐng)域漂移問題?

介紹

如今CV的研究方向已經(jīng)逐步朝著大規(guī)模的分類問題發(fā)展了,但是由于在大數(shù)據(jù)集(如ImageNet)的21814個類別里,有296個類別的圖像僅僅只有一個圖像數(shù)據(jù),因此可擴展性還是一個嚴(yán)峻的問題。

SAE模型的輸入特征空間是通過GoogleNet或則AlexNet從圖像數(shù)據(jù)里提取出來的特征,而輸出語義空間是頭ing過Skip-gramWikipedia訓(xùn)練得到的word2vec向量。

問題

SAE模型在預(yù)測的時候,是從unseen classes的語義空間向量里找到一個和當(dāng)前測試樣本距離最近的作為預(yù)測結(jié)果。那么在實際應(yīng)用中,當(dāng)一個新的樣本進來,我們怎么確定這個樣本是屬于seen classes還是unseen classes的語義空間里進行預(yù)測呢?

五、SCoRE

《Semantically Consistent Regularization for Zero-Shot Recognition》

Deep-RIS

要學(xué)習(xí)樣本X到屬性向量S的映射W,設(shè)訓(xùn)練集:

[mathcal{D}=left{left(mathbf{x}^{(i)}, mathbf{s}^{(hat{i})}ight)_{i=1}^{N}ight}
]

其中x為輸入樣本,y為樣本標(biāo)簽;屬性集合為:

[mathbf{s}^{(i)}=left(s_{1}^{(i)}, ldots, s_{Q}^{(i)}ight)
]

對于Q個屬性,為每個屬性建立一個CNN,作為屬性分類器:

[a_{k}left(mathbf{x} ; mathbf{t}_{k}, Thetaight)=sigmaleft(mathbf{t}_{k}^{T} heta(mathbf{x} ; Theta)ight)
]

其中,為sigmoid函數(shù)。損失函數(shù)可以定義為交叉熵?fù)p失。

Deep-RULE

假設(shè)有Q個屬性,用二值表示;有C個類別,則可以將每個類別轉(zhuǎn)換為one-hot的形式:

[phi_{k}(y)=left{egin{array}{ll}{1} & { ext { if class } y ext { contains attribute } k} \ {-1} & { ext { if class } y ext { lacks attribute } k}end{array}ight.
]

即為類別y的語義編碼,則分類器可以定義為:

[h(mathbf{x} ; mathbf{T}, Theta)=Phi^{T} a(mathbf{x})=Phi^{T} mathbf{T}^{T} heta(mathbf{x} ; Theta)
]

其中 ( heta(x; Theta)) 表示輸入圖片的特征表示;T為一個映射矩陣,(Theta^{T})表示類別的one-hot表示。若使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)上述目標(biāo)函數(shù),只需要先用CNN提取圖片的特征,通過一個全連接層將特征映射到語義空間中(也就是學(xué)習(xí)映射矩陣T),輸出時為類別y的形式即可。損失函數(shù)直接采用網(wǎng)絡(luò)輸出和真實樣本之間的交叉熵?fù)p失即可。

Deep-RIS和Deep-RULE之間的關(guān)系

可以從兩者的損失函數(shù),來說明它們之間的關(guān)系。Deep-RIS對每一個單獨的屬性ak(x)進行了監(jiān)督學(xué)習(xí),這是一種很強的約束,它把屬性向量的表達限制在一個固定的范圍內(nèi);反觀Deep-RULE,它建立了一個語義空間SV,將樣本和類別屬性化之后,投影到該語義空間中。這樣做的結(jié)果是:屬性向量之間有了相關(guān)關(guān)系,使得屬性向量的表達更加豐富;但同時,會產(chǎn)生冗余空間,這個冗余空間的問題在于,它會加重semantic domain shift的問題。更詳細(xì)的解釋是:設(shè)訓(xùn)練集中樣本的屬性向量所構(gòu)成的語義空間XV的往往要小于SV,令NV=SV-XV,如果在測試集中,測試樣本的屬性向量處于NV中,則由訓(xùn)練樣本訓(xùn)練出來的分類器將無法對該測試樣本進行分類。在Deep-RIS中,對于樣本到屬性向量之間的映射有著非常強的約束,使得XV和SV相近。在同樣的屬性定義的前提下,由于NV的存在,使得Deep-RULE更有可能無法處理測試集中的類別。

論述:但同時,會產(chǎn)生冗余空間,這個冗余空間的問題在于,它會加重semantic domain shift的問題

解釋:假設(shè)有a b c d四個特征,訓(xùn)練集的類別A和B分別具有ab和ac特征,即使測試集的類別是bc,也能進行預(yù)測,因為訓(xùn)練時已經(jīng)都對abc的語義空間進行了監(jiān)督學(xué)習(xí),但是如果測試集包含d特征,這是類別A和B都不具有的特征(領(lǐng)域漂移問題),這就會使得模型無法正常得進行預(yù)測。

通過上面的論述其實可以知道,如果NV很小,幾乎沒有測試集類別的屬性向量位于其中,則Deep-RULE的方法會取得更好的效果;如果NV很大,測試集中很多類別的屬性向量位于其中,則Deep-RIS的方法可能會更好。

通過對上述兩類方法的分析,可以發(fā)現(xiàn),兩種方法存在互補性。如果能夠?qū)eep-RIS對于單個屬性的約束融入到Deep-RULE中,就可以一定程度上使得NV變小,從而得到更好的結(jié)果。

以DAP和ALE兩種典型的模型為例,當(dāng)采用屬性作為語義空間的表達時,兩者屬性空間的構(gòu)成基本是一致的,都是由一系列的屬性構(gòu)成(例如有尾巴、會飛等)。最核心的不同在于DAP針對每一個屬性監(jiān)督學(xué)習(xí)一個分類器(如SVM),因此訓(xùn)練樣本所包含的屬性空間信息往往和整個屬性空間差別很小。DAP對于每一個測試類別,輸出一個維度為D(屬性的個數(shù))的向量。且DAP沒有學(xué)習(xí)到屬性之間的依賴關(guān)系,比如“水中動物”和“有翅膀”這兩個屬性就有著很強的負(fù)相關(guān),則表明了我們可以利用更少的屬性維度去表達和之前一樣的信息。

而ALE直接從輸入的特征空間學(xué)習(xí)一個到屬性空間的映射,在訓(xùn)練過程中采用rank函數(shù)——確保所有正確類別的得分都比錯誤類別高。模型的輸出是一個維度為C(類別個數(shù))的變量,表示測試數(shù)據(jù)在每一個類別上的得分情況。因此ALE是從類別C的維度去進行監(jiān)督學(xué)習(xí)的。在ALE訓(xùn)練完成后,訓(xùn)練樣本里存在的類別在測試時對應(yīng)的得分也會最大,但是對于訓(xùn)練樣本中不存在的類別(ZS類),因為在訓(xùn)練時沒有數(shù)據(jù)可以用于ZS類的監(jiān)督學(xué)習(xí),所有在測試時ZS類的得分表現(xiàn)就沒有那么好。

因為屬性空間是利用先驗知識對所有類別映射而成的,因此存在一些屬性只有在ZS類別里存在,而在訓(xùn)練類別里不存在。

以googlenet、CUB、attribute為例。pool5的輸出是1024維,相當(dāng)于visual feature;然后接一個312維的fc1,(fc1參數(shù)shape為1024 * 312,相當(dāng)于公式中的T),fc1的輸出fc_sem,用來做屬性預(yù)測,也就是RIS; fc_sem再接一個150維的 fc2,(fc2參數(shù)shape為312*150,相當(dāng)于公式中的W),fc2的輸出fc_obj,用來做類別預(yù)測,也就是RULE。fc2的參數(shù),才是wc,用來跟事先定義好的codeword做L2約束。如果wc,直接使用事先定義好的codeword,W不學(xué)習(xí),只學(xué)習(xí)T,那么這個流程將會是是經(jīng)典的套路:visual space投影到semantic space,然后投影后的visual feature和semantic feature,使用dot product度量類別之間的相似性。根據(jù)Train set上的類別信息,使用分類loss,學(xué)習(xí)T。這篇工作相當(dāng)于把用于dot product的codeword,也改成可以學(xué)習(xí)的了,放松了約束,可以看成是一種正則,用于增加模型在測試集上的泛化能力。

問題

Abstract: The latter addresses this issue but leaves part of the semantic space unsupervised.
ALE和DAP中兩個參數(shù)W之間的區(qū)別?

六、遷移學(xué)習(xí)

參考

cs231n-(9)遷移學(xué)習(xí)和Fine-tune網(wǎng)絡(luò)

遷移學(xué)習(xí)與fine-tuning有什么區(qū)別?

什么是遷移學(xué)習(xí) (Transfer Learning)?這個領(lǐng)域歷史發(fā)展前景如何?

GMIS 2017大會楊強演講:遷移學(xué)習(xí)的挑戰(zhàn)和六大突破點

目前ZSL還是不能擺脫對其他模態(tài)信息的依賴:比如標(biāo)注的屬性,或者用wordvec去提語義特征,多數(shù)做法是將視覺特征嵌入到其他模態(tài)空間,或者將多個模態(tài)特征映射到一個公共latent空間,利用最近鄰思想實現(xiàn)對未見類的分類,本質(zhì)上也是一種知識遷移。

Transfer Learning涉及的范圍就很大了,最近我也在看,涉及的細(xì)分領(lǐng)域比如Domain Adaptation等等,許多Transfer Learning中的技術(shù)也用于提高ZSL的性能,比如將Self-taughting Learning,Self-Paced Learning的思想可以用到Transductive ZSL中提高ZSL的算法性能。

總結(jié)

以上是生活随笔為你收集整理的Zero-shot learning(零样本学习)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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