7日强化学习初体验

本文分享了参加百度飞桨强化学习7日打卡营的心得,深入解析基于表格、神经网络和策略梯度的RL方法,如Sarsa、Q-Learning、DQN及PolicyGradient等。同时,总结了PARL框架下的代码结构与调参技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7日强化学习初体验

最近有幸参加了百度飞桨paddlepaddle开设的“强化学习7日打卡营-世界冠军带你从零实践”课程。通过课程加实战的方式顺利完成了对于强化学习的理论理解,并且在百度的AIstudio上使用PARL框架完成了许多动手实践。下面将就课程笔记、实践心得、实用资料。

课程笔记

本人一直保持着手写笔记的习惯,更加方便作图和补充,笔记如图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
整个课程主要的框架梳理如下:

1、基于表格的RL:① Sarsa(on-policy,每个更新时已知晓下一步动作,使用下一部动作的收益值更新)② Q-Learning(off-policy,更新时不管下一步动作,直接选择当前状态下发生动作的最大收益)。
2、基于神经网络的RL:DQN(使用神经网络来解决状态不可数的问题,两大创新:① 经验回放;②固定Q-target)。
3、基于策略梯度的RL:Policy Gradient(直接输出动作的概率而不是reward)
4、连续动作空间上的RL:DDPG(分别有Actor(策略网络)、Critic(Q网络),Actor根据评分来进行动作,Critic给动作打分尽量使分数与环境一致)。

实践心得

在训练营中,我们进行了一定次数的实战代码练习,总体而言,强化学习部分的代码还是比较清晰。

基于PARL框架的代码结构总结如下:

1、train:最外层,定义参数搭建好模型后,进行不停地训练。主要分为:训练函数run_episode()和评估函数evaluate()。
2、agent:进行探索和参数的更新训练。主要探索动作的生成函数有:sample()和predict();参数更新训练的函数是learn()。
3、algorithm:对于神经网络的loss函数、参数的更新方式进行一些定义。主要函数是learn()。
4、model:对于使用神经网络的算法,用来对于神经网络的结构进行定义。

除了编写代码,在这短短的7天里,最让人头秃的就是调参了,调参这件事一开始真让人摸不着头脑,但在经过一番折腾之后,又让人有柳暗花明之感,在此记录一些粗浅的理解:

1、注意learning rate的选取,一般来讲从1e-3开始尝试增倍或减倍。如果代码运行过程中存在开始效果显著,到中半段突然变差,可能是由于学习率太高所致(过拟合?),此时可能考虑降低学习率训练。
2、对于神经网络的输入,可能可以根据实际问题进行分析理解来调整,而不是一味地让他自己学习。比如之前看到Policy Gradient应用在VRP中的文章,首先使用了attention机制对输入进行了处理,从而获得更好的输出效果。
3、开局还是靠手气,同样的配置效果也可能天差地别。
4、对于不同问题的神经网络层次结构如何构建,我现在依然一脸懵,神经元的个数、网络层数和需要用的激活函数感觉都很虚幻。

实用资料

1、老师倾力推荐在这里插入图片描述

2、本次课程的代码资料
https://github.com/PaddlePaddle/PARL/tree/develop/examples/tutorials
3、b站莫烦python的系列小视频,超快速成,理论+代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值