當前位置:
首頁 > 新聞 > Active Learning:一個降低深度學習時間,空間,經濟成本的解決方案

Active Learning:一個降低深度學習時間,空間,經濟成本的解決方案

下面要介紹的工作發表於CVPR 2017,題為??「Fine-tuning Convolutional Neural Networks for Biome?dical Image Analysis: Actively and Incrementally?」。它主要解決了一個深度學習中的重要問題:如何使用儘可能少的標籤數據來訓練一個效果 promising 的分類器。根據我的判斷,當遇到兩種情況的時候,這篇論文的可以非常強大的指導意義:

一共手頭有 100 個未標記樣本,和僅僅夠標記 10 個樣本的錢,老闆說,通過訓練這十個標記的樣本,能接近甚至達到訓練 100 個樣本的 performance;

手頭有了一個已經在 100 個樣本中訓練完的分類器,現在又來了 100 個新標記的樣本,老闆說,只給提供夠訓練 10 個樣本的計算機;或者只給你提供夠訓練 10 個樣本的時間,讓分類器儘快學習到新來樣本的特徵;

這兩個情況發生的條件是完全不同的,Situation A 發生在屌絲公司,沒有錢拿到精標記的數據集,卻也想做深度學習;Situation B 一般發生在高富帥公司,有海量的精標記數據,但是由於目前即使是最牛逼的計算機也不能用深度學習在短時間內一次性地去處理完這些數據(e.g.,內存溢出,或者算上個幾年都算不完)。Anyway,我想我已經說清楚應用背景了,讀者可以根據實際情況判斷是否往後讀下去。

感謝你選擇繼續往下閱讀,那麼如果覺得下文所傳遞的思想和方法對你有幫助,請記得一定引用這篇 CVPR 2017 的文章。Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally.

@InProceedings,

title = ,

booktitle = ,

month = ,

year =

}


1. ?為什麼會想到去解決這個問題?

現在深度學習很火,做的人也越來越多,那麼它的門檻可以說是很低的,Caffe,Keras,Torch 等等框架的出現,讓該領域的 programming 的門檻直接拆了。所以深度學習真正的門檻變成了很簡單概念——錢。這個錢有兩個很重要的流向,一是計算機的運算能力(GPU Power),二是標記數據的數量。這兒就引出一個很重要的問題:是不是訓練數據集越多,深度學習的效果會越好呢?這個答案憑空想是想不出來的,能回答的人一定是已經擁有了海量的數據,如 ImageNet,Place 等等,他們可以做一系列的實驗來回答這個問題。需要呈現的結果很簡單,橫坐標是訓練集的樣本數,縱坐標是分類的 performance,如下圖所示:

Fig.1 如果答案是左圖,那麼就沒什麼可以說的了,去想辦法弄到儘可能多的訓練數據集就 ok,但是現實結果是右圖的紅實線,一開始,訓練集的樣本數增加,分類器的性能快速地在上升,當訓練集的樣本數達到某一個臨界值的時候,就基本不變了,也就是說,當達到了這個臨界的數目時,再去標註數據的 ground truth 就是在浪費時間和金錢。有了這個認知,接下來就是想辦法讓這個臨界值變小,也就是用更小的訓練集來更快地達到最理想的性能,如右圖的紅虛線所示。紅實線我們認為是在隨機地增加訓練集,那麼紅虛線就是用主動學習(Active Learning)的手段來增加訓練集,從而找到一個更小的子集來達到最理想的性能。

這裡需要說明的一點是,訓練樣本數的臨界點大小和這個分類問題的難度有關,如果這個分類問題非常簡單,如黑白圖像分類(白色的是 1,黑色的是 0),那麼這個臨界值就特別小,往往幾幅圖就可以訓練一個精度很高的分類器;如果分類問題很複雜,如判斷一個腫瘤的良惡性(良性是 0,惡性是 1),那麼這個臨界值會很大,因為腫瘤的形狀,大小,位置各異,分類器需要學習很多很多的樣本,才能達到一個比較穩定的性能。

