Active learning Tiny Review for autonomous driving

news2025/1/13 13:23:43

Introduction

阅读某一特定主题的一本书不会使你成为专家,阅读多本包含相似内容的书也不会。真正掌握一项技能或领域的知识需要来自多样化信息源的大量信息。
这对于自动驾驶和其他人工智能技术同样适用。
负责自动驾驶功能的深度神经网络需要经过详尽的训练,不仅要在日常行程中可能遇到的情况下,还要在希望它们永远不会遇到的异常情况下进行训练。成功的关键在于确保它们受到了正确数据的训练。
什么是正确的数据呢?那些新颖或不确定的情境,而不是反复出现相同的场景。
主动学习是一种机器学习的训练数据选择方法,它可以自动找到这种多样化的数据。它可以在人类花费大量时间筛选数据的情况下,在短时间内构建更好的数据集。
它的工作原理是利用已训练好的模型来浏览收集到的数据,标记出模型难以识别的帧。然后,这些帧由人类进行标记,然后添加到训练数据中。这提高了模型在识别恶劣条件下的物体等情况下的准确性。
(From Chat-gpt)

Orin In English:
Reading one book on a particular subject won’t make you an expert. Nor will reading multiple books containing similar material. Truly mastering a skill or area of knowledge requires lots of information coming from a diversity of sources.

The same is true for autonomous driving and other AI-powered technologies.

The deep neural networks responsible for self-driving functions require exhaustive training. Both in situations they’re likely to encounter during daily trips, as well as unusual ones they’ll hopefully never come across. The key to success is making sure they’re trained on the right data.

What’s the right data? Situations that are new or uncertain. No repeating the same scenarios over and over.

Active learning is a training data selection method for machine learning that automatically finds this diverse data. It builds better datasets in a fraction of the time it would take for humans to curate.

It works by employing a trained model to go through collected data, flagging frames it’s having trouble recognizing. These frames are then labeled by humans. Then they’re added to the training data. This increases the model’s accuracy for situations like perceiving objects in tough conditions.

For Autonomous Driving

针对自动驾驶来说,成熟的量产方案需要的数据是海量的。兰德公司的研究表明,自动驾驶技术需要110 亿公里的数据才可以表现的比人类驾驶好20%。那换算一下,需要100量数采车一颗不停地跑500年,才可以拿到这些数据。

相应的,如果要将这些数据都进行标注,那么即使这100辆车每天只跑8小时的数据,也需要1百万的标注员去对这些数据进行处理。

所以这是对自动驾驶是一个巨大的挑战,而解决这个问题的一个方法就是使用active learning的范式去处理数据。

在具体介绍active learning如何作用前,可以回溯下我们常用的选择数据的方式。
1.随机采样(我们的项目初期就是这样做的):获取了大部分的常规场景,但大概率会遗漏一些corner case,所以才会导致测试过程中出现各种ISSUE。
2.基于metadata(gps,weather,time,特有采集。在进入数据迭代后, 我们的项目也是这样做的。)的采样(解决相对常见的corner case):比如交通灯来说,可以按照需求去采集黄灯;对车辆来说,可以去施工区域附近采集”大车“;对车道线来说,可以根据gps信息,均匀送标上海的大部分路段的数据等等方法。这种方法确实能解决80%甚至90%的corner case。但剩下的10%也许才是产品竞争力的体现。比如下图中不装货物的挂车、站在高跷上的人,拖车等,就不是这样的方法可以解决的。
在这里插入图片描述
在这里插入图片描述

3.基于人工的采样(项目攻关、解决特定问题时常用的方法):标注人员(如果没有自有团队,那这就需要专业的研发人员亲自下场了)根据一定的规则,在阅览一帧帧的数据后,挑选出和问题场景相同的数据。这个的成本、时间、收益就是一个不易衡量的值了。但在一些特定场景,比如需要通过E-NCAP(www.euroncap.com)时, 是可以做到事半功倍的。

