本文介紹了AI多任務學習的定義、特征、優勢和應用場景,表達AI多任務學習的發展需要向人類看齊。
提到AI領域的多任務學習,很多人可能一下子就想到通用人工智能那裡了。通俗意義上的理解:就像《超能陸戰隊》裡的大白這樣一種護理機器人,既能進行醫療診斷,又能讀懂人的情緒,還能像陪伴機器人一樣完成各種複雜任務。
不過大白畢竟隻是科幻電影當中的産物,現有的AI技術大多還處于單體智能的階段,也就是一個機器智能隻能完成一項簡單任務。
工業機器人中做噴漆的就隻能用來噴漆;做搬運的隻能用來搬運;識别人臉的智能攝像頭隻能進行人臉。一旦人類戴上口罩,那就要重新調整算法。
當然,讓單個智能體實現多種任務也是當前AI領域研究的熱點。
最近,在強化學習和多任務學習算法上成績最好的是DeepMind公司的一款名為Agent57的智能體——該智能體在街機學習環境(ALE)數據集所有57個雅達利遊戲中實現了超越人類的表現。當然,多任務學習不止用在遊戲策略上。
相對于現階段的AI,我們人類才是能夠進行多任務學習的高手。我們既不需要學習成千上萬的數據樣本就可以認識某類事物,我們又不用針對每一類事物都從頭學起,而是可以觸類旁通地掌握相似的東西。
AI在單體智能上面确實可以輕松碾壓人類,比如可以識别成千上萬的人臉;但AI在多任務學習上面就要向人類的這種通用能力看齊了。
一、什麼是多任務學習多任務學習(Multi-Task Learning,MTL),簡單來說:就是一種讓機器模仿人類學習行為的一種方法。
人類的學習方式本身就是泛化的,也就是可以從學習一種任務的知識遷移到其他的相關的任務上,而且不同的任務的知識技能可以相互幫助提升。
多任務學習涉及多個相關的任務同時并行學習,梯度同時反向傳播,利用包含在相關任務訓練信号中的特定領域的信息來改進泛化能力。
(單任務學習和多任務學習的模型對比示意)
做一個形象的類比:我們知道人類不如虎豹擅跑,不如猿猴擅爬,也不如鲸豚擅遊;但是人類是唯獨可以同時做到奔跑、攀援和遊泳的。用在人工智能和人類智能上,我們通常認為AI更擅于在單一任務上表現優異并超越人類專家,如AlphaGo一樣;而人類則可能在各種任務上都能勝任。
MTL正是要讓人工智能來實現人類的這種能力:通過在多個任務的學習中,共享有用的信息來幫助每個任務的學習都得到提升的一個更為準确的學習模型。
這裡需要注意的是多任務學習和遷移學習的區别:遷移學習的目标是将知識從一個任務遷移到另一個任務,其目的是使用一個或多個任務來幫助另一個目标任務提高,而 MTL 則是希望多個任務之間彼此能相互幫助提升。
二、了解MTL1. MTL的兩個特征
1)是任務具有相關性。
任務的相關性是說幾種任務的完成模式是存在一定的關聯性的,比如,在人臉識别中,除了對人臉特征的識别,還可以進行性别、年齡的估算識别,或者,在不同的幾類遊戲中識别出共通的一些規則,這種相關性會被編碼進 MTL 模型的設計當中。
2)是任務有不同的分類。
MTL的任務分類主要包括監督學習任務、無監督學習任務、半監督學習任務、主動學習任務、強化學習任務、在線學習任務和多視角學習任務,因此不同的學習任務對應于不同的MTL設置。 共享表示和特征泛化.
2. 理解MTL優勢的兩個關鍵
1)為什麼在一個神經網絡上同時訓練多個任務的學習效果可能會更好?
我們知道,深度學習網絡是具有多個隐層的神經網絡,逐層将輸入數據轉化成非線性的、更抽象的特征表示。
而各層的模型參數不是人為設定的,而是給定學習器的參數後在訓練過程中學到的——這給了多任務學習施展拳腳的空間,具備足夠的能力在訓練過程中學習多個任務的共同特征。
例如在上面的MTL的網絡中,後向傳播并行地作用于4個輸出。由于4個輸出共享底部的隐層,這些隐層中用于某個任務的特征表示也可以被其他任務利用,促使多個任務共同學習。多個任務并行訓練并共享不同任務已學到的特征表示,這樣多任務信息就有助于共享隐層學到更好的内部表示,這成為多任務學習的關鍵。
2)那麼MTL是如何産生效果的?
MTL的方法中引入了歸納偏置(inductive bias)。
歸納偏置有兩個效果,一個是互相促進,可以把多任務模型之間的關系看作是互相先驗知識,也稱歸納遷移(inductive transfer)。
有了對模型的先驗假設,可以更好的提升模型的效果;另外一個效果是約束作用,借助多任務間的噪聲平衡以及表征偏置來實現更好的泛化性能。
首先,MTL的引入可以使得深度學習減少對大數據量的依賴。少量樣本的任務可以從大樣本量的任務中學習一些共享表示,以緩解任務數據的稀疏問題。
其次,多任務直接的相互促進,體現在:
- 多個模型特性互相彌補,比如在網頁分析模型中,改善點擊率預估模型也同時能促進轉化模型學習更深層的特征;
- 注意力機制,MTL可以幫助訓練模型專注在重要特征上面,不同的任務将為這種重要特征提供額外證據;
- 任務特征的“竊聽”,也就是MTL可以允許不同任務之間相互“竊聽”對方的特征,直接通過“提示”訓練模型來預測最重要的特征。
再次,多任務的相互約束可以提高模型的泛化性。
一方面:多任務的噪聲平衡。多任務模型的不同噪聲模式可以讓多個任務模型學到一般化的表征,避免單個任務的過度拟合,聯合學習能夠通過平均噪聲模式獲得更好的表征;
另一方面:表征偏置。MTL的表征偏好會造成模型偏差;但這将有助于模型在将來泛化到新任務。在任務同源的前提下,可以通過學習足夠大的假設空間,在未來某些新任務中得到更好的泛化表現。
3. 行業場景落地,MTL如何解決現實問題
由于MTL具有減少大數據樣本依賴和提高模型泛化表現的優勢,MTL正被廣泛應用到各類卷積神經網絡的模型訓練當中。
首先,多任務學習可以學到多個任務的共享表示,這個共享表示具有較強的抽象能力,能夠适應多個不同但相關的目标,通常可以使主任務獲得更好的泛化能力。
其次,由于使用共享表示,多個任務同時進行預測時,減少了數據來源的數量以及整體模型參數的規模,使預測更加高效。
1)MTL在諸如目标識别、檢測、分割等場景為主的計算機視覺的應用:
臉部特征點檢測:因為臉部特征可能會受到遮擋和姿勢變化等問題的影響,通過MTL能夠提高檢測健壯性,而不是把檢測任務視為單一和獨立的問題。
多任務學習希望把優化臉部特征點檢測和一些不同但細微相關的任務結合起來,比如頭部姿勢估計和臉部屬性推斷。
臉部特征點檢測不是一個獨立的問題,它的預測會被一些不同但細微相關的因素影響。比如一個正在笑的孩子會張開嘴,有效地發現和利用這個相關的臉部屬性将幫助更準确地檢測嘴角。
如上圖人臉特征點檢測(TCDCN)模型,除了檢測特征點任務,還有識别眼鏡、笑臉、性别和姿态這四個輔助任務;通過與其它網絡的對比,可以看出輔助任務使主任務的檢測更準确。
MTL在不同領域有不同應用,其模型各不相同,解決的應用問題也不盡相同,但在各自的領域都存在着一些特點。
除上面介紹的計算機視覺領域,還有像生物信息學、健康信息學、語音、自然語言處理、網絡垃圾郵件過濾、網頁檢索和普适計算在内的很多領域,都可以使用 MTL 來提升各自的應用的效果和性能。
比如:在生物信息學和健康信息學中,MTL被應用于識别治療靶點反應的特征作用機制,通過多個群體的關聯性分析來檢測因果遺傳标記;以及通過稀疏貝葉斯模型的自動相關性特征,來預測阿爾茨海默病的神經成像測量的認知結果。
2)在語音處理上的應用
2015年,有研究者在國際聲學、語音與信号處理會議(ICASSP)上分享了一篇《基于多任務學習的深度神經網絡語音合成》的論文,提出一種多任務疊層深層神經網絡。
它由多個神經網絡組成——前一個神經網絡将其最上層的輸出作為下一個神經網絡的輸入,用于語音合成,每個神經網絡有兩個輸出單元,共享兩個任務之間的隐藏層,一個用于主任務,另一個用于輔助任務,從而更好地提升語音合成的準确度。
3)在網絡Web應用程序中
MTL可以用于不同任務共享一個特征表示,學習web搜索中的排名提升;MTL可以通過可擴展分層多任務學習算法,用于找到廣告中轉換最大化的層次結構和結構稀疏性等問題。
總體上來說,在這些MTL的應用領域中,特征選擇方法和深度特征轉換方法得到研究者的普遍應用。
因為前者可以降低數據維數并提供更好的可解釋性;而後者通過學習強大的特征表示可以獲得良好的性能。
MTL正在越來越多的領域作為一種提高神經網絡學習能力的手段被廣泛應用——這其實正是AI在衆多行業實際應用中的常态化場景。
我們可以最終溯源反思一下:人類之所以能夠具有多任務學習的靈活應用的能力,恰恰是因為所處環境正是處在多特征、多噪聲的狀況之下。這樣必然要求我們人類必須能夠觸類旁通地進行先驗的學習能力的遷移。
而如果人工智能僅僅停留在單體智能上面,為每一類知識或任務都建立一套單獨的模型,最後可能仍然隻是一套“人工智障”的機械系統,鬧出“白馬非馬”這類的笑話來。
當AI未來真正既能在融會貫通的方面像人類一樣熟練,又能克服人類認知帶寬和一些認知偏見,那通向AGI的前路才可能迎來一絲曙光。
當然這條路還相當遙遠。
作者:藏狐;公衆号:腦極體
本文由 @腦極體 原創發布于人人都是産品經理。未經許可,禁止轉載
題圖來自 Unsplash,基于CC0協議
,