Why online learning
Learning By Feed Back
在人类开始学习一项技能,比如骑自行车,如果没有老师,开始是不知所措较为混乱的控制踩脚踏板的速度,转动方向盘的角度,以及调整自己的坐姿。开始的时候多数不会的人马上就倒地了,不断尝试的过程中,出现偶尔几次没有立刻倒,骑行了一段距离的时候,此时多数人会通过判断,总结经验,“这样骑,这样调不容易倒”等等。训练到一定程度,他可以在相对平整的地面大多时间保持不倒了。但我们看到特技演员还能够驾车飞跃复杂的地形,则要通过这类训练才能实现。
现实有些时候有老师来告诉你,这个时候应该怎么做,这个时候应该怎么做。不过老师教的毕竟有限,骑车,开车,游泳,等等这些技能,基本没有人能够通过仅仅听老师的指导就能熟练应用操作的。通常是老师教完通常知道“大概怎么做”,自己学完才能形成自己的经验。多数技能能够“无师自通”和“熟能生巧”,虽然老师的意见能够加速这个过程,但却不能替代这个过程。
把一个智能系统看作学习技能的人类,我们就能发现,老师教的过程是一个 有监督学习 (Supervised Learning)的过程, 自己真实操作体会则是 增强学习(Reinforcement Learning), 相比有监督学习,增强学习的过程包含几个要素
i. 根据环境不同,自动选择最佳策略。 经验不足或者表现不佳时,需要“尝试”,没有办法确切知道这个时候“做什么最正确”,通过尝试去“发现“正确的策略
ii. 实时,真实反馈,比如骑车的时候,车是往前走了,拐弯了,还是倒了,这些是针对当前采取的骑车的“策略”好坏的一个真实反馈,且这个反馈能够立即被接收。
iii. 增量特性。 我们知道,过去的经验始终存在,不会因为加入新的经验,就丢掉了过去的经验。一个学会了平地骑车的人,通过训练学会了驱车空中飞跃的特技时,不会把原来平地骑车的技能就忘记掉。
以增强学习这三点特征为中心来扩展,我们定义 在线学习 的概念,以区别于离线学习(包括多数有监督/无监督学习)。我们将在线学习定义为:基于增量更新的方式接收外界反馈,并实时调整策略以达到最佳收益的系统
在线学习有哪些优势?
仍以学骑车为例,为什么老师的指导无法代替自己的真实操作?中间包括至少两点原因: 第一, 老师的指导是模糊的,无法准确化的。老师通常能告诉你,当车拐弯时,离心力导致车往外倾斜,所以你要调整姿势朝内倾斜。但是往内倾斜多少度?为了达到这个效果你全省几十个关节分别要怎么调整?这些知识老师教不了,就算教了,每个人体重,身高,各方面的体质都不一样,效果也一定不相同。第二, 老师的指导无法准确到CASE BY CASE,比如你学会在在完全平整的地方骑车,但一旦在有颠簸的路面骑,仍然可能摔倒。老师的经验和知识无法按CASE细化到,颠簸度为XXX,速度为XXX…的时候应该怎么调整姿势…等等。因此,通常老师教到一定程度,后面要“更上一层楼”只能依赖自己的“增强学习”
从人类进化史,可以看到,主导社会发展的虽然也有经验传递的部分,更关键的部分依赖于自我优化,这个“优化”的动力一方面来自于自然界对人或者人对人(国家对国家)的“反馈”,另一方面来自于不断的创新的“尝试”。如语言的诞生,新的工具和技术的发明等等。
同理,在智能系统内,有监督学习依赖于现有的标注和特征的推广能力,也存在上述两个问题。一方面,受限于特征本身的表达能力,预测的精确性无法完全保证。另一方面,标注本身噪音和不准确,此外,部分特征空间内的数据训练样本里没有,这些都会影响学习的效果。
从工程角度看,有监督学习需要一次累积大量样本来探索,特别对于大数据,一次性训练成本很大。数据累积周期长,导致训练时效性无法跟上,并且需要耗费大量资源不断来更新训练。
对于上述问题,在线学习系统处理优势在于
i. 既可以离散表示,也能通过特征表达,准确性能进一步提高。
ii. 基于贝叶斯方法,融噪性强。例如千分之一级别点击率的数据,在线学习系统接收到的实时点击数据的反馈是0,0,0…. 偶尔千分之一概率出现1,很多模型训练得到可能是过拟合或者在0~1之间剧烈波动的预测,和真实的点击率相差较远,一些在线学习模型能正确回归出1‰附近的预测值.
iii. 引入对数据较少,不确定特征空间的“探索”机制,能够挖掘出具有潜在价值的长尾,最短时间内获得最大收益。
iv. 增量更新数据,不管是实时(Real-Time)还是小批量(mini-batch)更新方式,Online Learning能够将大数据化整为零,而且不显著丢失效果。也正因为可以增量更新,在线学习能够紧跟最新时效。
一些Online Learning的例子
- 学习骑自行车的过程,在不断跌倒和骑行过程中,积累经验,提升骑行技术,属于增强学习(在线学习)过程, 而老师教你怎么骑,是有监督学习。
- Bandit 策略的例子:一群朋友经常在一起,所以他们吃的馆子就是那么些馆子,口味也是那些口味,固化了。然后来了一个新的朋友,推荐了一家或者几家新的馆子新的口味,大家尝试着去尝了尝,发现其中一些或一个挺好的,后来就经常去吃
- 编好程序的做菜的机器人,买回家,只会做中规中矩的青椒肉丝。能Online Learning的机器人,在菜里面做创新改进,得到好评后逐渐学会做鱼香肉丝(青椒里面加其他料貌似主人更喜欢:) )
- 电子竞技领域,如魔兽争霸,DOTA等电子竞技,中间包括很多策略和战术的使用。 Online Learning可以让人工智能(AI)通过不断与人对战,或者学习人之间对战过程 来提升竞技策略,以至于可以战胜最厉害的人类。
- 举例如控制机器人的步态和平衡,控制理论太过复杂,机器人自己去尝试走路,跌倒再爬起,调整方案继续,最终学出了走路的方法
- 分类系统,一个新生代名词,不知道怎么分类,一段时间后,学会分类了
- 照顾婴儿的机器人,对于各个婴儿,喜好和照顾方法不同,通过观察婴儿反馈(啼哭/笑 等),逐渐学习照顾某个婴儿的方法
- 生物大脑是一个基于反馈在线学习的系统, 确切说是一个增强的Neural network system, 学术界已经找到海豚大脑进行Reinforcement Learning的依据
Online Learning核心,在于 尝试 与 反馈学习, 如果说机器学习是机器模仿人脑的开端, Online Learning是机器具有创造力的开端
online learning定义:
- 依赖于与客观环境的交互(用户,人,自然界等)获取的反馈信息
- 在线增量更新方式,模型能够接受实时的训练数据或者频繁更新的BATCH训练数据, 模型预测和训练同时或者交替进行
- 探索性策略,使得系统能够主动探索未知领域, 不被已有的训练数据完全限定