深度强化学习记录

增强学习是什么

增强学习

  1. 与环境交互
  2. 获取反馈

agent 目标是最大化累积奖励,称为期望值回馈

增强学习框架

RL Process

RL process叫做Markov Decision Process (MDP)
在这里插入图片描述

The reward hypothesis

RL基于奖励假设,目标函数是最大化期望回归,maximize the expected cumulative reward

the Markov Property

the Markov Property 暗示agent只需要最近的状态去学习下一步采取什么动作,不考虑历史状态和行为

Observations/States Space

agent从环境中学到的信息,

  • State s
    一个完整的这个世界状态的描述
  • Observation o
    一个部分的这个世界状态的描述

Action Space

环境中所有可能动作的集合

环境来自离散或者连续空间

Rewards and the discounting

agent知道采取行动是否是好的

累积奖励:
在这里插入图片描述
即时奖励更有可能发生,因为比起长期奖励他们更容易预测

  1. 定义一个discount rate叫gamma,0-1之间。大多时候是0.99-0.95(gamma越大,discount越小,agent更在乎长期回归。gamma越小,discount越大,agent更关系短期回报)
  2. 每一个奖励会被gamma计算到时间指数步骤,未来期望奖励发生概率降低

在这里插入图片描述

任务类型

两种任务: episodic ,continuing

Episodic task:
有一个开始点和结束点(终止状态),an episode: a list of States, Actions, Rewards, and new States ,比如超级玛丽

Continuing tasks:
任务会一直继续,学会选择最好的策略,同时与环境交互。比如自动化股市交易,agent一直运行直到我们决定停止

The Exploration/Exploitation trade-off

  • Exploration 采取随机行动探索环境,发现更多信息
  • Exploitation 利用已知信息最大化奖励

我们需要平衡 多少时候去探索环境,多少时候去利用环境信息获取奖励。

必须定义一个规则帮助我们折衷

两个解决RL 问题的主要方法

换一个说法,如何建立一个RL agent最大化累积期望

The Policy π: the agent’s brain

Policy π 是Agent大脑,这个函数告诉我们,在当前状态下去采取什么行动
在这里插入图片描述

Policy 是我们想学习的函数,我们的目标是找到最优的policy π* (最大化期望回归),通过训练找到。两个训练方法:

  • 直接,教给agent学习采取哪个行动,根据当前状态:Policy-Based Methods
  • 间接,教给agent学习哪一个状态更有价值,然后采取行动通向更多有价值状态 :Value-Based Methods.

Policy-Based Methods

这个函数会定义每个状态到最一致行动的映射。或者说,该函数在该状态下所有可能的行动定义一个概率分布

有两种类型policies:

  • 确定的 。给定状态下一直返回相同的行动的policy
    在这里插入图片描述
  • 随机的:在行动上输出一个概率分布
    在这里插入图片描述

Value-Based Methods

学习一个从状态映射到该状态期望值映射的价值函数

一个状态的价值是如果agent从那个状态开始,并且按照policy(带着最高价值)行动,可以获取的期望折扣
在这里插入图片描述

每一步选择价值函数定义的最大值,-7, then -6, then -5
在这里插入图片描述

UNIT0 增强学习中的deep

“deep"指的是深度学习中的网络

两种基于值的算法, Q-Learning和 Deep Q-Learning.

Q-Learning使用传统算法,创建一个Q表找到每一个状态对应的行动。

Deep Q-Learning 使用神经网络最大化Q值
在这里插入图片描述

总结

  • 增强学习从行动中学习的计算方式,建立一个agent,通过试错与环境交互,收到环境奖励(正、负)作为回馈
  • RL agent目标是最大化累计期望奖励
  • RL 过程是一个循环,它会输出:state,action,reward,next state
  • 计算累积期望奖励,需要为奖励做折扣:即时奖励更有可能发生,因为它比长期奖励更可以预测
  • 解决RL问题,找到一个合适policy.
  • 有两种找到最优policy方法:直接训练policy,或者训练一个价值函数可以计算每一个state期望回馈,使用函数定义policy
  • 最后,说到Deep RL,因为我们引入了深度神经网络评估采取的行动(policy-based)或者评估状态价值(value-based)),所以叫做"deep"

UNIT2 介绍Q-Learning