active learning / passive learning Example from Nvidia
走进active learning

这里先推荐一本书:Active Learning Literature Survey 作者 Burr Settles,虽然出版年份较早(2012),但基本上是这个领域最经典的一份综述,后续很多的科技软文大部分的内容和插图都来自这篇著作,感兴趣的小伙伴,可以自行深入阅读。本篇后续的介绍也会借鉴这篇著作的内容。

[active learning literature survey.pdf]

监督学习(我们项目的训模型目前都是属于监督学习)问题中,存在标记成本较为昂贵且标记难以大量获取的问题。 针对一些特定任务,只有行业专家才能为样本做上准确标记。在此问题背景下,主动学习(Active Learning, AL)尝试通过选择性的标记较少数据而训练出表现较好的模型。
在这里插入图片描述

下面是从 Burr 的 Survey 中选取的例子。
在这里插入图片描述

在这里插入图片描述

Query Strategy Frameworks

只简单介绍一些已经有成熟库的query方法,主要参考:
repo:https://github.com/modAL-python/modAL
DOC: https://modal-python.readthedocs.io/en/latest/content/overview/modAL-in-a-nutshell.html

对我们的业务来说,目的是获取可以提升我们模型效果的数据即可,整个Frame框架借用数据平台的workflow即可快速搭建。欠缺的刚好就是如何去发现needed数据的方法。而这些方法也刚好就是各种active learning方案的核心,也就是如何query,所以后续我们着重介绍下成熟的常见query方法。
当然复杂的也有很多,比如:
在这里插入图片描述

from Multiple instance active learning for object detection (CVPR202),感兴趣的同学可以自行学习。

Uncertainty sampling

When you present unlabelled examples to an active learner, it finds you the most useful example and presents it for you to be labelled. This is done by first calculating the usefulness of prediction (whatever it means) for each example and select an instance based on the usefulness. The thing is, there are several ways to measure this. They are based upon classification uncertainty, hence they are called uncertainty measures.
Classification uncertainty
对概率学感兴趣的同学,可以直接看如下公式即可:

在这里插入图片描述

Classification margin

同样,一个抽象公式:

在这里插入图片描述

Classification entropy

公式:

在这里插入图片描述

Disagreement sampling(Committee-based )

When you have several hypotheses about your data, selecting the next instances to label can be done by measuring the disagreement between the hypotheses. Only for classifiers。

Vote entropy

在这里插入图片描述

有没有发现这个和已经构建的大小模型diff是一个东西。我们将classier数量定为2,一个是离线大模型,一个是在线小模型。那么如果两个模型的vote entropy较大(也就是所说的结果diff较大),则将此数据筛选出来,用于训练。

Consensus entropy

在这里插入图片描述

这里稍稍难懂些,解释下。我们分别求出三个分类器对5个instance的分类结果,也就是模型出的cls分类,一般经过sigmoid后,是一个概率分布。如上边的vote_proba所示。那么我也就知道每个模型对每个物体属于哪个分类的概率。那么我们对vote_proba在第二维上求mean,得到了文中所说的consensus_proba,consensus_proba[0, 0]的含义就是对第一个instance来说,它属于第一类(class)的平均概率,换个说法,三个模型认为此instance属于第一类的平均概率,也就暗合了一致性的说法。最后对每个instance的三个类别的一致性概率求一致熵。如果熵较大,那也就说明对这个instance来说,所有分类器给他的打分都很低(高),也就更不确定,那么他大概率就是容易出问题的目标了。

Max Disagreement

在这里插入图片描述

Kullback-Leibler divergence:(相对熵/KL散度)衡量两个概率之间的“距离”,因此可以用 KL 散度计算出那些偏差较大的数据样本。

现状

Mind Your Outliers! Investigating the Negative Impact of Outliers on Active Learning for Visual Question Answering
ACL 2021年的outstanding paper证明对VAQ(visual question answering)任务任务来说,使用目前的query方法得到的数据进行模型训练,并不能得到比random sample的数据集训练的模型好的性能。所以在目前LLM火热的情况下,active learning也就变得不温不火。论文熟肉

