當前位置:
首頁 > 新聞 > 用編程創建和管理訓練數據集難?三種強大的抽象方法呈上!

用編程創建和管理訓練數據集難?三種強大的抽象方法呈上!

概述

相較於在模型構架或硬體優化上所花的精力,機器學習從業者反而對訓練數據更加重視。因此,程序員基於不同的抽象技術,即高級設計的模板為他們的應用構建機器學習管道。在這篇文章中,我們介紹了三種強大的抽象技術,通過這些技術,從業者可以以編程的方式構建和管理他們的訓練數據。

我們進行了一項實驗來測試針對基礎訓練數據操作的有效性,分別對訓練集的一部分數據使用了本文的框架、Snorkel(一種快速創建、建模和管理訓練數據的系統,通過標記函數以編程的方式標記數據)和在 SuperGLUE (一個用於「通用語言理解技術」相關六項任務的新評價指標)上取得最佳結果的標準 NLP 模型(即 BERT)。與自然語言預訓練模型(即 BERT)的最新進展相比,我們總體上取得了新的最高分數,並且在大多數組合型任務上,我們在各個方面都實現了現有的最好成績。

除了 SuperGLUE 之外,我們還重點介紹了 Snorkel 在實際應用中的更新,其中包括更多應用——從 Google 的 Snorkel Drybell 的工業規模到 MRI 分類和自動全基因組關聯研究(GWAS)策劃的科研工作(這些應用均被收錄於 Nature Comms:https://www.nature.com/ncomms/)!

與此同時,我們還在 Snorkel repo 中發布代碼:

三種關鍵的抽象方式

一般來講,在我們的 SuperGLUE 結果中,我們發現,將時間花在以編程方式構建和操縱訓練數據而非模型訓練上實為一種強大且有效的策略,通過此策略,我們可以得到機器學習的管道機制的高性能。在過去的一篇文章(閱讀地址:https://dawn.cs.stanford.edu/2019/03/22/glue/)中,由於我們在 GLUE Benchmark(SuperGLUE 的前身)上取得了當前最先進的結果,我們討論了加入更多來源的有監督信號的價值,例如:多任務學習和轉移學習。在這篇文章中,我們將重點放在構建和修改訓練數據集的三個關鍵抽象方法上:

1.使用標記函數(LF)標記數據

2.使用轉換函數(TF)轉換數據

3.使用切片函數(SF)切片數據(技術報告 博客文章即將推出!)

運行例子

對於本文的其餘部分,我們用 SuperGLUE 的語境用詞(WiC)任務作為示例:目標詞在句中的用法是否一致?

1、使用標註函數的弱標註

在許多應用場景中都有大量的未標記數據,這些數據可能來自於自動駕駛車隊或大型非結構化資料庫。但出於時間和成本的考慮,標註這些原始數據是很難的,因此,現代架構在很大程度上無法利用這些潛在的豐富數據集。通過使用 Snorkel,我們多年來一直致力於研究使用標註函數(LF)來啟發性地標註訓練樣例。Snorkel 中的標註函數(LF)為領域專家或機器學習從業者提供了用於對來自現有數據集、模型和人工標註的有監督源進行去噪和結合的直觀界面。

對於 WiC 任務(判斷目標詞在兩個句子中「意思」是否一致),我們可以認為根據它們是否共享包括目標詞的三元組來弱標記例子。

2、用轉換函數做數據增強

通常,人們會根據簡單的變換,如隨機旋轉或拉伸圖像來做數據增強,但它們可以涉及到更多樣化的操作範圍。我們將轉換函數(TF)視為一種強大的抽象方式,啟發式地從現有的例子生成新的更改過的例子。例如,對於醫學成像任務,我們可能會編寫 TF 來執行特定於我們的成像模態的變換。例如,重新取樣分割腫瘤塊或重新取樣背景組織。我們在 TANDA 這項工作(Learning to compose domain-specific transformations for data augmentation,http://papers.nips.cc/paper/6916-learning-to-compose-domain-specific-transformations-for-data-augmentation)中探索了這種抽象方式,TANDA 旨在學習跨域特定任務的轉換組合。Google 的 AutoAugment 便以此工作為基礎,自動學習數據增強策略。

3、用切片函數做數據切片(新方法!)

在許多數據集中,特別是在實際應用中有一些使我們的模型表現不夠好的數據子集,還有一些相比於其他數據子集,其表現更讓我們關注的數據子集。例如,較低頻的醫保人口統計數據(如某些患癌的年輕患者),我們的模型在這個數據上就可能表現不好,或者在自動駕駛設定下,我們可能更關注一些安全攸關但罕見的場景,如檢測自行車騎行情況。我們將這些數據稱為子集切片。從業者經常面臨的技術挑戰是提高這些切片的性能,同時保持整體性能。

切片函數(SF)為用戶提供了一個介面,用於粗略地識別那些模型應為其提供額外表示能力的數據子集。為了解決特定切片的表示,從業者可能會訓練多個模型,其中每個模型都針對特定的子集,然後將這些模型與專家混合(MoE)方法相結合。

然而,隨著機器學習模型的規模不斷增大,MoE 通常是不切實際的。另一種策略是通過硬參數共享以多任務學習(MTL)的方式訓練單個模型。雖然此方法計算效率更高,但它需要在許多特定切片任務中用表示偏差來提高性能,而這種方式往往並不可靠。作為快速概述(技術報告 博客文章即將推出!),我們以多任務學習的方式對切片進行建模,其中使用基於切片的「專家頭部」來學習特定切片的表示。然後,通過為專家頭部引入注意力機制,以確定何時以及如何在每個示例的基礎上組合由這些切片頭部學習到的表示。

在本方法中,我們考慮以下屬性:

我們的方法與模型無關——專家頭部在任何骨幹架構(例如 BERT,ResNET)之上學習。因此,使用切片功能提高整體性能的從業者們可以專註於數據而不是模型架構。

通過多任務方式學習,我們可以有效地進行表示學習,而無需製作模型的許多副本(如 MoE 則需要太多內存)!

通過結合注意力機制,我們避免了專家頭部的手動調整——這大大節省了開發者的成本。

從 WiC 錯誤分析中,我們可能會發現我們的模型在目標詞是名詞而非動詞的例子中表現得更差。使用切片函數 SF,我們告訴模型注意這些切片之間的差異,並在對它認為是名詞的目標詞進行預測時使用略微不同的表示。

標註函數 LFs、轉換函數 TFs 和切片函數 SFs 的重要屬性

直觀的界面這些抽象方式為現有的從業者工作流程提供了直觀的界面。它們允許直接對調試/報錯分析中的意見進行編碼,以改進模型。

將抽象方法視作弱監督進行編程在實踐中,許多這樣的技術可被視為一種弱監督形式,因為用戶指定這些技術就是有噪音的、啟發式的且不精確的一些方式。處理此問題是我們使用 Snorkel 解決的核心技術挑戰之一。

將監督視作代碼:這些輸入的種類是根據監督模型的方法(即它們指定訓練集)。具體地說,它們也是代碼,因此其具有代碼復用性和可修改性等諸多優點。

SuperGLUE 結果

使用這些編程抽象方法,我們在 SuperGLUE Benchmark 及其 4 個組合任務上獲得了新的最好成績。SuperGLUE 類似於 GLUE,但包含「更困難的任務...... 選擇最大化難度和多樣性,以及...... 選擇顯示基於 BERT 的強基線與人類表現之間的巨大餘量差距。」在重現 BERT 基線後,我們這些模型(基線模型,默認學習率等)進行微調後發現,在使用上述編程抽象方法的少數應用中,我們看到結果在 SuperGLUE 基準上提升了 4 個點(即與人類表現的差距縮小了 21%)。

Snorkel 的實際應用

這些 Snorkel 編程抽象方法也被用於推動具有高影響力的實際應用的進步。

Snorkel 管道機制,被部署在具有多達 4000 個未標記的 MRI 序列數據集的 BAV 分類任務中。圖片來自 Fries et. al . 2018。

在最近被 Nature Communications 收錄的工作(相關閱讀:https://www.biorxiv.org/content/10.1101/339630v4.full)中,Snorkel 被部署在與斯坦福大學兒科心臟病學持續合作的項目中,其中訓練數據的標註是開發自動化方法的重大實際障礙。我們關注的是二尖瓣主動脈瓣(BAV),這是最常見的先天性心臟畸形(一般人群的發病率為 0.5-2%),具有影響下游健康的風險。在研究中,我們選擇不依靠來自心臟病專家的昂貴的 MRI 標註,而是直接與領域專家合作開發標註函數 LF,以此為下游深度學習模型生成大規模的訓練集。在使用我們端到端的方法確診的患者中,一項獨立評估確定發生重大心臟不良事件的風險增加了 1.8 倍。

後記

Snorkel 項目正在積極進行中!我們有許多令人興奮的持續合作——從斯坦福大學醫學院的後續工作到國際調查記者協會(ICIJ)的部署,以幫助記者組織、索引和理解數百萬個非結構化文件。

本次發布的代碼包括了重要的基礎結構改進以及如何將 LF,TF 和 SF 應用於 SuperGLUE 和其他任務的教程。我們很高興如果您已經在自己的應用程序中應用了 Snorkel。有關 Snorkel 開發和應用程序的更新,您可以隨時訪問 Snorkel 登錄頁面或開源庫:

via:http://ai.stanford.edu/blog/training-data-abstractions/雷鋒網雷鋒網雷鋒網

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

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


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

數據分析從業者必看,10 個加速 python 數據分析的簡單的小技巧
線上零售業的線上獲客增長法則及案例分析

TAG:雷鋒網 |