为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 DQN(深度 Q 网络)中分配状态?

如何在 DQN(深度 Q 网络)中分配状态?

C#
MMMHUHU 2022-12-24 12:22:55
我正在使用自动驾驶仪进行飞行模拟,所以我需要制作一个 DQN(深度 Q 网络)来控制自动驾驶仪,但我不知道最佳状态数。模拟是统一完成的,所有的环境和物理也都完成了,DQN 只需要输出 (W,A,S,D) 来控制飞机,我找到了一个控制 CARTPOLE 的代码,理论上应该可以训练和控制飞机就好了,唯一的问题是我不知道我选择的状态是否正确。这是代码:        import os    import random    import gym    import numpy as np    from collections import deque    from keras.models import Sequential    from keras.layers import Dense    from keras.optimizers import Adam    class DQNAGENT:        def __init__(self,state_size,_action_size):            self.state_size = state_sizes            self.action_size = actions_sizes            self.memory = deque(maxlen=2000)            self.gamma = 0.95            self.epsilon = 1.00            self.epsilon_decay_rate = 0.995            self.epsilon_min = 0.01            self.learning_rate = 0.001            self.model = self.build_model()        def buildmodel(self):            model = Sequential()            model.add(Dense(24, input_dim=self.state_size, activation='relu'))            model.add(Dense(24, activation='relu'))            model.add(Dense(self.action_size, activation='linear'))            model.compile(loss='mse',optimizer=Adam(lr=self.learning_rate))            return model        def remember(self, state, action, reward, next_state, done):            self.memory.append((state, action, reward, next_state, done))        def act(self, state):            if np.random.rand()  self.epsilon_min:                self.epsilon *= self.epsilon_decay_rate        def load(self, name):            self.model.load_weights(name)        def save(self, name):            self.model.save_weights(name)代理类是将要接受培训的代理,这些功能没问题,但在Main中,状态大小设置为零,因为我还不知道这三行的数量我无法转换为能够运行我的项目因为它从 Gym 包中获取这些变量,但我需要手动输入这些变量,我的环境将包括空速、飞机位置、机场位置等,这就是我想写的,所以如果有人能帮我弄清楚这是否正确甚至更好地告诉我什么是最佳状态,我们将非常感激。
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

状态只是您的代理在当前“框架/步骤”中拥有的信息。
这是代理选择动作所需要的agent.act(state)

CartPole示例中,状态是一个包含 4 个值的框:

  • 推车位置

  • 推车速度

  • 极角

  • 尖端极速

在您的飞行自动驾驶仪中,状态将是您的代理人做出决定所需的信息,例如:

  • 当前纬度

  • 现在的速度

  • ...


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号