但是在传统的分类、物体识别领域,active learning取得的成果还是有目共睹的。

Ozan Sener and Silvio Savarese. 2018. Active learning for convolutional neural networks: A core-set approach. In International Conference on Learning Representations (ICLR).
Ajay J Joshi, Fatih Porikli, and Nikolaos Papanikolopoulos. 2009. Multi-class active learning for image classification. In Computer Vision and Pattern Recognition (CVPR), pages 2372–2379.

而对于我们公司或者说项目来说,自动驾驶算法作为核心项目。所以用active learning相关方法进行数据挖掘工作,是能给最终的效果带来很大的提升,甚至减少足够的研发成本。

相关参考文献(SOTA or 曾经 SOTA)

1.A Survey on Active Deep Learning: From Model-driven to Data-driven
2.Data Classification Algorithms and Applications
3.Weather and Light Level Classification for Autonomous Driving: Dataset, Baseline and Active Learning
4.Active Finetuning: Exploiting Annotation Budget in the Pretraining-Finetuning Paradigm (CVPR 2023)
5.ActiveGLAE: A Benchmark for Deep Active Learning with Transformers
6.active learning literature survey
7.Active Learning by Feature Mixing (CVPR 2022)
8.Exploring Diversity-based Active Learning for 3D Object Detection in Autonomous Driving (IEEE)
9.Scalable Active Learning for Object Detection

相关开源REPO

1.https://github.com/aayushjr/HybridCLAUS
2.https://github.com/Luoyadan/CRB-active-3Ddet
3.https://github.com/baal-org/baal
4.https://github.com/SupeRuier/awesome-active-learning (推荐)

相关科技软文

  1. https://zhuanlan.zhihu.com/p/352339212
  2. https://zhuanlan.zhihu.com/p/391078925
  3. https://zhuanlan.zhihu.com/p/239756522
  4. https://zhuanlan.zhihu.com/p/377045943

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1137131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ES 数据迁移最佳实践

ES 数据迁移最佳实践与讲解 数据迁移是 Elasticsearch 运维管理和业务需求中常见的操作之一。以下是不同数据迁移方法的最佳实践和讲解: 一、数据迁移需求梳理 二、数据迁移方法梳理 三、各方案对比 方案 优点 缺点(限制) 适用场景 是否有…

Lua脚本语言

1. 概念 Lua(发音为"loo-ah",葡萄牙语中的"lua"意为月亮)是一种轻量级的、高效的、可嵌入的脚本编程语言。官网Lua最初由巴西计算机科学家Roberto Ierusalimschy、Waldemar Celes和Luiz Henrique de Figueiredo于1993年开…

看完这篇 教你玩转渗透测试靶机Vulnhub——Hacksudo: Aliens

Vulnhub靶机Bluemoon: 2021渗透测试详解 Vulnhub靶机介绍:Vulnhub靶机下载:Vulnhub靶机安装:Vulnhub靶机漏洞详解:①:信息收集:②:数据库后台传木马:③:反弹shell&#x…

免费活动-11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

​​​​​​​ 活动介绍 过去的几年里,外界的风云变幻为我们的生活增添了一些不一样的色彩。在VUCA世界的浪潮里,每一个人都成为自己生活里的冒险家。面对每一次的变化,勇于探索未知,迎接挑战,努力追逐更好的自己。…

实现地址转换的硬件机构

一、基本地址变换机构 1.硬件: 设置一个页表寄存器,存放页表在内存中的起始地址与页表长度。 2.执行过程: 进程未执行时,页表起始地址和长度存放在进程控制块(PCB)中;进程被调度时,OS内核会将其放入页表寄存器中。 3.具…

海外广告投放必看,如何使用Quora广告开拓新流量市场?

