天天看點

萬字綜述自動駕駛資料閉環

編輯 | 焉知智能汽車

最近自動駕駛和資料閉環結合在一起成為一大解決方案,原因是自動駕駛工程已經被認可是一個解決資料分布“長尾問題”的任務,時而出現的corner case(極端情況)是對資料驅動的算法模型進行更新的來源之一,如圖所示。

萬字綜述自動駕駛資料閉環

構成這個自動駕駛資料閉環的核心技術和子產品都有哪些呢?首先是這個自動駕駛的算法和子產品是資料驅動的,其次源源不斷的資料需要有合理有效的方法去利用。

如圖是Tesla衆所周知的Autopilot資料引擎架構:确認模型誤差、資料标注和清洗、模型訓練和重新部署。

萬字綜述自動駕駛資料閉環

這是谷歌waymo報告提到的資料閉環平台:其中有資料挖掘、主動學習、自動标注、自動化模型調試優化、測試校驗和部署釋出。

萬字綜述自動駕駛資料閉環

如圖是英偉達公司在自動駕駛開發建立的機器學習平台MAGLEV,也是基于閉環的模型疊代:其中有smart的資料選擇、資料标注、模型搜尋、訓練、評估、調試和部署。

萬字綜述自動駕駛資料閉環

下面對資料閉環各個組成部分進一步讨論:

  • 自動駕駛的資料驅動模型;
  • 雲計算平台的基建和大資料處理技術;
  • 訓練資料标注工具;
  • 大型模型訓練平台;
  • 模型測試和檢驗;
  • 相關的機器學習技術。

1 自動駕駛的資料驅動模型

應該說,自動駕駛的算法子產品,基本都是資料驅動的訓練模型要優于基于規則或者優化的,尤其是感覺和預測。

以下圖(綜述論文 “A Survey of Autonomous Driving: Common Practices and Emerging Technologies”)為例,現在自動駕駛的開發基本是子產品化的(a),隻有個别是采用端到端模式(b)。

萬字綜述自動駕駛資料閉環

端到端模式可以說絕對是資料驅動的(如圖為例),因為傳統的優化和規則方法無法處理如此複雜的系統設計和公式化。

萬字綜述自動駕駛資料閉環

“E2E Learning of Driving Models with Surround-View Cameras and Route Planners”

子產品化的方法也是可以采用資料驅動方式,可以分成以下子產品:

  • 感覺:圖像/雷射雷達/毫米波雷達
  • 地圖+定位
  • 預測(感覺-預測)
  • 規劃決策(預測-規劃)
  • 控制(規劃-控制)
  • 傳感器預處理
  • 模拟仿真

下面以此分别讨論:

1)感覺:2-D/3-D 目标檢測和分割基本是采用深度學習模型,無論雷射雷達、攝像頭或者傳感器融合的形式;跟蹤基本是tracking-by-detection方式,不過把跟蹤和檢測內建在一起做深度學習模型也是大家讨論的熱點之一。

萬字綜述自動駕駛資料閉環

“Keep your Eyes on the Lane: Real-time Attention-guided Lane Detection”

萬字綜述自動駕駛資料閉環

“M3DSSD: Monocular 3D Single Stage Object Detector”

萬字綜述自動駕駛資料閉環

“PointPillars: Fast Encoders for Object Detection from Point Clouds”

萬字綜述自動駕駛資料閉環

“Joint 3D Proposal Generation and Object Detection from View Aggregation”

萬字綜述自動駕駛資料閉環

”Seeing Through Fog: Deep Multimodal Sensor Fusion in Unseen Adverse Weather“

萬字綜述自動駕駛資料閉環

“Fast and Furious: R-T E2E 3D Detection, Tracking& Motion Forecasting with a Single Cnn”

2)地圖定位:車輛定位中基于語義地圖的方法,在語義目标提取也是采用深度學習模型,甚至語義地圖的制作也是如此,目前感興趣的地圖更新(或者線上地圖)多半需要檢測語義目标。定位的後端也可以是資料驅動的解決,包括全局定位和相對定位,最近SLAM和深度學習的結合工作也如火如荼進行。

萬字綜述自動駕駛資料閉環

“LCDNet: Deep Loop Closure Detection andPoint Cloud Registration for LiDAR SLAM”

萬字綜述自動駕駛資料閉環

“DeepSFM: Structure From Motion Via DeepBundle Adjustment”

萬字綜述自動駕駛資料閉環

“HDMapNet: An Online HD Map Construction and Evaluation Framework”

3)預測:障礙物的軌迹預測現在已經是自動駕駛發展至今的重點之一,現在重要性可以說是高于感覺。如何模組化智體行為、如何模組化智體之間的互動和軌迹預測的動作多模态性,自然最佳方式是采用資料來訓練。另外,感覺-預測結合解決也是需要大量資料訓練去得到合理的模型。

萬字綜述自動駕駛資料閉環

