如果我們回看整個智能汽車系統架構的演進過程,汽車的電子電氣架構經歷了“直聯”,“總線”,“域控”三個階段,從離散走向集中,構筑了硬件架構變化的“三部曲”。
有意思的是,軟件架構的發展過程,也存在著類似的變化。
當下數據驅動的“自學習型”智能駕駛系統得到了行業越來越多的認可,整個學習系統的構建也經歷了三個階段。從傳統學習系統,到當下行業主流的分布式深度學習系統,再到以特斯拉為代表的集中式深度學習系統,構建了軟件架構變化的“三部曲”。
傳統學習系統
首先就是傳統學習系統,主要由傳統機器學習和規則算法構成,一個典型的例子就是DPM算法。其通過采用改進的HOG特征(人工設計特征),SVM分類器和滑動窗口(Sliding Windows)檢測,配合多組件(Component)外加圖結構(Pictorial Structure)的檢測框架(類似下圖的多彈簧結構)來完成檢測。此類方法使用了一部分規則算法,同時使用了一部分淺層的機器學習算法。
對于這一類系統,與其說這是數據學習系統,更不如說是工程師學習系統。實際上,在規則主導的算法系統里,真正獲得成長的是工程師而不是系統。如果把學習比作考場答題,那傳統機器學習和規則算法階段更像是直接把答案連同考題一起打印出來,打印機并沒有在這個過程中學習到任何東西。因此規則算法為主的系統,很難界定它為真正意義上的學習系統。
分布式深度學習系統
分布式深度學習系統主要由多個獨立的深度學習網絡構成。深度學習原理的資料網絡上較多,這里簡單介紹,不做擴展。 深度學習屬于機器學習的一種,但不同于傳統機器學習算法,其可以滿足更為復雜的學習任務。一個標準的有監督深度學習訓練,主要由如下幾部分組成:原始數據樣本與對應的真值,網絡模型結構(先驗)以及對應的損失函數(目標)。深度學習常用的訓練方法是梯度下降和反向傳播,其訓練過程涉及epoch/iteration/batch等關鍵參數的選取,初值以及最優化器的選擇。 另外,訓練完成后的評估階段,往往通過交叉驗證等方法,發現欠擬合或過擬合等訓練問題,跟蹤模型的泛化性能力。通過方差與偏差或者第一二類錯誤等指標,評價模型的業務匹配度,并根據需求找到不同指標間的平衡,依照評估結構重新調整模型結構與訓練過程。 深度學習雖被叫做“煉丹”,但各種要素之間也有其基本關系。整個學習過程中,數據的質量和數量大體決定了模型的性能,模型結構則決定了模型效果的上限,而訓練過程決定了逼近上限的速度與程度。 面對復雜的訓練過程,還需要配置更多的外圍系統,比如數據預處理系統(負責數據的生產,清洗和增強),訓練評估管理系統(負責模型迭代基線的管理,超參調整管理,復雜模型評估等),數據部署系統(將模型從云端適配到業務終端)。
目前典型的深度學習(有監督學習系統)可以說是一個真正意義上的可學習系統,其具有完整的數據收集、真值獲取、網絡訓練和模型部署的過程環節。也是目前智能駕駛正在采用的主流方案。 但這種方案也在面臨困境,和分布式EEA架構一樣,問題就出現在“分布”兩字。雖然各家的模型設計細節或者具體數據管道細節各不相同,但基本上都是多個有監督訓練網絡的獨立部署。 車道一個網絡、障礙物一個網絡、信號燈一個網絡。每個網絡都需要大量人工標注,且不同的標注數據都只能服務一個功能,不同數據之間缺少相互的貢獻。 還是以考場答題為例,雖然這次確實是一個學生正兒八經地根據自己所學完成了這一次測試,可是其解答考題的方式更多是對相似的題庫,甚至考卷答案進行強制記憶,是一種典型的“鸚鵡學舌”。一個有意思的現象是,任何智能體包括人類在內都深知“偷懶”的重要性。如果通過背誦答案和學習真正的知識點都能夠使自己通過考試(收益相等),智能體更愿意選擇前者,也就是說在分布的學習系統當中,由于網絡只解決單一的任務,其便沒有動力去學習多個任務背后的共性特點。從而很大程度上致使其遺漏了部分“重要的知識”,我們在后續內容中會具體展開這個過程。 為了解決分布式深度學習系統的困境,集中式深度學習系統開始出現。
集中式深度學習系統
集中式深度學習的構成仍然是深度學習網絡,然而不同于分布式最大的特點主要表現在兩個方面,1. 云端訓練以及車端部署往往采用單一網絡架構。2.訓練手段逐步開始采用弱監督或者自監督方法。
在工程實踐中我們會發現,人工智能不可能在脫離人類支持和控制的情況下,完成自我成長。但純粹依靠人類的標注,也無法達到人工智能持續成長所需的數據體量。因此,在很長一個周期內,智能駕駛的發展必然會圍繞弱監督系統展開。 也就是說,有監督學習、弱監督學習以及自(無)監督學習會長期并存。有監督學習是智力的“酵母”,而弱監督與自監督學習則是一個持續發酵的過程。 相比有監督學習的填鴨式啟蒙教學,弱監督學習更像是業務專家對學習系統的“點撥”,而自監督則更多是師傅領進門后的個人修行。人類工程師逐級往后提供更少、更高維度且更為抽象的輸入來指導學習系統的成長。深入分析上述兩類學習系統的實踐經驗,我們會發現幾個關鍵痛點: 第一,規則系統可以解釋但無法學習,而深度學習系統可以學習,但不可解釋,相當于是“黑盒”。因此我們需要具有一定解釋能力的可學習系統,也就是“白盒”。 第二,我們希望盡可能地避免業務新增和轉變之后從零開始的數據標注問題,使數據可實現持續積累。 第三,盡可能地減少每個業務對標注工作的強需求,可以充分利用已有的知識積累,并減小人員負荷。 為了應對以上這些痛點,基于多任務弱監督的深度學習系統初見端倪,特斯拉在其“Data Pipeline and Deep Learning System for Autonomous Driving”的專利基本描述[0011]條上,做了如下解釋:其將感知提取作業作為單獨的數據組件(components),使用多層來實現網絡結構;將傳感器數據提取為兩個或更多個不同的數據分量。 例如,不同局部特征數據可以與全局數據分解為不同的數據成分;不同的數據組件提取數據以確保在機器學習網絡的適當階段與位置進行準確的特征檢測。對不同的數據分量可以進行預處理以增強它們所包含的特定信號信息。數據分量可以被壓縮/或下采樣以增加資源和計算效率。
從這份專利描述和相關聯的信息中,我們可以隱約看出特斯拉正在采用的學習系統,極大概率就是使用了自監督的框架的集中式深度學習系統。
自監督下的集中式深度學習系統詳解
下圖對整個自監督學習系統的構成做一個介紹。我們會發現其和經典的深度學習系統還是有著巨大的區別。 在各類文章中大家一定聽到過好多深度學習名詞,比如有監督、標注輔助、對比學習、遷移學習、增強學習、半監督學習等等。實際上結合智駕業務模型,我們能看到這些時下流行的名詞是如何被有機整合在一起,并解決傳統學習系統痛點的。毫不夸張的講,自監督學習系統,在未來必然是整個智能駕駛閉環系統最為核心的部件。
自監督學習給工具鏈帶來的變化
與傳統深度學習系統類似,整個學習系統分為數據采集、數據處理、訓練、核心云端網絡設計、模型部署和最終集成等幾個基本環節。
1)數據采集
首先是車端采集策略的變化。 過去由于更多依賴人工標注,因此采集需要被標注的輸入(一般為圖片)就基本滿足數據搜集的要求,剩下的交給標注人員即可產生訓練所需的真值。但在自監督學習系統下,如果我們需要更好地發現數據之間的關聯,就需要同時采集圖像外圍的關聯數據,比如,在時間維上將圖像記錄變為視頻記錄,在感知維上增加了額外的其他傳感器以及過程語義信息的記錄,部分間接真值數據(緊急剎車,檢測失效,用戶退出)也會被保存。 同時借由車端差異收集系統,對價值數據做初步過濾。特斯拉目前已經采取了類似的策略,其使用車上8個攝像頭的視頻流數據進行標識,想比上一代系統效率提升了三個數量級。 視頻以及其他時間序列的記錄可以支持模型通過過去的序列預測未來的序列,多傳感器的接入可以增加更多效驗渠道,并提供跟多泛化回路。語義模型可以反映場景狀態更好地和司機行為關聯,發現潛在的標簽,從而將龐大體量的司機數據轉化為價值。采集策略的變化重點是增加潛在的關聯信息量,從而為后續自監督系統可以正常工作提供基礎。
2)數據標注
數據上傳后對學習系統而言,最關鍵的就是真值數據的標注。 伴隨著深度學習網絡的延伸,原來由規則算法處理的視覺測距、融合、地圖、預測甚至規劃都開始使用深度學習方法。因此真值的定義也逐步擴大。 深度學習測距的成熟以及規則算法對俯仰角抖動問題的無奈,促使行業開始從2.5D標注轉向4D的標注,實際上是用三維空間加時間維的標注方法代替傳統圖像2D標注+深度或者類型標注,甚至出現了5D、6D等更多維度的標注需求。當然,3D的障礙物標注以至于更高維的標注已經逐漸超出了人類可接受的范疇。 因此配合業務需求的升級以及數據采集標準的升級,真值標注系統的概念也已經發生變化。過去的標注是一個勞動密集型行業,有標注工具以及標注人員就可以開通。而當下的標注已經逐步變成一個綜合性極高的業務,成為技術密集型行業。 半自動標注或者全自動化標注系統的設計范式已知的就有三十多種,從原來的圖像真值標注演化為一個更為廣義的概念,也就是如何為智能駕駛各個模塊的優化迭代提供直接或者間接的學習素材。包括主動學習、半監督學習、編程標注、眾包、仿真迭代等。 無論采用何種手段,這個模塊的功能定位是明確的,就是為被訓練模塊提供一種抽象意義上可能帶有噪聲的“真值標簽”。 只不過過去只有人工標注,而當下可用的手段和存在形式就豐富了許多,對抗網絡、無標注數據、數據增強、輔助標注,甚至另一個網絡模型都可以成為一個生成“真值”的系統。
3)模型訓練
緊接著我們要討論的是云端訓練模型設計,其實施邏輯與經典方法有著諸多不同。 過去不同的業務(障礙物檢測、車道檢測)都會采用獨立的模型,在控制訓練穩定性上要優于有多個任務目標的多頭多任務模型,但這種簡單訓練方法有著較為致命的問題——和整車,電子電氣架構一樣,網絡學習模型也在走向集中化。因為孤立的網絡模型無法更有效的利用數據“能量”且同樣缺少靈活性。 仍然是考場答題的例子,如果通過考試是我們唯一的考量維度,你選擇把試卷隱含的所有知識點都理解透徹后參加考試?還是直接把答案背誦下來參加考試?一個理性人都會選擇后者,因為大腦本質上是“懶惰”的,希望使用最小的能量和復雜度完成目標。 而這種懶惰的代價就是每個業務都要重新組織數據,過程笨拙無比。訓練出來的網絡無法解釋自己,且多次業務迭代后也不會有持續的積累。這種情況和之前討論的電子電氣架構的變革原因是類似的。 新的網絡結構則更傾向于前者,傾向于一個大型的集中網絡,但是會在整個網絡的不同斷面(主干層,分支層,支線層)逐層進行訓練,并同時訓練多個任務(multi-task learning)。這些不同斷面,不同任務的聯合訓練,實際上是一種對神經網絡的“逼迫”。 簡單地理解,就像是一份試卷不僅要你答案準確,還需要用幾種解題思路完成,并對你的各種中間過程做出要求。 這時,哪怕最懶惰的大腦也會發現,理解知識點變成最為“節能”的方法。這也促使網絡模型學習到真正的知識,各個層次與分支也擁有了“規則組件”的可拆解性,增強了網絡模型的可解釋性。不同層次可以根據需求使用不同的標簽生成器,前一層網絡的訓練結果甚至可以反過來結合各種真值生產構件,為后一層的網絡模型的真值服務。 我們會發現在這種集中式結構下,數據的積累,模型的可解釋性以及多業務的轉移成本都有了質的變化,當然和討論域控制器的優劣一樣,這種多個維度都有所改善的設計,都是以提升工程師能力為前提的,這類網絡、數據、訓練以及任務管理相比過去都更加難以運維和控制。
4)算法部署
在部署階段,根據業務場景的輸入輸出要求,可以對云端大型網絡進行閹割,保留關聯的連接結構以及業務所需的輸出。 同時,可以使用遷移學習的思想,根據需求將網絡模型的部分參數結構鎖定,作為模型的“預訓練”成果,在感興趣的實車任務上進行 “微調”?;蛘呃谜麴s學習的思想,用云端模型訓練一個車端更緊湊的模型,滿足車端的算力和業務要求。 相比于過去,在實際業務場景發生時,已經不是數據和模型的推倒重來,而是重新完成一次,真值標簽的生成,多任務的訓練,網絡模型的閹割和最終的部署壓縮。為新業務增加的投入和成本是可控的,且有可能還會為下一個業務作出貢獻。這種集中化帶來的優勢,和域控制器的邏輯是非常類似的。 如果域控制器提供了完整的肉身,則當下弱監督多任務的學習系統則提供了可期的靈魂。到這里整個智能駕駛系統的“類人結構”便初見雛形。
總結
總的來說,智能駕駛學習系統的演進是“機器人”視角下對“學習”這個概念的理解加深。 傳統學習系統中,“機器人”沒有學到太多內容;在分布式學習系統中“機器人”學習到了一些表層的現象,但缺少對共性的理解;在集中式學習系統當中,“機器人”則被迫從多個現象中學習背后的共性知識;而學習系統的設計者則更像是一個老師,希望引導學生去掌握真正有價值的東西。 另外如果我們將整車電子電氣架構比作人類的身體,則域控制器的革命,是將零散的身體部件組織成一個完整的身體;而集中式深度學習系統更像是將零散的腦組織,組織成一個完整的大腦。這些都是機器走向“類人結構”的一個必經過程。
審核編輯:郭婷
-
智能汽車
+關注
關注
30文章
2844瀏覽量
107258 -
深度學習
+關注
關注
73文章
5500瀏覽量
121118
原文標題:深度學習系統框架的演進趨勢
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論