關注數據而不是模型:我是如何贏得吳恩達首屆 Data-centric AI 競賽的

  • 2021 年 10 月 26 日
  • AI

如何憑藉「數據增強」技術獲得吳恩達首屆 Data-centric AI 競賽的最佳創新獎?
作者 | 杏花
編輯 | 青暮

吳恩達(英文名 Andrew Ng,是人工智慧和機器學習領域國際上最權威的學者之一)在今年 6 月的時候宣布首屆以數據為中心的人工智慧(Data-centric AI)競賽即將開賽,參賽「作品」的提交日期截止到9月初。10月初,吳恩達在其個人社交平台Twitter上向我們宣布了此次競賽的獲獎者,隨後,也在其個人微信公眾號上向我們簡要介紹了競賽的參與情況。

這次競賽共有489個參賽個人和團隊提交了2458個獨特的數據集。僅僅通過改進數據(而不是模型架構,這是硬標準),許多參賽者能夠將64.4%的基準性能提高20%以上。最佳性能組的獲獎者的成績在86.034%至86.405%之間。「最具創新力獎」和「榮譽獎」的獲獎者則都採用了新穎的方法,也取得了出色的成績。

經過角逐,Divakar Roy, Team Innotescus 和 Team Synaptic-AnN分別獲得了最佳性能組的前三名。Mohammad Motamedi, Johnson Kuan 和 Team GoDataDriven 則是最具創新獎的獲獎者,此外,Pierre-Louis bessecond 和 Team KAIST-AIPRLab 獲得了榮譽獎。吳恩達激動萬分地表示對所有參賽者感到驕傲。

那麼,獲獎者對贏得吳恩達首屆 Data-centric AI 競賽的心情是怎樣的呢?以下是此次競賽最佳創新獎得主之一 Johnson Kuan 發布的博文,記錄了他參賽時的過程以及獲獎後的感受。

博文具體內容如下:

在過去的幾個月里,我有幸參加了吳恩達首屆 Data-centric AI 競賽。在此,我很高興能和大家分享我是如何憑藉「數據增強(Data Boosting)」技術獲得最佳創新獎的。

這場競賽真正的獨特之處在於,與傳統的 AI 競賽不同,它嚴格關注如何改進數據而不是模型,從我個人的經驗來看,這通常是改進人工智慧系統的最佳方式。

考慮到有大量的開源機器學習模型庫(包括預訓練的深度學習模型),模型方面對大多數商業應用程式來說或多或少是一個已解決的問題。我們需要的是新工具和創新技術來系統地改進數據,Andrew顯著地將其稱為烹飪(訓練模型)的高品質食材。

這篇博文的其餘部分將由三個主要部分組成:

1. 大賽概述

2. 我的「數據增強」技術解決方案

3. 這項技術的動機以及如何將它推廣到不同的應用程式



1

大賽概述

在本次競賽中,每個參與者手裡有大小約為 3K 的影像,這些影像是從 1 到 10 的手寫羅馬數字,我們的任務是優化模型在羅馬數字分類方面的性能。此外,我們還獲得了一本包含 52 張影像的標籤簿,作為我們自己實驗的小測試集,本標籤簿不用於最終評估。

具體的競賽規則鏈接如下:

//worksheets.codalab.org/worksheets/0x7a8721f11e61436e93ac8f76da83f0e6

模型架構保持固定(cut off ResNet50)並訓練 100 個 epoch,同時根據驗證集的準確性在 epoch 中選擇模型權重。

雖然模型和訓練過程是固定的,但我們可以自由改進數據集並更改訓練和驗證數據分割。我們還可以添加新的影像,但在訓練和驗證分割中提交的影像組合必須小於10K。

提交我們改進的數據集後,參與者將根據隱藏的影像測試集進行評估。

訓練數據集里的一個例子

考慮到最終提交的影像只能小於 10K,因此,參與者必須專註於在缺乏「大數據」的情況下獲取「好數據」,這是因為 Andrew 覺得 「大數據」 在更傳統的行業(如製造業、農業和醫療保健)的人工智慧應用中非常常見。



2

我的「數據增強」技術解決方案

在進入解決方案的關鍵部分之前,我做的第一件事是遵循固定標籤和刪除不良數據的常見做法。

為了簡化這個工作流程,我編寫了一個 Python 程式來評估給定的數據集(在將其輸入固定模型和訓練程式之後),並生成一個包含每個影像記錄指標的電子表格。

該電子表格包含給定標籤、預測標籤(使用固定模型)和每個影像的損失,這對於分離不準確和邊緣情況非常有用。下面舉例。

由 Python 生成的數據評估電子表格示例,用於簡化以數據為中心的 AI 工作流程。

我最初使用這個電子表格來識別標記錯誤的影像和明顯不是羅馬數字 1-10 的影像(例如,在原始訓練集中就有一個心臟影像)。