FIG.1對於很多從事深度學習的無論是研究員還是企業家都是一個十分有啟發性的認知改變。一般來講,人的慣性思維會引領一個默認的思路,就是訓練樣本越多越好,如左圖所示,這將直接導致許多工作的停滯不前,理由永遠是「我們沒有足夠的數據,怎麼訓練網路!」進一步的思路是圖二的紅實線認知:要多少是多啊,先訓著再說,慢慢的就會發現即便用自己有的一小部分數據集好像也能達到一個不錯的分類性能,這個時候就遇到一個問題:自己的數據集樣本數到底有沒有到達臨界值呢?這個問題也很關鍵,它決定了要不要繼續花錢去找人標註數據了。這個問題我會在第三部分去回答它,這裡先假設我們知道了它的答案,接下來的問題就是如何讓這個臨界值變小?


2. 如何讓臨界值變小?

解決方案就是主動學習(Active Learning),去主動學習那些比較「難的」,「信息量大的」樣本(hard mining)。關鍵點是每次都挑當前分類器分類效果不理想的那些樣本(hard sample)給它訓練,假設是訓練這部分 hard sample 對於提升分類器效果最有效而快速。問題是在不知道真正標籤的情況下怎麼去定義 HARD sample?或者說怎麼去描述當前分類器對於不同樣本的分類結果的好壞?

定義:由於深度學習的輸出是屬於某一類的概率(0~1),一個很直觀的方法就是用「熵(entropy)」來刻畫信息量??,把那些預測值模稜兩可的樣本挑出來,對於二分類問題,就是預測值越靠近 0.5,它們的信息量越大。還有一個比較直觀的方法是用「多樣性(diversity)」來刻畫 labeled data 和 unlabeled data 的相似性。這兩個方法都是在「Active batch selection via convex relaxations with guaranteed solution bounds」中被提出。是十分重要的兩個 Active Learning 的選擇指標。

Important Observation:To boost the performance of CNNs in biomedical imaging, multiple patches are usually generated automatically for each candidate through data augmentation; these patches generated from the same candidate share the same label, and are naturally expected to have similar predictions by the current CNN before they are expanded into the training dataset.

有了這兩個指標來選 hard sample,是比較靠譜了——實驗結果表明,這比隨機去選已經能更快地達到臨界拐點了。

FIG.2Active Learning 的結構示意圖。利用深度學習所帶來的優勢在於,一開始你可以不需要有標記的數據集。

舉例來講,假設你是一個養狗的大戶,你現在想做一個非常偏的(專業化的)分類問題,如捲毛比雄犬和哈瓦那犬的分類問題,你手頭有這兩種狗各 50 條,你自己可以很輕鬆地區分這 100 條狗,現在需要做的是訓練一個分類器,給那些不懂狗的人,他們拍了狗的照片然後把照片輸入到這個分類器就可以很好地判斷這是捲毛比雄犬還是哈瓦那犬。首先你可以給這 100 條狗拍照片,每條狗都有不同形態的 10 張照片,一共拍了 1000 張沒有標記的照片。對於這 1000 張照片,你所知道的是哪 10 張對應的是一條狗,其他什麼都不知道。

在這個實際分類問題中,你擁有絕對的數據優勢,即便是 Google Image 也不能企及,當然一種選擇是你把 1000 張圖片從頭到尾看一遍,標註好,但是你更希望是把大多數簡單的分類工作交給分類器,自己儘可能少的做標記工作,並且主要是去標記那些分類器模稜兩可的那幾張照片來提高分類器的性能。

我們初步提供的解決方案是 (參考Fig.2或者Fig.3):

