Distant Domain Transfer Learning遠域遷移學習--通過人臉識別飛機!
論文地址:
http://www.ntu.edu.sg/home/sinnopan/publications/[AAAI17]Distant Domain Transfer Learning.pdf
從標題就可以看出,這是一個想法很牛掰的方法,當然實際也很牛掰。現今很多遷移學習方法都是假設源域和目標域之間存在某些相似性,這樣才能夠進行遷移,而這篇文章提出了一種方法,叫做:Selective Learning Algorithm,這種方法即使源域和目標域毫無關係,比如源域使用人臉影象,目標域中是飛機影象,都可以完成遷移。Amazing!這怎麼可能呢?不過換一種思路的話是可行的,論文基於一種傳遞和推斷的思想,怎麼個傳遞和推斷呢?我們假設源域和目標域分別是兩個不同的點,要從源域走到目標域,怎麼走呢?雖然源域和目標域完全不同,隔得很遠,但是我們可以通過中間的點,一步一步走到源域,而這中間的點,又被叫做中間域(媒介域)。
好了,大體的思想我們知道了,是通過傳遞來實現的,現在我們回到遷移中來,要從源域通過多箇中間域,最終對目標域進行任務判別,那麼需要從中間域中找出與源域相似的特徵,又與目標域相似的特徵,這樣才可以將三者結合起來。因為源域可能與目標域差的實在太遠了,而中間域裡可能包含了很多對目標域有用的資料,我們要用到的中間域可能很多,所以中間域(這裡把所以的中間域看成一個集合,就叫中間域,裡面包含了很多域的資料)中的特徵也很多,那怎麼選擇滿足要求的特徵呢?同時,如果我們找到了這些特徵,但是這些特徵僅是與源域、目標域相似而已,而我們最終的目的是通過這些特徵能夠對目標任務進行判定,那麼我們還需要從特徵中選擇出具有邊資訊(side information)的特徵用於判別目標任務,其中邊資訊可以理解為具有指向性的資訊。是的,這樣看起來就初步完善了,論文的主要的兩大步驟也是這兩點:
- 樣本(特徵)選擇
- 合併邊資訊
樣本自動選擇
在論文中,作者假設源域是有標籤的,目標域有一小部分有標籤,而中間域是沒有標籤的。然後,SLA的框架如下:
那怎麼從中間域中選出對目標域有用、同時又與源域相關(源域和中間域的區別就在於源域有標籤可用)的資料或特徵呢?這裡,作者用到了自編碼器(無監督–聯想到中間域是無標籤的),自編碼器分為編碼器和反編碼器(其中反編碼過程又叫做重構過程),輸入資料通過編碼對映為隱藏特徵: ,然後反編碼器通過重構誤差,又將 儘可能的解碼: ,讓x’接近原始資料x。經過這麼一個過程,中間的特徵h就可以認為是原始資料x的一種特徵提取,並且是具有魯棒性的高層級特徵。
好,自編碼器我們大概知道個是什麼鳥回事了,那這和樣本自動選擇有什麼關係呢?是這樣的,作者認為,如果同一個自編碼器在源域和目標域資料上都取得較小的重構誤差,那麼這個源域資料就類似於目標域資料,或者是對目標域來說是有用的,也可以這麼理解,在重構誤差都較小的情況下,源域通過編碼器(一對引數)得到的特徵h與目標域通過同一個編碼器(一樣的引數)得到的特徵可以看為是相近的。另外中間域和目標域也是那麼個回事。OK,通過這樣就可以選出源域中對目標域有用的資料了—通過重構誤差判斷,然後通過在源域、目標域、中間域上同時最小化損失函式來完成這一過程,其中損失函式又由上面提到的重構誤差組成:
其中 對應於自編碼器的編碼器(encoder)引數和反編碼器(decoder)引數, 分別為源域和中間域的選擇指示向量,表示第幾個樣本為選中,選中的用1表示,不選的用0表示。而 是關於 的一個正則化項,用於避免 中全部為0的情況,其中 如下: