2.评判元件:根据固定的性能标准告诉学习元件Agent的运转情况。评判元件是必要的,原因是感知信息自身无法指出Agent的成功程度。性能标准是固定的。概念上说,应该把性能标准置于Agent之外加以考虑,理由是Agent不应该修改性能标准来适应他自己的行为。 3.问题产生器:负责可以得到新的和有信息的经验的行动建议。如果性能元件自行其是,他会一直根据已知的知识采取最佳行动。但是,如果Agent希望进行少量探索,做一些短期内可能次优的行动,那么他也许会发现对长期而言更好的行动。问题发生器的任务就是建议探索性行动。它的目标是发现一种更好的物体运动的理论并改进自己的头脑。 到现在为止我们已经简单了解了如何搭建一个“学习的基于效用的Agent”。此时是不是非常希望从概念的层次实操一把?由于笔者正在学习AI的入门阶段,还没有真正了解到每个具体概念的应用方法,因此我也只能从最表面的层次演练一下。对于没有描述清楚的内容,笔者会在今后的学习中逐步完善并分享。同时,如果文章中存在错误,也希望大牛们多多指出。 二、一个简单的产品定义示例 下面将要分享的简单事例是《自动斗地主Agent》,一个YY的成果,自己玩耍而已大家不要太过认真。 我的想法是,设计一款能够自主学习优化并且帮我最大化获胜的某个移动端斗地主App游戏的智能自动化游戏Agent。 第一步:首先定义一下游戏的环境:
第二步:对于基于效用的Agent,我们做如下定义: 1.模型信息:关于独立于Agent的世界如何变化的规则信息与Agent自身的行动会影响世界的规则信息,此处会将游戏中对于斗地主的全部规则录入,诸如:发牌规则、叫地主规则、出牌规则、加分规则、获胜规则等等。并且会录入一般化的出牌策略,诸如:压制策略、辅助同伙策略等等。 2.效用判断的规则信息:这里根据环境中已经出过的牌,每个选手的出牌历史、角色以及猜测可能剩余的牌等信息,判断出最能符合最大化收益的出牌行为。 3.传感器就是获取环境中当前的游戏状态信息,如:谁出了什么牌等; 4.执行器就是能够模拟手机点击来执行叫地主、出牌等操作; 第三步:对于学习的Agent,我们做如下定义: 1.性能标准:根据初始时手中的牌、过程中的得分情况与最终完成后其他选手中剩余牌的情况给出一个对于一轮玩牌结果的奖励或惩罚的分数。 2.学习组件:会不断对更为一般化的开局与出牌策略、更为一般化的农民合作策略、针对识别某个人或某种类型的人的开局与出牌策略、如何试探其他玩家的出牌策略等策略提出学习目标,并根据结果修正Agent中的效用判断。 好了,其实我也只能定义到这里了,后面我还会根据学习成果来不断补充这些信息。由于此处内容纯属我个人的理解,可能存在错误的认识,希望大家指正。 (责任编辑:admin) |