本文总结了一下视频 中所展示的一些问题
视频是对北京大学组织的一个麻将(国标)比赛的总结,网站是
本文为知乎版本的纠错和 markdown 版本 在学习深度学习相关知识,无疑都是从神经网络开始入手,在神经网络对参数的学习算法bp算法,接触了很多次,每一次查找资料学习,都有着似懂非懂的感觉,这次趁着思路比较清楚,也为了能够让一些像我一样疲于各种查找资料,却依然懵懵懂懂的孩子们理解,参考了梁斌老师的博客BP算法浅谈(Error Back-propagation)(为了验证梁老师的结果和自己是否正确,自己python实现的初始数据和梁老师定义为一样!),进行了梳理和python代码实现,一步一步的帮助大家理解bp算法!
为了方便起见,这里我定义了三层网络,输入层(第0层),隐藏层(第1层),输出层(第二层)。并且每个结点没有偏置(有偏置原理完全一样),激活函数为sigmod函数(不同的激活函数,求导不同),符号说明如下:
什么是优势函数? 简单来说就是某个动作相对于平均水平的好坏程度. 它是一个动作价值函数和状态价值函数之间的差异. 当一个状态是好的, 那么就会比平均水平更好, 差值为正, 那么求梯度的时候, 就会更加鼓励这个动作. 反之亦然.
更详细的内容可以看MDP Homomorphic Networks 这篇讲解, 这里更多的讲讲代码的实现. 经过了两天, 发现自已的代码能力还是不够
之前一直是用的 conda 来管理 python, 最近接触了一下uv, 一下就被其速度吸引了, 还有其对依赖的管理比 requirements.txt 更加方便.
ppo 可以认为是一个提高了样本利用效率的 a2c。而从 ppo 到 mappo,需要的更多的也是工程上面的进步。
本次的 PPO 采用的是 pytorch 的实现
是在这篇源码阅读《PyTorch PPO》 的基础上讲的。
然后我自已对代码进行了一些精简和注释, 删除了 rnn 部份,对其他环境的适配也删除了, 只留下了 CartPole-v1 和 Pendulum-v1 的部份。 我的实现可以在 我的ppo仓库 找到。