搭建强化学习环境(一)

最近想进行强化学习的代码实战,于是学习了该视频课程:更简单的强化学习,代码实战_哔哩哔哩_bilibili

该强化学习课程需要搭建的环境信息:

我的系统是Ubuntu20.04

python==3.9

pytorch==1.12.1(cpu)

gym==0.26.2

pettingzoo==1.23.1

一、安装anconda3虚拟环境

1.1 为了便于管理,需要先装anaconda. 具体下载和安装步骤如下:

Step1. 下载anaconda安装包 .推荐利用清华镜像来下载,下载地址为:

Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

根据需要搭建的环境为python==3.9,选择对应的anconda版本,我下载的是Anaconda3-2022.10-Linux-x86_64.sh。其他版本对应关系可查看以下连接

Old package lists — Anaconda documentation

Step2. 安装anaconda。下载完成anaconda后,安装包会在Dowloads文件夹下,在终Ctrl+Alt+T打开终端)键入cd Downloads, 然后键入

bash Anaconda3-2022.10-Linux-x86_64.sh

Step3. 过程会询问你是否将路径安装到环境变量中,键入yes, 当安装完成。你会在目录/home/你的用户名文件夹下面看到anaconda3文件夹。重新开一个终端,若用户名之前出现(base),即说明环境变量起作用。

1.2. 利用anaconda建一个虚拟环境。

Anaconda创建虚拟环境的格式为:conda create –-name 你要创建的名字 python=版本号。

我创建的虚拟环境名字为gymlab, 用的python版本号为3.9,可这样写:

conda create --name gymlab python=3.9

此后,在anaconda3/envs文件夹下多一个gymlab。Python3.9就在gymlab下得lib文件夹中。

在新的终端里,键入以下命令激活虚拟环境

#方式一
source activate gymlab
#方式二
conda activate gymlab

二、安装gym

Step1. 在虚拟环境(gymlab)中,键入以下命令安装gym

pip install gym[atari]==0.26.2 -i https://mirrors.aliyun.com/pypi/simple

Step2. 可通过以下步骤检查gym是否正确安装,检查pytorch和pettingzoo同理:

1. 开一个终端(ctr+alt+t), 然后激活用anaconda建立的虚拟环境:

source activate gymlab

2. 运行python:

python

3. 导入gym模块

import gym

4.查看gym的版本

gym.__version__

三、安装pytorch

我这里安装CPU的版本,在虚拟环境(gymlab)中,键入第一条命令安装,若安装GPU的版本,则键入第二条命令安装

# CPU
conda install pytorch==1.12.1  torchvision==0.13.1 torchaudio==0.12.1 cpuonly -c pytorch
# GPU
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge

四、安装pettingzoo

在虚拟环境(gymlab)中,键入以下命令安装

pip install pettingzoo[all]==1.23.1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一。它主要用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。强化学习的特点在于没有监督数据,只有奖励信号。 强化学习的常见模型是标准的马尔可夫决策过程(Markov Decision Process, MDP)。按给定条件,强化学习可分为基于模式的强化学习(model-based RL)和无模式强化学习(model-free RL),以及主动强化学习(active RL)和被动强化学习(passive RL)。强化学习的变体包括逆向强化学习、阶层强化学习和部分可观测系统的强化学习。求解强化学习问题所使用的算法可分为策略搜索算法和值函数(value function)算法两类。 强化学习理论受到行为主义心理学启发,侧重在线学习并试图在探索-利用(exploration-exploitation)间保持平衡。不同于监督学习和非监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。强化学习问题在信息论、博弈论、自动控制等领域有得到讨论,被用于解释有限理性条件下的平衡态、设计推荐系统和机器人交互系统。一些复杂的强化学习算法在一定程度上具备解决复杂问题的通用智能,可以在围棋和电子游戏中达到人类水平。 强化学习在工程领域的应用也相当广泛。例如,Facebook提出了开源强化学习平台Horizon,该平台利用强化学习来优化大规模生产系统。在医疗保健领域,RL系统能够为患者提供治疗策略,该系统能够利用以往的经验找到最优的策略,而无需生物系统的数学模型等先验信息,这使得基于RL的系统具有更广泛的适用性。 总的来说,强化学习是一种通过智能体与环境交互,以最大化累积奖励为目标的学习过程。它在许多领域都展现出了强大的应用潜力。
强学习环境的代码实现通常需要根据具体的场景和任务进行编写。以下是一个简单的示例,演示了如何使用Java实现一个简单的强化学习环境: ```java public class MyEnvironment implements Environment<Integer> { private int currentState; public MyEnvironment() { this.currentState = 0; } @Override public ObservationSpace<Integer> getObservationSpace() { // 定义状态空间 return new DiscreteObservationSpace<>(10); } @Override public ActionSpace<Integer> getActionSpace() { // 定义动作空间 return new DiscreteActionSpace<>(2); } @Override public StepReply<Integer> step(Action<Integer> action) { // 根据动作计算奖励和下一个状态 int reward = 0; if (action.getAction() == 0) { currentState--; } else { currentState++; } if (currentState == 9) { reward = 1; } boolean done = (reward != 0); return new StepReply<>(currentState, reward, done, null); } @Override public Integer reset() { // 重置状态 currentState = 0; return currentState; } @Override public void close() { // 关闭环境 } } ``` 在这个示例中,我们实现了`Environment`接口,并重写了其中的方法。在`getObservationSpace()`方法中,我们定义了状态空间,并返回了一个`DiscreteObservationSpace`对象,表示状态空间由10个离散的状态组成。在`getActionSpace()`方法中,我们定义了动作空间,并返回了一个`DiscreteActionSpace`对象,表示动作空间由2个离散的动作组成。在`step()`方法中,我们根据代理选择的动作更新状态,并计算奖励。在`reset()`方法中,我们将状态重置为初始状态。在`close()`方法中,我们关闭环境。注意,这只是一个简单的示例,实际的强化学习环境可能需要更复杂的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值