The Bellman Equation: simplify our value estimation

Bellman 公式思想:计算每一个value作为期望回归的总和过程太长,所以我们计算即时奖励+状态的discounted value 总和作为value

在这里插入图片描述

Monte Carlo vs Temporal Difference Learning

两种学习策略

Monte Carlo 在学习前,利用完整的一个episode(表示一个智能体从开始到结束的一次交互过程,包括了环境状态、智能体的决策和行动以及最终的奖励或惩罚)

Temporal Difference 只使用一步(St,At,Rt+1,St+1)学习

Monte Carlo:在episode最后学习
在这里插入图片描述

在这里插入图片描述

Temporal Difference Learning:每一步都在学习

在这里插入图片描述

Q-Learning是什么?
在这里插入图片描述

Q-Learning is an off-policy value-based method that uses a TD approach to train its action-value function

Q-Learning是学训练Q函数方法,一个决定在特殊状态下的值,并且在按个状态下采取具体行动的函数
在这里插入图片描述

Q来自Quality(在state下的value)
Q-function内部有一个Q-table

Off-policy vs On-policy
Off-policy: using a different policy for acting (inference) and updating (training).

For instance, with Q-Learning, the epsilon-greedy policy (acting policy), is different from the greedy policy that is used to select the best next-state action value to update our Q-value (updating policy).

On-policy: using the same policy for acting and updating.
For instance, with Sarsa, another value-based algorithm, the epsilon-greedy policy selects the next state-action pair, not a greedy policy.

在这里插入图片描述

总结:

找到optimal policy两种方法:Policy-based methods. +Value-based method(The state-value function结束时返回值+The action-value function每一步返回值)

在这里插入图片描述
Epsilon-greedy strategy:用来平衡exploration 和 exploitation.1-epsilon概率选择最高期望值的行动,epsilon概率随机选择炫动,epsilon随着时间降低exploitation

Greedy strategy:总是选择给予当前环境的了解下最高期望值的行动,没有exploration,在未知情况下表现很差

Unit3

Deep Q-Learning 使用深度神经网络而不是Q-table采取下一步状态评估每一步的Q-values,

Q-Learning是训练Q-Function(action-value function决定了在特殊状态下的值,并且采取具体行动)的算法。

在这里插入图片描述

Deep Q-Learning training 可能局限于不稳定,因为结合了一个非线性Q-value函数,bootstrappong,

为了训练稳定:

  1. Experience Replay to make more efficient use of experiences.(use a replay buffer that saves experience samples that we can reuse during the training,By randomly sampling the experiences, we remove correlation in the observation sequences and avoid action values from oscillating or diverging catastrophically)
  2. Fixed Q-Target to stabilize the training.
  3. Double Deep Q-Learning, to handle the problem of the overestimation of Q-values.

在这里插入图片描述

在这里插入图片描述

Policy 梯度

找到最优 policy π ∗,

  • value-based methods,学习价值函数
  • policy-based methods

动手实践

在这里插入图片描述

Gym : Box2D 环境的部分。环境是一个经典的火箭轨迹优化问题

Gym 库提供了:创建RL环境接口+环境的集合 (gym-control, atari, box2D…)

Stable-Baselines3:是PyTorch增强学习算法的一系列实现,https://github.com/DLR-RM/stable-baselines3

UNIT1报错解决

!sudo apt-get update
!apt install python-opengl
!apt install ffmpeg
!apt install xvfb
!pip3 install pyvirtualdisplay

apt 改成 yum

安装xvfb报错
在这里插入图片描述

报错要注册,参考https://blog.csdn.net/maibaizhou/article/details/121047462
vim /etc/yum/pluginconf.d/subscription-manager.conf

yum search xvfb

在这里插入图片描述

 yum install python-xvfbwrapper.noarch

安装Box2D失败,gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory

解决办法 :
使用命令

yum install gcc gcc-c++

参考:https://blog.csdn.net/qq_39240270/article/details/85287599

env = gym.make(“LunarLander-v2”)执行报错executing.executing.NotOneValueFound: Expected one value, found 0

pip3 install box2d box2d-kengz

参考:https://stackoverflow.com/questions/50037674/attributeerror-module-box2d-has-no-attribute-rand-limit-swigconstant

