概念漂移学习笔记

概念漂移是指在线学习环境中输入和目标变量关系随时间变化的现象。本文探讨了适应性学习算法的重要性,特别是在数据分布变化时的处理。区分了真实概念漂移和虚拟漂移,并强调了在变化环境中预测模型所需具备的特性,包括检测和适应漂移、鲁棒性和资源效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念漂移 (Concept Drift) 指的是 “输入(input)” 和 “目标变量(target variable)” 之间的关系随着时间的流逝而产生变化的现象。(发生在“在线监督学习(online supervised learning)”场景中)

在概念漂移的研究领域中,存在着大量的概念以及术语混用现象,即表达同样或者相似的意义时,不同的概念和术语被使用,这给概念漂移的研究带来了明显的不便。对此,论文的作者在明确统一了文章的概念和术语的条件下,展开了研究。

1. 适应的学习算法

学习算法经常需要在无法预测改变的动态环境下操作。理想的性质就是他们具备合并新数据的能力。如果数据生成的过程不具备统计稳定性(像是发生在现实生活中的大多数),我们所需要预测的概念(变量)就会随着时间而改变。适应这种概念漂移的能力可以被视为一个逐例(example by example)学习预测模型的递增学习算法自然延伸。适应的学习算法(adaptive learning algorithms)可以被视为预先的递增学习算法,能够随着时间适应数据生成过程的演变。

p(y\mid X) = \frac{p(y)p(X\mid y)}{p(X)},

(稍后补充定义细节)

1.1 漂移的分类

·Real concept drift 

指的是 p(y \mid X) 的变化,并且其变化可伴随或者不伴随着 p(X) 的变化。Real concept drift在论文Salganicoff[1997]中以 concept drift 的术语出现,在Gao et al.[2007]中以 conditional change 的术语出现。

·Virtual drift

发生在 输入数据(incoming data) 分布改变的情况下(例如p(X)发生变化),这种改变是不影响p(y \mid X)的。然而,Virtual drift 在不同的文献内具有着不同的释义:

- 最初,virtual drift 的被定义为由于不完整数据,从而产生的现象,而不是现在的现实中概念(变量)的改变。[Widmer and Kubat 1993]

- Virtual drift 对应于 数据分布的改变,这种数据分布的改变能够引起决策边界的改变。[Tsymbal 2004]

- Virtual drift 是一种不影响目标概念(target concept)的drift(区别于直接影响目标概念的drift)

- Virtual drift 也被当作temporary drift [Lazarescu et al.], sampling shift [Salganicoff 1997], and feature change [Gao et al.] 被介绍在各自的文章中。

而在本片论文中,Virtual drift 统一指的是 数据分布p(X)的变化。

举例说明:

背景:想象一个“不动产”业务相关的在线新闻网站,其任务就是针对客户,将输入数据正确分类为:客户相关客户不相关。例如,假定一个用户想要搜索公寓信息,因此对于这个用户来说,住宅新闻是相关,度假屋新闻是不相关。

(用户的需求对应p(y\mid X)p(y)是先验概率;写作风格对应p(X)) 

1. 如果该门户网站出现人员调动,主编被更换,那么不可避免地,该网站的文章写作风格也会相应地改变,但是用户对于公寓的需求,以及住宅相关性、度假屋的不相关性均未改变,这样的改变就是Virtual drift。(p(X)改变)

2. 如果市场上出现了危机,导致住宅被大量地售出,从而使得住宅相关的文章及新闻数量大幅度地增加,而度假屋则相对减少,而主编的写作风格、用户的兴趣未改变,这种情况对应了p(y)(prior probabilities)的改变。

3. 另一方面,如果用户的需求变为搜索度假屋,从而变为度假屋相关,住宅不相关。这个场景对应着Real concept drift,其中,p(y)p(X)并未改变。值得注意的是,同时发生所有类型的 drift 是可能存在的。

图1中展示了 drift 的分类。从图中可以看出,只有real concept drift 改变了决策边界,这意味着之前的决策模型失效。Virtual drift 也可以和 Real drift 结合,在这个例子下,决策边界也会受到影响。

这片论文主要关注解决 real concept drift,它无法从输入数据分布中观察到的。许多案例证实,解决 real concept drift 的技术也可以解决表现在输入数据分布上的drift,但是反过来则不能实现。