虽然在Quora 上学习广告相对容易,但需要大量的试验和错误才能找出最有效的方法。一些广告技巧可以让您的工作更有效率。这篇文章将介绍如何有效进行quora广告投放与有价值的 Quora 广告要点,这将为您节省数万美元的广告支出和工作时间!往下看…

postgresSQL 数据库本地创建表空间读取本地备份SQL文件

使用pgAdmin4,你安装PG得文件夹****/16/paAdmin 4 /runtime/pgAdmin4.exe 第一步:找到Tablespaces 第二步:创建表空间名称 第三步:指向数据文件 第四步:找到Databases,创建表空间 第五步:输入数…

SpringBoot依赖和代码分开打包

前言 在公司的项目中,一个SpringBoot工程可能就上百MB,这时候当线上网速不佳的时候,部署起来就十分的痛苦了。。经常等好久才能上传完毕,接下来我来教大家一个SpringBoot工程代码和依赖分开打包的方法。这种方法将依赖和代码分开…

身份证号码,格式校验:@IdCard(Validation + Hutool)

目标 自定义一个用于校验 身份证号码 格式的注解IdCard,能够和现有的 Validation 兼容,使用方式和其他校验注解保持一致(使用 Valid 注解接口参数)。 校验逻辑 有效格式 符合国家标准。 公民身份号码按照GB11643-…

NOIP2023模拟2联测23 分神

题目大意 有 n n n个矩形,每个矩形的四条边都平行于坐标轴。对于一个矩形,它的左下角坐标为 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​),右上角坐标为 ( x 2 , y 2 ) (x_2,y_2) (x2​,y2​),包含了所有满足 x 1 ≤ x ≤ x 2 , y 1 ≤ …

app分发的一些流程2

应用分发的流程通常包括以下步骤: 开发应用程序:首先,您需要开发您的应用程序。这包括编写代码、设计用户界面、测试应用程序等等。确保您的应用程序符合各个应用商店的规范和要求,以确保顺利通过审核。 准备应用材料&#xff1…

Android 13.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果

1.概述 在13.0的系统产品开发中,对于设置默认系统手势的左右滑动返回UI,系统默认的是比较简单,产品需求要求仿小米华为的左右手势返回UI样式的定制,所以需要找到绘制手势返回UI的相关代码,然后自定义手势导航左右滑动返回的相关UI就可以了 接下来就来实现手势导航做好手势…

windows殺死端口

netstat -ano | findstr 8081 taskkill /F /PID taskkill /F /PID 16624

796. 子矩阵的和(左上角前缀和)

题目: 796. 子矩阵的和 - AcWing题库 思路: 1.暴力搜索(搜索时间复杂度为O(n2),很多时候会超时) 2. 前缀和(左上角前缀和):本题特殊在不是直接求前n个数的和,而是求…

竞赛 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类

文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…

Leo赠书活动-03期 【ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践 】

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…

Java学习 习题 1.

一、 1.2. 3. 4. 5. 二、 1. 2. 3. 4. 5. 6. 7. 8.

【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上

深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题) 总体内容概览可扩展的网络服务分布式对象传统的阻塞式网络服务每个请求或连接可以在独立的线程中进行处理Server服务处理请求类Handler处理逻辑类优点缺点 可扩展性目标平稳降级…

zotero word联动 如何使用Zotero在Word中插入参考文献

下载https://gitee.com/redleafnew00/Chinese-STD-GB-T-7714-related-csl里面论文要求的格式,或者word里面点这个再搜 输入好以后一定要输入空格!

RK3399平台开发系列讲解(基础篇)嵌入式编码规范有哪些

🚀返回专栏总目录 文章目录 一、什么是GNU二、GNU C 编码规范2.1、格式2.2、注释2.3、语法约定2.4、命名2.5、系统可移植性2.6、CPU 可移植性2.7、系统函数2.8、国际化2.9、字符集沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 GNU 编码规范的出发点,是确保所有 G…