强化学习基础05——gym

article/2025/8/22 17:15:20

OpenAI gym

OpenAI gym是强化学习最常用的标准库,如果研究强化学习,肯定会用到gym。

gym有几大类控制问题,第一种是经典控制问题,比如cart pole和pendulum。

Cart pole要求给小车一个左右的力,移动小车,让他们的杆子恰好能竖起来,pendulum要求给钟摆一个力,让钟摆也恰好能竖起来。

第二种是你最常见的Atari games,小时候在小霸王游戏机上玩的。pong里面的agent是这个乒乓球拍,你让球拍上下运动目标是接住对手的球,并且让对手接不住你的球。

Space invader里面的agent是这个小飞机,可以左右移动,也可以发射炮弹。

Break oUt里面的agent是下面的球拍,可以左右移动,目标是接触球,并且把上面的砖头尽可能多的打掉。

 

第三种问题是连续控制问题,比如控制蚂蚁人,还有猎豹走路,这个模拟叫做MuJoCo,它可以模拟重力等物理量,AI需要控制这些机器人站立和走路,如果设计出一种强化学习的算法,你怎么知道你的算法是否比别人的算法更好或者更快?

这就需要在标准数据集上检验算法的效果。

所有搞强化学习的学者都会用gym来测试算法的优劣,比如你可以用MuJoCo库里面人形机器人来检验你的算法,一开始这个机器人总是会摔倒,慢慢的他就能站一会儿了,慢慢的站的时间越来越长,慢慢的机器人还能没病走两步,随后会学会小跑了,然后越跑越远,经过多次迭代之后它能跑得挺远的。

用gym这个系统来做实验很容易,首先要按照官方文done来安装gym,安装好之后就可以在Python里面调用gym的函数了。

首先是import gym,然后要生成环境,需要用gym.make()这个函数。

如果要训练AI解CartPole这个问题,就用CartPole作为make函数的输入,make函数返回env这个对象,env就是环境environment,AI可以控制小车跟环境交互,AI让这个小车向左或者向右走,环境根据车和棒子的位置和运动,然后用力学定律去算这根棒子的力和运动得到新的状态,得到环境env之后,就像下面这段代码一样,让agent跟环境交互,首先用env.reset()函数去重置环境,不管小车和棒子之前在哪儿,都会回到原点,这个函数会告诉我们初始状态即为State,然后就是重复下面的循环了,每一轮循环里agent作为一个动作,然后环境会更新状态给出奖励。

 

 

Env.render()是渲染,把游戏里面发生的展示给人看,运行render函数,python就会自动弹出一个窗口来显示cart pole这个游戏。

Action=env.action_space.sample(),这个函数随机均匀的抽样一个动作即为action。

实际上我们要根据policy函数或者是Q函数来算出一个action。

到了这一步,agent知道该做什么动作,但是还没真正的执行这个动作。

下一行把action输入env.Step()函数,这时候agent就真正做这个动作了,环境会更新状态State,给一个奖励reward,还有done和info这两个返回值。

done的意思是游戏到了这一步结束了没有。

如果游戏结束done就等于一,没结束的话done就等于0。

info这个返回值我们先不用管,如果游戏结束了就用break终止循环,如果没结束就开始下一轮循环。

 


http://chatgpt.dhexx.cn/article/khcHAouA.shtml

相关文章

联邦强化学习

本博客地址:https://security.blog.csdn.net/article/details/123710121 一、联邦强化学习介绍 强化学习(RL)是机器学习的一个分支,主要研究序列决策问题,强化学习系统通常由一个动态环境和与环境进行交互的一个或多…

初探强化学习(7)基于模型的强化学习的应用综述

