agent观察(observation即为state)environment
agent对做一些动作(action),影响environment
因为有一些影响,environment给agent一些reward,告诉他是好的影响还是坏的影响
agent要学习,如何采取动作才能让期望的reward最大
有时候reward很稀疏,大部分为0(什么都没发生),只有少数有数值,这是一个困难。
监督:跟着老师学
强化学习:从经验学
通常,环境会有一些随机性
一系列状态和采取的动作,叫一个episode。
reward有延迟。有些动作没有reward,但是会帮助未来得到reward。短期牺牲换来更好的结果。
agent的行为会影响以后看到的东西。所以agent要学会探索没有做过的行为。
value比较老,policy比较新。
policy,学习一个做事情的actor
value,学习一个不做事情,只评价的critic
现在A3C,结合actor和critic
model-based预测未来发现什么事情,一般在棋类游戏中用到。
actor就是一个function,输入observation,输出action。
deep learning
神经网络作为一个actor,就是deep reinforcement learning
给神经网络输入一个向量或者矩阵,输出各个动作的分数(概率),向量的维度是动作的个数。可以选择最大概率的,也可以根据概率选择(概率大的被选择的概率越大,但不一定被选到)。
传统是state和action的表格,穷举,但是数量太大。所以用神经网络,可以一般化。
对于监督的学习,就是用预测和目标比较,有一个loss function,调整网络的参数,使得loss越小越好。
对于一个actor,网络的参数,actor是
,让
去玩游戏
从观察s1开始,决定动作a1,得到reward r1……
总reward为 t=1...T时刻,rt的求和,要最大化
同一个,每次得到的
可能会不同,因为actor和游戏可能存在随机性,所以
是一个随机变量
我们要最大化的期望值,越大越好,衡量actor
的好坏
τ某一种游戏过程,有很多情况。选择一个actor后,有一些τ可能会出现,有一些τ不太容易出现。P(τ|),在某个参数
下actor的,出现τ的概率。
用玩n次游戏。得到
求平均。
选一个最好的function
梯度下降。
R(τ)不需要做偏微分,所以reward不可微分也可以。因为reward是环境给的,不需要怎么得到。
第1项和第3项与微分无关,可以忽略掉。
注意:要每个动作乘R(τ),不可每个动作乘r,要不然只有reward不为0的动作会被改变概率。但并不代表其他动作没有长久的意义。
而且log项的意义是,不会偏好出现几率较大的action
如果R(τ)永远都是正的。理想情况,不会有问题。reward比较小的,即使概率大,但训练后概率会变小。
实际情况,是sampling,没sample到的,概率会变小。所以减掉一个bias(自己设置)。没超过bias的,action概率就减小,超过bias的,概率就增加。
critic:学习一个function,看到一个observation/state,评价一下它有多好。