强化学习实操入门随笔

news2024/11/13 10:29:46

碎碎念:经过思考,打通底层逻辑,我认为未来ai的功能是在沟通领域代替人,未来人-人模式(媒介是死的语言,比如看古人留下的文字、聊天的暂时不在)会变成人-ai替身-人模式(符合本人想法的“预测个性化语言”)。由于沟通越来越虚拟化和低成本,以及各种模态(比如视频链接)的数字媒介比见面聊天效率更高,所以制作人的各种在虚拟数字空间的“替身”(模仿聊天、总结信息等秘书类事务)是很可能出现的重点问题。


一、先知道是什么

强化学习的目标是通过探索(尝试新动作)和利用(选择已知的最优动作)来学习最优策略,使得在长期内获得的奖励最大化。

智能体/代理(玩家) Agent:执行动作并学习如何优化行为的实体。

环境 Environment, 智能体与之交互并从中学习的世界。

行为 Action a :智能体如何响应环境(一般来说是有限种行为)。所有可能的行为的集合称为 action-space(行为空间)。

状态 State s :环境的当前特征。环境可以处于的所有可能状态的集合称为状态空间。

奖励 Reward r :奖励是环境对智能体的关键反馈。它驱使代理学习并改变其未来的行动。多个时间步长的奖励聚合称为回报。

策略 Policy:代理根据当前状态选择动作的规则或方法,可以是确定性的或随机的。

价值函数 Value Function:用于评估某一状态或状态-动作对的好坏,以帮助智能体决策。

截图来自:【强化学习】一小时完全入门_哔哩哔哩_bilibili

这些或全部或部分的在代码中都会有对应的实体,详见后面

二、有什么可以去做?

(1)训练模型(Agent)

Train a Mario-playing RL Agent — PyTorch Tutorials 2.2.1+cu121 documentation

pytorch官方网站的教程,可以看看这个里面的Agent是怎么构建的,act接口就是一般的step接口。

2024-04-07 23:35:36摘录——

数字实体执行一座城市的所有任务,人工智能可以与数字世界甚至物理世界的一切事物进行交互,不断学习和适应新环境,周围的人对此司空见惯,仿佛一切都理应如此……Agent 可以翻译为“代理”,在 AI 领域有了“智能体“这一含义,是当前人工智能技术的发展方向,它可以代表用户执行任务并做出决策,具有高度的自主性和适应性。

为了驱动 AI Agents 工作流程的重大进展,吴恩达在演讲中提出了四种设计模式:反思、运用工具、规划、多智能体协同。每种设计模式引用了两篇论文,一共八篇。


  “AI 程序员”席卷而来,吴恩达四步设计让 Agent 提前超越 GPT-5-CSDN博客

(2)研究算法(基于数据的、基于规则的)

(3)做平台(Environment)

用copilot可以轻松的生成一个字符界面的游戏吃豆人的代码,并且是带着强化学习基础接口风格(规则?)的代码,还可以框选解释代码,真好用。然后问GPT强化学习接口,出现了大段的切题回答,不由得去想真的是“太阳底下无新事( 《旧约:传道书》第1章9节)”吗?

强化学习环境基础接口介绍:

def __init__(self):
def reset(self):
def step(self, action):
def render(self, mode='human'):
#态势、奖惩反馈、终止信号从上面的step函数获取
next_state, reward, done, _ = env.step(action)

在强化学习(Reinforcement Learning, RL)应用于游戏开发中,通常需要游戏提供一系列接口(API)来与RL算法进行交互。以下是一些常见的接口:

1. 状态接口(State Interface)-条件构设

  • 功能: 该接口用于获取当前游戏的状态,通常是一个多维向量或矩阵,描述了游戏中的重要信息,如棋盘布局、角色位置、资源数量等。
  • 用途: RL算法需要通过该接口了解当前的游戏情境,以便选择下一步动作。

2. 动作接口(Action Interface)-操控

  • 功能: 允许RL算法对游戏做出决策并执行动作,如移动角色、攻击敌人、建造建筑等。
  • 用途: 通过该接口,RL算法能够直接影响游戏的进行,并观察其动作带来的效果。

3. 奖励接口(Reward Interface)-评估

  • 功能: 提供每个动作后游戏给出的即时反馈,通常是一个数值,表示动作的好坏。
  • 用途: 奖励信号是RL算法学习策略的核心依据,帮助算法优化决策。

4. 重置接口(Reset Interface)-导调

  • 功能: 允许重置游戏到初始状态,通常用于在每次训练迭代结束后重新开始游戏。
  • 用途: 在训练过程中,算法会反复探索游戏中的各种可能性,因此需要频繁重置游戏。

5. 结束状态接口(Terminal State Interface)

  • 功能: 检查游戏是否已经结束(如赢得比赛或游戏失败)。
  • 用途: 确定训练过程是否需要结束并重置游戏,以便进行新的训练迭代。

