【花師小哲】當(dāng)代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(6)——對(duì)比學(xué)習(xí)
今天偶然看到一張沙雕圖:

然后,我發(fā)現(xiàn),哎,這張圖不是很好地詮釋了什么是對(duì)比學(xué)習(xí)嘛。想到之前介紹神經(jīng)網(wǎng)絡(luò)科普的時(shí)候光顧著寫B(tài)ERT了,沒有想到另一個(gè)著名的預(yù)訓(xùn)練任務(wù)——對(duì)比學(xué)習(xí)及著名的視覺大模型SimCLR。于是,在這里稍微盤一盤。


1.對(duì)比學(xué)習(xí)
所謂對(duì)比學(xué)習(xí),思想也非常簡(jiǎn)單。作為一種自監(jiān)督方法,對(duì)于一張圖片,機(jī)器是無法直接指導(dǎo)它是只狗還是只貓的,但是我們可以讓它知道貓和狗是不同的。對(duì)比學(xué)習(xí)就是希望相似的圖片的距離(這里的距離簡(jiǎn)單理解就是將圖片都映射到一個(gè)高維空間中的距離)盡可能近,差別很大的圖片的距離盡可能遠(yuǎn)??蚣苋缦拢?/p>
可以看到,算法分為兩支,即每次輸入兩個(gè)實(shí)例,如果這兩個(gè)實(shí)例是相似的,我們就認(rèn)為這是一對(duì)正例,就讓它們的距離盡可能近;否則就構(gòu)成一對(duì)反例,我們就讓它們的距離盡可能遠(yuǎn)。
對(duì)比學(xué)習(xí)的好處是,雖然通過預(yù)訓(xùn)練,神經(jīng)網(wǎng)絡(luò)并不知道什么是貓,什么是狗,但它知道貓的圖片和狗的圖片距離很遠(yuǎn),這樣在微調(diào)時(shí)我們給它一些貓的實(shí)例和狗的實(shí)例它就能很快地進(jìn)行貓狗的區(qū)分(對(duì)于其他機(jī)器視覺任務(wù)也是如此)

2.數(shù)據(jù)增強(qiáng)
那么問題來了,由于是自監(jiān)督學(xué)習(xí),所以我們甚至不能直接標(biāo)明兩張圖片是否是相似的,那么怎么辦呢?方法其實(shí)也很簡(jiǎn)單,即數(shù)據(jù)增強(qiáng)。
對(duì)于同一張圖片,我們可以稍作修改,例如放縮、旋轉(zhuǎn)、鏡像、濾鏡、遮擋等,如下圖所示:

經(jīng)過這樣操作后的圖片我們就認(rèn)為它和原圖片是相似的,這樣就構(gòu)成一對(duì)正例。而我們從網(wǎng)上隨機(jī)扒拉下來的兩張圖片就構(gòu)成一對(duì)反例(一般是很難做到兩張剛好都是狗[還得是很相似的狗,例如都是草地上的一只站立著的臘腸狗]的),這樣,我們就可以在無任何標(biāo)注的情況下訓(xùn)練模型了。

3.預(yù)訓(xùn)練大模型
需要注意的是,對(duì)比學(xué)習(xí)依然也是預(yù)訓(xùn)練大模型的一種,它能有強(qiáng)大的能力很大程度上也是因?yàn)槠鋮?shù)大,記住了大量的實(shí)例。