“Learning Lane Graph Representations for Motion Forecasting”

萬字綜述自動駕駛資料閉環

“PnPNet: End-to-End Perception and Prediction with Tracking in the Loop”

萬字綜述自動駕駛資料閉環

“Deep Multi-Task Learning for Joint Localization, Perception, and Prediction”

萬字綜述自動駕駛資料閉環

“TNT: Target-driven Trajectory Prediction”

4)規劃:規劃問題可以是傳統的規則方法,也可以是強化學習或者模仿學習,其中強化學習也需要資料學習懲罰/獎勵和政策。目前人們關心規劃的地域化和個性化問題,這個比起感覺的類似問題解決起來更加困難,比如激進還是保守地進行換道超車和并道彙入。最近有讨論合并預測和規劃的解決方法,甚至包括地圖定位一起模組化,這個沒有資料的“喂養”是很難成立的。

萬字綜述自動駕駛資料閉環

“DSDNet: Deep Structured self-Driving Network”

萬字綜述自動駕駛資料閉環

“End-to-end Interpretable Neural Motion Planner”

萬字綜述自動駕駛資料閉環

“MP3: A Unified Model to Map, Perceive,Predict and Plan”

萬字綜述自動駕駛資料閉環

“Probabilistic Anchor Trajectory Hypotheses For Behavior Prediction”

萬字綜述自動駕駛資料閉環

“VectorNet: Encoding HD Maps and Agent Dynamics From Vectorized Representation”

萬字綜述自動駕駛資料閉環

“Deep Imitation Learning for AV in Generic Urban Scenarios with Enhanced Safety”

萬字綜述自動駕駛資料閉環

“Perceive, Predict, and Plan: Safe Motion Planning Through Interpretable Semantic Rep”

5)控制:應該說,控制的傳統方法相對成熟,不過并不是說資料驅動就沒有價值,實際上規劃和控制的确內建在一起模組化也是大家感興趣的領域,前面提到的強化學習和模仿學習同樣是不錯的解決手段。

萬字綜述自動駕駛資料閉環

“A Fast Integrated Planning and Control Framework for AV via Imitation Learning”

萬字綜述自動駕駛資料閉環

“Deep Imitative Models For Flexible Inference, Planning, And Control”

6)傳感器預處理:在進入感覺子產品之前,傳感器的資料處理,比如污染檢測、修補、去噪和增強等,傳統的方法也會被資料驅動的機器學習方法取代。

萬字綜述自動駕駛資料閉環

“ZeroScatter: Domain Transfer for Long Distance Imaging and Visionthrough Scattering Media”

7)模拟仿真:模拟仿真需要對車輛/行人、傳感器、交通環境和道路環境模組化,有時候無法直接獲得逼真的合成模型,特别是實際發生的交通事件,有時候不得不采用真實傳感器資料來模組化合成。下圖是GAN-based的雨夜圖像合成方法。

萬字綜述自動駕駛資料閉環

“ForkGAN: Seeing into the Rainy Night”

2 雲計算平台的基建和大資料處理技術

資料閉環需要一個雲計算/邊緣計算平台和大資料的處理技術,這個不可能在單車或單機實作的。大資料雲計算發展多年,在資源管理排程、資料批處理/流處理、工作流管理、分布式計算、系統狀态監控和資料庫存儲等方面提供了資料閉環的基礎設施支援,比如亞馬遜AWS、微軟Azure和谷歌雲等。

Amazon Elastic Compute Cloud(EC2)是亞馬遜雲服務AWS的一部分,而Amazon Elastic MapReduce(EMR) 是其大資料雲平台,可使用多種開放源代碼工具處理大量資料,例如資料流處理Apache Spark、資料倉庫Apache Hive和Apache HBase、資料流處理Apache Flink、資料湖Apache Hudi和大資料分布式SQL查詢引擎Presto。

下圖是亞馬遜雲AWS提供的自動駕駛資料處理服務平台例子:其中标明1-10個任務環節