报错:参数数量错误
在这里插入图片描述

解决:更改参数数量还是报错,重新进入python环境莫名其妙就对了

参考手册:https://www.gymlibrary.dev/environments/box2d/lunar_lander/

模型上传时报错

import gym

from stable_baselines3 import PPO
from stable_baselines3.common.vec_env import DummyVecEnv
from stable_baselines3.common.env_util import make_vec_env

from huggingface_sb3 import package_to_hub

# PLACE the variables you've just defined two cells above
# Define the name of the environment
env_id = "LunarLander-v2"

# TODO: Define the model architecture we used
model_architecture = "PPO"

## Define a repo_id
## repo_id is the id of the model repository from the Hugging Face Hub (repo_id = {organization}/{repo_name} for instance ThomasSimonini/ppo-LunarLander-v2
## CHANGE WITH YOUR REPO ID
repo_id = "DiracUniverse/ppo-LunarLander-v2"  # Change with your repo id, you can't push with mine 😄

## Define the commit message
commit_message = "Upload PPO LunarLander-v2 trained agent"

# Create the evaluation env
eval_env = DummyVecEnv([lambda: gym.make(env_id)])

# PLACE the package_to_hub function you've just filled here
package_to_hub(
    model=model,  # Our trained model
    model_name=model_name,  # The name of our trained model
    model_architecture=model_architecture,  # The model architecture we used: in our case PPO
    env_id=env_id,  # Name of the environment
    eval_env=eval_env,  # Evaluation Environment
    repo_id=repo_id,  # id of the model repository from the Hugging Face Hub (repo_id = {organization}/{repo_name} for instance ThomasSimonini/ppo-LunarLander-v2
    commit_message=commit_message,
)

在这里插入图片描述

报错,需要图形化界面
CentOS7安装GUI界面及远程连接的实现
如何利用Windows 10连接远程服务器桌面
windows10远程连接centos桌面
xhost:unable to open display""的问题, 设置环境变量 export DISPLAY=:0.0

pytorch 版本不对 报错: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)
在这里插入图片描述
解决:pip install torch==2.0.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/241016.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MobileNet网络

介绍 MobileNet 网络专注于移动端或者嵌入式设备中的轻量级CNN网络,相比传统卷积神经网络,在准确率小幅降低的前提下大大减少模型参数与运算量(相比VGG16准确率减少了0.9%,但模型参数只有VGG的1/32) 网络中的亮点&am…

基于SSM的小儿肺炎知识管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

蓝桥杯Web组学习总结 - 目录导航版

HTML5 HTML 基础标签 HTML5 标签列表 HTML5 新特性 HTML5都有哪些新特性? CSS3 CSS 基础语法 CSS参考手册 盒子模型 CSS Box Model (盒子模型) 浮动与定位?? CSS 浮动(float)与定位(position) CSS布局之浮动和定位 CSS3 新特性 …

shiro Filter加载和执行 源码解析

一、背景 在使用若依框架(前后端不分离包含shiro安全框架)时,发现作者添加了验证码、登录帐号控制等自定义过滤器,于是对自定的过滤器加载和执行流程产生疑问。下面以验证码过滤器为例,对源码解析。注意类之间的继承关…

链游成为蓝海,潮游世界开创未来新时代

区块链、元宇宙浪潮来袭,为数字世界开启崭新的大门,一场链游模式的范式革命正在发生! 未来,元宇宙中,链游将成为中坚力量。 潮游世界抢占时代先机,利用区块链技术的去中心化和数字资产的不可替代性&#x…

当当狸AR智能学习图集跨越千年文明传承,邀您“面对面”与虚拟诗人互动对诗

中华传统文化底蕴深厚,余韵悠长。即使经过千年的历史裂变,依然历久铭心慰藉着一代又一代人的灵魂。千百年后的今天,成为了我们独一无二的财富。 如今,国人学习中华传统文化的方式有很多,诗词集、动画影片、诗歌传颂等…

生物技术行业分析:预计2029年将达到55707亿元

生物技术( biotechnology),是指人们以现代生命科学为基础,结合其他基础科学的科学原理,采用先进的科学技术手段,按照预先的设计改造生物体或加工生物原料,为人类生产出所需产品或达到某种目的的技术方式生物技术利用对微生物、动植物等多个领域的深入研究,利用新兴技术对物质原…