6. 渲染接口(Rendering Interface)-态势显示

  • 功能: 用于显示游戏画面,虽然对算法本身不直接有用,但在调试和可视化时非常重要。
  • 用途: 开发者可以使用该接口监控游戏过程和算法决策,以更好地理解和优化算法。

7. 历史记录接口(History Interface)-回放

  • 功能: 提供先前游戏状态和动作的记录,用于回溯和分析。
  • 用途: 这种记录对于分析算法的学习过程和策略优化非常有帮助。

这些接口使得游戏能够与强化学习算法有效互动,支持算法在游戏环境中不断学习和改进策略。实际应用中,这些接口通常由游戏引擎或自定义的API提供,例如OpenAI Gym、Unity ML-Agents等。

三、哪里算力薅羊毛?

我被网上是算力竞赛弄得对自己2016年买的神舟战神都没信息了,后来跑几个简单的强化学习例子发现除了慢点没啥别的……我的i7-6700HQ还能再战!

蹭算力的话,谷歌的colab不错。

https://colab.research.google.com/

2022年10月学人工智能导论时做实验用的华为云modelarts(学校发的300元额度)

https://console.huaweicloud.com/modelarts


四、配置强化学习环境

Gymnasium Documentation (farama.org)icon-default.png?t=N7T8https://gymnasium.farama.org/Gymnasium是OpenAI Gym库的维护分支,里面有很多的雅达利(Atari)游戏环境,可以作为智能体所要交互的环境。

PS:今天折腾了一天的Bowling这个小游戏,由于gym在0.20.0有重大更新,导致过去的常见的可以复制过来的代码都没法直接用……貌似调用位置也在变,什么AlE之类的也都有改名……调用方法也都有所变化……最好直接找官方说明文档。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上市公司财务数据分析系统

前言 1.拟解决的关键问题或技术: 本研究旨在解决企业在财务管理方面的主要问题,即如何通过对财务数据进行深度挖掘,实现对未来财务趋势的预测和风险的识别。具体地,该研究将重点解决以下问题: 1.构建有效的财务指标体系、设计合理的特征工程和指标构建方法,以充分反映…

Java基于小程序公考学习平台的设计与实现

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

QT实现简易文件夹

使用UI界面实现简易文件夹 1、实现功能 1、双击文件夹&#xff0c;进入文件夹的下一层 2、点击回退按钮、返回上一级 3、如果是文本文件、则调用记事本的程序、显示文本内容 2、widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDir>…

《深度学习》OpenCV 图像边缘检测 算法解析及代码演示

目录 一、图像边缘检测 1、什么是边缘检测 2、常用的边缘检测算法 1&#xff09;Sobel算子 2&#xff09;Scharr 算子 3&#xff09;Canny边缘检测算法 4&#xff09;Laplacian算子 3、边缘检测流程 1&#xff09;预处理 2&#xff09;计算梯度 3&#xff09;非极大值抑制 …

微型直线导轨高精度运行的工作原理

微型导轨是一种用于高精度定位和运动控制的传动装置&#xff0c;常用于微小化、高精密度化的机械设备中&#xff0c;如IC制造设备、半导体设备、高速移载的设备、精密测量、检测仪器、医疗设备、X-Y table&#xff0c;以及高速皮带驱动的设备等小型化设备。 微型导轨的构成相对…

Quartz.Net_持久化

简述 通常而言&#xff0c;Quartz.Net的数据默认是存储在运存中的&#xff0c;换言之&#xff1a;断电即失。所以在默认情况下&#xff0c;当系统重启后&#xff0c;原先的所有任务、触发器、调度器都会失效 为避免上述情况的发生&#xff0c;可以对Quartz.Net进行持久化设置…

支持函数库功能,支持对接豆包、腾讯混元、Amazon Bedrock等模型供应商,MaxKB v1.5.0版本发布

2024年9月2日&#xff0c;MaxKB开源知识库问答系统正式发布v1.5.0版本。 在v1.5.0社区版中&#xff0c;应用编排方面&#xff0c;MaxKB新增函数库功能&#xff0c;支持用户在应用编排时调用函数&#xff1b;模型管理方面&#xff0c;MaxKB新增对豆包、腾讯混元和Amazon Bedroc…

Datawhale AI夏令营 第五期 CV方向 Task2笔记

Task2&#xff1a;建模方案解读与进阶 YOLO介绍 YOLO&#xff08;You Only Look Once&#xff09;是一种流行的目标检测算法&#xff0c;于2015年首次提出 。YOLO的核心思想是将目标检测任务转化为一个回归问题&#xff0c;通过单个卷积神经网络&#xff08;CNN&#xff09;直…

Linux git的基本使用安装提交 和 gdb的使用