解决 real concept drift 的技术依赖于预测性能的反馈(feedback),而追踪先验概率改变的技术以及解决 virtual drift 或者novetly detection的技术操作是不需要这样的 feedback。

注:这篇论文并未涉及 能够从输入数据分布p(X) 被检测出的drift。

1.2 随着时间数据的改变 (Changes in Data Over Time)

数据分布的改变随着时间可能呈现出不同的形式,如图2。

- drift 是 突然地(sudden/abrupt) 发生的,一般是由于改变“概念”引起的,例如:替换了用于检测数据的传感器,导致标度(calibration) 的改变。

- 递增地(incremental),存在许多中间的(过渡的)的“概念”。例如:传感器慢慢地磨损,从而导致精度的下降)

- 逐渐地(gradual),例如:相关的新闻标题由住宅变为度假屋,用户行为并不是突然间改变,并且有时还会恢复到原来的状态。

解决concept drift算法的一个挑战是不能融合 带有离群(outlier)和噪音(noise)的ture drift。其中 离群与噪音指的是 一次性随机偏差或者异常。对于“异常”情况是不需要适应性(adaptivity)的。

最后,drift可能引进新的、之前未见的概念(变量),或者以前的概念(变量)在一定的时间后再一次发生(reoccur),例如时尚潮流。改变(Changes)进一步表现出的特征有:严重性、可预测性以及频率。

大多数适应的学习技术(adaptive learning techniques)或明或暗地假设并专注于 概念漂移 的子集。大多数假设都是突然地(sudden)、未再一次发生的(nonreoccuring)。但是在现实生活中能够被观察到的都是许多种类的混合。

1.3 在变化的环境下,对预测模型的要求

- 尽可能检测出概念漂移(并且如果有需求,要适应)

-从“噪音”中区分漂移并且适应变化,但是要对噪音鲁棒

-在少于示例到达时间的情况下运行,并且对于任何存储使用不超过固定数量的内存

稍后整理

