標籤:

深度學習的核心:掌握訓練數據的方法

Hello World!今天我們將討論深度學習中最核心的問題之一:訓練數據。深度學習已經在現實世界得到了廣泛運用,例如:無人駕駛汽車,收據識別,道路缺陷自動檢測,以及互動式電影推薦等等。

我們大部分的時間並不是花在構建神經網路上,而是處理訓練數據。深度學習需要大量的數據,然而有時候僅僅標註一張圖像就需要花費一個小時的時間!所以我們一直在考慮:能否找到一個方法來提升我們的工作效率?是的,我們找到了。

現在,我們很自豪的將Supervisely令人驚嘆的新特性公諸於世:支持AI的標註工具來更快速地分割圖像上的對象。

在本文中,我們將重點介紹計算機視覺,但是,類似的思路也可用在大量不同類型的數據上,例如文本數據、音頻數據、感測器數據、醫療數據等等。

重點:數據越多,AI越智能

讓我們以吳恩達非常著名的幻燈片開始,首先對其進行小小的修改。

深度學習的表現優於其它機器學習演算法早已不是什麼秘密。從上圖可以得出以下結論。

結論 0:AI產品需要數據。

結論 1:獲得的數據越多,AI就會越智能。

結論 2:行業巨頭所擁有的數據量遠超其它企業。

結論 3:AI產品的質量差距是由其所擁有的數據量決定的。

網路架構對AI系統的表現影響很大,但是訓練數據的多少對系統表現的影響最大。致力於數據收集的公司可以提供更好的AI產品並獲得巨大的成功。

常見錯誤:AI全都是關於構建神經網路的。

如上圖所示,當人們一想到AI,就會想到演算法,但是也應該考慮到數據。演算法是免費的:谷歌和其他巨頭更傾向於向世界分享他們最先進的(state-of-the-art)研究成果,但是他們從不會共享數據。

許多人已經跳上了人工智慧潮流的列車,並且創造了極棒的構建和訓練神經網路的工具,然而關注訓練數據的人卻少的可憐。當企業打算將人工智慧轉換成實際應用時,會傾盡全部工具用於訓練神經網路,卻沒有用於開發訓練數據上的工具。

吳恩達說論文已經足夠了,現在讓我們來構建AI吧!

好主意,我們完全贊同。目前有許多論文和開源成果論述了最先進的(state of the art )且涵蓋所有的實際應用的神經網路架構。想像一下,你獲得了一個價值10億美元的新想法。首先想到的肯定不會是:我將使用哪種類型的神經網路?最有可能的是:我在哪裡可以得到能建立最優價值的數據?

讓我們來尋找一些有效的方法訓練數據,可行的方法如下:

1.開源數據集。深度神經網路(DNN)的價值是用於訓練數據,在計算機視覺研究中,大多數可用數據都是針對特定研究小組所研究的課題而設計的,通常對於新研究人員來說,需要搜集更多額外的數據去解決他們自己的課題。這就是在大多數情況下開源數據集並不是一個解決方案的原因。

2.人工數據。它適用於類似OCR文字識別或者是文本檢測,然而很多實例(如人臉識別,醫學影像等)表明人工數據很難甚至是不可能產生,通常的做法是將人工數據和帶標註的圖像相結合使用。

3.Web。自動收集高質量的訓練數據是很難的,通常我們會對收集的訓練數據進行修正和過濾。

4.外面訂購圖像標註服務。一些公司提供這樣的服務,我們也不例外。但其很大的缺點是不能進行快速的迭代。通常,即使是數據專家也不確定如何標註。通常的順序是做迭代研究:標註圖像的一小部分→建立神經網路架構 →檢查結果。每個新的標註都將會影響後續的標註。

5.手動標註圖像。僅適用於你自己的工作,領域內的專業知識是很關鍵的。醫學影像就是個很好的例子:只有醫生知道腫瘤在哪裡。手動註解圖像這個過程很耗時,但是如果你想要一個定製化的AI,也沒有其他辦法。

正如我們所看到的,其實並沒有萬能方法,最常見的方案是創建我們自己任務特定的訓練數據,形成人工數據,如果可能的話再整合到公共數據集中。這其中的關鍵是,你必須為特定的任務建立自己獨一無二的數據集。

讓我們深入學習來構建深度學習

深度學習接近於數據匱乏,且其性能極度依賴於可供訓練數據的數量。

通過實例我們可以看出標註的過程有多困難。這裡是標註過程所花費時間的一些原始數據,例如使用Cityscapes數據集(用於無人駕駛),在對Cityscapes數據集中單個圖像的精細像素級的標註平均需要花費1.5h,如果標註5000個圖像,則需要花費5000*1.5=7500h。假設1h=$10(美國最低工資),那麼僅僅是標註該數據集就需要花費約$7.5萬左右(不包括其他額外的成本)。同樣吃驚的是,像這樣一家擁有1000名做無人駕駛圖像標註員工的公司,只不過是冰山一角。

神經網路能否幫助我們提高圖像標註的效率呢?我們可不是第一個試圖回答這一問題的人。

半自動化實例標註很早就開始使用了, 有很多經典的方法可提高標註的效率,如超像素塊演算法(Superpixels),分水嶺演算法(Watershed),GrabCut分割演算法等。近幾年,研究人員試圖用深度學習完成這一任務(link1, link2, link3),這些經典的演算法有很多缺陷,需要很多超參數對每一幅圖像進行檢索,難以對結果進行標準化和修正。最新的基於深度學習的成果要好很多,但在大多情況下這些成果是不開源的。我們是第一個為每個人提供基於AI的標註工具的人,我們自己獨立設計了與上邊三個links概念類似的神經網路架構。它有一個很大的優勢:我們的神經網路不需要對對象實例進行分類。這就意味著,可以對行人、汽車、路面上的凹陷處、醫學影像上的腫瘤、室內場景、食物成分、衛星上的物體等等進行分割。

那麼,它是如何工作的呢?如下圖所示:

你只需要剪裁感興趣的對象,然後神經網路將會對其進行分割。人機交互非常重要,你可以點擊圖像的內部和外部標籤進行修正錯誤。

語義分割是將圖像劃分為多個預定義語義類別的區域,與它不同的是,我們的互動式圖像分割旨在根據用戶的輸入提取其感興趣的對象。

互動式分割的主要目標是根據用戶最少的操作,即可精確的提取對象以改善整體的用戶體驗,因此我們大大提高了標註的效率。

這是我們的第一次嘗試,當然在有些情況下,再好的標註依然會有缺陷。但我們正不斷的改進演算法,並在領域適應性上做一些簡單的設計:在不編碼的情況下,為適應內部特定的任務自定義工具。

結語

數據是深度學習的關鍵,訓練數據是費時和高代價的。但是我們和深度學習的團體積極嘗試著去解決訓練數據的問題,並且成功的邁出了第一步,希望能夠在以後提供更好的解決方案。

以上為譯文。

本文由阿里云云棲社區組織翻譯。

文章原標題《Big Challenge in Deep Learning:Training Data》,譯者:Mags,審校:袁虎。

文章為簡譯,更為詳細的內容,請查看原文

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎


推薦閱讀:

前後端分離?
如何評價基於Volta架構的NVIDIA TITAN V?
Docker入門 | 學習第一個Docker容器
哪些在操作系統架構設計上的良好方法可以應用在「企業的OS」的設計上?多謝!

TAG:架构 | 算法 |