萬字綜述自動駕駛資料閉環
  1. 使用 AWS Outposts (運作本地 AWS 基礎設施和服務)從車隊中提取資料以進行本地資料處理。
  2. 使用 AWS IoT Core (将 IoT 裝置連接配接到 AWS 雲,而無需配置或管理伺服器)和 Amazon Kinesis Data Firehose (将流資料加載到資料湖、資料存儲和分析服務中)實時提取車輛T-box資料,該服務可以捕獲和轉換流資料并将其傳輸給 Amazon S3(AWS全球資料存儲服務)、Amazon Redshift(用标準 SQL 在資料倉庫、營運資料庫和資料湖中查詢和合并 EB 級結構化和半結構化資料)、Amazon Elasticsearch Service(部署、保護和運作 Elasticsearch,是一種在 Apache Lucene 上建構的開源 RESTful 分布式搜尋和分析引擎)、通用 HTTP 終端節點和服務提供商(如 Datadog、New Relic、MongoDB 和 Splunk),這裡Amazon Kinesis 提供的功能Data Analytics, 可通過 SQL 或 Apache Flink (開源的統一流處理和批處理架構,其核心是分布流處理資料引擎)的實時處理資料流。
  3. 删除和轉換低品質資料。
  4. 使用 Apache Airflow (開源工作流管理工具)安排提取、轉換和加載 (ETL) 作業。
  5. 基于 GPS 位置和時間戳,附加天氣條件來豐富資料。
  6. 使用 ASAM OpenSCENARIO (一種駕駛和交通模拟器的動态内容檔案格式)提取中繼資料,并存儲在Amazon DynamoDB (NoSQL 資料庫服務)和 Amazon Elasticsearch Service中。
  7. 在 Amazon Neptune (圖形資料庫服務,用于建構查詢以有效地導航高度互連資料集)存儲資料序列,并且使用 AWS Glue Data Catalog(管理ETL服務的AWS Glue提供資料目錄功能)對資料建立目錄。
  8. 處理駕駛資料并深度驗證信号。
  9. 使用 Amazon SageMaker Ground Truth (建構訓練資料集的标記工具用于機器學習,包括 3D 點雲、視訊、圖像和文本)執行自動資料标記,而Amazon SageMaker 整合ML功能集,提供基于 Web 的統一可視化界面,幫助資料科學家和開發人員快速準備、建構、訓練和部署高品質的機器學習 (ML) 模型。
  10. AWS AppSync 通過處理與 AWS DynamoDB、AWS Lambda(事件驅動、自動管理代碼運作資源的計算服務平台) 等資料源之間連接配接任務來簡化資料查詢/操作GraphQL API 的開發,在此使用是為特定場景提供搜尋功能。

下圖是AWS給出的一個自動駕駛資料流水線架構:資料收集、注入和存儲、模型訓練和部署;其中Snowball是AWS的邊緣計算系列之一,負責車輛和AWS S3之間的資料傳輸;其他還有兩個,是AWS Snowcone和 AWS Snowmobile。

萬字綜述自動駕駛資料閉環

可以看到,AWS使用了資料存儲S3、資料傳輸Snowball、資料庫DynamoDB、資料流處理Flink和Spark、搜尋引擎Elasticsearch、工作流管理Apache Airflow和機器學習開發平台SageMaker等。

其他開源的使用,比如流處理的實時資料饋送平台Apache Kafka、資源管理&排程Apache Mesos和分布NoSQL資料庫Apache Cassandra。

如圖是國内自動駕駛公司Momenta基于亞馬遜AWS建立的系統架構執行個體圖:

萬字綜述自動駕駛資料閉環

其中AWS IoT Greengrass 提供邊緣計算及機器學習推理功能,可以實時處理車輛中的本地規則和事件,同時最大限度地降低向雲傳輸資料的成本。

其中P3執行個體和C5執行個體是Amazon EC2提供的。Amazon CloudFront是AWS的CDN,Amazon Glacier是線上檔案存儲服務,而Amazon FSx for Lustre 是可擴充的高性能檔案存儲系統。

除此之外,亞馬遜指出的,Momenta采用的AWS服務還包括:監控可觀測性服務Amazon CloudWatch、關系資料庫Amazon Relational Database Service (Amazon RDS)、實時流資料處理和分析服務Amazon Kinesis(包括Video Streams、Data Streams、Data Firehose和Data Analytics)和消息隊列服務Amazon Simple Queue Service (Amazon SQS)等。

最近Momenta還采用Amazon Elastic Kubernetes Service (EKS) 運作容器Kubernetes。此外亞馬遜也推薦了Kubernetes服務,AWS Fargate。

萬字綜述自動駕駛資料閉環

Apache Kafka

萬字綜述自動駕駛資料閉環

Apache Spark

萬字綜述自動駕駛資料閉環

Apache Flink

萬字綜述自動駕駛資料閉環

Apache HBase

萬字綜述自動駕駛資料閉環

Apache Cassandra

萬字綜述自動駕駛資料閉環

Presto

萬字綜述自動駕駛資料閉環

Apache Hudi

萬字綜述自動駕駛資料閉環

Apache Airflow

萬字綜述自動駕駛資料閉環

Apache Mesos

萬字綜述自動駕駛資料閉環

Kubernetes

3 訓練資料标注工具

其實AWS的機器學習平台本身也提供了資料标注工具Amazon SageMaker Ground Truth。

如圖是微軟開源标注工具VOTT(Video Object Tagging Tool):

萬字綜述自動駕駛資料閉環
萬字綜述自動駕駛資料閉環

标注工具可以是全自動、半自動和手工等3類。

比如人工标注工具:攝像頭圖像LabelMe和雷射雷達點雲PCAT

還有半自動标注工具:攝像頭CVAT、VATIC,雷射雷達3D BAT、SAnE,圖像點雲融合Latte

