本文是一篇软件工程论文,软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。(以上内容来自百度百科)今天为大家推荐一篇软件工程论文,供大家参考。
第一章 引言
人工智能(Artificial Intelligence)是研究如何使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科。本文从人工智能的一个重要领域强化学习出发,研究学习过程中面临的探索和利用的两难问题,以多臂赌博机为切入点,力求发现多臂赌博机算法存在的一些局限性,并找到相对应的解决方法。
1.1 研究背景及意义
强化学习(Reinforcement Learning, RL)是智能体从环境状态到动作映射的学习,以使动作从环境中获得的累积奖赏值最大。具体来说,强化学习通过最大化数字信号来学习到一种映射关系,这种映射关系叫做策略,策略可以指导智能体在遇到某个问题下应该采取什么方法。强化学习的思想来自于人类对学习过程的长期观察。“强化学习”的术语首次由 Minsky 提出[1]。神经网络研究者和心理学家通过研究强化学习,首次提出了“奖赏”和“惩罚”两个术语[2]。强化学习将学习过程抽象为数学函数,通过数字化的奖赏和惩罚指导智能体进行动作选择。强化学习主要通过试错与环境交互获得策略的改进,交互过程中可以基于已有经验进行动作选择,即利用(exploitation);也可以尝试从未选择过的动作,即探索(exploration)。这就导致一个问题:哪一种试错策略可以产生最有效的学习。因此强化学习面临探索和利用的两难问题:长期来看,探索可能获得更高的累积奖赏,帮助智能体收敛到最优策略,但是需要更多的成本和代价;而利用总是最大化短期奖赏,能够稳定获得较高的累积奖赏,但可能收敛到次优解上。多臂赌博机(Multi-Armed Bandit, MAB)问题是强化学习中研究探索与利用平衡的经典问题,该问题最早由 Robbins 提出[3]。一个 MAB 问题中包括K 个臂,玩家每次只能选择其中一个臂,并获得相应的奖赏,目标是最大化奖赏的期望值。其中,玩家选择某个臂之后只能知道该臂的奖赏,且各个臂的奖赏是相互独立的,并服从某种未知的分布,下文把各个臂统称为动作。为了达到目标,玩家需要在获得奖赏的同时去学习该奖赏的分布。
..........
1.2 研究现状
最简单的动作选择方法是一直选择估计值最高的动作,即贪心动作,这种方法称为贪心(greedy)方法。Greedy 方法利用当前知识最大化立即奖赏,没有探索的过程。目前已有很多策略来平衡 MAB 问题中探索与利用的难题。Watkins 首次引入 ε-贪心(ε-greedy)算法[10],ε-greedy 以一个很小的概率 ε 进行探索,以1- 的概率利用。但是ε-greedy 将在所有动作中均等选择进行探索,没有利用选择动作之后获得的信息,比如各个动作的平均奖赏和选择次数。置信上界(Upper-Confidence-Bound, UCB)动作选择方法[17]则根据各个动作已知的平均奖赏和选择次数直接计算出要选择的动作,不利用随机性来选择动作。使用UCB 时必须在初期轮流选择所有动作各一次,那么当实验次数小于等于动作的数量时,比如大规模环境,难以使用 UCB 方法,因此 UCB 方法泛化能力较弱。Yahoo!的科学家在 UCB 算法的基础上引入了上下文信息,提出了 LinUCB 算法[18],并应用于Yahoo!的新闻推荐中.LinUCB 算法假设一个玩家选择一个动作之后,其奖赏和上下文信息成线性关系。于是学习过程就变成:用玩家和动作的上下文信息预估奖赏及其置信区间,选择置信区间上界最大的动作,观察奖赏后更新线性关系的参数,以此达到最大化奖赏期望值的目的。
.........
第二章 基础理论概述
本章主要对相关技术理论进行概述,包括强化学习问题,经典多臂赌博机问题,大规模多臂赌博机问题和上下文多臂赌博机问题。
2.1 强化学习
强化学习是指对状态到动作映射的一种学习,其目标是通过最大化累计奖赏来寻找最优策略。通过强化学习可以从不断的交互中学习到目标的整体框架。其中,决策器称为 agent,agent 以外的其它部分均称为环境。环境和 agent 的交互是在不断地进行的:Agent 选择并请求执行动作,环境根据选择的动作做出响应,使得环境自身得到一定改变,并且反馈给 agent 改变后的环境状态和一定的奖赏值。Agent 根据新的环境状态和奖赏值再次选择一个新的动作,并再将新的动作传递给环境。通过上述过程的不断循环,agent 需要学习如何优化当前策略,使得根据该策略得到环境反馈后,获得的奖赏值之和最大。在强化学习的过程中,优化策略是十分重要的一个步骤。区分强化学习与其他类型学习的最重要的特征是它使用评价(evaluate)动作的训练信息来评价动作,而不是通过给定正确动作来进行指导(instruct),这是创造积极搜索的需要。强化学习评价所采取的动作有多好,而不是指出它是否可能是最好或最坏的动作。监督学习则是从有标签的训练样例集合中进行学习,由训练样例集合指导出正确动作,这些训练样例集是由富有知识的外部监督者提供的。监督学习采用的是指导反馈,指导反馈是监督学习的基础。从反馈的形式来看,评价反馈和指导反馈有很大差别:评价反馈完全取决于所采取的动作,而指导反馈独立于所采取的动作。监督学习是机器学习中广泛使用的一种方法,但该方法并不适合在交互式学习中使用。强化学习也不同于无监督学习。无监督学习没有任何训练样本,目的是从无标签的数据中直接找到隐藏的结构。部分研究者把强化学习当作无监督学习的一种,因为强化学习和无监督学习一样,不需要依靠正确行为的样例来进行学习。然而强化学习是通过最大化奖赏信号来进行学习的,不同于无监督学习的学习方法。所以一般认为强化学习是不同于监督学习和非监督学习的第三种机器学习方法。
........
2.2 经典多臂赌博机
权衡探索和利用是强化学习值得研究的重要课题之一。利用当前最优动作可以使得 agent 能够又好又快的完成任务,但由于学习不够充分,有时会使得 agent 陷入局部最优。当 agent 陷入局部最优时,它会误认为当前策略为最优策略,因此 agent 很难脱离当前策略,从而很难对当前较差的策略进行更新。通过探索,可以使得 agent在寻找最优策略的同时不易陷入局部最优,能够发现比当前策略更好的策略。在某个特定情况下,选择探索还是利用取决于估计精确值、不确定性、剩余操作数等许多具体的因素。有许多数学方法可以利用当前的信息准确地计算出探索和利用之间的平衡关系,然而这些方法一般对先验知识和平稳性有着较强的假设,在强化学习中很难将这些方法得到具体的应用。在强化学习问题中,一般不会用较为复杂的方式来专门平衡探索和利用的问题,只需要保证最终能够使得环境平衡就可以了,从而使得在无需大量的先验知识和计算的情况下,依然能够通用地保证算法结果的最优性。对于离散动作空间中的探索方法主要有 ε-greedy 算法,softmax 算法和 UCB1 算法。
.......
第三章 自适应的多臂赌博机算法......13
3.1 算法描述.............13
3.2 算法实现.............13
3.3 regret 分析...........16
3.4 实验结果分析.....19
3.4.1 随机数据集..........20
3.4.2 内容分发网络......24
3.4.3 推荐系统..............26
3.5 本章小结.............27
第四章 大规模多臂赌博机算法..........28
4.1 算法描述.............28
4.2 算法实现.............28
4.2.1 同步更新..............28
4.2.2 异步更新..............30
4.3 收敛性分析.........31
4.4 实验结果分析.....31
4.5. 本章小结............34
第五章 大规模上下文多臂赌博机算法.........35
5.1. 算法描述............35
5.2. 算法实现............35
5.3. 实验结果分析....40
5.4. 本章小结............43
第五章 大规模上下文多臂赌博机算法
本章提出了一种大规模上下文多臂赌博机算法,依次从算法描述、算法实现和实际应用三个方面进行具体阐述,最后,对本章内容做一个小结。
5.1. 算法描述
大部分大规模环境中将包含大量丰富的上下文信息,依旧以大规模推荐系统为例,其上下文信息可以包含用户年龄、性别、地域等信息。如何利用这些上下文信息进而获得很高的奖赏是个值得研究的课题[42-44]。本章在大规模多臂赌博机算法的基础上结合上下文信息。当上下文信息可用时,在上下文信息的帮助下,大规模上下文多臂赌博机算法(Context-awareCNAME)可以获得更高的奖赏,记为 Con-CNAME 算法。Con-CNAME 算法同时利用了反馈信息和上下文信息。上下文信息和不断的探索都可以解决大规模推荐系统的冷启动问题。冷启动问题是指,在最初阶段系统中没有关于商品和用户的可用信息,所有商品对于用户来说都是新商品。不断地探索是学习用户兴趣的最简单实用的方法,即通过尝试新的商品来收集用户的反馈信息,学习到用户对该商品的兴趣。利用上下文信息可以从数据中分析出用户的一些基本信息和历史兴趣,据此进行商品推荐。除了研究如何高效利用上下文信息,本章提出一种新的动作估计方法。传统的动作估计方法是通过计算选择动作之后实际获得的平均奖赏,来估计动作的真实值。本章为每个动作分配一个选择概率,根据实际获得的奖赏来对各个动作的选择概率进行更新。具体地,当某个动作获得的是一个积极的奖赏(比如 1),就提高该动作的选择概率,其它动作的选择概率则减小。反之,当某个动作获得的是一个消极的奖赏(比如 0),则不更新各个动作的选择概率。将动作选择概率和上下文先验概率结合起来,引入权重 β 来控制动作选择概率和上下文先验概率的比重。
.......
总结
本文以多臂赌博机算法为基本框架,针对当前多臂赌博机模型的局限性以及部分算法未能充分利用反馈信息,泛化能力弱等问题,从多臂赌博机模型和算法两个方向开展相关研究,提出了改进的多臂赌博机模型和三类多臂赌博机算法。具体研究工作如下所示:
(1)针对传统的经典多臂赌博机算法未能充分利用反馈信息,忽略了反馈信息内部的联合关系以及泛化能力弱等问题,提出一种自适应的多臂赌博机算法。该算法基于当前估计值最小的动作被选择的次数,以此调节探索概率的大小。探索概率的变化宏观调控着探索和利用的程度,利用过程中选择当前估计值最大的动作,探索过程中补偿当前最少被选择的动作。文中对算法的 regret 上界做出了理论分析。为了验证该算法的实验效果,通过实验给出了该算法关键参数 w 的参考取值范围,并将该算法应用到内容分发网络和推荐系统,与其他经典多臂赌博机算法:ε-greedy,softmax,UCB1 和 LinUCB 等进行对比。通过实验结果可知:CNAME 算法最终获得的奖赏高于其他经典多臂赌博机算法,泛化能力强,可广泛推广到多个应用场景。
(2)针对大规模环境中动作数量巨大且不断增加,存在着环境先验信息不可知的情况,提出大规模多臂赌博机模型,在此基础上提出同步和异步两种大规模多臂赌博机算法。大规模多臂赌博机的约束条件是动作数量远大于可操作次数,符合大规模环境的实际需求。Syn-CNAME 算法采用同步方式更新,探索过程中采用随机探索。不同环境下,探索策略的好坏是相对的。补偿最少被选择的动作在经典多臂赌博机问题中有助于遍历各个动作,提高探索效率。然而在大规模环境下,遍历所有动作是不可能的,采用随机探索在一定程度上减少了探索代价。Asy-CNAME 算法采用异步方式进行更新,提高了算法效率。同时,异步更新弱化了用户近期行为对下一轮动作选择的影响,从长远来看,有助于更多地学习用户兴趣。理论证明 Syn-CNAME 算法和Asy-CNAME 算法可收敛到最优动作。在 Yahoo! R6B 数据集上将这两种算法与经典的多臂赌博机算法:ε-greedy,softmax,EXP3 和 UCB1 等进行比较。
..........
参考文献(略)