如何应对“吴恩达:人工智能落地最重要的挑战之一是小数据”的困境?
這是傅一平的第302篇原創
作者:傅一平
個人微信:fuyipingmnb
眾所周知,在數據量非常小的時候,深度學習的復雜網絡無法取得很好的效果,辯證的講,數據不是一種無限的資源,而人工智能所需的數據相當昂貴和耗時,一方面深度學習需要準確的標記圖像或文本訓練數據,而標記需要大量的人力;另一方面,許多數據存在著隱私和安全風險,比如說醫療等等,數據的開放不是短期內能解決的。
現在數據孤島、數據隱私、小數據和標注等問題日益突出,當前人工智能要能進一步發展,必須解決數據的挑戰,找到在當前的數據狀態下可持續發展的方法。
這就是人工智能專家吳恩達提出的問題:“數據當然是越多越好,我也并沒有說許多數據是無用數據。但是,在農業、制造、醫療等領域的部分應用場景中,如果你手頭只有100張照片,比如腫瘤照片過少,怎么辦呢?” 筆者也碰到很多這種情況,比如反欺詐樣本過少的問題。
但請注意,小數據問題產生的根源是復雜的,既有機制上的問題,也有技術上的問題,而且數據大小不是解決人工智能的唯一手段,我們要回歸到第一性原理去找辦法,只要能解決問題就行,何必拘泥于小數據或是大數據?
如果你能站住更高的角度看這個問題,也許能找到更多的辦法,但無論如何,“小數據、大智能”,是用小數據推動人工智能技術能力提升的重要課題,今天筆者就業界的主要做法做一個分享,希望用最通俗的語言為你詮釋清楚,一定要看完。
1、聯邦學習
大多時候,我們只有小數據,是因為在大多數行業中,數據是以孤島的形式存在的,由于行業競爭、隱私安全、行政手續復雜等問題,即使是在同一個公司的不同部門之間,實現數據整合也面臨著重重阻力,在現實中將分散在各地、各個機構的數據進行整合幾乎是不可能的,或者說所需的成本是巨大的。
當前重視數據隱私和安全已經成為了世界性的趨勢。每一次用戶數據的泄露都會引起媒體和公眾的極大關注,無論是Facebook 的數據泄露事件,還是歐盟的GDPR。
隨著人工智能落地場景越來越豐富,多方整合數據從而為用戶提供更好的服務迫切性非常高,尤其是在一些風控領域,特別需要聯合多家企業的數據來打造更好的信用模型,從而提升用戶貸款的效率。
在現有的機制,流程無法改變的情況下,是否存在一種技術上的可行性,可以在不影響用戶隱私的情況下,解決數據的孤島問題呢?
2016 年谷歌最先提出聯邦學習這個概念,聯邦學習是一種跨多個數據源的模型訓練方法,訓練的各方的原始數據保留在本地,只有參數進行交互,通過加密模型訓練得到最終的優化模型,從而解決數據孤島的問題。
筆者專門寫過一篇文章《聯邦學習,帶我們走出“數據孤島”的困境?》介紹過這個技術,也組織團隊正在進行嘗試,但關鍵的問題是聯邦學習業界還沒有達成安全的共識,沒有第三方中立機構為你背書,機制和流程仍然是很大的挑戰。
最近聽到的消息是,作為國內“聯邦學習”技術的首倡者和領導者,微眾銀行 AI 團隊在微眾銀行首席人工智能官楊強教授的帶領下,不斷推進著聯邦學習的標準化建設工作,致力于為聯邦學習的落地應用提供技術規范,為社會各界共建聯邦生態提供合作依據。
目前,聯邦學習技術已成功應用至智能信貸、智能風控、智能權益定價、智慧零售、智能用工、異常檢測等業務場景,為智慧城市、智慧金融等多行業賦能。而未來,基于統一的“技術溝通語言”,聯邦學習將會在更多行業更多場景發揮無限潛能。
2、強化學習
兩年前,谷歌人工智能團隊DeepMind 發布了他們的最新論文Mastering the game of Go without human knowledge,向人們介紹了阿爾法狗家族的新成員——阿爾法元。與之前幾個版本的阿爾法狗不同,阿爾法元除了解圍棋規則外,完全不依靠棋譜和人類數據,從零開始“自學成才”,成為全世界最厲害的(人工智能)圍棋手。
自學三天,自博490萬局棋后,阿爾法元以100:0的壓倒性優勢打敗曾戰勝韓國棋手李世石的AlphaGoLee,四十多天后,經過2900多萬次自玩游戲,阿爾法元超過此前AlphaGo的所有版本,殺到黑白世界尸橫遍野,成為世界上最厲害的圍棋程序。
阿爾法元與幾位哥哥的最大區別是,它不再需要人類數據作訓練。因此,我們把AlphaGo Zero稱作“阿爾法元”,其完全擺脫人類先驗經驗,除規則外,完全不借助人類數據,從第一場游戲開始,自我學習。
AlphaGo團隊負責人大衛·席爾瓦介紹,阿爾法元使用新的強化學習方法,讓自己變成了老師。系統一開始甚至并不知道什么是圍棋,只是從單一神經網絡開始,通過神經網絡強大的搜索算法,進行了自我對弈。
而大家都知道傳統的深度學習訓練過程需要消耗大量人類標注樣本,而這對于小樣本應用領域(比如醫療圖像處理)是不可能辦到的。阿爾法元是在雙方博弈訓練過程中嘗試解決對人類標注樣本的依賴,而其依賴的正是強化學習獨特的算法機制。
那么,強化學習和一般的有監督學習有什么區別呢?
強化學習通過對未知環境一邊探索一邊建立環境模型以及學得一個最優策略。有監督學習則是事先給你了一批樣本,并告訴你哪些樣本是優的哪些是劣的(樣本的標記信息),通過學習這些樣本而建立起對象的模型及其策略。
強化學習方法示意
在強化學習中沒有人事先告訴你在什么狀態下應該做什么,只有在摸索中反思之前的動作是否正確來學習。從這個角度看,可以認為強化學習是有時間延遲標記信息的有監督學習,下面再打個比方:
我們小時后看到馬戲團的狗盡然可以算加減法,鴿子也會走鋼絲了,就差豬也會飛了(扯遠了),這是如何做到的?其實啊,拿鴿子來說,每當鴿子走到鋼絲盡頭或者中間某時刻(可以設計)的時候,訓練人員就會給它一些獎勵,這些獎勵的作用是讓它“知道”,鴿子啊,你當才的動作是對的(或者是不錯的,你要繼續保持啊)。如此一來,鴿子無形之中就受到了暗示,我只要那樣做,就有獎勵(食物)吃。何樂而不為呢。
AlphaGo團隊負責人大衛·席爾瓦甚至這么說:“阿爾法元的出現表明,算法比所謂計算或數據可用性更重要?!?/p>
而李開復對此表示了不同意見,其提到阿爾法元的技術革新并非適用于所有人工智能領域:“圍棋是一種對弈游戲,是適用于規則并可以窮舉的。在相對有結構的領域,比如新材料開發,過去靠的可能是靈感,未來就可以靠自主學習。阿爾法元的新技術確實可能帶來革新。但是,像語音識別,圖像識別,自然語音理解等等領域,缺乏用簡單規則就能判別的樣本,它們依然需要大量的人類數據?!?/p>
這個評價是很中肯的,雖然強化學習不能從根本上解決小數據問題,但針對特定的場景,它提供了一種解決方案。
3、生成對抗網絡
數據的生成有無規律可循,人類一直有大量的研究,我們現在做生成模型時,一般會預先設定一個分布(比如高斯分布),假設圖像符合這個分布,只是參數的分布未知,我們可以通過數據去擬合這個分布,有了分布函數,啥數據都可以生成。
但這種靠人工經驗假定數據分布的方式顯然是非常主觀的,更好的方式是我們能否對數據不進行假設,而是讓一個模型生成數據,然后再判斷這個數據究竟是對的還是錯的,是像真實數據一樣,還是和真實數據相差太遠,我們根據這個判斷反復修正這個模型。
以往的生成模型研究主要從人類理解數據的角度出發,希望使用一個顯式的分布假設去設計模型,而GAN(生成對抗網絡)可以說是第一個廣為人知的,從機器或者數據的角度出發擬合數據的模型:我們不再給它任何的數據模型分布,而是直接去學習。
古德費洛提出了GAN的思想,見下圖示意。
即設計這樣一個游戲,包括兩個玩家,其中一個就是生成器(Generator, G),生成器是一個神經網絡,它的輸入是噪聲向量,這些噪聲向量是從一個特定分布里面隨機抽樣出來,比如標準正態分布,均勻分布啊啥的,都OK,生成器的輸出就是一張圖片。
另外一個玩家是判別器(Discriminator, D),判別器D的輸入是真實圖片和生成器生成的假圖片,對應的標簽分別是1(真實圖片)和0(假圖片)。
訓練過程過程是交替進行的,先訓練判別器D,訓練方法就是傳統的分類模型;判別器訓練好后,其權重固定,在此基礎上訓練生成器,生成器的訓練方法跟判別器類似,只是其loss跟判別器剛好相反。判別器是讓真實圖片的預測概率盡量為1,假圖片的預測概率盡量為0;生成器的loss是讓假圖片在當前判別器預測的時候概率盡量為1。
這個過程不斷進行,直至相互收斂,比如對于真假圖片的識別概率都是0.5,達到的效果是生成器生成的圖片跟真實圖片非常類似,判別器鑒別不出來了。
GAN最明顯的應用是從原始數據生成新樣本以增強我們的數據集,那么如何檢查這種增強是否真的有幫助呢?
有兩個主要策略:我們可以在“假”數據上訓練我們的模型,并檢查它在真實樣本上的表現。對應的我們在實際數據上訓練我們的模型來做一些分類任務,并且檢查它對生成的數據的執行情況。如果它在兩種情況下都能正常工作,你可以隨意將生成模型中的樣本添加到你的實際數據中并再次重新訓練,你應該期望獲得性能。
NVIDIA展示了這種方法的驚人實例:他們使用GAN來增加具有不同疾病的醫學腦CT圖像的數據集,并且表明僅使用經典數據的分類性能是78.6%的靈敏度和88.4%的特異性。通過添加合成數據增強,可以增加到85.7%的靈敏度和92.4%的特異性。
但GAN更多的用途還是生成以假亂真的圖片,比如下圖用三個不同人的圖像生成三個人的綜合體圖像,非常有趣,GAN是深度學習的延伸。
4、遷移學習
遷移學習又是一種解決小數據的方法,“觸類旁通”可能是最適合描述遷移學習的成語。
比方說新開一個音樂網站,沒有任何的數據,就無法建立模型對用戶進行推薦。但如果知道用戶在視頻網站已經有了很多很多的數據,利用這些數據建一個模型,結合用戶看視頻的習慣和聽音樂習慣的關聯,就可以把音樂的推薦模型給成功地遷移到看視頻的領域,這樣,在數據不多的情況下可以成功推薦一些用戶可能喜歡的音樂。
這個例子就說明,有兩個領域,一個領域已經有很多的數據,能成功地建一個模型,有一個領域數據不多,但是和前面那個領域是關聯的,就可以把那個模型給遷移過來,這就是遷移學習。
遷移什么,怎么遷移,什么時候能遷移,這是遷移學習要解決的主要問題。
遷移學習有四種實現方法:樣本遷移、特征遷移?、模型遷移及關系遷移,這里簡單介紹下模型遷移,就是將整個模型應用到目標領域去,比如目前常用的對預訓練好的深度網絡做微調,也可以叫做參數遷移。
模型遷移利用上千萬的圖象訓練一個圖象識別的系統,當我們遇到一個新的圖象領域,就不用再去找幾千萬個圖象來訓練了,可以將原來的圖像識別系統遷移到新的領域,所以在新的領域只用幾萬張圖片同樣能夠獲取相同的效果,下圖是狗識別模型的遷移示意。
5、合成訓練數據
沒有訓練數據,沒有大規模的標簽數據集,那么就盡可能逼真的仿造數據,這就是合成訓練數據,但并非是毫無根據的模仿,合成的訓練數據一定是可以精確地模擬現實場景和現實事物。
仿真系統可以部分的解決這個問題,比如運營商的信號仿真系統,就需要基于算法來模擬得到各個位置的信號強度,從而確定弱覆蓋區域(MR數據可以用來校驗準確性),并可以基于仿真地圖獲得位置指紋庫,下圖顯示了射線追蹤、三維地圖、高程圖、植被圖的仿真。
又比如英偉達在2018年月推出DRIVE Constellation仿真系統,用以生成在虛擬世界中車輛行駛的傳感器結果。
6、原始數據增強
如果手頭的數據有限,如何能基于這些數據生成更多的數據呢?業界有很多做法,本質上就是引入各種變換或算法來生成更多的數據,也就是為數據本身服務的算法。
在圖像領域,數據增強的方法包括翻轉、旋轉、縮放、裁剪、平移、增加高斯噪聲等等,下圖是縮放的示例。
由于在變換過程中會出現真空地帶,需要采用差值法等手段來填補,如下圖所示是一張旋轉的圖,后面依次采用邊緣,反射,對稱和包裹模式來填充。
在NLP領域,數據增強的方法包括同義詞替換、隨機插入、隨機交換、隨機刪除等等,據統計,對于四種技術,數據集很小時,每一種技術都能夠有2-3%的提升,當數據集很大時,每一種技術也能夠有1%的提升。
除了圖像和NLP,大量的數據增強則需要基于實際場景通過特定的算法實現,比如在交通的路網擬合中,我們發現原始位置軌跡數據的連續性不好,打點的數據在時間,空間上并不是很均勻,如果直接基于這個殘缺數據去做應用模型,會出現大量的問題。比如統計某個時段某塊區域的車流會出現誤判,這就需要用專門的算法來進行數據補償。
下圖是某同事上班軌跡的擬合過程,第一張圖信令位置數據飄的很厲害,第三種圖綠色線部分是對于數據用算法平滑后(諸如馬爾科夫啥的)的結果,跟實際導航就很吻合了。
很多互聯網公司特別重視算法,一個原因就是利用算法可以產生有價值的新數據,從而彌補自身數據的不足,應用的體驗也更好,這個特別值得學習。
7、人工調研數據
雖然我們進入了大數據時代,但其實大量的問題可以基于調研的小數據分析獲得答案,特別是涉及主觀判斷或者情況特別復雜的場景,比如用戶的滿意度調研,因為現有的數據不足以支撐,很多基于大數據的滿意度預測模型效果也并不理想。
有人會質疑調研的數據不準確的問題,比如接受調研的人信口開河,但其實很多場景只要相對準確就行了,人大多數時候還是活在自己的約束中,造假對他也是有成本的。
比如去銀行柜臺辦銀行卡,營業員會問收入多少,你可以把年收入100萬報成30萬,你以為很離譜,但對于銀行有用,因為對于另一個年入5萬的人來說沒有30萬的想象空間,銀行的確得不到最準確的數據,但它能判斷誰更有投資價值,這就夠了,模糊不代表沒用。
因此,很多時候,如果你真的沒有數據了,人工調研也是好方法,我們的目標始終是解決問題,而不是就大數據論大數據。
說了七個方面,筆者的意思可不是說大數據不重要,而是吳恩達的這個問題引起了自己的思考,因此調研了一番。其實業界已經有一些好的做法了,你需要知道這些方法,然后看看能否為你所用,上華山并不是只有一條路,這是最重要的。
希望我的分享于你有益。
如果你覺得這篇文章有用,歡迎推薦和轉發朋友圈,如果你有獨到的見解和意見,歡迎到我的知識星球進行探討。
完
作者:傅一平?(微信號:fuyipingmnb)
機器學習初學者
黃海廣博士創建的公眾號,黃海廣博士個人知乎粉絲21000+,github排名全球前120名(30000+)。本公眾號致力于人工智能方向的科普性文章,為初學者提供學習路線和基礎資料。原創作品有:吳恩達機器學習個人筆記、吳恩達深度學習筆記等。
往期精彩回顧
那些年做的學術公益-你不是一個人在戰斗
良心推薦:機器學習入門資料匯總及學習建議
吳恩達機器學習課程筆記及資源(github標星12000+,提供百度云鏡像)
吳恩達深度學習筆記及視頻等資源(github標星8500+,提供百度云鏡像)
《統計學習方法》的python代碼實現(github標星7200+)
精心整理和翻譯的機器學習的相關數學資料
首發:深度學習入門寶典-《python深度學習》原文代碼中文注釋版及電子書
圖解word2vec(原文翻譯)
備注:加入本站微信群或者qq群,請回復“加群”
加入知識星球(4100+用戶,ID:92416895),請回復“知識星球”
總結
以上是生活随笔為你收集整理的如何应对“吴恩达:人工智能落地最重要的挑战之一是小数据”的困境?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 万字长文|线性代数的本质课程笔记完整合集
- 下一篇: (github标星9200+)《南瓜书》