ASKCOS
AI4Sicence研究员,如有合作请通过站内信。
展开
-
强化学习&多智能体9.4 | MARL中的AC方法(ongoing)
原创 2021-06-05 09:56:24 · 513 阅读 · 0 评论 -
强化学习&多智能体9.3 | 训练方式
智能体独自训练,有独自的策略多个智能体共同训练,共享策略和reward,这种训练方式只在每个智能体都知道其它智能体的环境下有效,如果环境是部分可见的或者智能体智能观测到自己的环境则不适用...原创 2021-06-05 09:49:49 · 420 阅读 · 0 评论 -
强化学习&多智能体9.2 | 多智能体马尔科夫过程
假设有一个无人机取货的活动,在单个无人机的状态下动作为左、右、上、下、抓,抓到货物为reward为50,否则为-1。在有两个无人机协作的情况下, 每个state两个无人机会分别选取不同的动作马尔科夫过程如下所示,下标数字代表第几个agent...原创 2021-06-05 01:09:37 · 804 阅读 · 0 评论 -
强化学习&多智能体9.1 | 介绍
智能体强化学习可应用于生活的很多方面,自动驾驶,股票交易,足球游戏等,因为需要考虑多个智能体的状态,多智能体强化学习会复杂很多。在多智能体的场景中有许多益处,智能体直接能交换经验使互相更加聪明当单个智能体能任务失败时,另一个智能体能接替当前任务多智能场景下扩展性较好,加入新的智能体较容易...原创 2021-06-05 00:19:51 · 320 阅读 · 0 评论 -
强化学习&Actor-Critic8.2 | on-policy与off-policy
Q-learning每次只需要执行一步动作得到(s,a,r,s’)就可以更新一次;由于a’永远是最优的那个action,因此估计的策略应该也是最优的,而生成样本时用的策略(在状态s选择的a)则不一定是最优的(可能是随机选择),因此是off-policy。基于experience replay的方法基本上都是off-policy的。sarsa必须执行两次动作得到(s,a,r,s’,a’)才可以更新一次;而且a’是在特定策略π的指导下执行的动作,因此估计出来的Q(s,a)是在该策略π之下的Q-value,样.原创 2021-03-20 21:14:56 · 874 阅读 · 0 评论 -
强化学习&Actor-Critic8.1 | Actor-Critic方法
AC方法是基于值与基于策略方法的结合,之前我们使用baseline来减少基于策略的智能体的variance,我们也可以使用值函数来作为baseline,训练一个神经网络来拟合值函数,然后将它作为baseline来减少基于策略的variance...原创 2021-03-20 14:47:45 · 175 阅读 · 0 评论 -
强化学习&基于策略7.8 | surrogate function和PPO算法
我们使用加入 Importance Sampling的方式来计算梯度假设新的策略和老的策略相似时候,所有的图中项接近于1,可以将它们省略surrogate function,即代理函数或者替代函数。一般是指当目标函数非凸、不连续时,数学性质不好,优化起来比较复杂,这时候需要使用其他的性能较好的函数进行替换。我们用新的surrogate function来计算梯度我们用旧的trajectories来更新我们的策略,但是新的策略很可能会与老的很不一样,导致之前假设会不合理当policy变化很多原创 2021-06-06 13:13:59 · 707 阅读 · 0 评论 -
强化学习&基于策略7.7 | Importance Sampling
在之前的基于策略的学习中,更新神经网络参数的trajectories是更新后就直接丢掉的,用新的trajectories来更新新的网络参数。实际上我们可以将所有trajectories回收用来更新后续的参数我们可以采用Importance Sampling的方式来计算期望回报提高计算效率,f是关于reward函数但是re-weight factor会很容易变成0或者无穷大,这在PPO算法中得以解决...原创 2021-06-06 13:14:22 · 192 阅读 · 0 评论 -
强化学习&基于策略7.6 | Credit Assignment信用分配
因为在马尔科夫过程中,在t时间的动作只能影响未来的reward,所以t时间之前的reward不应该对梯度有作用。原创 2021-06-05 22:47:03 · 1050 阅读 · 1 评论 -
强化学习&基于策略7.5 | 如何解决梯度噪声
通过收集更多的trajectories来更新梯度对reward进行标准化原创 2021-06-05 22:29:21 · 236 阅读 · 0 评论 -
强化学习&基于策略7.4 | Trajectory轨迹
Trajectory是一段状态动作序列,没有对长度的限制,R是一段Trajectory的奖励之合我们的的目标是找到参数最大化期望回报,用的是每个概率下的Trajectory乘以它的reward那么如何用收集到m个trajectory来更新参数呢...原创 2021-03-20 13:21:44 · 2932 阅读 · 0 评论 -
强化学习&基于策略7.3 | 策略梯度介绍
策略梯度法更新参数的方法为,收集一轮游戏,如果游戏胜利的话,会改善参数增加在该状态中采取某个动作的概率,如果游戏失败的话,会改善参数减少在该状态中采取某个动作的概率在这个最后胜利episode中,增加了在状态1中采取动作左的概率在这个最后失败episode中,减少了在状态1中采取动作上的概率这个过程和监督学习十分相似,监督学习是将下载的(图片,标签)一张张训练,而强化学习是收集(状态,动作)作为训练集...原创 2021-03-20 12:56:16 · 126 阅读 · 0 评论 -
强化学习&基于策略7.2 | 基于策略的优点
基于策略学习的方法有3个优点1.简单不需要值函数,直接估计最优策略,而且不用像基于值得方法储存一堆额外的数据,因为很大一部分状态空间的值是相近的。2.能够真正地学习随即策略基于值的方法是通过epsilon-greedy方式来实现随机性的,而且无法很好地应用于连续动作空间3.Aliased 状态如果采用基于值的方法,猴子不能区分他在哪个格子中(因为格子所有的特征都一样),所以得到的值是一样的,那么所采取的动作也会是一样的,在下图橙色的格子中猴子可能会来回震荡而基于策略的方法能很快逃脱原创 2021-03-18 22:01:16 · 567 阅读 · 0 评论 -
强化学习&基于策略7.1 | 什么是基于策略的方法
在基于值的方法中,我们是取神经网络输出的最大值来选取动作。所以在基于值得方法中,我们在选取最优动作之前需要得到最优的动作值而基于策略的方法直接输出最优动作的概率原创 2021-03-18 20:34:35 · 383 阅读 · 0 评论 -
强化学习&基于值6.4 | Deep Q-Learning 算法伪代码
LEARN和SAMPLE流程并非相互依赖,可以完成多个取样步骤然后完成一个学习步骤或者具有不同随机批次的多个学习步骤。phi表示预处理和堆叠图像操作;原创 2021-03-17 23:40:18 · 502 阅读 · 0 评论 -
强化学习&基于值6.3 | 固定目标值 Fixed Q-Targets
经验回放可以帮我们解决一种类型的联系,即元组之间的连续经验。Q-Learning还会受到另一种联系的影响。R+gamma乘以下个状态的最大潜在值称为TD目标,我们目标是缩小和当前预测值Q值之间的差异。这里的TD目标应该取代的是未知的真值函数qπ(S,A),它并不依赖于我们的函数逼近器或者其它参数,但是TD目标依赖这些参数w,意味着用真值函数qπ(S,A)替换在数学上是不成立的。当我们使用函数逼近时会显著影响学习效果,因为所有Q值都通过函数参数固有地联系在一起。所以我们需要更改参数之间的联系将用于生原创 2021-03-17 23:30:47 · 756 阅读 · 0 评论 -
强化学习&基于值6.2 | replay buffer经验回放
我们与环境进行互动并且在每个时间步,获得一个动作,状态,奖励,下个状态的元组,学完之后就丢弃,在下个时间步移到下个元组我们将每个经验元组储存在这个缓冲区中,然后从中抽取一小批元组进行学习,因此我们能够从单个元组中多次学习规律。回顾罕见的状态并充分地利用经验;另一个改善是,过往的经验中每个动作A都以某种方式影响下个状态S,意味着一系列经验元组可能关系非常紧密,如果按照顺序学习会面临受到这种联系影响的风险,而借助replay buffer我们可以随机地从缓冲区取样,不一定必须是储存元组的同一顺序,这有助于打原创 2021-03-17 22:19:15 · 1928 阅读 · 0 评论 -
强化学习&基于值6.1 | 基础Deep Q-Networks
DQN的运行过程为:输入一张图片,NN为生成一个动作值向量,最大值表示采取的动作。我们先将210160的图片处理为8484的灰度图,然后将连续的4帧图片叠加在一起作为input神经网络对每一个可能的动作输出一个Q值,然后采取最大的值对应的动作。三层卷积层还将从这些帧中提取时间属性,然后是一层采用Relu激活函数的完全连接隐藏层,以及一层完全连接的线性输出层用于生成动作值向量。每个游戏都需要从头开始学习使用重新初始化的网络。训练需要大量的数据,但这也不能保证收敛于最优值函数,实际上网络权重会因原创 2021-03-17 21:10:42 · 131 阅读 · 0 评论 -
强化学习&连续空间5.3 | 函数逼近
离散化的好处是基本不用改变就能使用现有的强化学习算法,但当底层空间很复杂时,所需的离散状态数量可能会很大,因此就失去了离散化优势。函数逼近的一般方法是引入一个标识函数形状的参数向量W,通过调整W来逼近结果将状态的每个特征和相应的权重相乘然后求和,称之为线性函数逼近可以通过梯度下降的方式来更新w为了解决不基于模型的控制问题,即在未知的环境中采取动作,我们需要逼近动作值函数如果底层的值函数是非线性性质,可以使用核函数将输入状态转化为不同的空间对于任何给定状态我们可以将状态表示简化为这些径向原创 2021-03-10 22:00:54 · 294 阅读 · 0 评论 -
强化学习&连续空间5.2 | 离散化
如果是网格空间的话,我们可以将它通过切分离散化另一种方式是Tile Coding,将不同的tile叠加在状态上,并给他们分配一个位,如果智能体正在某个位置上,可以将新的离散化状态表示为位向量,激活的位置为1,其它位置为0adaptive tile coding不需要我们手动指定离散化方式coarse coding使用一组更稀疏的特征来表示状态空间,构建一个位向量,这些圆圈用1表示,剩余圆圈用0表示,圆圈越小空间的泛化程度就越低,形成不太平缓的值函数...原创 2021-03-10 20:47:52 · 813 阅读 · 0 评论 -
深度强化学习&连续空间5.1 | 离散空间与连续空间
离散空间表示有限的动作和状态我们可以将任何状态和动作函数表示为字典或者查询表,字典中key为表示的状态,value为值;查询表每行对应为状态,每列对应为动作连续空间是一定范围内的值,通常是实数在值迭代中for循环遍历每个状态并更新相应的估值,这是在连续的状态空间中不可能的,loop将不会停止;在Q-learning中,我们对状态S‘的所有潜在动作执行max运算,如果动作是连续的,这将不可执行很显然我们需要改变表示法或者算法来处理连续空间,可以使用离散化和函数逼近...原创 2021-03-08 21:59:41 · 3620 阅读 · 3 评论 -
强化学习&基础总结5.4 | 强化学习的框架与两类方法
深度强化学习与基础强化学习框架一样,如下流程得到最好的策略强化学习学习分为两大类,Model-Based的方法例如需要已知转换和奖励模型的策略迭代和值迭代,他们本质上通过动态规划并使用该模型以迭代的方式计算期望的值函数和最优策略。Model-Free的方法例如蒙特卡洛方法和时间差分学习不需要明确的模型,他们执行探索性学习对时间进行抽样并直接使用经验估计值函数...原创 2021-03-08 21:17:06 · 344 阅读 · 0 评论 -
强化学习&时间差分4.2 | Sarsa系列算法
根据epsilon 贪婪策略采取新的动作状态对的动作值,来更新之前的动作状态对的动作值,并根据最新的动作估值更新epsilon贪婪策略,这是Sarsa(0)。而Sarsamax(aka Q-Learning)在采取下个动作前更新策略, 直接在每个时间步估算最优值函数Expected Sarsa考虑了选取每个可能动作的概率...原创 2021-03-06 17:27:51 · 143 阅读 · 0 评论 -
强化学习&时间差分4.1 | TD与MC方法的不同
蒙特卡洛学习方法需要结束一个片段以此计算回报,然后用回报来计算动作值,举个例子,在自动驾驶中,MC方法需要每次都撞车才能从中学习。现实游戏中的实际情况更多是在每一步就能估算获胜的概率,而不是等一个阶段结束了,再看看自己是否获胜。而TD方法在每个时间步都能修改预测,而不是等互动结束后才更新值,这样的话你能够使用TD学习解决continuous任务和episode任务。MC方法中在状态1下估计的retuun是6,但是收集完episode后return是8,MC方法会将值更新到6到8之间的某个TD方法是只用原创 2021-03-06 16:43:28 · 474 阅读 · 0 评论 -
强化学习&蒙特卡洛3.6 | 通过episode更新Q表
经过每一个episode,我们可以对Q表中的动作状态值进行更新,采取的公式如下假设当前有4个相同状态和动作的episode,计算Q值得过程如下完善我们公式后,发现更新的差值就是过去得到回报与当前回报相减,然后再乘以总体episode数量的倒数但是随着episode的增多,导致分母N变得很大,变化会变得越来越小,导致变化可以忽略不计我们将除以平均值得做法替换为步长α,这样可以确保稍后获得的回报比之前更收到重视,因为后面的时间步对估算动作值更重要α在0到1之间的值,0代表与之前的Q值完全一样原创 2021-03-06 14:44:19 · 644 阅读 · 0 评论 -
强化学习&蒙特卡洛3.5 | 贪心策略
为了的得到更好的策略,使用Q表中各个状态下最大的动作状态值采取的动作设置为新的策略,这就是采用了贪心方法,通过不断的迭代得到最好的策略。但是单纯采取贪心方法,会导致在某些状态下有些动作不会采取,我们需要设置一个epsilon值来保证有一定几率采取随机策略,使得各种状态都能被访问到...原创 2021-03-06 13:59:06 · 676 阅读 · 0 评论 -
强化学习&蒙特卡洛3.4 | Every-visit 和 First-visit MC
对与一个较长的episode,如果出现了在同种状态下采取相同动作得到不同回报,有两种处理方式。第一种名称为Every-visit MC是计算这几个的平均值,第二种是First-visit MC只保留第一次的结果原创 2021-03-06 13:20:57 · 2033 阅读 · 1 评论 -
强化学习&蒙特卡洛3.3 | Q表
得到各种状态下采取各个动作的reward后可以建立通过动作状态函数建立Q表,Q表中的值意思是在当前状态下如果采取某个动作,然后一直按照当前策略执行到terminal状态的回报原创 2021-03-06 12:50:51 · 461 阅读 · 0 评论 -
强化学习&蒙特卡洛3.2 | 蒙特卡洛思想
智能体的目标是到达右下角获得奖励+10,我们采取随机动作策略来模拟游戏能获得多个Episodes,我们可以使用这些Episodes来改进策略通过比较不同episode的action的reward,可以发现,在当前状态下采取某些动作会更好。如下图Episode 1的a0优于Episode 2的a0,因为reward更大但是Episode数量太少起不来改善效果,原因是 1.智能体没在每个状态下尝试完所有动作 2.当前收集Episodes质量低,智能体采取的动作都很差...原创 2021-03-04 21:29:23 · 157 阅读 · 1 评论 -
强化学习&蒙特卡洛3.1 | 动作集合 Episode
将状态,动作,奖励直到状态结束的sequence命名为Episode, 智能体的任务就是去寻找能使累积期望奖励最大的策略原创 2021-03-04 21:06:47 · 343 阅读 · 2 评论 -
强化学习&动态规划2.4 | 值迭代 Value Iteration
在循环一次后,停止策略评估的步骤就是值迭代伪代码如下如果帮到你原创 2019-04-16 12:00:21 · 710 阅读 · 0 评论 -
强化学习&动态规划2.3 | 策略迭代 Policy Iteration
将迭代策略评估和策略优化结合起来,就得到了策略迭代算法算法的伪代码如下,从对等概率随机策略开始,对于每个状态选择动作的概率是一样的。然后进行迭代策略评估获得相应的值函数和策略完善获得更好或者对等的的策略,直至收敛。当然在策略评估这一过程中,我们可以不用θ作为我们的终止条件,而是设定迭代次数,这个算法称为截断策略迭代因为我们其实不用获得极其接近结果的值函数才获得最优策略,如果状态动作对之间的相对值正确,改策略实际上是相同的最优策略...原创 2020-08-07 11:05:46 · 608 阅读 · 1 评论 -
强化学习&动态规划2.2 | 策略完善 Policy Improvement
接下来问题就是如何找到更好的策略了,找到更好的策略以后,然后带入该策略,再次进行迭代策略评估,这个过程不断循环得到最优策略。具体过程如下策略评估获得了一个策略并产生值函数,然后我们使用该值函数和策略完善的方法,获得一个潜在完善的新策略,然后带入新策略再次进行策略评估,然后进行策略完善,不断重复,直到收敛于最优策略。那么我们知道值函数以后如何求得更好地策略呢?第一步,将状态值函数转化为动作值函数第二步,选取最大动作值函数的动作算法伪代码如下图表示...原创 2020-08-07 11:05:30 · 478 阅读 · 0 评论 -
强化学习&动态规划2.1 | 策略评估 Policy Evaluation
假设智能体已经知道该环境的所有信息,因此智能体知道该环境如何决定下个状态,并知道该环境如何得到奖励。在这个图中,智能体已经知道了关于该环境的所有信息如图所示,目标是从左上角到达右下角。图中右边的等式表示为每个状态下采取不同动作的概率都为1/2, 通过贝尔曼方程得到了下面四个等式,因为S4是终点所以值为0. 联立方程组求得每个状态价值函数的值为0,2,2,0.但是通常状态空间要大很多,解方程...原创 2019-04-16 11:44:52 · 1403 阅读 · 1 评论 -
强化学习&基础1.9 | 动作价值函数
在价值函数的基础之上,动作价值函数是在状态S下选择动作a然后遵循这个策略的值,下图左边的定义是价值函数,右边是动作价值函数。在动作价值函数的基础上,原来每个格子的值需要考虑动作的行为(上下左右),这样格子的值被分为4块。假设我们从图中的左上角开始,黄线遵循的策略。我们采取向下的行动,得到reward-1,然后遵循策略到达终点,那么这个格子采取向下动作的动作价值函数为(-1)-1-1-1-...原创 2019-04-15 10:38:08 · 4372 阅读 · 0 评论 -
强化学习&基础1.8 | 贝尔曼方程
在上一次的状态价值函数图中,对于每一个方格我们不比从头开始计算每一个值,如下图如果我们想知道某一状态的值可以用接下来的一个状态的折扣值(图中为1)+ 立刻的回报。这个就是贝尔曼预期方程代表着我们可以将马尔科夫决策过程任何状态的值表示为,即时奖励和下个状态的折扣值。如果帮到你...原创 2019-04-14 11:29:27 · 1226 阅读 · 0 评论 -
强化学习&基础1.7 | 状态价值函数
先创建一个环境,其中左上角的智能体想到达右下角的目标点,每走一步reward为-1,碰到大山为-3,走到目标reward为5.假设我们采取了一个最糟糕的的策略,计算出发点到目标点的累计回报-1-1-1-3-1-1-3+5=-6,此时出发点的值为-6,接下来的数值以此类推。我们可以把每一个方格的值作为价值函数,定义是在每一个状态,它都生成当智能体从该状态开始,然后在所有时间步都遵循这个策略时所...原创 2019-04-14 11:10:56 · 3056 阅读 · 0 评论 -
强化学习&基础1.6 | 决定性策略和随机性策略
在决定性策咯中,从一组环境状态到一组潜在动作的映射(把映射这个数学概念想象成加工厂),输入的是状态而输出的是动作,如果agent想要遵循策略,只需要构建工厂或者指定映射。在随机性策略中,映射接收环境状态s和动作a,返回智能体在状态s下采取动作A的可能性。在上一次的吸尘器的马尔科夫图中可以表示为如果帮到你...原创 2019-04-14 10:46:43 · 715 阅读 · 0 评论 -
强化学习&基础1.5 | 马尔科夫决策过程
马尔科夫决策过程在离散马尔科夫的基础上,引入奖励和动作。马尔科夫性表示t+1的状态只与t时刻有关。在马尔科夫决策过程中,agent已知一系列状态,动作和折扣率,但是一步的环境动态特性和rewards是不知道的。次图描述了马尔科夫决策过程。图中唯一个自动充电吸尘器,他有2个状态high电量和low电量,有3个动作wait,search,recharge。蓝色的数字代表采取该行动的概率,黄色代表...原创 2019-04-14 10:24:55 · 235 阅读 · 0 评论 -
强化学习&基础1.4 | reward奖励
智能体的目标是最大化期望累计奖励我们把在时间t的回报定义为Gt,在t时间的时候智能体会选择动作At来使期望Gt最大化。通常智能体无法完全肯定地预测未来的奖励怎么样,他必须依赖于预测和估算我们可以给公式乘上折扣率,来表示对未来回报的关注度,当gama靠近0表示只关注与眼前的利益,当gamma靠近1表示对未来的回报和当前回报一样地注重。这在连续性任务中是十分重要滴,因为没有停止点,折扣率防止...原创 2019-04-14 08:25:16 · 7628 阅读 · 0 评论