Google推出MultiModel,可同時學習8種不同任務
文 / Google Brain 團隊高階研究員 Łukasz Kaiser 和多倫多大學電腦科學系機器學習小組研究員 Aidan N. Gomez
近十年來,雖然深度學習的應用和效能均取得了飛速進步,但其面臨的現狀是神經網路架構的應用領域非常專一化。一個重要的問題依然懸而未決:如果將跨專業領域的深度學習聚合形成統一的模型,是否能夠同時在多個領域取得優異表現呢?
我們隆重推出融匯了視覺、語言和語音網路研發成果的神經網路架構 MultiModel。這套模型能夠同時解決跨多個領域的大量問題,包括影象識別、翻譯和語音識別等。雖然我們此前已在這一方向取得重大進步(即 Google 翻譯使用的 Google 多語言神經翻譯系統),但 MultiModel 是我們在單一網路中整合視覺、語音和語言理解邁出的第一步。
MultiModel 多領域處理方式的靈感來自於大腦如何將不同模態(如聲音、視覺或味覺)的感官輸入轉化為單一的共性表現,並以語言或動作形式作為反應。作為對這些模態及其轉換過程的模擬,MultiModel 擁有大量特定的小模態語音、影象或文字子網路,以及由編碼器、輸入/輸出混合器和解碼器組成的共享模型(如下圖所示)。
▲ MultiModel 架構:特定小模態子網路搭配共享編碼器、I/O 混合器和解碼器。每個分支代表一種模態,通過內部表徵相互轉換。
我們證明了 MultiModel 能夠同時進行 8 種不同的學習任務:辨識影象中的物件、提供字幕、識別語音、四對語言互譯,同時進行語法分析。模型會接收輸入以及一個非常簡單的訊號,該訊號將決定我們所需的輸出結果。
這 8 項任務包括:(1) 語音識別 (WSJ corpus);(2) 影象識別 (ImageNet);(3) 影象字幕製作 (MS COCO);(4) 語法分析 (Penn Treebank);(5) 英德翻譯;(6) 德英翻譯;(7) 英法翻譯;(8) 法英翻譯(全部使用 WMT 資料集)。下面舉例說明 MultiModel 同時針對這 8 項任務的訓練:
在設計 MultiModel 時,我們清楚認識到,每個研究領域(視覺、語言和語音)的某些要素對這個模型成功執行相關任務不可或缺。我們通過試驗證明,這些計算原語(例如卷積、注意力或專家混合層)不僅能明顯提升其最初目標應用領域的效能表現,而且不會影響 MultiModel 執行其他任務時的效能表現。這樣,不僅可以在多工訓練時取得良好的效能表現,在資料量有限的任務中,其效能表現也會有實質性的提升。令我們感到驚訝的是,即使這些任務來自鮮有共性的不同領域,亦是如此。例如,影象識別任務也可以提升語言任務中的效能表現。
值得重視的是,雖然 MultiModel 並沒有創造新的效能紀錄,但卻幫助我們深入瞭解了神經網路中多領域多工學習的動態進展,以及通過引入輔助任務來促進有限資料任務學習的潛力。機器學習領域有一個流傳很久的觀念:“最佳的正則項是更多的資料。”MultiModel 能夠跨領域獲取資料,因而比之前設想的方案更容易獲取資料。MultiModel 證明,與其他任務聯合訓練可以提升有限資料任務的效能表現,取得良好的結果。
關於多領域機器學習,有許多問題仍待研究,我們將繼續優化 Multimodel,提升其效能表現。為了快速推進這項研究,我們在 Tensor2Tensor 庫中開放了 MultiModel 的原始碼:
https://github.com/tensorflow/tensor2tensor
我們相信,這類採用多領域資料訓練的協作模型將成為深度學習的下一發展方向,並最終攻克當前窄領域訓練網路所無法解決的任務。
致謝:
這項研究由 Google 員工 Łukasz Kaiser、Noam Shazeer、Ashish Vaswani、Niki Parmar、Llion Jones、Jakob Uszkoreit 以及多倫多大學研究員 Aidan N. Gomez 共同開展。Aidan 當時正與 Google Brain 團隊合作。
推薦閱讀:
TensorFlow Research Cloud能為你帶來什麼好處?
相關文章
- 同樣的故事,只是時間地點任務有些不同
- 22個任務超越SOTA,43個任務媲美SOTA,Google推出醫學治療通用大模型Go大模型
- 定時任務框架學習心得框架
- 前端學習任務四前端
- 今年的學習任務
- 同時學習多種程式語言其實很容易
- 與模型無關的元學習,UC Berkeley提出一種可推廣到各類任務的元學習方法模型
- Linux已可勝任實時任務應用(轉)Linux
- 使用Transformer與無監督學習,OpenAI提出可遷移至多種NLP任務的通用模型ORMOpenAI模型
- 50、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?synchronized
- Java Spring中同時訪問多種不同資料庫JavaSpring資料庫
- 【任務】資訊檢索.MOOC學習
- Oracle任務排程工具學習Oracle
- 幾種實現延時任務的方式(一)
- java定時任務實現的幾種方式Java
- Java實現定時任務的三種方法Java
- quartz學習-quartz編碼方式實現定時任務簡例quartz
- 定時任務
- freertos基礎學習--任務通知
- 學習SQL Server 的任務排程SQLServer
- Angular 8 學習 (五 服務)Angular
- Python實現定時任務的多種方式Python
- 『學了就忘』Linux系統定時任務 — 88、迴圈執行定時任務Linux
- 定時任務的書寫流程是什麼?Linux運維學習時間Linux運維
- 伯克利提出強化學習新方法,可讓智慧體同時學習多個解決方案強化學習智慧體
- Linux系統中延時任務及定時任務Linux
- Laravel深入學習8 – 單一責任原則Laravel
- NLP與深度學習(一)NLP任務流程深度學習
- Java併發學習之任務取消(一)Java
- Activiti 學習筆記12:分配個人任務筆記
- Activiti 學習筆記13:分配組任務筆記
- SpringBoot與非同步任務、定時任務、郵件任務Spring Boot非同步
- 定時任務scheduler
- At 、Crontabl定時任務
- crontab定時任務
- 定時任務管理
- ubuntu定時任務Ubuntu
- schedule 定時任務