自動标注工具:基本沒有開源(商用也沒有吧)的工具可用。

這裡有一些自動标注方面的論文:

  • “Beat the MTurkers: Automatic Image Labeling from Weak 3D Supervision“
萬字綜述自動駕駛資料閉環
  • “Auto-Annotation of 3D Objects via ImageNet“
萬字綜述自動駕駛資料閉環
  • “Offboard 3D Object Detection from Point Cloud Sequences“
萬字綜述自動駕駛資料閉環

這裡是Nvidia在會議報告中給出的端到端标注流水線:它需要人工介入

萬字綜述自動駕駛資料閉環

在這裡順便提一下“資料可視化”的問題,各種傳感器資料除了标注,還需要一個重放、觀察和調試的平台。如圖是Uber提供的開源可視化工具 Autonomous Visualization System (AVS):

萬字綜述自動駕駛資料閉環
萬字綜述自動駕駛資料閉環

其中”XVIZ“是提出的自動駕駛資料實時傳輸和可視化協定:

萬字綜述自動駕駛資料閉環

另外,“streetscape.gl“是一個可視化工具包,在XVIZ 協定編碼自動駕駛和機器人資料。它提供了一組可組合的 React 元件,對 XVIZ 資料進行可視化和互動。

萬字綜述自動駕駛資料閉環

4 大型模型訓練平台

模型訓練平台,主要是機器學習(深度學習)而言,前面亞馬遜AWS提供了自己的ML平台SageMaker。我們知道最早有開源的軟體Caffe,目前最流行的是Tensorflow和Pytorch(Caffe2并入)。

萬字綜述自動駕駛資料閉環

Tensorflow

萬字綜述自動駕駛資料閉環

Pytorch

在雲平台部署深度學習模型訓練,一般采用分布式。按照并行方式,分布式訓練一般分為資料并行和模型并行兩種。當然,也可采用資料并行和模型并行的混合。

模型并行:不同GPU負責網絡模型的不同部分。例如,不同網絡層被配置設定到不同的GPU,或者同一層不同參數被配置設定到不同GPU。

資料并行:不同GPU有模型的多個副本,每個GPU配置設定不同的資料,将所有GPU計算結果按照某種方式合并。

模型并行不常用,而資料并行涉及各個GPU之間如何同步模型參數,分為同步更新和異步更新。同步更新等所有GPU的梯度計算完成,再計算新權值,同步新值後,再進行下一輪計算。異步更新是每個GPU梯度計算完無需等待,立即更新權值,然後同步新值進行下一輪計算。

分布式訓練系統包括兩種架構:Parameter Server Architecture(PS,參數伺服器)和Ring -AllReduce Architecture(環-全歸約)。

如下圖是PS結構圖:

萬字綜述自動駕駛資料閉環

這個圖是Ring AllReduce的架構圖:

萬字綜述自動駕駛資料閉環

Pytorch現在和多個雲平台建立合作關系,可以安裝使用。比如AWS,在AWS Deep Learning AMIs、AWS Deep Learning Containers和Amazon SageMaker,都可以訓練Pytorch模型,最後采用TorchServe進行部署。

Pytorch提供兩種方法在多GPU平台切分模型和資料:

  • DataParallel
  • distributedataparallel

DataParallel更易于使用。不過,通信是瓶頸,GPU使用率通常很低,而且不支援分布式。DistributedDataParallel支援模型并行和多程序,單機/多機都可以,是分布訓練。

PyTorch 自身提供幾種加速分布資料并行的訓練優化技術,如 bucketing gradients、overlapping computation with communication 以及 skipping gradient synchronization 等。

Tensorflow在模型設計和訓練使用也友善,可以使用高階 Keras API;對于大型機器學習訓練任務,使用 Distribution Strategy API 在不同的硬體配置上進行分布式訓練,而無需更改模型定義。

其中Estimator API 用于編寫分布式訓練代碼,允許自定義模型結構、損失函數、優化方法以及如何進行訓練、評估和導出等内容,同時屏蔽與底層硬體裝置、分布式網絡資料傳輸等相關的細節。

tf.distribute.MirroredStrategy支援在一台機器的多個 GPU 上進行同步分布式訓練。該政策會為每個 GPU 裝置建立一個副本。模型中的每個變量都會在所有副本之間進行鏡像。這些變量将共同形成一個名為MirroredVariable的單個概念變量。這些變量會通過應用相同的更新彼此保持同步。

tf.distribute.experimental.MultiWorkerMirroredStrategy與MirroredStrategy非常相似。它實作了跨多個工作程序的同步分布式訓練,而每個工作程序可能有多個 GPU。與MirroredStrategy類似,它也會跨所有工作程序在每個裝置的模型中建立所有變量的副本。

