Online learning 的一些简单认识

来源:互联网 发布:淘宝价格不一样买哪家 编辑:程序博客网 时间:2024/05/23 09:48

Online learning的一些简单认识

 

Online learning是机器学习中的一种方法。

其目的是正确预测数据的类别,并且在每次预测后,该结果用来更新修正预测模型,用于对以后数据进行更好的预测。

而不同于batch learningbatch learning生成的最好预测仅基于一次确定的数据训练集。

一般的,一种Online learning算法对于一个序列进行一系列处理可以分为三步:

第一步,算法获得一个训练实例;

第二步,算法预测训练实例的类别;

第三步,算法获得正确类别,并根据预测类别与正确类别更新模型假设。

Online learning 很好的应用在训练整个数据集在计算上不可行的情况,和一些要求算法动态适应型模式的情况。

 

 

对应的online learning有两种通用的模型:statistical learning模型和adversarial模型。

 

statisticallearning 模型:数据样本是独立同分布的随机变量且不随时间变化,算法只是对数据的有限访问,即不是对整个数据集的计算。(如随机梯度下降,感知器)

 

adversarial模型:我们把问题看作是两个玩家之间的游戏(学习者和数据生成器),在这个模型中对手(数据生成器)能动态的适应该算法输出产生而产生变化,例如在垃圾邮件过滤中,垃圾邮件的产生者能基于过滤器的表现来生成新的垃圾邮件。

 

 

 

 

 

下面以Multi-armed bandit(多臂赌博机)问题为例来简要介绍几个简单的策略

 

Multi-armed bandit 问题中,有k台赌博机,我们每次选择其中一台进行游戏,并会得到相应的奖励,该奖励是基于特定机器的某种分布。我们的目标是选择最好的进行游戏的机器的序列,使奖励最大化。

 

在我理解看来这个问题中应该也可以对应两种模型

Statistical leaning 模型:每个机器都有一种固定的概率分布,只是我们无法得到整个数据集进行计算。

Adversarial 模型:有人可以基于你的游戏行为动态的调整每台机器的奖励。

 

另外关于评价策略的好坏标准。由于我们不可能知道理论的最大奖励,这里我们定义regret作为策略的评价标准,regret即为我们可以达到的最理想的总奖励和实际得到的总奖励的差。

 

 

 

 

 

 

 

1 ExploitExplore 随机探索策略:

         这个问题如很多生活中的问题一样,很容易想到这样一个问题。面对有限次的游戏次数,我们每次选择是进行探索(explore),还是进行开发(exploit)。保守的来看,我们可以选择目前来看可能获得奖励最多的一台机器进行游戏(exploit),但另一方面来看我们可能错过了其他有潜力的机器,所以我们也可以选择进行探索(explore),进而由新的反馈发现可能的更好的机器。

就像生活中我们无法确定我们做的每一个决定一定是最优的,我们可以选择目前短期看起来是最好的,但这就有可能错过其他可能更好的选择,所以有时我们也可能选择去尝试那些暂时看起来不是最优的选择,但可能将来会获得更多的收益。哈人生选择也是很有策略的嘛,学习学习算法对人生还是很有帮助哈哈。

 

         考虑到这个问题,有这样一些选择。

         最朴素的想法:random那我就随机吧,不考虑任何策略,每次随便选一台进行游戏,

可以想象这个策略肯定不怎么样,不过可以作为其他更优策略的一种参考。

 

         另外一个也很朴素的想法:naïve简单观察,很容易想到的一个思路,既然有很多台机器,我可以选择在每个机器上进行10次游戏,然后通过这10次来进行分析,选出最好的一台机器,这也是很多人的选择。

 

         结合上面两种想法可以得到这样一种策略:ε-Greedy

它以ε的概率去explore1-ε的概率来exploit。即以ε的概率random选择一个机器进行游戏来进行探索,1-ε的概率来基于之前的游戏次数来选择一个最优的机器进行游戏。这样就兼顾了exploreexploit。具体的问题便落到了ε系数的选择上,针对具体的情况和具体的要求而有所不同。

 

 

 

2置信界策略Upper Confidence Bound(UCB)

顾名思义,该策略以奖励均值的置信上界来表示它的估值

Xi = Ui + sqrt2*log t / ni

式中Ui为每个机器的奖励均值,t为游戏次数,ni为当前机器累计被选择的次数。

每次游戏之后都会更新相应的值。

同时在前k次选择中,每个机器各选择一次。

 

在这个策略中首先可以看出当不断尝试后随着ni的越来越大,XiUi越来越接近,即次数越多置信上界与预估值差越来越小。

同时这个策略的一个好处是,当t较大时,对选择次数比较少的机器ni较小,而导致Xi较大,从而增加被选到的可能性,而选择后,如果奖励较少,Xi也会相应减少。即兼顾了exploreexploit,不至于停留在函数的一个小的极值点上,想起类似思想在最近ai课上的诸多算法中都有体现,以后有空再一起总结。

 

 

 

 

3 随机抽样策略Thompson Sampling(TS)

该算法选择可能最大化回报期望的行动。

即由贝叶斯观点,认为先验参数p服从一个beta分布,通过对后验的观测,不断修正,explore时对该beta分布随机抽样。

而对应上面的UCB策略,UCB是对后验进行估值,使后验误差越来越小。

即对给定的估计分布,TS对分布抽样,UCB取最大值。

 

 

上面是对几个策略的大概了解,具体的进一步理解和更多的策略再更新。

 

0 0