目录 安装git 首次使用git的配置 拉取仓库 步骤1&#xff1a;新建仓库 步骤2:复制仓库地址 步骤3&#xff1a;远端仓库拉取到本地 上传代码 常用指令 安装git sudo apt-get install git # Ubuntu/Debian sudo dnf install git # Fedora sudo yum insta…

惠中科技光伏清洗剂:点亮绿色能源未来

在当今全球追求可持续发展的时代&#xff0c;光伏产业作为清洁能源的重要代表&#xff0c;正发挥着日益关键的作用。而在光伏产业的高效运行中&#xff0c;惠中科技的光伏清洗剂犹如一颗璀璨的明珠&#xff0c;为光伏板的清洁与维护贡献着卓越力量。 一、光伏产业的挑战与需求…

SAP CAP(Cloud Application Programming)知识介绍和学习路径

1. 框架简介 1.1 什么是CAP&#xff1f; CAP&#xff08;Cloud Application Programming&#xff09;是SAP推出的一种现代化开发框架&#xff0c;旨在简化和加速云原生应用程序的开发。 CAP框架基于开放标准和技术&#xff0c;如Node.js、Java、OData和SQL&#xff0c;提供了…

删除重复的行

Excel的有7列数字&#xff0c;有些数字整行重复。 ABCDEFG11234567276543213123456741234567511111116111111177777777 要求删掉重复的行。 IJKLMNO1765432127777777 使用 SPL XLL&#xff0c;输入公式&#xff1a; spl("?.group(~).select(~.len()1).conj()",…

Windows、Mac安装配置Nodejs【保姆级教程】

安装配置Nodejs 最近需要使用whistle抓包&#xff0c;发现依赖nodejs环境&#xff0c;同时环境为windows&#xff0c;故在此记录。 1 windows 下载nodejs 官网地址&#xff1a;https://nodejs.org/en/ 下载完成后&#xff0c;双击安装包&#xff0c;开始安装Node.js直接点【…

SOMEIP_ETS_078: Wrong_SOMEIP_Protocol_Version

测试目的&#xff1a; 验证当设备&#xff08;DUT&#xff09;接收到一个包含错误协议版本的SOME/IP请求时&#xff0c;是否能够返回错误消息或忽略该请求。 描述 本测试用例旨在检查DUT在处理一个echoUINT8方法的SOME/IP消息时&#xff0c;如果消息中包含的协议版本不正确&…

ARM体系与架构

硬件基础 NOR Flash 和 NAND Flash异同 NOR&#xff0c;Not OR&#xff0c;逻辑是或非门&#xff1b;NAND&#xff0c;Not AND&#xff0c;逻辑是与非门。 两者都是FALSH芯片&#xff0c;断电不丢失。FLASH只能写0不能写1&#xff0c;所以写前都要先擦除。 NOR FLASH 按照块、…

HarmonyOS开发实战( Beta5版)高负载场景下线程设置防止关键线程被打断

场景介绍 在现代软件开发中&#xff0c;多线程或多进程的并发处理已成为常态。在多线程环境中&#xff0c;不同线程执行的任务具有不同的重要性和紧急程度。在高负载情况下&#xff0c;系统资源&#xff08;如CPU时间&#xff09;变得非常宝贵&#xff0c;此时如果关键线程&am…

开源-基于J2EE分布式架构的会议管理系统,支持会议资源管理,预订会议,冲突检测,提醒与签到

自20世纪末至21世纪初&#xff0c;数字化和互联网技术的迅猛发展彻底改变了工作方式和商业模式。企业迅速采用电子邮件、即时通讯和在线会议等数字工具以提升沟通效率。 在信息爆炸的时代&#xff0c;工作中面临的信息量剧增&#xff0c;而企业对效率和生产力的要求也日益提高…

用canvas 实现一个 图片 object-fit: cover 模式的效果 ,纯js

先看效果&#xff1a;左侧是原生的object-fit: cover img 右侧是canvas 处理之后的 模仿object-fit: cover 的效果&#xff0c;src 是转换之后的base64 地址 可以结合style样式发现右图并没有object-fit: cover&#xff0c;但是效果与左同。 直接贴代码吧 <!DOCTYPE htm…

2022ICPC香港站

K. Maximum GCD 分析&#xff1a;对 n 任意取模的结果只可能是小于 n/2​ 的正整数。一个序列的最大公约数不会超过这个序列的最小值。 如果全部值都大于等于最小值的两倍&#xff08;或等于最小值&#xff09;&#xff0c;则都可以变成最小值。 反之则取最小值/2。 #includ…

Solidworks笔记

目录 一、Solidworks 1.1 特征命令 1.1.1 镜像 1.1.2 扫描 1.2 报错 1.3 &#xff08;零件&#xff09;属性 1.3.1 材料属性 1.3.2 质心 1.3.3 材料库的创建、保存、导入 1.3.4 查询材料参数的网站 1.3.5 编辑零件颜色 1.3.6 几种颜色 1.3.7 转动惯量查看 …