<think>嗯,用户让我介绍一下ORB-SLAM2的学习笔记。我需要先回忆一下ORB-SLAM2的基本框架和核心部分。ORB-SLAM2是一个比较经典的视觉SLAM系统,分为几个主要模块:特征提取、跟踪、局部建图、回环检测和地图管理。首先,我应该从系统架构开始介绍,说明各个模块的作用和相互关系。 接下来,用户可能需要了解ORB特征的相关内容。ORB特征结合了FAST关键点检测和BRIEF描述子,具有旋转不变性和一定的尺度不变性。这部分需要详细解释ORB特征的提取过程,包括如何构建图像金字塔,计算方向,生成描述子等步骤。 然后是跟踪线程,也就是Tracking部分。这里需要说明如何通过帧间匹配、运动模型或重定位来估计相机位姿。可能需要提到初始化的过程,比如使用单应矩阵或基础矩阵来恢复运动,以及如何三角化初始地图点。 局部建图模块负责处理新的关键帧,剔除冗余点,进行局部BA优化。这部分需要解释BA(Bundle Adjustment)的概念,以及如何优化相机位姿和地图点。同时,还要提到关键帧的选择策略,比如根据共视点数量或时间间隔来决定是否插入新的关键帧。 回环检测和地图融合部分也是重点。这里需要讲DBoW2的词袋模型,如何通过视觉词典检测回环,然后进行Sim3优化来校正漂移。此外,还要说明全局BA优化在回环校正后的作用,以及如何优化整个地图的一致性。 ORB-SLAM2支持单目、双目和RGB-D相机,需要比较不同传感器下的系统表现。比如单目初始化困难,存在尺度不确定性,而双目和RGB-D可以直接获取深度信息,初始化更简单。 在优缺点分析方面,优点包括实时性高、支持多传感器、具备回环检测和重定位能力。缺点可能有对动态环境敏感,单目模式下尺度问题,以及特征提取在纹理缺失区域效果差。可以提到后续的ORB-SLAM3在IMU融合和多地图系统上的改进。 最后,学习建议部分应该推荐一些资源,比如论文、代码库、书籍和课程。同时建议从基础开始,动手实践,并参与社区讨论。 需要注意的是,用户可能希望了解实际应用中的问题,比如如何调整参数,处理特定场景的挑战,或者如何扩展ORB-SLAM2的功能。不过根据用户的问题,主要是介绍学习笔记,所以需要结构清晰,分点说明,确保覆盖主要模块和关键点。 可能还需要检查LaTeX格式是否正确,比如公式是否用$或$$包裹,变量是否正确。例如,提到BA优化时,可以写目标函数是$$\min \sum \| \pi(X, T) - x \|^2$$,其中$T$是位姿,$X$是地图点。确保这些公式的格式正确。 总之,我需要按照系统架构、特征提取、跟踪、局部建图、回环检测、多传感器支持、优缺点、学习建议的结构来组织内容,使用清晰的中文,正确插入公式,并确保技术细节准确。</think>以下为ORB-SLAM2学习笔记的整理,按模块分阶段说明: --- ### 一、系统架构 $$ \text{ORB-SLAM2} = \text{Tracking} + \text{Local Mapping} + \text{Loop Closing} + \text{Map} $$ 三大线程并行运行: 1. **Tracking线程**:实时估计相机位姿($T_{cw} \in SE(3)$) 2. **Local Mapping线程**:局部BA优化与地图点维护 3. **Loop Closing线程**:回环检测与全局优化 --- ### 二、ORB特征提取 - **FAST关键点检测**:阈值化像素差异($|I_p - I_{center}| > \delta$) - **BRIEF描述子**:二进制编码(256-bit,汉明距离匹配) - **改进特性**: - 图像金字塔实现尺度不变性($n$层缩放,比例因子$s=1.2$) - 灰度质心法计算方向($m_{10}=\sum xI(x,y), m_{01}=\sum yI(x,y)$) --- ### 三、跟踪线程(Tracking) 1. **初始位姿估计**: - 通过上一帧运动模型预测:$T_{k} = T_{k-1} \cdot T_{k-1}^{k}$ - 或通过特征匹配与PnP求解:$\min_T \sum \| \pi(T \cdot X_i) - x_i \|^2$ 2. **关键帧判定**: - 跟踪质量下降(匹配点 < 阈值) - 距离上一关键帧超过20帧 --- ### 四、局部建图(Local Mapping) 1. **局部BA优化**: $$ \min_{T_i, X_j} \sum \| \pi(T_i \cdot X_j) - x_{ij} \|^2 + \rho(\| T_i^{-1}T_j \|) $$ - 仅优化当前关键帧及其共视关键帧 2. **地图点剔除**: - 观测次数 < 2次 - 重投影误差 > $\chi^2$阈值($\chi^2_{0.95}=5.991$) --- ### 五、回环检测(Loop Closing) 1. **词袋模型(DBoW2)**: - 离线训练视觉词典(k-means树结构) - 计算相似性得分:$s = \frac{\langle v_q, v_t \rangle}{\|v_q\| \|v_t\|}$ 2. **Sim3优化**: $$ \min_{S} \sum \| \pi(S \cdot X_i) - x_i \|^2 + \| \pi(S^{-1} \cdot X_j') - x_j' \|^2 $$ - 解决尺度漂移问题($S \in Sim(3)$) --- ### 六、多传感器支持 | 传感器类型 | 初始化方式 | 深度获取方法 | |------------|---------------------|-----------------------| | 单目 | 分解H/F矩阵 | 三角化(需运动) | | 双目/RGB-D | 直接构造深度图 | 视差/深度传感器 | --- ### 七、优缺点分析 - **优点**: - 实时性(30fps,GTX 1070) - 支持重定位与动态场景处理 - **缺点**: - 依赖特征匹配(纹理缺失易失效) - 单目模式需10秒以上初始化 --- ### 八、学习建议 1. **必读文献**: - 原论文《ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras》 - 《Multiple View Geometry in Computer Vision》 2. **代码实践**: ```bash git clone https://github.com/raulmur/ORB_SLAM2 cd ORB_SLAM2 && chmod +x build.sh && ./build.sh ``` 3. **调试工具**: - 使用g2o_viewer可视化优化结果 - 分析`KeyFrame::EraseMapPointMatch()`等关键函数 --- 以上内容需结合代码阅读(推荐使用CLion或VSCode调试),重点关注`Tracking.cc`和`Optimizer.cc`模块。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值