为什么要流机器学习
在现实世界中的数据是随着时间演化(evolution)的 ,而不是同分布(同分布,identically distributed)的 ,即认为来自同一个分布的取样。
例如在covid的疫情期间,许多智能系统无法正常工作,这是因为其输入及人类的行为或人类行为的产出发生了变化,在不再属于原来的分布了,这导致了这些智能系统出现了问题。
对于不断演化的数据分布,SML(Streaming Machine Learning)方法是有效的解决方法。
SML的假设和基本思路
SML对于数据到假设
SML假设数据是在数据流中,按照顺序一条一条到来的,并且数据点有标签。
SML的处理方法
如果检测到了数据层面的漂移(Data Drift) 或者 结果层面的漂移(Concept Drift) ,那么就在后台开始训练新的模型,并使用新的模型来处理数据。
这一模式可以被简单的视为
处理数据 - (如果检测到漂移)检测漂移 - 后台训练新模型 - 使用新模型替换原有模型。
Data Drift数据漂移
输入数据分布P(X)P(X)P(X)发生变化,但是不影响输出的的结果的分布,即 P(y∣X)P(y|X)P(y∣X) 不变。
Concept drift概念漂移
原有的concept对应的输入数据发生了变化,即P(y∣X)P(y|X)P(y∣X)发生了改变。即相同的输入数据不再对应和原来一样的输出。
概念漂移和异常检测的区别
两者着重点有根本差别
概念漂移要解决的问题是 昨天的模型是否能处理今天的数据
异常检测要解决的问题是 收到的样本是否符合一致性的模式