把 1000 張圖放到?在大量自然圖像中預訓練的網路(LeNet,AlexNet,GoogLeNet,VGG,ResNet 等等)中測試一遍,得到預測值,然後挑出來那些「最難的」,「信息量最大的」樣本,你看一下,給出他們的標籤(捲毛比雄犬還是哈瓦那犬);

用這些剛剛給了標籤的樣本訓練深度網路 N;

把剩下那些沒有標籤的圖像用 N 測試,得到預測值,還是挑出來那些「最難的」,「信息量最大的」樣本,你再給出他們的標籤(捲毛比雄犬還是哈瓦那犬);

剛剛給了標籤的樣本和原來有標籤的樣本組成新的訓練集,繼續用它們來訓練深度網路 N;

重複步驟 3,4,直到 [?]

FIG.2所示,每次循環都用不斷增加的標記數據集去提升分類器的性能,每次都挑對當前分類器比較難的樣本來人為標記。


3. 這個過程什麼時候可以停?

錢用光了;

當前分類器對選出來的 hard samples 分類正確;

選出來的 hard samples 人類也無法標記;

以上三種情況都可以讓這個循環訓練過程中斷,第一種就很無奈了,沒錢找人標記了... 第二種情況和第三種情況的前提共識是?如果難的樣本都分類正確了,那麼我們認為簡單的樣本肯定也基本上分類正確了,即便不知道標籤。第三種情況,舉例來說就是黑白圖像分類,結果分類器模稜兩可的圖像是灰的... 也就是說事實上的確分不了,並且當前的分類器居然能把分不了的樣本也找出來,這時我們認為這個分類器的性能已經不錯的了,所以循環訓練結束。

至此,主要講了傳統的 Active Learning 的思想,接下來會講講這篇 CVPR2017 論文的幾個工作點。

The way to create something beautiful is often to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way.

-- "Hackers & Painters"

上面我講到了 Active Learning 的大概思路,如Fig. 3所示,是一個很有意思的概念,說實話很實用,我在 Mayo Clinic 實習的時候,每次遇到新的數據集,都會想著用一用這個方法,來讓給數據標註的專家輕鬆一點...

Fig.3 暗的表示 unlabeled 的數據,高亮的表示 labeled 的數據,CNN 的結構可以隨便挑 SOTA 的無所謂,CNN0 是拍 retrained from ImageNet,得到的第二列表示每個 image 對應的 importance 指標,越紅的說明 entropy 越大,或者 diversity 越大,每次挑這些 important 的 sample 給專家標註,這樣 labeled 的數據就變多了,用 labeled 的數據訓練 CNN,得到新的更強的分類器了,再在 unlabeled data 上測試,挑出 entropy/diversity 大的樣本,交給專家去標註,如此循環...


4. 發現新問題

貌似前面講的演算法沒留下什麼問題啊,也就是說,只要學術視野夠開闊,這個 Active Learning 的技術完全可以直接用啦。但是實際上並不是這樣的,上面說的熵(Entropy)的確沒有什麼嚴重的問題,但是多樣性(Diversity),在很多現實應用中問題就會出現。

根據「Active batch selection via convex relaxations with guaranteed solution bounds」的描述,Diversity 是計算 labeled data 和 unlabeled data 之間的相似度,把和 labeled data 比較相似的作為簡單樣本,每次 active select 難樣本,也就是挑出來和 labeled data 不太像的出來。體現在矩陣上就是行是 labeled data,列是 unlabeled data,在它們組成的大矩陣中找出最優的子矩陣。這個方法在理論上是可行的,但是實際應用中,數據量(labeled 和 unlabeled)會非常大,這個矩陣會特別的大,導致求最優解會很慢,或者根本得不出來最優解。因此,我們並不在 image-level 上算 diversity。

