【AI】【强化学习】强化学习算法总结、资料汇总、个人理解
前言:自己学习西湖大学赵老师的课、youtube系列的课程相关比较重要的内容,后续不断再进行完善。
YouTube Serrano.academy rlhf讲的很好 合集最后一个没看
强化学习第四章
police没一步需要无穷,值迭代只需要一步 收敛不一样
值迭代:原因在于值迭代在于贝尔曼最优方程的值,核心的目的在于优化得到矩阵方块中每个格子的值。只需要每步骤选择action的q值最大的策略,然后不断迭代,然后就能优化得到最后收敛的格子值。
策略迭代: 策略迭代之所以需要n步,就是因为策略迭代需要进行策略矩阵求解,如果不进行矩阵求解的话就要进行值迭代
第五章
蒙卡诺纳 mc basis 还是之前的policy evaluate policy improve 只不过q值不是模型计算出来的,而是取样取出来的
mc exploring starts 一条轨迹走的很远,从而一条轨迹能有很多的复用
mc greedy 采取策略的时候不用argmax 最优化的选择,而是放宽一点策略,允许一些随机游动,增加探索性
第六章
RM算法 :在不知道具体函数表达式的情况之下,在第k次的根的估值值wk计算之后,再进行一次有噪音的观测乘以系数加和,就得到了wk+1次根估计观测
Rm算法的收敛条件 1.梯度有限 2.系数值不要收敛到0太快,但是也也要收敛到0,比如1/k 3.高斯噪声满足期望为0,方差有限
随机梯度下降收敛性分析:随机梯度下降在初始值距离最优值很远的时候,表现像梯度下降。当距离最优值很近的时候,就会上下跳跃浮动,随机性很大
批量梯度下降,所有样本都用上了,随着n变大,所有样本平均值接近于真实梯度值。小批量梯度下降 用了几个,随机梯度下降只用了一个
第七章
第二小节
TD learning最简单的形式 PPT红色部分的表达式
vt+1(st) 每个下标不同的含义,vt+1的t+1代表是t+1时刻的估计值(也不能理解为时刻 可以理解为迭代次数),st中的t代表环境中的agent在t时候到达了某个状态st
TD error 就是当前第t次的估计值,与还是t次不过状态st要到下一个st+1状态后续TD target的差距,TD算法就是类似RM,不断优化迭代
TD算法本质是一个使用rm求解一个贝尔曼期望方程
TD与MC的区别,td算法是在线的 不需要一个episode结束,是持续改进的,需要给一个初始值的Initial guess,是低反差 因为随机变量少rt+1 st+1 at+1 但是有偏估计(对比mc算法,从头开始估计episode)
第三节
Sarsa算法 和TD算法类似,只不过从状态值变成了action值的估计
sarsa算法过程,policy evaluate 就是action值得估计,然后得到一步迭代之后,就里面policy improve ,使用部分greedy算法
第四节
expected sarsa是将q值变化的地方action值变为从具体单个样本迭代值,变为变量,从而可以再求期
第五节
n-step sarsa ,n=1变成,sarsa算法,n=无穷变成MC算法(需要无穷样本)
第六节
q learning 解决的是一个贝尔曼最优方程
off-policy 就是说behavior policy 和target policy不一样,我们可以从别人不一样的经验里面学东西,sarsa和mc算法是on policy,q learning是off policy的
q learning 有2个版本 on policy 策略更新policy improve采用greedy算法,便于探索性,off policy采用episode从πa生存,然后policy improve不采用greedy算法,直接取最优的情况
第七节
不同的td算法,本质就是td target的不同,从sarsa到n step 到expected sarsa 到q learning到mc 方法
第八章
第二节
2.1最后 dπ代表一个轨迹走了很远之后,出现在每一个状态的概率值。dπ=dπ*pπ,代表在轨迹走了很远很远趋于无穷之后,乘以pπ,状态转移矩阵,还是相同的概率值
2.2优化算法 采用类似RM迭代式算法来优化参数w相关的东西。方式采用随机梯度下降的算法,一个个采样st进行迭代式下降
2.3 说表格的表示方法是线性估计法的特例,其中推导过程中部分表达式看着看着就看不懂了,比如tabular是function approximation的一个特殊形式,最后推导过程中w(s),代表参数向量w中第s个参数,wt(st+1)代表wt第t次迭代向量参数,t+1时刻agent所在的s的状态
2.5 告诉我们实际上真正TD线性算法状态是估计是最小化投影后的贝尔曼方差
这章后面dqn算法,本质就拿神经网络拟合相应的参数,类似线性拟合法,具体细节需要看PPT
第九章
第九章和第八章类似,第八章是action和state可以从表格变成函数,第九章是策略也可以用函数表达
9.1 policy gradient的基本思想
使用j(θ)来定义最优策略,然后使用梯度上升最优化策略
9.2 讲的是怎么定义j(θ)
第一种方式 -所有状态的期望值
① d的分布和策略π无关,那么就记作d0,最终的值记作v-0
② d的分布与策略π有关,可以利用dπ=dπ*pπ,知道pπ可以知道平稳状态下的dπ情况
第二种方式- 一步reward的平均值
具体最终的值的递进关系如下:
rπ- (所有状态s的期望值) <- rπ(s) (在特定状态s的所有action的最终期望) <-r(s,a)(所有可能reward的期望) 【具体看PPT】
附录:在论文中经常看到lim1/n Rt+k 的加和,实际就是rπ-
上面两种方式,在discounted情况下实际是等价的,rπ-=+(1-y)vπ-
总结: rπ- =dπ(s)rπ(s)的加和= lim1/n Rt的加和
vπ- =dπ(s)vπ(s)的加和 =y^tRt+1 从0到无穷的期望加和
论文中经常读到的是后者
9.3 主要讲的是最优策略的梯度的表达式
这里定义了一个表达式,但是具体推导没给出来。通过这个公式我们可以不断进行梯度上升,
9.4 讲解到底怎么梯度上升
这节课表达式中的qt(st,at),可以使用MC估计的方法来估计,叫做REANFORCE方法
具体见PPT,其中迭代算法系数值,有一个平衡的机制,一部分是加强选择更大的q值,一部分是加强更强的探索性,刚好平衡了这两点
算法步骤
一开始π(θk),产生一些episode,然后qt使用MC算法进行近似迭代。然后进行policy更新,最后拿更新后的policy再进行迭代。注意的是这个是离线的算法,需要等都采样完之后才能更新。
10 actor-critics方法 主要思想就是第八章 value approximation方法引入到第九章 policy gradient方法里面
10.1最简单的AC算法 QAC算法
其中算法和第九章最后的算法步骤一模一样,θ的迭代算法就是指的actor,qt(s,a)其中qt就是指的是critic
其中qt值被用mc进行估计,就是第九章算法,叫做REANFORCE
而QAC是如下形式
其中critica实际就是算法步骤中sarsa+value function估计的方法(但是这里我还是没懂和之前的算法有什么本质的区别???) ,actor指的是policy update方法,这个算法是on policy的能改进原来的算法情况
为什么叫qac,q实际指的是q值
10.2 A2C主要目的是在求策略函数的时候,怎么加进去一个东西使其的方差最小。加进入这个b(s)就是vπ(s),经过一系列的简化步骤之后,我们发现使用迭代算法优化θt,我们会采用相对值而不是绝对值q值来优化θ,因为q值1w看着很大,但是周围2w,相对来讲也不是最优值了
算法过程:前提 将qt(st,at)-vt(st)简化成rt+1+yvt(st+1)-vt(st)这样后面万一用神经网络拟合时候少用一个网络
算法具体步骤
先算 td error
然后 critic (value update)采用的是
td算法,拿之前算的td error来带入
然后 再进行actor (policy update)
进行θ迭代,同样拿之前的td error带入进行迭代
(???但是我还是没有理解里面的本质含义)
10.3 off policy actor-critic
重要性采样:一个分布用来behavior一个用来改进策略,两个分布不同,所以直接采样肯定用a的分布来估计b肯定不准,所以要讲a的概率分布进行表达式进行转换,转成b的这样就不会有问题了
重要性 权重就是p0(xi)/p1(xi) ,但是这个里面需要知道我们想要求的a分布(对应p0),和b分布(对应p1),但是重要性采样的权重的表达式都知道p0(xi)/p1(xi)*xi,相当于直接求期望,为什么不这样呢,因为有的分布不好直接求期望,比如用神经网络拟合的分布
整体的算法步骤相比,critic和actor中多了一个转换的系数因子
10.4 deterministic policy
这样的策略 a=u(s,θ),不像之前的π一样都是大于0的 ,输出的直接是一个action,比如向上 向下什么的
deterministic policy。是off policy的,因为在推导中策略函数j(θ)的梯度,中a被u(s,θ)代替了,所以我们不需要像之前那样a,s,a,s这样交替更换下去,来判断a是是哪个策略来的,可以是任何策略 所以是off policy的
这个算法步骤和之前类似,最后有些不一样