tf.distribute.experimental.ParameterServerStrategy支援在多台機器上進行參數伺服器PS訓練。在此設定中,有些機器會被指定為工作程序,有些會被指定為參數伺服器。模型的每個變量都會被放在參數伺服器上。計算會被複制到所有工作程序的所有 GPU 中。(注:該政策僅适用于 Estimator API。)

5 模型測試和檢驗

模型的測試和檢驗可以分成多種方式:

一是仿真測試檢驗。建立仿真測試環境,比如開源的一些軟體平台:

  • Carla
萬字綜述自動駕駛資料閉環
  • AirSim
萬字綜述自動駕駛資料閉環
  • LGSVL
萬字綜述自動駕駛資料閉環

還有一些成熟的商用軟體,也可以建構仿真測試環境:Prescan和VTD。存在一些仿真子子產品,比如開源的交通流仿真方面SUMO,商用的動力學仿真方面CarSim、Trucksim和Carmaker等。測試方式包括模型在環(MIL)、軟體在環(SIL)、硬體在環(HIL)和整車在環(VIL)等。傳感器的仿真,特别是攝像頭的圖像生成,除了圖形學的渲染方式,還有基于機器學習的方式。

這裡列出Uber ATG發表的一系列仿真模組化論文:

  • “LiDARsim: Realistic LiDAR Simulation by Leveraging the Real World“
萬字綜述自動駕駛資料閉環
  • ”S3: Neural Shape, Skeleton, and Skinning Fields for 3D Human Modeling“
萬字綜述自動駕駛資料閉環
  • ”SceneGen: Learning to Generate Realistic Traffic Scenes“
萬字綜述自動駕駛資料閉環
  • ”TrafficSim: Learning to Simulate Realistic Multi-Agent Behaviors“
萬字綜述自動駕駛資料閉環
  • ”GeoSim: Realistic Video Simulation via Geometry-Aware Composition for Self-Driving“
萬字綜述自動駕駛資料閉環
  • “AdvSim: Generating Safety-Critical Scenarios for Self-Driving Vehicles“
萬字綜述自動駕駛資料閉環

另外谷歌Waymo最近推出的傳感器仿真工作:

  • ”SurfelGAN: Synthesizing Realistic Sensor Data for Autonomous Driving“
萬字綜述自動駕駛資料閉環

二是封閉場地的實車測試檢驗。各大車企都有自己的測試基地,現在自動駕駛方面也可使用。其開銷遠大于仿真系統。

萬字綜述自動駕駛資料閉環

谷歌waymo測試場

三是開放場地的測試檢驗。現在好多L4級别的自動駕駛,比如無人計程車/無人卡車/無人送貨,都在做這種政府準許的實際駕駛實驗區測試。這種測試,必要時候安全員的接管或者遙控接管,都是需要花費大量投入的。

萬字綜述自動駕駛資料閉環

GM的自動駕駛公司Cruise在舊金山測試

最後是使用者的測試檢驗。這個是特斯拉特有的影子模式,以及FSD beta版本測試的志願者模式。

萬字綜述自動駕駛資料閉環

特斯拉的“Operation Vacation”模式

如圖是英偉達報告描述的車隊級别的模型部署閉環:

萬字綜述自動駕駛資料閉環

6 相關的機器學習技術

最後,談一下資料閉環所采用的機器學習技術,其實就是選擇什麼訓練資料和如何疊代更新模型的政策。主要有以下幾點:

  • 主動學習
  • OOD檢測和Corner Case檢測
  • 資料增強/對抗學習
  • 遷移學習/域自适應
  • 自動機器學習(AutoML )/元學習(學習如何學習)
  • 半監督學習
  • 自監督學習
  • 少樣本/ 零樣本學習
  • 持續學習/開放世界

下面分别讨論:

1)主動學習

主動學習(active learning)的目标是找到有效的方法從無标記資料池中選擇要标記的資料,最大限度地提高準确性。主動學習通常是一個疊代過程,在每次疊代中學習模型,使用一些啟發式方法從未标記資料池中選擇一組資料進行标記。是以,有必要在每次疊代中為了大子集查詢所需标簽,這樣即使對大小适中的子集,也會産生相關樣本。

如圖是一個主動學習閉環示意圖:在無标注資料中查詢、标注所選擇資料、添加标注資料到訓練集和模型訓練。

萬字綜述自動駕駛資料閉環

一些方法把标注和無标注資料放在一起,故此采用監督學習和半監督學習進行訓練。

貝葉斯主動學習方法通常使用非參數模型(如高斯過程)來估計每個查詢的預期進步或一組查詢後的預期錯誤。

基于不确定性主動學習方法嘗試使用啟發式方法,比如最高熵,和決策邊界的幾何距離等來尋找困難例子(hard examples)。

如圖是英偉達基于主動學習的挖掘資料方法:

萬字綜述自動駕駛資料閉環

還有其他的主動學習執行個體方法:

  • “Deep Active Learning for Efficient Training of a LiDAR 3D Object Detector“
