当前位置: 首页 > news >正文

强化学习RL 02: Value-based Reinforcement Learning

DQN和TD更新算法。

目录

Review

1. Deep Q-Network(DQN)

1.1 Approximate the Q*(s,a) Function

 1.2 Apply DQN to Play Game

1.3 Temporal Difference(TD) Learning

1.4 TD Learning for DQN

1.4.1 TD使用条件 condition

1.4.2 Train DQN using TD learning

1.5 summary: DQN and TD learning

参考


Review

  • Ut是未来奖励reward的加权和
  • Qπ(st, at)可以反应当前状态st下动作at的好坏程度。
  • 对Qπ关于π求最大化,Q*函数可以给所有动作打分

1. Deep Q-Network(DQN)

本质:用神经网络近似Q*函数

1.1 Approximate the Q*(s,a) Function

Goal: Win the game(≈ maximize the total world.)

Question: If we know Q*(s, a), what is the best action? 假设我们知道Q*函数

 Q* is an indication for how good it is for an agent to pick action a while being in state s.

Challenge: we do not know Q*(s, a)函数

value-based model,就是学习一个函数来近似Q*函数。--> DQN

  • Solution: Deep Q Network (DQN)
  • Use neural network Q(s, a; w) to approximate Q*(s, a

用一个神经网络去近似Q*(s,a)函数,神经网络参数是w、输入是s、输出是很多数值(这些数值是对所有可能动作的打分),通过奖励reward来学习这个网络,这个网络对动作的打分就会逐渐改进,打分会越来越准。

 1.2 Apply DQN to Play Game

  •  当前观测到状态st,用DQN把st作为输入给所有的动作actions打分,选出分数最高的动作作为at,agent执行动作at后,
  • environment会改变状态S,用状态转移函数p来随机抽一个新的状态st+1,还会告诉我们这一步的奖励rt(rt可以是正的、负的、0)。
  • 奖励reward就是强化学习中的监督信号,DQN要靠这些奖励来训练。
  • 有了新的状态st+1,DQN对所有动作进行打分,agent选择分数最高的动作作为at+1。at+1后,环境会再更新状态st+2、再给一个奖励r+1。
  • 然后重复这个过程,直到游戏结束。

how to train a DQN?

1.3 Temporal Difference(TD) Learning

TD算法,时间差分算法。

challenge: Can I update the model before finishing the trip?

TD 算法。

  • TD target。
  • TD error。
  • 用梯度下降来减小TD error

1.4 TD Learning for DQN

1.4.1 TD使用条件 condition

证明:

左边称为Prediction;右边称为TD target

1.4.2 Train DQN using TD learning

agent在t+1时刻的动作at+1,DQN对所有动作a进行打分,分数最高的动作作为at+1

注意,这里的a不等于at

1.5 summary: DQN and TD learning

参考

1. 王树森~强化学习 Reinforcement Learning

2.  https://www.cnblogs.com/pinard/category/1254674.html

http://www.lryc.cn/news/22715.html

相关文章:

  • 08_MySQL聚合函数
  • 「TCG 规范解读」词汇表
  • 第三阶段-03MyBatis 中使用XML映射文件详解
  • 从0开始学python -41
  • 如何将Google浏览器安装到D盘(内含教学视频)
  • 三战阿里测试岗,成功上岸,面试才是测试员涨薪真正的拦路虎...
  • Java代码弱点与修复之——ORM persistence error(对象关系映射持久错误)
  • 原始GAN-pytorch-生成MNIST数据集(原理)
  • Vue下载安装步骤的详细教程(亲测有效) 1
  • [Android Studio] Android Studio生成数字证书,为应用签名
  • 应用IC 卡继续教育网络管理系统前后影响因素比较
  • Clickhouse学习(一):MergeTree概述
  • Windows离线安装rust
  • Android与flutter混合开发
  • Linux和C语言的学习方法你真的知道吗?
  • 代码随想录day42
  • 【笔记】两台1200PLC进行S7 通信(1)
  • 统一网关Gateway
  • 6、kubernetes(k8s)安装
  • python-批量下载某短视频平台音视频标题、评论、点赞数
  • 【数据结构与算法】单链表的增删查改(附源码)
  • 华为OD机试 - 回文字符串
  • C语言太简单?这14道C语言谜题,你能答对几个
  • Benchmark测试——fio——源码分析
  • 测量 R 代码运行时间的 5 种方法
  • Qt 第9课、计算器中缀转后缀算法
  • docker的使用方法
  • Kafka(五)生产者向发送消息的执行流程
  • 华为OD机试模拟题 用 C++ 实现 - 简易压缩算法(2023.Q1)
  • MATLAB R2022b 安装教程