Unity2023.3(有可能叫Unity6)版本开始将可以发布WebGPU

翻译一段官网上的话: 利用Unity 2023.3(发布时有可能叫Unity6)中最新的WebGPU图形API集成,尝试最大限度的提升您的网络游戏的真实感。 通过与谷歌的战略合作,Unity实时3D平台的强大的图形功能现在为图形丰富的网络游戏进行微调,实…

如何解决PET材料难于粘接的问题?有效解决方案分享!

1.PET是什么材料?有哪些特点和用途? PET是聚对苯二甲酸乙二醇酯(Polyethylene Terephthalate)的缩写,是一种常见的塑料材料。它具有以下特点: 高强度和刚性:PET具有较高的拉伸强度和模量,使其…

python对验证码进行降噪处理

举例图: 第一步先通过二值化处理把干扰线去掉: from PIL import Image# 二值化处理 def two_value():for i in range(1,5):# 打开文件夹中的图片imageImage.open(./Img/str(i).jpg)# 灰度图limimage.convert(L)# 灰度阈值设为165,低于这个值…

如何使用CFImagehost结合内网穿透搭建简洁易用的私人图床并远程访问

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

从零开始学Python系列课程第13课:Python中的循环结构(上)

一、循环结构的应用场景及分类 我们在编写程序时,一定会遇到需要重复执行某些指令的场景。举一个简单的例子,在前面讲分支结构时以游戏通关为例,如果第一关结束时分值不够则通关失败需要重新闯关,重新闯关这就是一个重复性的动作…

概率的乘法公式

两个事件的情况 假设A、B为随机事件,并且事件A的概率,那么 三个事件的情况 假设A、B、C为随机事件,并且,那么 多个事件的情况 假设为随机事件,其中,并且,那么

Resolving ORA-600[3020] Raised During Recovery

Resolving ORA-600[3020] Raised During Recovery (Doc ID 361172.1)​编辑To Bottom In this Document Symptoms Changes Cause Solution References APPLIES TO: Oracle Database Exadata Cloud Machine - Version N/A and later Oracle Cloud Infrastructure - Database Ser…

Arduino中以太网Udp通信

目录 1、测试硬件 2、程序 (0)头文件添加 (1)变量定义 (2)初始化程序 (3)循环执行程序 3、程序下载 (1)开发板控制器和端口号选择 (2&am…

淘宝订单API接口在电商行业中的应用与实现

一、引言 随着电商行业的快速发展,订单处理成为电商运营的核心环节。淘宝作为中国最大的电商平台之一,其订单API接口在电商行业中的应用越来越广泛。本文将详细介绍淘宝订单API接口在电商行业中的应用,并深入剖析相关的技术细节,…

基于级联式逆残差网络的遥感图像轻量目标检测算法

源自:电子学报 作者:陈立 张帆 郭威 黄赟 李继中 “人工智能技术与咨询” 发布 摘 要 遥感场景下的高实时目标检测任务具有重要的研究价值与应用意义. 针对当前遥感图像目标检测模型由于目标多角度、排列密集以及背景复杂从而导致检测速度慢的…

免费且好用的 MySQL 客户端

DBeaver 支持 Mac、Windows、Linux,提供 Eclipse 插件。社区版免费,支持主流的关系型数据库 官网地址:DBeaver Community | Free Universal Database Tool MySQL WorkBench MySQL WorkBench 是官方出品的客户端,支持 Mac、Windo…

QVTK 可视化

#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>#include <vtkNew.h> // 智能指针 #include <QVTKOpenGLNativeWidget.h> #include <vtkCylinderSource.h> // 圆柱#include <vtkPolyDataMapper.h&g…

JVM虚拟机系统性学习-垃圾回收器Serial、ParNew、Parallel Scavenge和Parallel Old

垃圾回收器 有 8 种垃圾回收器&#xff0c;分别用于不同分代的垃圾回收&#xff1a; 新生代回收器&#xff1a;Serial、ParNew、Parallel Scavenge老年代回收器&#xff1a;Serial Old、Parallel Old、CMS整堆回收器&#xff1a;G1、ZGC Serial&#xff1a;串行回收 Serial是…