萬字綜述自動駕駛資料閉環
  • “Consistency-based Active Learning for Object Detection“
萬字綜述自動駕駛資料閉環

2)OOD檢測和Corner Case檢測

機器學習模型往往會在out-of-distribution(OOD) 資料上失敗。檢測OOD是确定不确定性(Uncertainty)的手段,既可以安全報警,也可以發現有價值的資料樣本。

不确定性有兩種來源:任意(aleatoric)不确定性和認知(epistemic)不确定性。

導緻預測不确定性的資料不可減(Irreducible)不确定性,是一種任意不确定性(也稱為資料不确定性)。任意不确定性有兩種類型:同方差(homo-scedastic)和異方差(hetero-scedastic)。

另一類不确定性是由于知識和資料不适當造成的認知不确定性(也稱為知識/模型不确定性)。

最常用的不确定性估計方法是貝葉斯近似(Bayesian approximation)法和內建學習(ensemble learning)法。

一類 OOD 識别方法基于貝葉斯神經網絡推理,包括基于 dropout 的變分推理(variational inference)、馬爾可夫鍊蒙特卡羅 (MCMC) 和蒙特卡羅 dropout等。

另一類OOD識别方法包括 (1)  輔助損失或NN 架構修改等訓練方法,以及 (2) 事後統計(post hoc statistics)方法。

資料樣本中有偏離正常的意外情況,即所謂的corner case。可靠地檢測此類corner case,在開發過程中,線上和離線應用都是必要的。

線上應用可以用作安全監控和警告系統,在corner case情況發生時進行識别。離線應用将corner case檢測器應用于大量收集的資料,選擇合适的訓練和相關測試資料。

最近的一些執行個體工作有:

  • “Towards Corner Case Detection for Autonomous Driving“
萬字綜述自動駕駛資料閉環
  • “Out-of-Distribution Detection for Automotive Perception“
萬字綜述自動駕駛資料閉環
  • “Corner Cases for Visual Perception in Automated Driving: Some Guidance on Detection Approaches“
萬字綜述自動駕駛資料閉環

3)資料增強/對抗學習

過拟合(Overfitting)是指當機器學習模型學習高方差的函數完美地對訓練資料模組化時出現的現象。資料增強(Data Augmentation)增強訓練資料集的大小和品質,克服過拟合,進而建構更好的機器學習模型。

圖像資料增強算法包括幾何變換、色彩空間增強、核心過濾器、混合圖像、随機擦除、特征空間增強、對抗訓練(adversarial training)、生成對抗網絡(generative adversarial networks,GAN)、神經風格遷移(neural style transfer)和元學習(meta-learning)。

雷射雷達點雲資料的增強方法還有特别的一些:全局變換(旋轉、平移、尺度化)、局部變換(旋轉、平移、尺度化)和3-D濾波。

對抗性訓練可以成為尋找增強方向的有效方法。通過限制對抗網絡(adversarial network)可用的增強和畸變變換集,通過學習得到導緻錯誤的增強方式。這些增強對于加強機器學習模型中的弱點很有價值。

值得一提的是,CycleGAN 引入了一個額外的 Cycle-Consistency 損失函數,穩定 GAN 訓練,應用于圖像到圖像轉換(image-to-image translation)。實際上CycleGAN 學習從一個圖像域轉換到另一個域。

機器學習模型錯誤背後的一個常見原因是一種稱為資料集偏差或域漂移(dataset bias / domain shift)的現象。域适應方法試圖減輕域漂移的有害作用。對抗訓練方法引入到域适應,比如對抗鑒别域适應方法(Adversarial Discriminative Domain Adaptation,ADDA)。

最近出現的一些新執行個體方法:

  • “AutoAugment: Learning Augmentation Strategies from Data“
萬字綜述自動駕駛資料閉環
  • “Classmix: Segmentation-based Data Augmentation For Semi-supervised Learning“
萬字綜述自動駕駛資料閉環
  • “Data Augmentation for Object Detection via Differentiable Neural Rendering“
萬字綜述自動駕駛資料閉環
  • “LiDAR-Aug: A General Rendering-based Augmentation Framework for 3D Object Detection“
萬字綜述自動駕駛資料閉環
  • “Adaptive Object Detection with Dual Multi-Label Prediction“
萬字綜述自動駕駛資料閉環
  • “Taking A Closer Look at Domain Shift: Category-level Adversaries for Semantics Consistent Domain Adaptation“
萬字綜述自動駕駛資料閉環

4)遷移學習/域适應

遷移學習(transfer learning,TL)不需要訓練資料和測試資料是獨立同分布(independent and identically distributed,i.i.d),目标域的模型不需要從頭開始訓練,可以減少目标域訓練資料和時間的需求。

深度學習的遷移技術基本分為兩種類型,即非對抗性的(傳統)和對抗性的。

域适應 (domain adaptation,DA) 是TL的一種特殊情況,利用一個或多個相關源域(source domains)的标記資料在目标域(target domain)執行新任務。

DA方法分為兩類:基于執行個體的和基于特征的。

最近出現的一些新執行個體方法:

  • “Multi-Target Domain Adaptation via Unsupervised Domain Classification for Weather Invariant Object Detection“
萬字綜述自動駕駛資料閉環
  • “Uncertainty-Aware Consistency Regularization for Cross-Domain Semantic Segmentation“
萬字綜述自動駕駛資料閉環
  • “SF-UDA3D: Source-Free Unsupervised Domain Adaptation for LiDAR-Based 3D Object Detection“
萬字綜述自動駕駛資料閉環
  • “LiDARNet: A Boundary-Aware Domain Adaptation Model for Point Cloud Semantic Segmentation“
萬字綜述自動駕駛資料閉環

5)自動機器學習(AutoML)/元學習(學習如何學習)

一個機器學習模組化的工程還有幾個方面需要人工幹預和可解釋性,即機器學習落地流水線的兩個主要元件:預-模組化和後-模組化(如圖)。

預-模組化影響算法選擇和超參數優化過程的結果。預-模組化步驟包括多個步驟,包括資料了解、資料準備和資料驗證。

後-模組化子產品涵蓋了其他重要方面,包括機器學習模型的管理和部署。

萬字綜述自動駕駛資料閉環

為了降低這些繁重的開發成本,出現了自動化整個機器學習流水線的新概念,即開發自動機器學習(automated machine learning,AutoML) 方法。AutoML 旨在減少對資料科學家的需求,并使領域專家能夠自動建構機器學習應用程式,而無需太多統計和機器學習知識。

值得特别一提的是谷歌方法“神經架構搜尋”(Neural Architecture Search,NAS),其目标是通過在預定義搜尋空間中選擇群組合不同的基本元件來生成穩健且性能良好的神經網絡架構。

萬字綜述自動駕駛資料閉環

NAS的分布式訓練實作

NAS的總結從兩個角度了解:模型結構類型和采用超參數優化(hyperparameter optimization,HPO)的模型結構設計。最廣泛使用的 HPO 方法利用強化學習 (RL)、基于進化的算法 (EA)、梯度下降 (GD) 和貝葉斯優化 (BO)方法。

如圖是AutoML在機器學習平台的應用執行個體:

萬字綜述自動駕駛資料閉環

注:在谷歌雲、微軟雲Azure和亞馬遜雲AWS都支援AutoML。

深度學習(DL)專注于樣本内預測,元學習(meta learning)關注樣本外預測的模型适應問題。元學習作為附加在原始 DL 模型的泛化部分。

元學習尋求模型适應與訓練任務大不相同的未見過的任務(unseen tasks)。元強化學習 (meta-RL) 考慮代理與不斷變化的環境之間的互動過程。元模仿學習 (Meta-IL) 将過去類似的經驗應用于隻有稀疏獎勵的新任務。

元學習與 AutoML 密切相關,二者有相同的研究目标,即學習工具和學習問題。現有的元學習技術根據在 AutoML 的應用可分為三類:

  • 1)用于配置評估(對于評估者);
  • 2)用于配置生成(用于優化器);
  • 3) 用于動态配置的自适應。

元學習促進配置生成,例如,針對特定學習問題的配置、生成或選擇配置政策或細化搜尋空間。元學習檢測概念漂移(concept drift)并動态調整學習工具實作自動化機器學習(AutoML)過程。

6)半監督學習

半監督學習(semi-supervised learning)是利用未标記資料生成具有可訓練模型參數的預測函數,目标是比用标記資料獲得的預測函數更準确。由于混合監督和無監督方法,半監督學習的損失函數可以具有多種形狀。一種常見的方法是添加一個監督學習的損失項和一個無監督學習的損失項。

已經有一些經典的半監督學習方法:

  • “Pseudo-label: The simple and efficient semi-supervised learning method for deep neural networks”
  • “Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results“
  • “Self-training with Noisy Student improves ImageNet classification“

最近出現一些新執行個體方法:

  • “Unbiased Teacher for Semi-Supervised Object Detection“
萬字綜述自動駕駛資料閉環
  • “Pseudoseg: Designing Pseudo Labels For Semantic Segmentation“
萬字綜述自動駕駛資料閉環
  • “Semantic Segmentation of 3D LiDAR Data in Dynamic Scene Using Semi-supervised Learning“
萬字綜述自動駕駛資料閉環
  • “ST3D: Self-training for Unsupervised Domain Adaptation on 3D Object Detection“
萬字綜述自動駕駛資料閉環
  • “3DIoUMatch: Leveraging IoU Prediction for Semi-Supervised 3D Object Detection“
萬字綜述自動駕駛資料閉環

7)自監督學習