由於標記的醫學影像訓練數據量和自然圖像的沒法比,Data Augmentation 是必須的環節,我們就抓住了這個點來設計 Diversity 這個指標。這裡的假設是:經過 data augmentation 後的 patches,從 CNN 出來的預測值應該相對是一致的,因為它們的 truth 應該還是一致的。比如一張貓的圖像,經過數據擴充,得到的那些個 patch 所對應的 truth 也應該都是貓。

定義:對於來自同一幅 image 的 patch 集,如果它們的分類結果高度不統一了,那麼這個 image 就是 Important 的,或者 hard sample。

需要展開解釋的兩點:

由於在 annotation 之前不知道 label,所以我們不能知道網路的預測正確還是錯誤,但是我們可以知道預測統一還是不統一。所以比如一幅貓的圖,如果網路的預測很統一都是狗,那麼我們也認為這是一個 easy sample,不去 active select 它的。

結合 data augmentation 的優點是我們可以知道哪些 patch 對應什麼 image,比較容易控制。這樣就可以在一個 image 內算 diversity 了,每個 image 對應一個矩陣,大小是一樣的,非常的簡潔,也容易控制計算量。

這樣的 diversity 就完美了嗎?並沒有... 讀者可以先猜猜哪兒又出問題啦,我在第五部分會指出來。


5. 這次是 Data Augmentation 的鍋

問題出在上面的假設:經過 data augmentation 後的 patches,從 CNN 出來的預測值應該相對是一致的,因為它們的 truth 應該還是一致的。

我們知道有幾種經典的數據擴充方法:平移,旋轉,縮放,形變,加雜訊等等。但是很有可能發生的是,經過這些變化以後,得到的 patch 是無法分類的。舉例來講,Augmentation Lecture講到的平移 crop,如果我們將它應用到貓的分類問題中,很有可能得到這樣的訓練樣本:

Fig.4 左圖是原始的圖像,中間的 9 個 patches 是根據平移變化的擴充得到的,restrictions: region must contain objects or part of the object 詳見這裡,右圖是網路得到的對應 patch 的預測值。

可以看出,在這個實例中,對於一個 candidate,網路預測的一致性很低,套用 Diversity 的公式,Diversity 的值很大,也就是說,應該被認為是 hard sample 挑出來。但是仔細觀察一下這九個 patches 就不難看出,即便是很好的分類器,對於中間圖中的 1,2,3,也是很難分出這個是貓... could be rat, rabbit, etc. 我們把像這三個 patch 的例子叫做從 data augmentation 帶來的noisy label issue。而對於 4~6 的 patches,網路很好地做出了分類,這很合情合理。所以我們把這種像 1,2,3 的 patches,由於隨機的數據擴充(Random Data Augmentation)帶來的干擾樣本稱為 noisy labels。Fig.4只是一個很直觀的例子,其實在實際的數據集中會有很多這樣的案例。

我們給出的解決方法是:先計算 majority 的預測,然後在 majority 上面算 diversity,只要網路的預測大方向是統一的,就是統一的。意思就是想個辦法把Fig.4中的三個非主流 0.1 扔掉。只抓住大方向,也就是 0.9——我們不希望Fig.4這種情況被當作 important sample 挑出來,因為當前的分類器實際上已經可以分出來這幅圖的類別啦。

這個改進的數學表達也非常直觀,以Fig.4為例,為了知道大方向,我們計算它們的平均值,如果大於 0.5,大方向就是 label 1,反之大方向是 label 0,如果是前者,那麼就從大到小取前 25% 的預測,其他的不要啦,如果是後者,就從小到大取前 25%,其他的不要啦。這樣Fig.4就只剩下三個 0.9,它們的 diversity 就非常小,也就不會被當作 important sample 挑出來啦。成功解決了 data augmentation 帶來的 noisy label issue。

整體的演算法流程可參見Fig.5

Fig.5 Active Learning Algorithm

至此,主要講了這篇論文是怎樣成功的將 Diversity 這個重要的指標引入到 Active Learning 中來,所有的 Active Selection 部分結束。


6. 如何訓練?

