深度解析,教你如何打造自动驾驶的数据闭环
最近自動駕駛和數(shù)據(jù)閉環(huán)結(jié)合在一起,原因是自動駕駛工程已經(jīng)被認(rèn)可是一個(gè)解決數(shù)據(jù)分布“長尾問題”的任務(wù),時(shí)而出現(xiàn)的corner case(極端情況)是對數(shù)據(jù)驅(qū)動的算法模型進(jìn)行升級的來源之一,如圖所示。
構(gòu)成這個(gè)自動駕駛數(shù)據(jù)閉環(huán)的核心技術(shù)和模塊都有哪些呢?首先是這個(gè)自動駕駛的算法和模塊是數(shù)據(jù)驅(qū)動的,其次源源不斷的數(shù)據(jù)需要有合理有效的方法去利用。
如圖是Tesla眾所周知的Autopilot數(shù)據(jù)引擎框架:確認(rèn)模型誤差、數(shù)據(jù)標(biāo)注和清洗、模型訓(xùn)練和重新部署。
這是谷歌waymo報(bào)告提到的數(shù)據(jù)閉環(huán)平臺:其中有數(shù)據(jù)挖掘、主動學(xué)習(xí)、自動標(biāo)注、自動化模型調(diào)試優(yōu)化、測試校驗(yàn)和部署發(fā)布。
如圖是英偉達(dá)公司在自動駕駛開發(fā)建立的機(jī)器學(xué)習(xí)平臺MAGLEV,也是基于閉環(huán)的模型迭代:其中有smart的數(shù)據(jù)選擇、數(shù)據(jù)標(biāo)注、模型搜索、訓(xùn)練、評估、調(diào)試和部署。
下面對數(shù)據(jù)閉環(huán)各個(gè)組成部分進(jìn)一步討論:
-
自動駕駛的數(shù)據(jù)驅(qū)動模型;
-
云計(jì)算平臺的基建和大數(shù)據(jù)處理技術(shù);
-
訓(xùn)練數(shù)據(jù)標(biāo)注工具;
-
大型模型訓(xùn)練平臺;
-
模型測試和檢驗(yàn);
-
相關(guān)的機(jī)器學(xué)習(xí)技術(shù)。
1 自動駕駛的數(shù)據(jù)驅(qū)動模型
應(yīng)該說,自動駕駛的算法模塊,基本都是數(shù)據(jù)驅(qū)動的訓(xùn)練模型要優(yōu)于基于規(guī)則或者優(yōu)化的,尤其是感知和預(yù)測。
以下圖(綜述論文 “A Survey of Autonomous Driving: Common Practices and Emerging Technologies”)為例,現(xiàn)在自動駕駛的開發(fā)基本是模塊化的(a),只有個(gè)別是采用端到端模式(b)。
端到端模式可以說絕對是數(shù)據(jù)驅(qū)動的(如圖為例),因?yàn)閭鹘y(tǒng)的優(yōu)化和規(guī)則方法無法處理如此復(fù)雜的系統(tǒng)設(shè)計(jì)和公式化。
“E2E Learning of Driving Models with Surround-View Cameras and Route Planners”
模塊化的方法也是可以采用數(shù)據(jù)驅(qū)動方式,可以分成以下模塊:
-
感知:圖像/激光雷達(dá)/毫米波雷達(dá)
-
地圖+定位
-
預(yù)測(感知-預(yù)測)
-
規(guī)劃決策(預(yù)測-規(guī)劃)
-
控制(規(guī)劃-控制)
-
傳感器預(yù)處理
-
模擬仿真
下面以此分別討論:
1)感知:2-D/3-D 目標(biāo)檢測和分割基本是采用深度學(xué)習(xí)模型,無論激光雷達(dá)、攝像頭或者傳感器融合的形式;跟蹤基本是tracking-by-detection方式,不過把跟蹤和檢測集成在一起做深度學(xué)習(xí)模型也是大家討論的熱點(diǎn)之一。
“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)地圖定位:車輛定位中基于語義地圖的方法,在語義目標(biāo)提取也是采用深度學(xué)習(xí)模型,甚至語義地圖的制作也是如此,目前感興趣的地圖更新(或者在線地圖)多半需要檢測語義目標(biāo)。定位的后端也可以是數(shù)據(jù)驅(qū)動的解決,包括全局定位和相對定位,最近SLAM和深度學(xué)習(xí)的結(jié)合工作也如火如荼進(jìn)行。
“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)預(yù)測:障礙物的軌跡預(yù)測現(xiàn)在已經(jīng)是自動駕駛發(fā)展至今的重點(diǎn)之一,現(xiàn)在重要性可以說是高于感知。如何建模智體行為、如何建模智體之間的交互和軌跡預(yù)測的動作多模態(tài)性,自然最佳方式是采用數(shù)據(jù)來訓(xùn)練。另外,感知-預(yù)測結(jié)合解決也是需要大量數(shù)據(jù)訓(xùn)練去得到合理的模型。
“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)規(guī)劃:規(guī)劃問題可以是傳統(tǒng)的規(guī)則方法,也可以是強(qiáng)化學(xué)習(xí)或者模仿學(xué)習(xí),其中強(qiáng)化學(xué)習(xí)也需要數(shù)據(jù)學(xué)習(xí)懲罰/獎(jiǎng)勵(lì)和策略。目前人們關(guān)心規(guī)劃的地域化和個(gè)性化問題,這個(gè)比起感知的類似問題解決起來更加困難,比如激進(jìn)還是保守地進(jìn)行換道超車和并道匯入。最近有討論合并預(yù)測和規(guī)劃的解決方法,甚至包括地圖定位一起建模,這個(gè)沒有數(shù)據(jù)的“喂養(yǎng)”是很難成立的。
“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)控制:應(yīng)該說,控制的傳統(tǒng)方法相對成熟,不過并不是說數(shù)據(jù)驅(qū)動就沒有價(jià)值,實(shí)際上規(guī)劃和控制的確集成在一起建模也是大家感興趣的領(lǐng)域,前面提到的強(qiáng)化學(xué)習(xí)和模仿學(xué)習(xí)同樣是不錯(cuò)的解決手段。
“A Fast Integrated Planning and Control Framework for AV via Imitation Learning”
“Deep Imitative Models For Flexible Inference, Planning, And Control”
6)傳感器預(yù)處理:在進(jìn)入感知模塊之前,傳感器的數(shù)據(jù)處理,比如污染檢測、修補(bǔ)、去噪和增強(qiáng)等,傳統(tǒng)的方法也會被數(shù)據(jù)驅(qū)動的機(jī)器學(xué)習(xí)方法取代。
“ZeroScatter: Domain Transfer for Long Distance Imaging and Visionthrough Scattering Media”
7)模擬仿真:模擬仿真需要對車輛/行人、傳感器、交通環(huán)境和道路環(huán)境建模,有時(shí)候無法直接獲得逼真的合成模型,特別是實(shí)際發(fā)生的交通事件,有時(shí)候不得不采用真實(shí)傳感器數(shù)據(jù)來建模合成。下圖是GAN-based的雨夜圖像合成方法。
“ForkGAN: Seeing into the Rainy Night”
2 云計(jì)算平臺的基建和大數(shù)據(jù)處理技術(shù)
數(shù)據(jù)閉環(huán)需要一個(gè)云計(jì)算/邊緣計(jì)算平臺和大數(shù)據(jù)的處理技術(shù),這個(gè)不可能在單車或單機(jī)實(shí)現(xiàn)的。大數(shù)據(jù)云計(jì)算發(fā)展多年,在資源管理調(diào)度、數(shù)據(jù)批處理/流處理、工作流管理、分布式計(jì)算、系統(tǒng)狀態(tài)監(jiān)控和數(shù)據(jù)庫存儲等方面提供了數(shù)據(jù)閉環(huán)的基礎(chǔ)設(shè)施支持,比如亞馬遜AWS、微軟Azure和谷歌云等。
Amazon Elastic Compute Cloud(EC2)是亞馬遜云服務(wù)AWS的一部分,而Amazon Elastic MapReduce(EMR) 是其大數(shù)據(jù)云平臺,可使用多種開放源代碼工具處理大量數(shù)據(jù),例如數(shù)據(jù)流處理Apache Spark、數(shù)據(jù)倉庫Apache Hive和Apache HBase、數(shù)據(jù)流處理Apache Flink、數(shù)據(jù)湖Apache Hudi和大數(shù)據(jù)分布式SQL查詢引擎Presto。
下圖是亞馬遜云AWS提供的自動駕駛數(shù)據(jù)處理服務(wù)平臺例子:其中標(biāo)明1-10個(gè)任務(wù)環(huán)節(jié)
使用?AWS Outposts?(運(yùn)行本地 AWS 基礎(chǔ)設(shè)施和服務(wù))從車隊(duì)中提取數(shù)據(jù)以進(jìn)行本地?cái)?shù)據(jù)處理。
使用?AWS IoT Core?(將 IoT 設(shè)備連接到 AWS 云,而無需配置或管理服務(wù)器)和?Amazon Kinesis Data Firehose?(將流數(shù)據(jù)加載到數(shù)據(jù)湖、數(shù)據(jù)存儲和分析服務(wù)中)實(shí)時(shí)提取車輛T-box數(shù)據(jù),該服務(wù)可以捕獲和轉(zhuǎn)換流數(shù)據(jù)并將其傳輸給?Amazon S3(AWS全球數(shù)據(jù)存儲服務(wù))、Amazon Redshift(用標(biāo)準(zhǔn) SQL 在數(shù)據(jù)倉庫、運(yùn)營數(shù)據(jù)庫和數(shù)據(jù)湖中查詢和合并 EB 級結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù))、Amazon Elasticsearch Service(部署、保護(hù)和運(yùn)行 Elasticsearch,是一種在 Apache Lucene 上構(gòu)建的開源 RESTful 分布式搜索和分析引擎)、通用 HTTP 終端節(jié)點(diǎn)和服務(wù)提供商(如 Datadog、New Relic、MongoDB?和 Splunk),這里Amazon Kinesis?提供的功能Data Analytics, 可通過?SQL?或?Apache Flink?(開源的統(tǒng)一流處理和批處理框架,其核心是分布流處理數(shù)據(jù)引擎)的實(shí)時(shí)處理數(shù)據(jù)流。
刪除和轉(zhuǎn)換低質(zhì)量數(shù)據(jù)。
使用?Apache Airflow (開源工作流管理工具)安排提取、轉(zhuǎn)換和加載 (ETL) 作業(yè)。
基于 GPS 位置和時(shí)間戳,附加天氣條件來豐富數(shù)據(jù)。
使用?ASAM OpenSCENARIO?(一種駕駛和交通模擬器的動態(tài)內(nèi)容文件格式)提取元數(shù)據(jù),并存儲在Amazon DynamoDB?(NoSQL 數(shù)據(jù)庫服務(wù))和?Amazon Elasticsearch Service中。
在?Amazon Neptune?(圖形數(shù)據(jù)庫服務(wù),用于構(gòu)建查詢以有效地導(dǎo)航高度互連數(shù)據(jù)集)存儲數(shù)據(jù)序列,并且使用?AWS Glue Data Catalog(管理ETL服務(wù)的AWS Glue提供數(shù)據(jù)目錄功能)對數(shù)據(jù)建立目錄。
處理駕駛數(shù)據(jù)并深度驗(yàn)證信號。
使用?Amazon SageMaker Ground Truth?(構(gòu)建訓(xùn)練數(shù)據(jù)集的標(biāo)記工具用于機(jī)器學(xué)習(xí),包括 3D 點(diǎn)云、視頻、圖像和文本)執(zhí)行自動數(shù)據(jù)標(biāo)記,而Amazon SageMaker?整合ML功能集,提供基于 Web 的統(tǒng)一可視化界面,幫助數(shù)據(jù)科學(xué)家和開發(fā)人員快速準(zhǔn)備、構(gòu)建、訓(xùn)練和部署高質(zhì)量的機(jī)器學(xué)習(xí) (ML) 模型。
AWS AppSync?通過處理與 AWS DynamoDB、AWS Lambda(事件驅(qū)動、自動管理代碼運(yùn)行資源的計(jì)算服務(wù)平臺) 等數(shù)據(jù)源之間連接任務(wù)來簡化數(shù)據(jù)查詢/操作GraphQL API 的開發(fā),在此使用是為特定場景提供搜索功能。
下圖是AWS給出的一個(gè)自動駕駛數(shù)據(jù)流水線框架:數(shù)據(jù)收集、注入和存儲、模型訓(xùn)練和部署;其中Snowball是AWS的邊緣計(jì)算系列之一,負(fù)責(zé)車輛和AWS S3之間的數(shù)據(jù)傳輸;其他還有兩個(gè),是AWS?Snowcone和 AWS?Snowmobile。
可以看到,AWS使用了數(shù)據(jù)存儲S3、數(shù)據(jù)傳輸Snowball、數(shù)據(jù)庫DynamoDB、數(shù)據(jù)流處理Flink和Spark、搜索引擎Elasticsearch、工作流管理Apache Airflow和機(jī)器學(xué)習(xí)開發(fā)平臺SageMaker等。
其他開源的使用,比如流處理的實(shí)時(shí)數(shù)據(jù)饋送平臺Apache Kafka、資源管理&調(diào)度Apache Mesos和分布NoSQL數(shù)據(jù)庫Apache Cassandra。
如圖是國內(nèi)自動駕駛公司Momenta基于亞馬遜AWS建立的系統(tǒng)架構(gòu)實(shí)例圖:
其中AWS IoT Greengrass?提供邊緣計(jì)算及機(jī)器學(xué)習(xí)推理功能,可以實(shí)時(shí)處理車輛中的本地規(guī)則和事件,同時(shí)最大限度地降低向云傳輸數(shù)據(jù)的成本。
其中P3實(shí)例和C5實(shí)例是Amazon EC2提供的。Amazon CloudFront是AWS的CDN,Amazon Glacier是在線文件存儲服務(wù),而Amazon FSx for Lustre 是可擴(kuò)展的高性能文件存儲系統(tǒng)。
除此之外,亞馬遜指出的,Momenta采用的AWS服務(wù)還包括:監(jiān)控可觀測性服務(wù)Amazon CloudWatch、關(guān)系數(shù)據(jù)庫Amazon Relational Database Service (Amazon RDS)、實(shí)時(shí)流數(shù)據(jù)處理和分析服務(wù)Amazon Kinesis(包括Video Streams、Data Streams、Data Firehose和Data Analytics)和消息隊(duì)列服務(wù)Amazon Simple Queue Service (Amazon SQS)等。
最近Momenta還采用Amazon Elastic Kubernetes Service (EKS) 運(yùn)行容器Kubernetes。此外亞馬遜也推薦了Kubernetes服務(wù),AWS Fargate。
Apache Kafka
Apache Spark
Apache Flink
Apache HBase
Apache Cassandra
Presto
Apache Hudi
Apache Airflow
Apache Mesos
3 訓(xùn)練數(shù)據(jù)標(biāo)注工具
其實(shí)AWS的機(jī)器學(xué)習(xí)平臺本身也提供了數(shù)據(jù)標(biāo)注工具Amazon SageMaker Ground Truth。
如圖是微軟開源標(biāo)注工具VOTT(Video Object Tagging Tool):
標(biāo)注工具可以是全自動、半自動和手工等3類。
比如人工標(biāo)注工具:攝像頭圖像LabelMe和激光雷達(dá)點(diǎn)云PCAT
還有半自動標(biāo)注工具:攝像頭CVAT、VATIC,激光雷達(dá)3D BAT、SAnE,圖像點(diǎn)云融合Latte
自動標(biāo)注工具:基本沒有開源(商用也沒有吧)的工具可用。
這里有一些自動標(biāo)注方面的論文:
-
“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在會議報(bào)告中給出的端到端標(biāo)注流水線:它需要人工介入
在這里順便提一下“數(shù)據(jù)可視化”的問題,各種傳感器數(shù)據(jù)除了標(biāo)注,還需要一個(gè)重放、觀察和調(diào)試的平臺。如圖是Uber提供的開源可視化工具?Autonomous Visualization System (AVS):
其中”XVIZ“是提出的自動駕駛數(shù)據(jù)實(shí)時(shí)傳輸和可視化協(xié)議:
另外,“streetscape.gl“是一個(gè)可視化工具包,在XVIZ 協(xié)議編碼自動駕駛和機(jī)器人數(shù)據(jù)。它提供了一組可組合的 React 組件,對 XVIZ 數(shù)據(jù)進(jìn)行可視化和交互。
4 大型模型訓(xùn)練平臺
模型訓(xùn)練平臺,主要是機(jī)器學(xué)習(xí)(深度學(xué)習(xí))而言,前面亞馬遜AWS提供了自己的ML平臺SageMaker。我們知道最早有開源的軟件Caffe,目前最流行的是Tensorflow和Pytorch(Caffe2并入)。
Tensorflow
Pytorch
在云平臺部署深度學(xué)習(xí)模型訓(xùn)練,一般采用分布式。按照并行方式,分布式訓(xùn)練一般分為數(shù)據(jù)并行和模型并行兩種。當(dāng)然,也可采用數(shù)據(jù)并行和模型并行的混合。
模型并行:不同GPU負(fù)責(zé)網(wǎng)絡(luò)模型的不同部分。例如,不同網(wǎng)絡(luò)層被分配到不同的GPU,或者同一層不同參數(shù)被分配到不同GPU。
數(shù)據(jù)并行:不同GPU有模型的多個(gè)副本,每個(gè)GPU分配不同的數(shù)據(jù),將所有GPU計(jì)算結(jié)果按照某種方式合并。
模型并行不常用,而數(shù)據(jù)并行涉及各個(gè)GPU之間如何同步模型參數(shù),分為同步更新和異步更新。同步更新等所有GPU的梯度計(jì)算完成,再計(jì)算新權(quán)值,同步新值后,再進(jìn)行下一輪計(jì)算。異步更新是每個(gè)GPU梯度計(jì)算完無需等待,立即更新權(quán)值,然后同步新值進(jìn)行下一輪計(jì)算。
分布式訓(xùn)練系統(tǒng)包括兩種架構(gòu):Parameter Server Architecture(PS,參數(shù)服務(wù)器)和Ring -AllReduce Architecture(環(huán)-全歸約)。
如下圖是PS結(jié)構(gòu)圖:
這個(gè)圖是Ring AllReduce的架構(gòu)圖:
Pytorch現(xiàn)在和多個(gè)云平臺建立合作關(guān)系,可以安裝使用。比如AWS,在AWS Deep Learning AMIs、AWS Deep Learning Containers和Amazon SageMaker,都可以訓(xùn)練Pytorch模型,最后采用TorchServe進(jìn)行部署。
Pytorch提供兩種方法在多GPU平臺切分模型和數(shù)據(jù):
-
DataParallel
-
distributedataparallel
DataParallel更易于使用。不過,通信是瓶頸,GPU利用率通常很低,而且不支持分布式。DistributedDataParallel支持模型并行和多進(jìn)程,單機(jī)/多機(jī)都可以,是分布訓(xùn)練。
PyTorch 自身提供幾種加速分布數(shù)據(jù)并行的訓(xùn)練優(yōu)化技術(shù),如 bucketing gradients、overlapping computation with communication 以及 skipping gradient synchronization 等。
Tensorflow在模型設(shè)計(jì)和訓(xùn)練使用也方便,可以使用高階?Keras API;對于大型機(jī)器學(xué)習(xí)訓(xùn)練任務(wù),使用?Distribution Strategy API?在不同的硬件配置上進(jìn)行分布式訓(xùn)練,而無需更改模型定義。
其中Estimator API?用于編寫分布式訓(xùn)練代碼,允許自定義模型結(jié)構(gòu)、損失函數(shù)、優(yōu)化方法以及如何進(jìn)行訓(xùn)練、評估和導(dǎo)出等內(nèi)容,同時(shí)屏蔽與底層硬件設(shè)備、分布式網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)认嚓P(guān)的細(xì)節(jié)。
tf.distribute.MirroredStrategy支持在一臺機(jī)器的多個(gè) GPU 上進(jìn)行同步分布式訓(xùn)練。該策略會為每個(gè) GPU 設(shè)備創(chuàng)建一個(gè)副本。模型中的每個(gè)變量都會在所有副本之間進(jìn)行鏡像。這些變量將共同形成一個(gè)名為MirroredVariable的單個(gè)概念變量。這些變量會通過應(yīng)用相同的更新彼此保持同步。
tf.distribute.experimental.MultiWorkerMirroredStrategy與MirroredStrategy非常相似。它實(shí)現(xiàn)了跨多個(gè)工作進(jìn)程的同步分布式訓(xùn)練,而每個(gè)工作進(jìn)程可能有多個(gè) GPU。與MirroredStrategy類似,它也會跨所有工作進(jìn)程在每個(gè)設(shè)備的模型中創(chuàng)建所有變量的副本。
tf.distribute.experimental.ParameterServerStrategy支持在多臺機(jī)器上進(jìn)行參數(shù)服務(wù)器PS訓(xùn)練。在此設(shè)置中,有些機(jī)器會被指定為工作進(jìn)程,有些會被指定為參數(shù)服務(wù)器。模型的每個(gè)變量都會被放在參數(shù)服務(wù)器上。計(jì)算會被復(fù)制到所有工作進(jìn)程的所有 GPU 中。(注:該策略僅適用于 Estimator API。)
5 模型測試和檢驗(yàn)
模型的測試和檢驗(yàn)可以分成多種方式:
一是仿真測試檢驗(yàn)。建立仿真測試環(huán)境,比如開源的一些軟件平臺:
-
Carla
-
AirSim
-
LGSVL
還有一些成熟的商用軟件,也可以構(gòu)建仿真測試環(huán)境:Prescan和VTD。存在一些仿真子模塊,比如開源的交通流仿真方面SUMO,商用的動力學(xué)仿真方面CarSim、Trucksim和Carmaker等。測試方式包括模型在環(huán)(MIL)、軟件在環(huán)(SIL)、硬件在環(huán)(HIL)和整車在環(huán)(VIL)等。傳感器的仿真,特別是攝像頭的圖像生成,除了圖形學(xué)的渲染方式,還有基于機(jī)器學(xué)習(xí)的方式。
這里列出Uber ATG發(fā)表的一系列仿真建模論文:
“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“
二是封閉場地的實(shí)車測試檢驗(yàn)。各大車企都有自己的測試基地,現(xiàn)在自動駕駛方面也可使用。其開銷遠(yuǎn)大于仿真系統(tǒng)。
谷歌waymo測試場
三是開放場地的測試檢驗(yàn)。現(xiàn)在好多L4級別的自動駕駛,比如無人出租車/無人卡車/無人送貨,都在做這種政府批準(zhǔn)的實(shí)際駕駛實(shí)驗(yàn)區(qū)測試。這種測試,必要時(shí)候安全員的接管或者遙控接管,都是需要花費(fèi)大量投入的。
GM的自動駕駛公司Cruise在舊金山測試
最后是用戶的測試檢驗(yàn)。這個(gè)是特斯拉特有的影子模式,以及FSD beta版本測試的志愿者模式。
特斯拉的“Operation Vacation”模式
如圖是英偉達(dá)報(bào)告描述的車隊(duì)級別的模型部署閉環(huán):
4 大型模型訓(xùn)練平臺
模型訓(xùn)練平臺,主要是機(jī)器學(xué)習(xí)(深度學(xué)習(xí))而言,前面亞馬遜AWS提供了自己的ML平臺SageMaker。我們知道最早有開源的軟件Caffe,目前最流行的是Tensorflow和Pytorch(Caffe2并入)。
Tensorflow
Pytorch
在云平臺部署深度學(xué)習(xí)模型訓(xùn)練,一般采用分布式。按照并行方式,分布式訓(xùn)練一般分為數(shù)據(jù)并行和模型并行兩種。當(dāng)然,也可采用數(shù)據(jù)并行和模型并行的混合。
模型并行:不同GPU負(fù)責(zé)網(wǎng)絡(luò)模型的不同部分。例如,不同網(wǎng)絡(luò)層被分配到不同的GPU,或者同一層不同參數(shù)被分配到不同GPU。
數(shù)據(jù)并行:不同GPU有模型的多個(gè)副本,每個(gè)GPU分配不同的數(shù)據(jù),將所有GPU計(jì)算結(jié)果按照某種方式合并。
模型并行不常用,而數(shù)據(jù)并行涉及各個(gè)GPU之間如何同步模型參數(shù),分為同步更新和異步更新。同步更新等所有GPU的梯度計(jì)算完成,再計(jì)算新權(quán)值,同步新值后,再進(jìn)行下一輪計(jì)算。異步更新是每個(gè)GPU梯度計(jì)算完無需等待,立即更新權(quán)值,然后同步新值進(jìn)行下一輪計(jì)算。
分布式訓(xùn)練系統(tǒng)包括兩種架構(gòu):Parameter Server Architecture(PS,參數(shù)服務(wù)器)和Ring -AllReduce Architecture(環(huán)-全歸約)。
如下圖是PS結(jié)構(gòu)圖:
這個(gè)圖是Ring AllReduce的架構(gòu)圖:
Pytorch現(xiàn)在和多個(gè)云平臺建立合作關(guān)系,可以安裝使用。比如AWS,在AWS Deep Learning AMIs、AWS Deep Learning Containers和Amazon SageMaker,都可以訓(xùn)練Pytorch模型,最后采用TorchServe進(jìn)行部署。
Pytorch提供兩種方法在多GPU平臺切分模型和數(shù)據(jù):
-
DataParallel
-
distributedataparallel
DataParallel更易于使用。不過,通信是瓶頸,GPU利用率通常很低,而且不支持分布式。DistributedDataParallel支持模型并行和多進(jìn)程,單機(jī)/多機(jī)都可以,是分布訓(xùn)練。
PyTorch 自身提供幾種加速分布數(shù)據(jù)并行的訓(xùn)練優(yōu)化技術(shù),如 bucketing gradients、overlapping computation with communication 以及 skipping gradient synchronization 等。
Tensorflow在模型設(shè)計(jì)和訓(xùn)練使用也方便,可以使用高階?Keras API;對于大型機(jī)器學(xué)習(xí)訓(xùn)練任務(wù),使用?Distribution Strategy API?在不同的硬件配置上進(jìn)行分布式訓(xùn)練,而無需更改模型定義。
其中Estimator API?用于編寫分布式訓(xùn)練代碼,允許自定義模型結(jié)構(gòu)、損失函數(shù)、優(yōu)化方法以及如何進(jìn)行訓(xùn)練、評估和導(dǎo)出等內(nèi)容,同時(shí)屏蔽與底層硬件設(shè)備、分布式網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)认嚓P(guān)的細(xì)節(jié)。
tf.distribute.MirroredStrategy支持在一臺機(jī)器的多個(gè) GPU 上進(jìn)行同步分布式訓(xùn)練。該策略會為每個(gè) GPU 設(shè)備創(chuàng)建一個(gè)副本。模型中的每個(gè)變量都會在所有副本之間進(jìn)行鏡像。這些變量將共同形成一個(gè)名為MirroredVariable的單個(gè)概念變量。這些變量會通過應(yīng)用相同的更新彼此保持同步。
tf.distribute.experimental.MultiWorkerMirroredStrategy與MirroredStrategy非常相似。它實(shí)現(xiàn)了跨多個(gè)工作進(jìn)程的同步分布式訓(xùn)練,而每個(gè)工作進(jìn)程可能有多個(gè) GPU。與MirroredStrategy類似,它也會跨所有工作進(jìn)程在每個(gè)設(shè)備的模型中創(chuàng)建所有變量的副本。
tf.distribute.experimental.ParameterServerStrategy支持在多臺機(jī)器上進(jìn)行參數(shù)服務(wù)器PS訓(xùn)練。在此設(shè)置中,有些機(jī)器會被指定為工作進(jìn)程,有些會被指定為參數(shù)服務(wù)器。模型的每個(gè)變量都會被放在參數(shù)服務(wù)器上。計(jì)算會被復(fù)制到所有工作進(jìn)程的所有 GPU 中。(注:該策略僅適用于 Estimator API。)
5 模型測試和檢驗(yàn)
模型的測試和檢驗(yàn)可以分成多種方式:
一是仿真測試檢驗(yàn)。建立仿真測試環(huán)境,比如開源的一些軟件平臺:
-
Carla
-
AirSim
-
LGSVL
還有一些成熟的商用軟件,也可以構(gòu)建仿真測試環(huán)境:Prescan和VTD。存在一些仿真子模塊,比如開源的交通流仿真方面SUMO,商用的動力學(xué)仿真方面CarSim、Trucksim和Carmaker等。測試方式包括模型在環(huán)(MIL)、軟件在環(huán)(SIL)、硬件在環(huán)(HIL)和整車在環(huán)(VIL)等。傳感器的仿真,特別是攝像頭的圖像生成,除了圖形學(xué)的渲染方式,還有基于機(jī)器學(xué)習(xí)的方式。
這里列出Uber ATG發(fā)表的一系列仿真建模論文:
“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“
二是封閉場地的實(shí)車測試檢驗(yàn)。各大車企都有自己的測試基地,現(xiàn)在自動駕駛方面也可使用。其開銷遠(yuǎn)大于仿真系統(tǒng)。
谷歌waymo測試場
三是開放場地的測試檢驗(yàn)?,F(xiàn)在好多L4級別的自動駕駛,比如無人出租車/無人卡車/無人送貨,都在做這種政府批準(zhǔn)的實(shí)際駕駛實(shí)驗(yàn)區(qū)測試。這種測試,必要時(shí)候安全員的接管或者遙控接管,都是需要花費(fèi)大量投入的。
GM的自動駕駛公司Cruise在舊金山測試
最后是用戶的測試檢驗(yàn)。這個(gè)是特斯拉特有的影子模式,以及FSD beta版本測試的志愿者模式。
特斯拉的“Operation Vacation”模式
如圖是英偉達(dá)報(bào)告描述的車隊(duì)級別的模型部署閉環(huán):
6 相關(guān)的機(jī)器學(xué)習(xí)技術(shù)
最后,談一下數(shù)據(jù)閉環(huán)所采用的機(jī)器學(xué)習(xí)技術(shù),其實(shí)就是選擇什么訓(xùn)練數(shù)據(jù)和如何迭代更新模型的策略。主要有以下幾點(diǎn):
-
主動學(xué)習(xí)
-
OOD檢測和Corner Case檢測
-
數(shù)據(jù)增強(qiáng)/對抗學(xué)習(xí)
-
遷移學(xué)習(xí)/域自適應(yīng)
-
自動機(jī)器學(xué)習(xí)(AutoML?)/元學(xué)習(xí)(學(xué)習(xí)如何學(xué)習(xí))
-
半監(jiān)督學(xué)習(xí)
-
自監(jiān)督學(xué)習(xí)
-
少樣本/?零樣本學(xué)習(xí)
-
持續(xù)學(xué)習(xí)/開放世界
下面分別討論:
1)主動學(xué)習(xí)
主動學(xué)習(xí)(active learning)的目標(biāo)是找到有效的方法從無標(biāo)記數(shù)據(jù)池中選擇要標(biāo)記的數(shù)據(jù),最大限度地提高準(zhǔn)確性。主動學(xué)習(xí)通常是一個(gè)迭代過程,在每次迭代中學(xué)習(xí)模型,使用一些啟發(fā)式方法從未標(biāo)記數(shù)據(jù)池中選擇一組數(shù)據(jù)進(jìn)行標(biāo)記。因此,有必要在每次迭代中為了大子集查詢所需標(biāo)簽,這樣即使對大小適中的子集,也會產(chǎn)生相關(guān)樣本。
如圖是一個(gè)主動學(xué)習(xí)閉環(huán)示意圖:在無標(biāo)注數(shù)據(jù)中查詢、標(biāo)注所選擇數(shù)據(jù)、添加標(biāo)注數(shù)據(jù)到訓(xùn)練集和模型訓(xùn)練。
一些方法把標(biāo)注和無標(biāo)注數(shù)據(jù)放在一起,故此采用監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)進(jìn)行訓(xùn)練。
貝葉斯主動學(xué)習(xí)方法通常使用非參數(shù)模型(如高斯過程)來估計(jì)每個(gè)查詢的預(yù)期進(jìn)步或一組查詢后的預(yù)期錯(cuò)誤。
基于不確定性主動學(xué)習(xí)方法嘗試使用啟發(fā)式方法,比如最高熵,和決策邊界的幾何距離等來尋找困難例子(hard examples)。
如圖是英偉達(dá)基于主動學(xué)習(xí)的挖掘數(shù)據(jù)方法:
還有其他的主動學(xué)習(xí)實(shí)例方法:
-
“Deep Active Learning for Efficient Training of a LiDAR 3D Object Detector“
-
“Consistency-based Active Learning for Object Detection“
2)OOD檢測和Corner Case檢測
機(jī)器學(xué)習(xí)模型往往會在out-of-distribution(OOD) 數(shù)據(jù)上失敗。檢測OOD是確定不確定性(Uncertainty)的手段,既可以安全報(bào)警,也可以發(fā)現(xiàn)有價(jià)值的數(shù)據(jù)樣本。
不確定性有兩種來源:任意(aleatoric)不確定性和認(rèn)知(epistemic)不確定性。
導(dǎo)致預(yù)測不確定性的數(shù)據(jù)不可減(Irreducible)不確定性,是一種任意不確定性(也稱為數(shù)據(jù)不確定性)。任意不確定性有兩種類型:同方差(homo-scedastic)和異方差(hetero-scedastic)。
另一類不確定性是由于知識和數(shù)據(jù)不適當(dāng)造成的認(rèn)知不確定性(也稱為知識/模型不確定性)。
最常用的不確定性估計(jì)方法是貝葉斯近似(Bayesian approximation)法和集成學(xué)習(xí)(ensemble learning)法。
一類 OOD 識別方法基于貝葉斯神經(jīng)網(wǎng)絡(luò)推理,包括基于 dropout 的變分推理(variational inference)、馬爾可夫鏈蒙特卡羅 (MCMC) 和蒙特卡羅 dropout等。
另一類OOD識別方法包括 (1) ?輔助損失或NN 架構(gòu)修改等訓(xùn)練方法,以及 (2) 事后統(tǒng)計(jì)(post hoc statistics)方法。
數(shù)據(jù)樣本中有偏離正常的意外情況,即所謂的corner case??煽康貦z測此類corner case,在開發(fā)過程中,在線和離線應(yīng)用都是必要的。
在線應(yīng)用可以用作安全監(jiān)控和警告系統(tǒng),在corner case情況發(fā)生時(shí)進(jìn)行識別。離線應(yīng)用將corner case檢測器應(yīng)用于大量收集的數(shù)據(jù),選擇合適的訓(xùn)練和相關(guān)測試數(shù)據(jù)。
最近的一些實(shí)例工作有:
-
“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)數(shù)據(jù)增強(qiáng)/對抗學(xué)習(xí)
過擬合(Overfitting)是指當(dāng)機(jī)器學(xué)習(xí)模型學(xué)習(xí)高方差的函數(shù)完美地對訓(xùn)練數(shù)據(jù)建模時(shí)出現(xiàn)的現(xiàn)象。數(shù)據(jù)增強(qiáng)(Data Augmentation)增強(qiáng)訓(xùn)練數(shù)據(jù)集的大小和質(zhì)量,克服過擬合,從而構(gòu)建更好的機(jī)器學(xué)習(xí)模型。
圖像數(shù)據(jù)增強(qiáng)算法包括幾何變換、色彩空間增強(qiáng)、內(nèi)核過濾器、混合圖像、隨機(jī)擦除、特征空間增強(qiáng)、對抗訓(xùn)練(adversarial training)、生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)、神經(jīng)風(fēng)格遷移(neural style transfer)和元學(xué)習(xí)(meta-learning)。
激光雷達(dá)點(diǎn)云數(shù)據(jù)的增強(qiáng)方法還有特別的一些:全局變換(旋轉(zhuǎn)、平移、尺度化)、局部變換(旋轉(zhuǎn)、平移、尺度化)和3-D濾波。
對抗性訓(xùn)練可以成為尋找增強(qiáng)方向的有效方法。通過限制對抗網(wǎng)絡(luò)(adversarial network)可用的增強(qiáng)和畸變變換集,通過學(xué)習(xí)得到導(dǎo)致錯(cuò)誤的增強(qiáng)方式。這些增強(qiáng)對于加強(qiáng)機(jī)器學(xué)習(xí)模型中的弱點(diǎn)很有價(jià)值。
值得一提的是,CycleGAN?引入了一個(gè)額外的 Cycle-Consistency 損失函數(shù),穩(wěn)定 GAN 訓(xùn)練,應(yīng)用于圖像到圖像轉(zhuǎn)換(image-to-image translation)。實(shí)際上CycleGAN 學(xué)習(xí)從一個(gè)圖像域轉(zhuǎn)換到另一個(gè)域。
機(jī)器學(xué)習(xí)模型錯(cuò)誤背后的一個(gè)常見原因是一種稱為數(shù)據(jù)集偏差或域漂移(dataset bias?/?domain shift)的現(xiàn)象。域適應(yīng)方法試圖減輕域漂移的有害作用。對抗訓(xùn)練方法引入到域適應(yīng),比如對抗鑒別域適應(yīng)方法(Adversarial Discriminative Domain Adaptation,ADDA)。
最近出現(xiàn)的一些新實(shí)例方法:
-
“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)遷移學(xué)習(xí)/域適應(yīng)
遷移學(xué)習(xí)(transfer learning,TL)不需要訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)是獨(dú)立同分布(independent and identically distributed,i.i.d),目標(biāo)域的模型不需要從頭開始訓(xùn)練,可以減少目標(biāo)域訓(xùn)練數(shù)據(jù)和時(shí)間的需求。
深度學(xué)習(xí)的遷移技術(shù)基本分為兩種類型,即非對抗性的(傳統(tǒng))和對抗性的。
域適應(yīng) (domain adaptation,DA) 是TL的一種特殊情況,利用一個(gè)或多個(gè)相關(guān)源域(source domains)的標(biāo)記數(shù)據(jù)在目標(biāo)域(target domain)執(zhí)行新任務(wù)。
DA方法分為兩類:基于實(shí)例的和基于特征的。
最近出現(xiàn)的一些新實(shí)例方法:
-
“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)自動機(jī)器學(xué)習(xí)(AutoML)/元學(xué)習(xí)(學(xué)習(xí)如何學(xué)習(xí))
一個(gè)機(jī)器學(xué)習(xí)建模的工程還有幾個(gè)方面需要人工干預(yù)和可解釋性,即機(jī)器學(xué)習(xí)落地流水線的兩個(gè)主要組件:預(yù)-建模和后-建模(如圖)。
預(yù)-建模影響算法選擇和超參數(shù)優(yōu)化過程的結(jié)果。預(yù)-建模步驟包括多個(gè)步驟,包括數(shù)據(jù)理解、數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)驗(yàn)證。
后-建模模塊涵蓋了其他重要方面,包括機(jī)器學(xué)習(xí)模型的管理和部署。
為了降低這些繁重的開發(fā)成本,出現(xiàn)了自動化整個(gè)機(jī)器學(xué)習(xí)流水線的新概念,即開發(fā)自動機(jī)器學(xué)習(xí)(automated machine learning,AutoML) 方法。AutoML 旨在減少對數(shù)據(jù)科學(xué)家的需求,并使領(lǐng)域?qū)<夷軌蜃詣訕?gòu)建機(jī)器學(xué)習(xí)應(yīng)用程序,而無需太多統(tǒng)計(jì)和機(jī)器學(xué)習(xí)知識。
值得特別一提的是谷歌方法“神經(jīng)架構(gòu)搜索”(Neural Architecture Search,NAS),其目標(biāo)是通過在預(yù)定義搜索空間中選擇和組合不同的基本組件來生成穩(wěn)健且性能良好的神經(jīng)網(wǎng)絡(luò)架構(gòu)。
NAS的分布式訓(xùn)練實(shí)現(xiàn)
NAS的總結(jié)從兩個(gè)角度了解:模型結(jié)構(gòu)類型和采用超參數(shù)優(yōu)化(hyperparameter optimization,HPO)的模型結(jié)構(gòu)設(shè)計(jì)。最廣泛使用的 HPO 方法利用強(qiáng)化學(xué)習(xí) (RL)、基于進(jìn)化的算法 (EA)、梯度下降 (GD) 和貝葉斯優(yōu)化 (BO)方法。
如圖是AutoML在機(jī)器學(xué)習(xí)平臺的應(yīng)用實(shí)例:
注:在谷歌云、微軟云Azure和亞馬遜云AWS都支持AutoML。
深度學(xué)習(xí)(DL)專注于樣本內(nèi)預(yù)測,元學(xué)習(xí)(meta learning)關(guān)注樣本外預(yù)測的模型適應(yīng)問題。元學(xué)習(xí)作為附加在原始 DL 模型的泛化部分。
元學(xué)習(xí)尋求模型適應(yīng)與訓(xùn)練任務(wù)大不相同的未見過的任務(wù)(unseen tasks)。元強(qiáng)化學(xué)習(xí) (meta-RL) 考慮代理與不斷變化的環(huán)境之間的交互過程。元模仿學(xué)習(xí) (Meta-IL) 將過去類似的經(jīng)驗(yàn)應(yīng)用于只有稀疏獎(jiǎng)勵(lì)的新任務(wù)。
元學(xué)習(xí)與?AutoML?密切相關(guān),二者有相同的研究目標(biāo),即學(xué)習(xí)工具和學(xué)習(xí)問題?,F(xiàn)有的元學(xué)習(xí)技術(shù)根據(jù)在 AutoML 的應(yīng)用可分為三類:
-
1)用于配置評估(對于評估者);
-
2)用于配置生成(用于優(yōu)化器);
-
3) 用于動態(tài)配置的自適應(yīng)。
元學(xué)習(xí)促進(jìn)配置生成,例如,針對特定學(xué)習(xí)問題的配置、生成或選擇配置策略或細(xì)化搜索空間。元學(xué)習(xí)檢測概念漂移(concept drift)并動態(tài)調(diào)整學(xué)習(xí)工具實(shí)現(xiàn)自動化機(jī)器學(xué)習(xí)(AutoML)過程。
6)半監(jiān)督學(xué)習(xí)
半監(jiān)督學(xué)習(xí)(semi-supervised learning)是利用未標(biāo)記數(shù)據(jù)生成具有可訓(xùn)練模型參數(shù)的預(yù)測函數(shù),目標(biāo)是比用標(biāo)記數(shù)據(jù)獲得的預(yù)測函數(shù)更準(zhǔn)確。由于混合監(jiān)督和無監(jiān)督方法,半監(jiān)督學(xué)習(xí)的損失函數(shù)可以具有多種形狀。一種常見的方法是添加一個(gè)監(jiān)督學(xué)習(xí)的損失項(xiàng)和一個(gè)無監(jiān)督學(xué)習(xí)的損失項(xiàng)。
已經(jīng)有一些經(jīng)典的半監(jiān)督學(xué)習(xí)方法:
-
“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“
最近出現(xiàn)一些新實(shí)例方法:
-
“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)自監(jiān)督學(xué)習(xí)
自監(jiān)督學(xué)習(xí)(self supervised learning)算是無監(jiān)督學(xué)習(xí)的一個(gè)分支,其目的是恢復(fù),而不是發(fā)現(xiàn)。自監(jiān)督學(xué)習(xí)基本分為:生成(generative)類, 對比(contrastive)類和生成-對比(generative-contrastive)混合類,即對抗(adversarial)類。
自監(jiān)督使用借口任務(wù)(pretext task)來學(xué)習(xí)未標(biāo)記數(shù)據(jù)的表示。借口任務(wù)是無監(jiān)督的,但學(xué)習(xí)的表示通常不能直接給下游任務(wù)(downstream task),必須進(jìn)行微調(diào)。因此,自監(jiān)督學(xué)習(xí)可以被解釋為一種無監(jiān)督、半監(jiān)督或自定義策略。下游任務(wù)的性能用于評估學(xué)習(xí)特征的質(zhì)量。
一些著名的自監(jiān)督學(xué)習(xí)方法有:
-
“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)少樣本/零樣本學(xué)習(xí)
零樣本學(xué)習(xí)(Zero-shot learning,ZSL)旨在識別在訓(xùn)練期間可能未見過實(shí)例的目標(biāo)。雖然大多數(shù)ZSL方法都使用判別性損失(discriminative losses)進(jìn)行學(xué)習(xí),但少數(shù)生成模型(generative models)將每個(gè)類別表示為概率分布。
對于未見類(unseen classes),ZSL除了無法訪問其視覺或輔助信息的inductive設(shè)置之外,transductive方法無需訪問標(biāo)簽信息,直接用已見類(seen classes)和未見類一起的視覺或語義信息。
ZSL屬于遷移學(xué)習(xí)(TL),源特征空間為訓(xùn)練實(shí)例,目標(biāo)特征空間為測試實(shí)例,二者特征空間一樣。但對于已見類和未見類,標(biāo)簽空間是不同的。
為了從有限的監(jiān)督信息中學(xué)習(xí),一個(gè)新的機(jī)器學(xué)習(xí)方向稱為少樣本學(xué)習(xí) (Few-Shot Learning?,FSL)?;谌绾问褂孟闰?yàn)知識,FSL可分為三個(gè)類:1)用數(shù)據(jù)先驗(yàn)知識來增強(qiáng)監(jiān)督經(jīng)驗(yàn),2)通過模型先驗(yàn)知識約束假設(shè)空間,和3)用算法先驗(yàn)知識改變假設(shè)空間中最佳參數(shù)的搜索方式。
FSL 可以是監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)(RL),取決于除了有限的監(jiān)督信息之外還有哪些數(shù)據(jù)可用。許多 FSL 方法是元學(xué)習(xí)(meta learning)方法,以此作為先驗(yàn)知識。
最近的一些實(shí)例方法:
-
“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)持續(xù)學(xué)習(xí)/開放世界
持續(xù)學(xué)習(xí)( continual learning)可以不斷積累不同任務(wù)得到的知識,而無需從頭開始重新訓(xùn)練。其困難是如何克服災(zāi)難遺忘(catastrophic forgetting)。
如圖是持續(xù)學(xué)習(xí)的方法分類:經(jīng)驗(yàn)重放(ER)、正則化和參數(shù)孤立三個(gè)方向。
開放集識別(Open set recognition,OSR),是在訓(xùn)練時(shí)存在不完整的世界知識,在測試中可以將未知類提交給算法,要求分類器不僅要準(zhǔn)確地對所見類進(jìn)行分類,還要有效處理未見類。開放世界學(xué)習(xí)(Open world learning)可以看作是持續(xù)學(xué)習(xí)的一個(gè)子任務(wù)。
以下給出最近的一些實(shí)例方法:
-
“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“
數(shù)據(jù)閉環(huán)的關(guān)鍵是數(shù)據(jù),同時(shí)采用數(shù)據(jù)驅(qū)動的訓(xùn)練模型是基礎(chǔ)。決定了整個(gè)自動駕駛迭代升級系統(tǒng)的走向是:
-
數(shù)據(jù)的模式(攝像頭/激光雷達(dá)/雷達(dá),無/導(dǎo)航/高清地圖,姿態(tài)定位精度,時(shí)間同步標(biāo)記);
-
數(shù)據(jù)驅(qū)動模型(模塊/端到端);
-
模型的架構(gòu)(AutoML);
-
模型訓(xùn)練的策略(數(shù)據(jù)選擇)。
總結(jié)
以上是生活随笔為你收集整理的深度解析,教你如何打造自动驾驶的数据闭环的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: excel实战应用案例100讲(四)-E
- 下一篇: 用户画像是怎么生成出来的?