現在我們來看看「數據增強」技術。以下是高級步驟:

  1. 從訓練數據中生成一組非常大的隨機增強影像(將這些視為「候選」來源)。

  2. 訓練初始模型並預測驗證集。

  3. 使用另一個預訓練模型從驗證影像和增強影像中提取特徵(即嵌入)。

  4. 對於每個錯誤分類的驗證影像,利用提取的特徵從增強影像集中檢索最近鄰(基於餘弦相似度)。將這些最近鄰增強影像添加到訓練集。我將這個過程稱為「數據增強」。

  5. 使用添加的增強影像重新訓練模型並預測驗證集。

  6. 重複步驟 4-6,直到達到 10K 影像的限制。

這個迭代過程見下圖:

將來自訓練集的增強影像作為候選源的「數據增強」過程

在「數據增強」過程中需要注意的幾點:

  • -雖然我在這次競賽中使用了增強影像,但在實踐中我們可以使用任何大的影像集作為數據源。

  • -我從訓練集中生成了大約 1M 的隨機增強影像作為候選來源。

  • -數據評估電子表格用於跟蹤不準確(錯誤分類的影像)並注釋數據。另外,我還創建了一個帶有PostgreSQL 後端的 Label Studio 實例,但由於不必要的開銷,我決定不將其用於本次比賽。

  • -對於預訓練模型,我使用了在 ImageNet 上訓練的 ResNet50。

  • -我使用 Annoy 包來執行近似最近鄰搜索。

  • -每個錯誤分類的驗證影像要檢索的最近鄰的數量是一個超參數。

Label Studio 鏈接://labelstud.io/

Annoy 包鏈接://github.com/spotify/annoy

從影像中提取特徵的一件很酷的事情是,我們可以使用 UMAP 在 2D 中將它們可視化,以更好地理解訓練和驗證集的特徵空間。在下面的可視化中,我們可以看到,有趣的是,給定的訓練數據分布與給定的驗證數據不匹配。在特徵空間的左下角有一個區域我們沒有驗證影像。這表明,在運行上面的「數據增強」過程之前,可以嘗試重新調整訓練和驗證數據分割。



3

這項技術的動機以及如何將它推廣到不同的應用程式

我的方法受到以下四件事的啟發:

  1. 我在原先的作品(見 2019 年的一篇博文)里構建了一個電影推薦系統,這個系統通過從關鍵字標籤中提取電影嵌入並使用餘弦相似度來查找彼此相似的電影。

  2. 我之前使用過預訓練的深度學習模型將影像表示為嵌入。

  3. 在 Andrej Karpathy 2019 年的演講中,他描述了如何有效地獲取和標記從特斯拉車隊收集的大量數據,以解決通常是邊緣情況(分布的長尾)的不準確問題。

  4. 我想開發一種以數據為中心的增強演算法(類似於梯度增強),其中模型預測中的不準確之處在每個步驟中通過自動獲取與那些不準確之處相似的數據來迭代解決。這就是我稱這種方法為「數據提升」的原因。

2019年的博文鏈接:

//towardsdatascience.com/how-to-build-a-simple-movie-recommender-system-with-tags-b9ab5cb3b616

Andrej Karpathy 2019 年的演講:

//www.youtube.com/watch?v=FnFksQo-yEY&t=1316s

當我最初考慮這種「數據增強」的方法時,我需要弄清楚如何自動生成大量新的候選影像作為來源。我決定嘗試隨機增強原始訓練數據,以生成大量增強影像作為候選來源。

下一步,我利用預訓練模型提取影像嵌入,用於計算影像之間的餘弦相似度,從而自動獲取與驗證集中錯誤分類影像相似的增強影像。

在這裡,使用預訓練模型進行一般特徵提取是一種遷移學習方法。我假設通過以這種方式獲取增強影像,我們可以提高模型從分布的長尾學習模式的機會。正如Andrej Karpathy在2019年特斯拉「自主日」(Tesla』s Autonomy Day)的演講中所指出的那樣:

'這都是關於長尾'

此外,由於競賽的數據大小限制為 10K 的影像,這種「數據增強」方法是一種確定在給定的約束條件下哪些隨機增強影像最好包含在訓練集中的方法。

我可以看到這種技術推廣到我們可以訪問的機器學習的不同應用程式中:

  1. 為實體(例如影像、文本文檔)提取嵌入的預訓練模型

  2. 可供選擇的大量候選數據集(例如特斯拉車隊、網路上大量的文本語料庫、合成數據)

例如,我可以想像將這種技術推廣到文本分類中,我們使用預訓練的 Transformer 模型(比如 Bert)來提取文本的嵌入。然後,我們可以從我們的特定域的驗證集中獲取與不準確性類似的文本(假設有一個大型的在線語料庫)。



4

結語

我希望這篇博文能說服你加入這場以數據為中心的 AI 運動。在更廣泛地應用人工智慧方面,還有許多令人興奮的工作要做。我相信,對人工智慧系統數據管理的共同關注將使我們實現這一目標。

如果你有任何問題或希望合作,請隨時與我們聯繫。你可以在 LinkedIn 或 Twitter 上找到我。

最後,特別感謝傳奇人物吳恩達發起本次競賽。

原文鏈接:

//towardsdatascience.com/how-i-won-andrew-ngs-very-first-data-centric-ai-competition-e02001268bda

雷鋒網


Tags: