强化学习(学习笔记1)
一、强化学习参照知乎上作者张斯俊的文章1、任务通过强化学习的方式使智能体能够独立自主完成某种任务的能力。智能体Agent“做决策”的主体。智能体在游戏世界相当于“玩家”。环境Environment智能体所面对的“外部世界”是那个接收动作、发生改变、并给出反馈的客观规则集合。环境相当于“游戏本身”。2、马尔可夫链上图中有三个重要元素SAR。Sstate状态是图中白色圈圈表示就是智能体观察到的当前环境部分或者全部特征。例如无人驾驶汽车通过摄像头等设备来了解路况这些被观察到的环境特征就是无人驾驶汽车的状况特征状态空间就是智能体能够观察到的特征数量。状态空间是指在该强化学习语境中智能体能够感知并用于决策的所有有效环境特征的集合是对智能体可观测状态维度的量化描述用于限定智能体决策的信息范围。为啥要强调智能体能够感知的有效环境特征一、提醒我们需要给智能体有用的特证。因为在现实生活中输入一些特征很昂贵比如摄像头、雷达等。而无用的特征例如游客唱歌等输入到自动驾驶系统中这无疑加重了学习的负担。所以我们需要非常慎重选择状态特征。二、提醒我们需要注意观察的角度。假设在做一个智能体如何打扑克。这个状态的很微妙每个人都只看到自己的牌所以观察到的状态都是不一样。但是我们是新手会重点注意到算法。Aaction动作是图中黑色圈圈表示就是智能体做的出的具体行为。例如无人驾驶汽车的刹车、转弯和加速等操作。动作空间就是智能体能够做的动作数量。Rreward奖励当我们处于某个状态时做完某个动作后环境就会给我们反馈告诉我们这个动作的效果如何这种效果的数值表达就是奖励。其实reward翻译为“反馈”更好一点因为反馈有正面的还有负面的。当奖励为正数时表示鼓励当前行为为负数时表示惩罚这种行为值的大小表示奖励和惩罚的力度不同。奖励在智能体学习过程起到重要作用奖励能够引导智能体学习做能获得最大奖励的动作。奖励设定是主观的我们可以为了智能体更好学习工作可以自己定。因此我们通过对智能体的奖励做一定的修改就可以加速智能体的学习。总结马尔可夫链:1、智能体在环境中观察到状态(S)2、状态(S)被输入到智能体智能体经过计算选择动作(A);3、动作(A)使智能体进入另外一个状态(S)并返回奖励(R)给智能体。4、智能体根据返回调整自己的策略。 重复以上步骤一步一步创造马尔科夫链。但是在强化学习中这里根本不叫链叫马尔可夫树。为啥是一条链呢由于我们现在看是从现在往后看是一条确定的路径。如果我们往前看就不是一条路径是充满各种的“不确定性”。举例来理解玩一个游戏是简单版的大富翁我们只考虑我们当前所处位置也就是状态。智能体移动的时候它可以选择投掷1-3个骰子根据骰子点数的总和向前移动。现在智能体从格子A掷骰子并移动到格子B。其实经历了两次不确定性。第一次是“选择”的过程。智能体主动选择骰子的个数。掷骰子的个数不同到达格子B的概率也不同。所以“选择”会影响到下一个状态。这种不同动作之间的选择我们称为智能体的策略。策略我们一般用Pi表示。我们的任务就是找到一个策略能够获得最多的奖励。第二次的不确定性是环境的随机性这是智能体无法控制的。在这个例子里就是骰子的随机性。注意并不是所有环境都有随机性有些环境是很确定的例如把以上所有骰子每一面都涂成1点但马尔科夫链允许我们有不确定性的存在。从以上例子知道不确定性来自两个方面1.智能体的行动选择策略。2.环境的不确定性。3、Q和V值从以上内容知道可以根据奖励来使智能体知道动作的好坏但是更多时候我们并不能单纯通过R来衡量一个动作的好坏。举例子假设10天之后进行期末考试我们今天有两个选择 1. 放弃吧我们玩游戏我们每天可以获得1心情值 2. 决心努力一搏我们开始学习吧每天我们-2心情值。从这10天看我们肯定是选择【1.玩游戏】。因为10天后我们虽然考试没过但至少收获10天的快乐。但事实上我们再看远一点 - 因为挂科接受老师怒吼攻击心情值马上减5 - 父母因为我考得好成绩给了更多的零用钱。心情值加200点。所以假设我们能预知未来我们一定会选择【2.去复习】因此我们必须用长远的眼光来看待问题。我们要把未来的奖励也计算到当前状态下再进行决策。但是在实际情况中比以上情况想的要复杂很多。未来是充满不确定性的不确定性既包含在我们的策略也包含在环境之中。也就是说即使我现在努力学习我也不能100%保证我我一定考得好成绩。即使有好成绩父母也不一定会给我更多零用钱。但即使挂科了老师也不一定大发雷霆。我们把当前状况再理一下 1. 10天后考试玩游戏1天心情1复习1天心情-2。10天后玩游戏心情10复习心情-20。 2. 不复习100%挂科被老师怒吼-5点心情 3. 复习10%挂科同样被老师怒吼-5点心情80%不挂科努力终于有回报10点心情10%不挂科且得到父母的零用钱 心情暴击200点。假设有100个你自己如果10天都在玩那么玩游戏心情就10100个我就是1000点心情 - 必定会挂科了-5100个分身就是-500点。所以最终500点心情那么就加500点心情。如果复习的话10个分身挂科这些分身复习了-20心情复习了还挂科-5心情一共-250心情值。 - 80个分身不挂科这些分身复习了-20心情但不挂科10最终还是只有-10点心情80个我最终-800。 - 还有10个分身不挂科而且获得父母的零用钱因为复习-20心情最终1800点。但是在实际情况中真实概率并不知道是多少在强化学习中为了获取概率我们将不断让智能体重复或者让多个智能体进行实验以获取数据。因此我们在做决策时需要把眼光放长远把未来价值一并考虑进来才能做选择。为了方便我们希望用一种方式来选择出价值最大的动作也就是说我们让复习和游戏都有一个标记这个标记描述了这个动作的价值 - 游戏 500 - 复习 750。当然我们也可以把这个标记标在状态上。为了方便沟通我们这样定义- 评估动作的价值我们称为Q值它代表了智能体选择这个动作后一直到最终状态奖励总和的期望- 评估状态的价值我们称为V值它代表了智能体在这个状态下一直到最终状态的奖励总和的期望。价值越高表示我从当前状态到最终状态能获得的平均奖励将会越高。因为智能体的目标数是获取尽可能多的奖励所以智能体在当前状态只需要选择价值高的动作就可以了。V值的定义假设现在需要求某状态S的V值那么我们可以这样1.我们从S点出发并影分身出若干个自己;2.每个分身按照当前的策略选择行为;3.每个分身一直走到最终状态并计算一路上获得的所有奖励总和;4.我们计算每个影分身获得的平均值,这个平均值就是我们要求的V值。现在我们假设策略 采用平均策略[A1:50%,A2:50%]根据用影分身(如果是学霸直接求期望)那么我们可以求得V值为15因此v值会根据不同的策略有所变化。Q值的定义Q值衡量的是动作节点的价值。现在我们需要计算某个状态S0下的一个动作A的Q值1. 我们就可以从A这个节点出发使用影分身之术多次模拟动作执行过程2. 每个影分身走到最终状态,并记录所获得的奖励3. 求取所有影分身获得奖励的平均值这个平均值就是我们需要求的Q值。注意与V值不同Q值和策略并没有直接相关而与环境的状态转移概率相关而环境的状态转移概率是不变的。状态转移概率是指在强化学习的马尔可夫决策过程语境中环境在智能体当前状态s执行动作a后转移到下一时刻状态s的固定概率它代表环境本身的客观运行规则不随智能体的策略改变而变化。