既然用了遷移學習,那麼一開始的 CNN 測試的效果肯定是一團糟,因為這個 CNN 是從自然圖像中學過來的,沒有學習過 CT 這種醫學影像,所以這個 loop 的啟動階段,Active Learning 的效果會沒有 random selecting 好。不過很快,隨著 CNN 慢慢地在 labeled 的 CT 上訓練,Active Learning 的效果會一下子超過 random selecting。

接下來討論 Continuous fine-tuning 的細節,隨著 labeled data 集變大,CNN 需要一次次地被訓練,有兩種選擇,一是每次都從 ImageNet pretrained 來的 model 來遷移,二是每次用當前的 model 上面遷移 (Continuous Fine-tuning)。方法一的優點是模型的參數比較好控制,因為每次都是從頭開始 fine-tuning,但是缺點是隨著 labeled 數據量大增加,GPU 的消耗很大,相當於每次有新的標註數據來的時候,就把原來的 model 扔了不管,在實際應用中的代價還是很大的。第二種方法是從當前的 model 基礎上做 finetune,在某種意義上 knowledge 是有記憶的,而且是連續漸進式的學習。問題在於參數不好控制,例如 learning rate,需要適當的減小,而且比較容易在一開始掉入 local minimum。關於 Continuous Finetuning 的前期論文也是有的,需要更進一步的研究。

另外,如何能夠真正意義上去體現出 increamentally learning,只是這樣一個網路結構去不斷的學習嗎,還是隨著數據集的增加去讓網路自適應的變深,便複雜,都是我比較關心的問題。

乍一看,Active Learning 的工具很直觀,思想也很簡潔,但隨著博客討論的技術細節越來越深入,會出現很多的 open question 有待研究,因此,只能說我們的論文是 active learning 的一個引子。

本文只是從思想的角度來闡述這篇論文,至於後續的分析,結果和結論都在論文中詳細的 report 了。反正一句話來總結,hin 好...

Find paperhere.

Find posterhere.

Find authorhere.

祝好,

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

CVPR專訪阿里iDST華先勝:電商搜索與城市大腦,本質上都是視覺系統問題
比蘋果更美的穿戴!Fitbit Alta HR智能手環測評
21萬元RMB的床,你在上面能睡得著嗎?
?這裡有一則來自馬來西亞的艷遇,你接不接
緬懷iPod nano,家族只剩touch獨苗

TAG:雷鋒網 |

您可能感興趣

歧視經濟學,Discrimination bad?
望城經濟技術開發區概況Wangcheng Economy and Technology Development Zone
Princeton Makes,Stockholm Takes-諾貝爾經濟學獎得主好書精選
Patricia Song:加密貨幣經濟,Bit-Z助力全球
微軟年內會公布經濟型Surface,還有傳說當中的Andromeda?
Esther Kinsky muses on a river in England 經濟學人.Jan18th2018
Digital Catapult發布VR/AR報告指出內容經濟的重要性
經濟學人翻譯練習 The Economist
Fitbit Versa可能會成為一款經濟實惠的手錶
為什麼買iPhone8也不要iPhonex?看配置比較iPhone x更經濟實惠
第一課 Jose Galvez 與性別經濟學
經濟學人精讀 The Economist62上
The digital proletariat 經濟學人.Jan 12th 2018
為什麼economics翻譯為「經濟學」是個錯誤?
脫虛向實——Equipment Chain鏈接實體經濟
Cadenza Innovation獲世界經濟論壇表彰為技術先鋒
比特幣經濟學家Jeffrey Wernick:投資於人 並讓每個人意識到自身價值
AlphaCar參加TokenSky經濟高峰論壇 受多家投資機構關注
經濟學家Peter Schiff:加密貨幣是一派胡言,比特幣將會暴跌
經濟學家Nouriel Roubini對現階段區塊鏈技術的拷問:區塊鏈被過度炒作