[转载]强化学习详解与代码实现

转自link
link

总结:强化学习的基本原理和其相应的方法,包括马尔可夫决策过程(MDP)(状态转移概率),贝尔曼方程(考虑现在和未来的reward联合)和Q learning(Q table 生成方法,巡遍当前状态所对应的动作的状态动作价值函数Q函数)

原理:

2.1 强化学习

定义:通过交互的目标导向学习方法,旨在找到连续时间序列的最优策略。
核心点:尝试
主要因素:智能体(Agent),环境(Environment),状态(State)、动作(Action)、奖励(Reward)、策略(Policy)。
第一步:智能体尝试执行了某个动作后,环境将会转换到一个新的状态,当然,对于这个新的状态,环境会给出奖励或者惩罚。

第二步:智能体根据新的状态和环境反馈的奖励或惩罚,执行新的动作,如此反复,直至到达目标。

第三步:智能体根据奖励最大值找到到达目标的最佳策略,然后根据这个策略到达目标。

要注意的是,智能体要尝试执行所有可能的动作,到达目标,最终会有所有可能动作对应所有可能状态的一张映射表(Q-table)。

这里借用知乎论坛关于强化学习各个因素关系的一幅图(https://www.zhihu.com/topic/20039099/intro)

在这里插入图片描述

2.2 马尔科夫决策过程(Markov Decision Process,MDP)

组成:
S:状态集 (states)
A: 动作集 (actions)
P: 状态转移概率
R: 即时奖励(reward)
Y:折扣系数(未来反馈的reward相比当下的重要性,在[0,1)之间)

决策过程: 智能体初始状态,选择一个动作,按概率转移矩阵转移到下一个状态,如此反复…
在这里插入图片描述
状态价值函数(评价某个状态奖励的数学公式):
在这里插入图片描述
表示在t时刻的状态s能获得奖励的期望。

最优价值函数(某个策略下奖励期望最大值):
Alt
π \pi π 代表策略,s表状态

2.3 贝尔曼方程(Bellman)

贝尔曼方程的状态价值函数表达式
贝尔曼方程是更一般的状态价值函数表达式,它表示当前状态的价值由当前的奖励和下一状态的价值组成。这里借用某位大神的一幅图形象说明:
在这里插入图片描述
看不懂这幅图·········
贝尔曼最优化方程:
在这里插入图片描述

状态价值函数( State Value Function) V p i ( s ) V^{pi}{(s)} Vpi(s)和状态动作价值函数 (State-action Value Function)(Q值函数——Q Function)

在这里插入图片描述
在这里插入图片描述

贝尔曼方程说明补充

在这里插入图片描述
推导,见链接
link

2.4 Q-Learning

学习在一个给定的状态时,采取了一个特定的行动后,所得到的回报 ,然后遍历所有可能的行动,得到所有状态的回报 Q (Table)。

其实,每个 == 。Q-Table生成的算法流程:

  1. 初始化Q-Table 每个状态(s)对应的回报为 0;

  2. 随机选取一个状态(s)作为遍历的起始点;

  3. 在当前状态(s)的所有可能的行动(A)中按顺序遍历每一个行动(a);

  4. 移动到下一个状态 ;

  5. 在新状态上选择 Q 值最大的那个行动(a1);

  6. 用贝尔曼方程更新Q-Table中相应状态-行动对应的价值()。按顺序遍历第3步其他可能的行动,重复第3 - 6步;

  7. 将新状态设置为当前状态,然后重复第2 - 6步,直到到达目标状态;

这里注意有两层循环:

外层:遍历所有状态;

内层:遍历每个状态的所有可能的行动;
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值