• 使用Keras和深度确定性策略(DDPG)来玩TORCS


    背景

    DQN的一大局限性是输出/动作是离散的,而车辆转向是连续的。使DQN适应连续域的一种明显方法是简单的离散化操作空间。然而只是简单地离散化操作空间会受到‘维度的诅咒’问题。
    深度确定性策略由三种技术结合:1)确定性策略梯度算法(输出的是每个动作的概率)2)演员评论者方法(会定义另一个网络对动作的好坏进行评价)3)DQN网络(输出的是动作的价值)

    策略网络

    定义一个策略网络,该网络将采用游戏状态,并决定车辆应该做什么。基于策略的强化学习。其中策略可以认为是代理的行为,即从状态映射到操作的函数。

    确定性与随机性策略

    确定性策略是看到一个特定的状态输入,然后采取特定的行动。但有时确定性策略不起作用就需要采取随机性策略。

    如何找到策略,则需要采用强化技术。当AI撞到路边,获得负奖励,此时神经网络会调整参数。再数学语言中定义这些策略为目标函数。

    演员评论家算法

    本质上是一种混合方法,将基于策略梯度的方法和值函数方法组合起来。策略函数称之为参与者,而值函数称之为批评者。本质上,演员产生动作一个给定环境的当前状态,而批评家则发出信号来批评演员的行为。使用连续Q学习(SARSA)作为批评者,使用策略梯度方法作为执行者模型。

    演员网络

    使用了两个隐藏层,300和600个隐藏单元,输出包括三个连续动作。
    转向的激活函数是tanh,加速度和制动则是sigmoig。
    使用keras的merge将三个输出组合出来

    评论家网络

    使用了2个隐藏层,包括300个和600个隐藏单位。评论家网络将状态和动作作为输入。

    目标网络

    使用目标网络用于计算目标值,通过让这些目标网络缓慢跟踪学习的网络来更新这些目标网络的权重。
    目标值被限制换道变化,大大提高了学习的稳定性。

    DDPG代码

    以数组形式接收传感器的输入、传感器的输入将被输入到神经网络中,网络将输出三个实数、该网络将通过深度确定性策略梯度进行多次训练,以最大化未来的预期回报。

    将来函数:最大化纵向速度,最小化横向速度,AI不偏离轨道中心

    探索算法的设计

    奥恩斯坦-乌伦贝克过程
    一个具有均值还原性质的随机过程。

    体验回放

    在训练网络时随机迷你批次,而不是大多数最近过渡,这将大大提高稳定性。

  • 相关阅读:
    JAVA题库——关于java中的方法
    [附源码]JAVA毕业设计论文管理系统(系统+LW)
    如何去掉css 渐变时的锯齿效果
    深度学习论文: An Improved One millisecond Mobile Backbone及其PyTorch实现
    app一键加固加签名脚本 百度加固 window版本
    tkinter模块解读和使用
    func-spring-boot-starter 匿名函数托管
    element ui框架(登录窗口)
    消息队列&中间件
    爱上开源之golang入门至实战第四章函数(Func)(六)
  • 原文地址:https://blog.csdn.net/m0_51607165/article/details/126341052