机器人强化学习之使用 OpenAI Gym 教程与笔记
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
除了试图直接去建立一个可以模拟成人大脑的程序之外, 为什么不试图建立一个可以模拟小孩大脑的程序呢?如果它接 受适当的教育,就会获得成人的大脑。 ― 阿兰・图灵
强化学习 (Reinforcement learning) 是机器学习的一个子领域用于制定决策和运动自由度控制。强化学习主要研究在复杂未知的环境中,智体(agent)实现某个目标。强化学习最引人入胜的两个特点是
- 强化学习非常通用,可以用来解决需要作出一些列决策的所有问题:例如,训练机器人跑步和弹跳,制定商品价格和库存管理,玩 Atari 游戏和棋盘游戏等等。
- 强化学习已经可以在许多复杂的环境中取得较好的实验结果:例如 Deep RL 的 Alpha Go等
Gym 是一个研究和开发强化学习相关算法的仿真平台。
- 无需智体先验知识;
- 兼容常见的数值运算库如 TensorFlow、Theano 等
import gymenv = gym.make('CartPole-v0') env.reset() for _ in range(1000): env.render() env.step(env.action_space.sample()) # take a random action
运行效果
至此,第一个 Hello world 就算正式地跑起来了!
在第一个小栗子中,使用了 env.step()
函数来对每一步进行仿真,在 Gym 中,env.step()
会返回 4 个参数:
- 观测 Observation (Object):当前 step 执行后,环境的观测(类型为对象)。例如,从相机获取的像素点,机器人各个关节的角度或棋盘游戏当前的状态等;
- 奖励 Reward (Float): 执行上一步动作(action)后,智体(agent)获得的奖励(浮点类型),不同的环境中奖励值变化范围也不相同,但是强化学习的目标就是使得总奖励值最大;
- 完成 Done (Boolen): 表示是否需要将环境重置
env.reset
。大多数情况下,当Done
为True
时,就表明当前回合(episode)或者试验(tial)结束。例如当机器人摔倒或者掉出台面,就应当终止当前回合进行重置(reset); - 信息 Info (Dict): 针对调试过程的诊断信息。在标准的智体仿真评估当中不会使用到这个 info,具体用到的时候再说。
总结来说,这就是一个强化学习的基本流程,在每个时间点上,智体执行 action,环境返回上一次 action 的观测和奖励,用图表示为
在 Gym 仿真中,每一次回合开始,需要先执行 reset()
函数,返回初始观测信息,然后根据标志位 done
的状态,来决定是否进行下一次回合。代码表示为
import gymenv = gym.make('CartPole-v0') for i_episode in range(20): observation = env.reset() for t in range(100): env.render() print(observation) action = env.action_space.sample() observation, reward, done, info = env.step(action) if done: print("Episode finished after {} timesteps".format(t+1)) break
仿真截图如下
每次 action
前,将上一次 observation
打印,可以得到打印日志如下
[ 0.0349103 1.14771978 -0.03934506 -1.64631971] [ 0.0578647 1.34327926 -0.07227145 -1.95099638] [ 0.08473028 1.14899616 -0.11129138 -1.68156178] [ 0.1077102 0.95532555 -0.14492261 -1.42550525] [ 0.12681672 1.15191062 -0.17343272 -1.75974995] [ 0.14985493 0.95912509 -0.20862772 -1.52564382] Episode finished after 16 timesteps [ 0.03628829 -0.03189712 -0.01997778 0.02529094] [ 0.03565035 -0.22672696 -0.01947196 0.31160431] [ 0.03111581 -0.42156616 -0.01323988 0.59808332] [ 0.02268449 -0.61650037 -0.00127821 0.8865666 ]
在前面的两个小栗子中,每次执行的动作(action)都是从环境动作空间中随机进行选取的,但是这些动作 (action) 是什么?在 Gym 的仿真环境中,有运动空间 action_space
和观测空间 observation_space
两个指标,程序中被定义为 Space
类型,用于描述有效的运动和观测的格式和范围。下面是一个代码示例
import gymenv = gym.make('CartPole-v0') print(env.action_space)#> Discrete(2) print(env.observation_space)#> Box(4,) [33mWARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.[0m Discrete(2) Box(4,)
从程序运行结果来看
action_space
是一个离散Discrete
类型,从 discrete.py 源码可知,范围是一个{0,1,...,n-1}
长度为n
的非负整数集合,在CartPole-v0
例子中,动作空间表示为{0,1}
。observation_space
是一个Box
类型,从 box.py 源码可知,表示一个n
维的盒子,所以在上一节打印出来的observation
是一个长度为 4 的数组。数组中的每个元素都具有上下界。
print(env.observation_space.high) print
柚子快报邀请码778899分享:github java OpenAI ChatGPT微信接入教程
柚子快报邀请码有什么用,柚子快报邀请码有没关系的,柚子快报的邀请码,获取免费永久激活码?,柚子快报邀请奖励
OpenAI ChatGPT微信接入教程
OpenAI ChatGPT 接入 个人WeChat(微信),让AI互动更方便!
准备工作
Ⅰ,OpenAI 账号,参考ChatGPT注册试用全攻略
Ⅱ,微信账号(需要绑定支付方式,需支持网页登录)
简要过程
开源项目
项目地址:https://github.com/869413421/wechatbot
项目基于openwechat 开发的,微信的SDK请移步这个仓库查看:https://github.com/eatmoreapple/openwechat
部署方式Ⅰ
Windows 和 Linux都可以,但是本机需要有Golang环境。直接编译运行项目即可。推荐有一定的技术的童鞋看这部分,不懂技术移步下方。
1)拉取代码,安装依赖。
git clone https://github.com/malaohu/wechat-chatGPT.gitcd wechat-chatGPTgo mod tidy
注意修改配置文件!下面内容有说明!
2)启动运行项目
go run main.go
部署方式Ⅱ
这部分建议不太懂技术或嫌编译麻烦的童鞋参考
Windows 和 Linux都可以,本地不需Golang环境。下载可执行文件直接启动运行。
下载地址:https://gitee.com/shtml/wechatbot/tree/main/bin
下载你本系统需要的可执行文件和配置文件(config.json),注意修改配置文件(下面有描述)!
特别提醒:可执行文件 和 配置文件放到同一个目录!
Windows直接双击运行即可!
API Key
修改配置文件需要获取API Key!
1)登录 OpenAI - 右上角头像 - 【View API keys】
2)第一次进来,点击【Create new secret key】
3)API Key 创建成功。复制好这个Key接下来会用到。点击OK后,Key不会再完整显示。只能删了重新生成Key!
修改配置文件
将配置文件 config.dev.json 修改成 config.json (如果已有config.json就不用修改了)
目前里面仅有2项配置。
{
"api_key": "your api key", "auto_pass": true}
your api key 位置,粘贴你的API key。一定要保留引号。
auto_pass 是否自动通过好友请求(如果人非常多加好友,建议设置成 false,因为频繁好友申请会导致程序崩溃)
配置微信Bot
程序启动成功后,浏览器会弹窗一个二维码。直接使用你的微信(微信机器人)扫码登录即可。
如果Linux服务器上启动,将日志中的图片地址在自己的浏览器打开扫码即可。
访问下面网址扫描二维码登录https://login.weixin.qq.com/qrcode/gdOa1pgupQ==2022/12/08 08:19:50 扫码成功,请在手机上确认登录2022/12/08 08:20:01 登录成功
微信登录成功以后,在可执行文件所在的目录多了一个 storage.json 文件。
下次启动程序无需再次扫码登录微信就能使用了!
却换到其他微信登录一定要将这个 storage.json 文件删除掉,否则会切换失败。
2022/12/08 08:19:33 login error: write storage.json: bad file descriptor
模型请求次数2140次,花费约6.4美元!数据仅供参考!
价格的计算方式不是简单的按照请求次数计算,包括相应内容的文字的多少。
按官方计价方式:6.4美元 / 0.0004美元 * 750单词 ≈ 120W单词?
官方价格:https://openai.com/api/pricing
相对于Session_Token方式,API的方式更为方便,机器人相应数据也非常快。Session_Token每小时请求次数有上限。
超过上限机器人就"罢工"了!
参考
OpenAI ChatGPT 接入WeChat(个人微信),与AI互动更方便!
除了ChatGPT,还可以体验最新Stable diffusion-v2绘画模型,免注册,免安装,不用显卡,在线体验,有网就行!
AI绘图在线体验
二次元绘图
在线体验地址:Stable Diffusion 模型包括:
NovelAI,NovelAI的模型训练使用了数千个网站的数十亿张图片,包括 Pixiv、Twitter、DeviantArt、Tumblr等网站的作品。 Waifu,waifu的模型可用于生成二次元的卡通形象,可以生成独有的二次元动漫小姐姐和主人公 Stable diffusion-v2,以英文为输入的通用图像生成模型
中文输入绘图
在线体验地址:Stable Diffusion
太乙模型,首个开源的中文Stable Diffusion模型,基于0.2亿筛选过的中文图文对训练。
查看原文
标签:气候变化
气候变化情况,气候变化的变化,气候变化含义和表现,气候变化的细节
AI前沿 人工智能旨在提高现有技术和组织活动的效率。但是由于气候变化,人们担心进入绿色环保和可持续发展的数字时代,人工智能可能不是节能的。实际上,2019年6月,马萨诸塞州大学阿默斯特分校发布了一份令人震惊的报告,该报告显示,一个训练和搜索特定神经网... AI君 2年前 (2021-01-21) 29℃ 2喜欢
AI前沿 人工智能已经成为世界的流行语,并且几乎是每个公司数字化转型议程中不可或缺的一部分。AI用户已成为AI工具和服务的生产者。公司领导都提出了关于人工智能的促进,颁布和发展的指令。 全球有4000多家公司从事AI工具,产品和服务的生产。人工智能... AI君 3年前 (2020-07-13) 51℃ 喜欢
AI前沿 本月早些时候,OpenAI宣布已经建成史上最大的人工智能模型,该模型规模惊人,被命名为“GPT-3”,是一项令人印象深刻的技术成就。然而,它却凸显了人工智能领域的一个隐患。 现代人工智能模型需要消耗大量能量,并且这些能量需求正以惊人的速度增... AI君 3年前 (2020-06-23) 51℃ 1喜欢
AI前沿 人脑是一种效率极高的智能来源,但目前的AI还达不到这样的水平。 本月早些时候,OpenAI宣布已经构建起有史以来规模最大的AI模型。这套惊人的模型名为GPT-3,已经成为令人印象深刻的伟大技术成就。但在这辉煌的背后,也凸显出人工智能领域一... AI君 3年前 (2020-06-23) 53℃ 1喜欢
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。