欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

简易学习:快速掌握 PARL 强化学习框架

最编程 2024-07-19 09:06:05
...

最近参加了百度的的PARL深度强化学习课程,算是对强化学习有了一定了解,因为之前并没有学习过强化学习相关的知识,粗略入门,体验了PARL框架,确实对新手比较友好。

入门学习了比较基础的算法,如SARSA,Q-Learning,DQN,PG,DDPG。

能在AI studio上直接跑模型,直接感受模型的效果,对入门学习比较有帮助。

强化学习主要了解3个概念,agent,model,algorithm

下面是代码实例,以DQN为例

model


class Model(parl.Model):
    def __init__(self, act_dim):
        hid1_size = 128
        hid2_size = 128
        # 3层全连接网络
        self.fc1 = layers.fc(size=hid1_size, act='relu')
        self.fc2 = layers.fc(size=hid2_size, act='relu')
        self.fc3 = layers.fc(size=act_dim, act=None)

    def value(self, obs):
        # 定义网络
        # 输入state,输出所有action对应的Q,[Q(s,a1), Q(s,a2), Q(s,a3)...]
        h1 = self.fc1(obs)
        h2 = self.fc2(h1)
        Q = self.fc3(h2)
        return Q

algorithm

# from parl.algorithms import DQN # 也可以直接从parl库中导入DQN算法

class DQN(parl.Algorithm):
    def __init__(self, model, act_dim=None, gamma=None, lr=None):
        """ DQN algorithm
        
        Args:
            model (parl.Model): 定义Q函数的前向网络结构
            act_dim (int): action空间的维度,即有几个action
            gamm