我是靠谱客的博主 神勇烤鸡,最近开发中收集的这篇文章主要介绍强化学习——随机策略与策略梯度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文内容源自百度强化学习 7 日入门课程学习整理
感谢百度 PARL 团队李科浇老师的课程讲解

另外一位博主写的很精彩https://blog.csdn.net/qq_42067550/article/details/106871772

1.value-based 与policy-based

  • value-based先学习动作价值函数,训练的目的让Q值迭代更新到最优,然后再根据动作价值选择最优的动作。
  • policy-based直接输出动作概率,动作的选择不再依赖于价值函数,而是一条策略走到底,看这条策略的好坏。

value-based

  • 先求Q值,
  • 然后优化的也是Q值,
  • 将Q网络调到最优后
  • ,输出Q值最大的动作。
  • (确定性策略:优化最优后参数固定下来,输入同样的state后,输出同样的action)

policy-based

  • 神经网络输入状态state,直接输出动作action
  • (随机策略:输出的是动作的概率)$$ theta $$是神经网络的参数:权重,偏置,表示在st状态下输出at的概率,所有动作的概率相加为1,
  • 概率越大的动作越容易采样到,适用剪刀石头布这种随机性比较大的游戏中,经过一段时间后可能发现,3个动作的概率为33%,
  • 如果使用DQN,可能最后一直一个动作。

2.softmax函数

3.举例:策略网络输入的是整个图像(向量或矩阵),输出的是3个动作的概率(向量),然后根据这个概率随机挑选一个动作输出

$$ pi $$代表策略输出的概率,$$ pi _{theta}left( aleft| s right. right) $$在状态s下选择a的概率,由于环境的随机性,不同的策略到不同

的环境,这个概率用p来表述,称作状态转移概率。$$ pleft( s'left| s,a right. right) $$代表智能体在环境s选择动作a后有

多少概率去s'(智能体的选择是可以优化的,环境的随机性是无法人为控制的)

当我们选择一个动作以后,其实并不知道动作的优劣,而只有最终游戏结束得到结果的时候,我们才能反推之前的动作优劣每一个 episode 中,agent 不断和环境交互,输出动作,直到该 episode 结束,然后开启另一个 episode。

优化策略的目的:让 “每一个” episode 的 “总的” reward 尽可能大

  • 单个 episode 有很多 step 组成,每个 step 会获得 reward
  • 所有 episode 总的 reward 希望最大
  • 所以怎么去量化我的优化目标就是个难点!

期望回报:

在正常的情况下不会穷举所有的轨迹,且环境转移概率也不易计算,所以当N足够大的时候,交互N个episode,拿到的分数求平均,近似拟合期望回报,这个过程称作采样。

4.策略梯度

DQN优化Q网络构造一个Loss函数作为优化目标,拿Q预测逼近QtargetLoss函数越小越好,

Policy网络输入状态s,输出动作action,其没有正确的label指导,不知道该状态下什么action比较好,所以要采用期望回报来进行优化目标,其优化目标越大越好,这个操作叫做梯度上升,神经网络的参数更新需要根据梯度决定更新方向,所以需要求解$$ overline{R_{theta}} $$$$ theta $$的梯度来更新网络。

为了计算策略梯度,需要产生n条轨迹,每一条轨迹都可以求出一个$$ Rleft( tau right) $$$$ triangledown overline{R_{theta}} $$$$ overline{R_{theta}} $$的导数,求导的过程可以约去不可知的环境转移概率)

可通过多条轨迹,计算梯度,来更新网络,让分数高的轨迹对应的动作的概率更大一些,根据$$ triangledown overline{R_{theta}} $$可以反推Loss函数,所以 loss 的公式前面要加上负号,这样就可以让梯度下降变成梯度上升。

 

最后

以上就是神勇烤鸡为你收集整理的强化学习——随机策略与策略梯度的全部内容,希望文章能够帮你解决强化学习——随机策略与策略梯度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部