自監督學習(self supervised learning)算是無監督學習的一個分支,其目的是恢複,而不是發現。自監督學習基本分為:生成(generative)類, 對比(contrastive)類和生成-對比(generative-contrastive)混合類,即對抗(adversarial)類。

自監督使用借口任務(pretext task)來學習未标記資料的表示。借口任務是無監督的,但學習的表示通常不能直接給下遊任務(downstream task),必須進行微調。是以,自監督學習可以被解釋為一種無監督、半監督或自定義政策。下遊任務的性能用于評估學習特征的品質。

一些著名的自監督學習方法有:

  • “SimCLR-A Simple framework for contrastive learning of visual representations“
  • “Momentum Contrast for Unsupervised Visual Representation Learning“
  • “Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning“
  • “Deep Clustering for Unsupervised Learning of Visual Features“
  • “Unsupervised Learning of Visual Features by Contrasting Cluster Assignments“

注意最近的一些新方法:

  • “DetCo: Unsupervised Contrastive Learning for Object Detection“
萬字綜述自動駕駛資料閉環
  • “PointContrast: Unsupervised Pre-training for 3D Point Cloud Understanding“
萬字綜述自動駕駛資料閉環
  • “MonoRUn: Monocular 3D Object Detection by Reconstruction and Uncertainty Propagation“
萬字綜述自動駕駛資料閉環
  • “Weakly Supervised Semantic Point Cloud Segmentation: Towards 10x Fewer Labels“
萬字綜述自動駕駛資料閉環

8)少樣本/零樣本學習

零樣本學習(Zero-shot learning,ZSL)旨在識别在訓練期間可能未見過執行個體的目标。雖然大多數ZSL方法都使用判别性損失(discriminative losses)進行學習,但少數生成模型(generative models)将每個類别表示為機率分布。

對于未見類(unseen classes),ZSL除了無法通路其視覺或輔助資訊的inductive設定之外,transductive方法無需通路标簽資訊,直接用已見類(seen classes)和未見類一起的視覺或語義資訊。

ZSL屬于遷移學習(TL),源特征空間為訓練執行個體,目标特征空間為測試執行個體,二者特征空間一樣。但對于已見類和未見類,标簽空間是不同的。

為了從有限的監督資訊中學習,一個新的機器學習方向稱為少樣本學習 (Few-Shot Learning ,FSL)。基于如何使用先驗知識,FSL可分為三個類:1)用資料先驗知識來增強監督經驗,2)通過模型先驗知識限制假設空間,和3)用算法先驗知識改變假設空間中最佳參數的搜尋方式。

FSL 可以是監督學習、半監督學習和強化學習(RL),取決于除了有限的監督資訊之外還有哪些資料可用。許多 FSL 方法是元學習(meta learning)方法,以此作為先驗知識。

最近的一些執行個體方法:

  • “Don’t Even Look Once: Synthesizing Features for Zero-Shot Detection“
萬字綜述自動駕駛資料閉環
  • “Zero-Shot Semantic Segmentation“
萬字綜述自動駕駛資料閉環
  • “Zero-Shot Learning on 3D Point Cloud Objects and Beyond“
萬字綜述自動駕駛資料閉環
  • “Few-Shot Object Detection and Viewpoint Estimation for Objects in the Wild“
萬字綜述自動駕駛資料閉環
  • “Self-Supervised Few-Shot Learning on Point Clouds“
萬字綜述自動駕駛資料閉環
  • “Few-shot 3D Point Cloud Semantic Segmentation“
萬字綜述自動駕駛資料閉環

9)持續學習/開放世界

持續學習( continual learning)可以不斷積累不同任務得到的知識,而無需從頭開始重新訓練。其困難是如何克服災難遺忘(catastrophic forgetting)。

如圖是持續學習的方法分類:經驗重放(ER)、正則化和參數孤立三個方向。

萬字綜述自動駕駛資料閉環

開放集識别(Open set recognition,OSR),是在訓練時存在不完整的世界知識,在測試中可以将未知類送出給算法,要求分類器不僅要準确地對所見類進行分類,還要有效處理未見類。開放世界學習(Open world learning)可以看作是持續學習的一個子任務。

以下給出最近的一些執行個體方法:

  • “Lifelong Object Detection“
萬字綜述自動駕駛資料閉環
  • “Incremental Few-Shot Object Detection“
萬字綜述自動駕駛資料閉環
  • “Towards Open World Object Detection“
萬字綜述自動駕駛資料閉環
  • "OpenGAN: Open-Set Recognition via Open Data Generation"
萬字綜述自動駕駛資料閉環
  • “Large-Scale Long-Tailed Recognition in an Open World“
萬字綜述自動駕駛資料閉環
  • 資料的模式(攝像頭/雷射雷達/雷達,無/導航/高清地圖,姿态定位精度,時間同步标記);
  • 資料驅動模型(子產品/端到端);
  • 模型的架構(AutoML);
  • 模型訓練的政策(資料選擇)。