本文是直接翻译一篇文章的,我先把原文地址放在这里。 原文名字为:Survey of Model-Based Reinforcement Learning: Applications on Robotics 这是一个2017年的论文 1. Introduction 强化学习(Regulation Learning,RL&#xff0…

强化学习常见案例

文章目录 1. 有趣的强化学习视频1.1 小红小蓝捉迷藏1.2 红球绿球1.3 OpenAI机器人跑步1.4 OpenAI赛艇游戏(CoastRunners) 2.可以交互操作的游戏2.1 GridWorld2.2 Puck world 入门强化学习的时候,看到许多教程都给了很多强化学习的例子&#x…

多任务深度强化学习入门

理论概述 多任务深度强化学习,英文Multi-Task Deep Reinforcement Learning ,简称MTDRL或MTRL。于MARL不同,它可以是单智能体多任务的情况,也可以是多智能体多任务的情况。 现在的深度强化学习领域虽然在很多特定任务上有着超越…

初探强化学习(11)Dyna类型的强化学习

为什么研究Dyna类型的强化学习呢? 主要是因为这个类型的强化学习是融合了model-based和model free两个类型的强化学习。 主要参考的博客是这个。说实话,我也是时隔三天后,第三次看了这个博客才彻底明白的。至于为什么名师,是因为我…

强化学习笔记:强化学习的约束

1 所需的样本数量过大 深度强化学习一个严重的问题在于需要巨大的样本量。举个例子,玩Atari游戏 图 19.17 中纵轴是算法的分数与 人类分数的比值, 100% 表示达到人类玩家的水准。 图中横轴是收集到的游戏帧数,即样本数量。 Rainbow DQN 需…

强化学习的模型

文章目录 前言一、强化学习是什么?二、基本模型1.基本框架2.学习过程 三.马尔科夫决策过程(Markov Decision Process. MDP)1.马尔科夫性质2.MDP的基本组成部分3.MDP的基本流程 四、基于模型和免模型的强化学习1.模型2.基于模型的强化学习&…

深度强化学习调研

深度强化学习(DRL) (一)强化学习 强化学习(Reinforcement Learning,简称RL)是机器学习领域的一个研究热点,当前已经广泛应用于工业制造、仿真模拟、机器人控制、优化与调度、游戏博…

强化学习总结

强化学习 一、强化学习概述 1.强化学习简介 强化学习最早可以追溯到早期控制论以及统计、心理学、神经科学、计算机科学等学科的一些研究。在最近的五到十年中,强化学习在机器学习和人工智能研究者中得到了大量的关注,它描绘了一种在不进行具体指导的情…

强化学习介绍

文章目录 1 什么是强化学习?2 强化学习的特征与特点3 强化学习的要素与框架3.1 Policy3.2 Reward3.3 Value3.4 model3.5 Return(cumulative future reward) 回报|未来累积回报3.6 Discounted return 折扣回报 4 强化学习流程5 例子 马里奥 (一定要看&…

强化学习(Q-learning)

强化学习RF简介 强化学习是机器学习中的一种重要类型,一个其中特工通过 执行操作并查看查询查询结果来学习如何在环境中表现行为。 机器学习算法可以分为3种:有监督学习(Supervised Learning)、无监督学习(Unsupervi…

强化学习简介

强化学习简介 强化学习(Reinforcement Learning,RL)是机器学习中的一个领域,是学习做什么(即如何把当前的情景映射成动作)才能使得数值化的收益最大化,学习者不会被告知应该采取什么动作,而是必须自己通过尝试去发现哪…

强化学习(一):简介——什么是强化学习?

本文将介绍强化学习的基本含义,了解什么是强化学习、强化学习的概念与基本框架以及强化学习中常见的问题类型。 什么是强化学习? 强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习&#xff0c…

机器学习算法(三十):强化学习(Reinforcement Learning)

目录 1 简介 1.1 什么是强化学习 1.2 强化学习的主要特点 1.3 强化学习的组成部分 2 强化学习训练过程 3 强化学习算法归类 3.1 Value Based 3.2 Policy Based 3.3 Actor-Critic 3.4 其他分类 4 EE(Explore & Exploit)探索与利用 5 强化…

强化学习入门这一篇就够了!!!万字长文

强化学习 强化学习入门这一篇就够了万字长文带你明明白白学习强化学习... 强化学习入门这一篇就够了 强化学习前言一、概率统计知识回顾1.1 随机变量和观测值1.2 概率密度函数1.3 期望1.4 随机抽样 二、强化学习的专业术语2.1 State and action2.2 policy-策略2.3 reward2.4 状…

关于gensim的一些使用记录

NLP神器 Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。 支持包括TF-IDF,潜在语义分析(Latent Semantic Analysis,LSA),潜狄利克…

gensim官方文档实践笔记

中文文档比机翻还颠三倒四, 所以还是自己记录一下, 顺便加一些注解. 目录 文档document 语料库Corpus 语料库作用 语料库预处理 词汇编号 向量Vector 方法1: 特征向量(vector of features) 方法2: doc2bow 模型Model 语料库和向量空间 字符串转向量 语料库流Corpu…

gensim安装

输入以下命令即可: pip install gensim -i http://pypi.douban.com/simple --trusted-host pypi.douban.com以下是过程: 尝试1:直接在anaconda3上面搜索出来安装 速度太慢,失败 尝试2:更换pip源,如下所示…

Gensim:一款进行文本主题识别的 Python 工具库

从大量文本中自动提取人们谈论的主题(主题识别)是自然语言处理的基本应用之一。大型文本示例包括社交媒体订阅、消费者对酒店、电影和其他业务的评价、用户评论、新闻和客户发来的邮件。 在本中,将使用LDA 从 20Newsgroup 数据集 中提取主题的实战案例。欢迎深入探…

gensim 快速入门 Word2Vec

文章目录 gensim的核心概念Word2Vec简介Word2Vec初试探将单词可视化 训练自己的Word2Vec模型 gensim的核心概念 Document: 文档。可以是一个一句话,或者一段话Corpus: 文档的集合Vector: 文档向量。将文档通过数学向量表示。Model: 模型。将文档转换为向量的模型。…