policy gradient算法原理和代码学习笔记(没价值,看下一篇)

policy gradient算法原理和代码学习笔记(没价值看下一篇)

文章目录

  • policy gradient算法原理和代码学习笔记(没价值看下一篇)
    • 前言絮叨:
    • 需要解决的问题:
    • 算法流程图:
    • 网络结构图:

前言絮叨:

这篇博客没啥用,没质量,几乎没有好的信息量,劝退吧,大致算是一个我的笔记本。。。
大家英语好的话,直接看这位大佬的介绍,感觉思路更清晰:
http://karpathy.github.io/2016/05/31/rl/
这篇博客坏掉了,但是我还是把它发出来吧,下一篇博客,直接将karpathy大佬的博客翻译一下,感觉这样,对我自己的理解应该会好些。

因为在Ubuntu下看的这个算法,没有办法做好Word的笔记,所以发到博客上是最好的了。
看PG算法已经很久了,之前一直都是稀里糊涂的看,看莫烦大佬的视频也是没有完全理解,看代码,更是很迷糊。

这次回家给小侄子们讲课的时候,发现给别人传授方法的那些方法,我现在也应该用起来,比如,学习一个新的概念,一定要将实际的动作和现象和算法结合起来,每一算法公式,在现实中会有什么样的体现。
比如学习这件事儿,如何才能比较透彻的掌握,你得能够用你自己的话,将别人讲明白。

另外昨天刚好看了一个如何长效激励自己学习的方案,教程在这儿:
【学习】北大学霸教你如何沉迷学习,无法自拔!

这儿就提到了,学习东西,就该分享出去,让别人知道,自己就会有一种嘚瑟感,这样学起来才开心嘛,就像我给他们说的那样,如果不是为了挣钱,那么学习最大的乐趣不就是为了装逼么?
OK,那我开始讲述正文了,这些博客都快成日记了。

需要解决的问题:

这个问题我描述不来了,没法装逼了。我先凑合着写写吧,难受

假设我们已经学过Qlearning以及DQN了,我们知道可以用判断值函数的方式选择动作,但是这是离散的,恩,我到现在都还没理解为啥,就离散了,可能是因为这些动作得一个个来吧?

总之我们就有了一个新的需求,寻找一个可以解决连续问题的算法,好了,万能的前辈们给我们解决了这个问题,提出了policy gradient这个算法,可以实现连续空间的动作执行。

然后我们的假设如下,对于新构建的网络θ(theta),根据当前的状态s,网络预测出一个动作分布概率,选择出一个动作,先认定这个动作是对的,想办法让网络能够持续执行这个动作,那么标签就是你当前选择的动作。
可是我们并不知道这个动作到底能有什么样的效果,那么就该和环境反馈的回报结合起来。具体如何结合,我们可以看看算法流程图——
大致的意思就是,我们先随机选择一个动作,然后让网络一直输出这个动作?

算法流程图:

参考博客:Policy Gradients 算法更新 (Tensorflow)

直接复制莫烦大佬的图:
policy gradient算法原理和代码学习笔记(没价值,看下一篇)_第1张图片

其中:

  • θ大致的意思应该就是指网络的权重参数;
  • 倒三角符号是导数,或者梯度的意思?
  • policy(s,a)是选择动作的策略,有随机选择,也有最大概率选择。

而其他的直接复制过来:
log(Policy(s,a))*V 中的 log(Policy(s,a)) 表示在 状态 s 对所选动作 a 的吃惊度,
如果 Policy(s,a) 概率越小, 反向的 log(Policy(s,a)) (即 -log§) 反而越大. 如果在 Policy(s,a) 很小的情况下, 拿到了一个 大的 R, 也就是 大的 V, 那 -log(Policy(s, a))*V 就更大, 表示更吃惊, (我选了一个不常选的动作, 却发现原来它能得到了一个好的 reward, 那我就得对我这次的参数进行一个大幅修改). 这就是 log(Policy)*V 的物理意义啦.

emmmm,物理意义大家看懂了嘛?我是没太看懂,我也把codes下载下来,debug了好久,先进入网络结构图吧:

网络结构图:

policy gradient算法原理和代码学习笔记(没价值,看下一篇)_第2张图片
emmmm,就这样先结束吧。

你可能感兴趣的:(DRL,RL,PG)