强化学习实操入门随笔

碎碎念:经过思考,打通底层逻辑,我认为未来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.mzph.cn/bicheng/53085.shtml

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

相关文章

AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.08.10-2024.08.15

文章目录~ 1.Towards Flexible Visual Relationship Segmentation2.When Video Coding Meets Multimodal Large Language Models: A Unified Paradigm for Video Coding3.Do Vision-Language Foundational models show Robust Visual Perception?4.IFShip: A Large…

selenium(一)基于java、元素定位

Selenium自动化 Selenium是一个用于Web应用程序的自动化测试工具。它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作。 chrome下载 https://www.google.com/chrome/ 下载的结果是 “ChromeSetup.exe”,双击该文件,安装程序会自…

1、Java简介+DOS命令+java的编译运行(字节码/机器码、JRE/JVM/JDK/JIT的区别)+一个简单的Java程序

前言:本文属于黑马程序员和javaguide的混合笔记,仅作学习分享使用,建议感兴趣的小伙伴去看黑马原视频或javaguide原文。如有侵权,请联系删除。 Java类型: JavaSE 标准版:以前称为J2SE,主要用来…

网站开发:HTML+CSS - 表格与表单

1. 前言​​​​​​​​​​​​​​ 表格与表单在网页开发中非常重要。表格使得用户可以更简洁清晰的去浏览信息。 表单提供了一种在客户端(浏览器)和服务器之间进行数据交互的方式。 以下为其主要作用: 用户交互和数据输入:表…

Android Audio分区——音频分区加载流程(三)

前面文章介绍了车载多区音频基础,并且介绍了音频分区相关类及对应功能,这里我们就来看一下音频分区的解析过程。 一、音频分区加载 音频分区的加载是在 CarAudioService 的初始化函数 init() 流程中进行的。 1、CarAudioService.java 源码位置&#x…

【ragflow】安装2:源码安装依赖

中文文档【ragflow】安装1: docker:失败官方说的成功 docker 安装的启动失败 重新来一遍,不会重新拉取: root@k8s-master-pfsrv:/home/zhangbin/perfwork/rag# cd ragflow/ root@k8s-master-pfsrv:/home/

USB3202N多功能数据采集卡16位模拟量250K频率LabVIEW采集卡

品牌:阿尔泰科技 系列:多功能数据采集卡 概述: USB3202N多功能数据采集卡,LabVIEW无缝连接,提供图形化API函数,提供8通道(RSE、NRSE)、4通道(DIFF)模拟量输…

向量和矩阵学习笔记

向量和矩阵学习笔记 Ps:因为本人实力有限,有一部分可能不太详细,若有补充评论区回复,QWQ 向量 向量的定义 首先,因为我刚刚学到高中的向量,对向量的看法呢就是一条有长度和方向的线,不过这在数学上的定…

C/C++入门案例01

文章目录 写在前面1. 你好,世界! (Hello, World!)2. 基本的算术运算3. 判断奇偶数4. 计算数组元素的和5. 求最大值和最小值6. 简单的计算器7. 字符串反转8. 计算阶乘9. 查找质数10. 冒泡排序 系列推荐 写在前面 以下是10个适合初学者的C语言入门案例&am…

【如何在MacOS升级ruby版本】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

C++期末知识点概述

《大学 C知识点概述》 在大学的计算机课程中,C作为一门重要的编程语言,有着广泛的应用和丰富的知识点。 一、基础语法 数据类型:C包含多种数据类型,如整数类型(int、short、long 等)、浮点类型&#xff…

Unity(2022.3.41LTS) - 音频

目录 一、音频系统概述 二、音频资源类型 三、音频组件 四、音频空间定位 五、音频效果处理 六.音乐框架设计 一、音频系统概述 Unity 的音频系统允许开发者在游戏中添加各种声音效果,包括背景音乐、音效、环境音等。它提供了丰富的功能来控制音频的播放、音…

MIT 6.5940 EfficientML.ai Fall 2023: Lab 1 Pruning

EfficientML.ai Lec 3 - Pruning and Sparsity (Part I) MIT 6.5940, Fall 2023, Zoom 本文是EfficientML.ai Fall 2023课程作业1练习答案,在本次练习里将会对经典的分类神经网络进行剪枝处理,减少模型大小和延迟。The goals of this assignment are as …

python破解[5分钟解决拼多多商家后台字体加密]

可【QQ群】拿源码 进入经营总览想把数据存下来发现返回的json数据部分空白如下 这可怎么办 稳住应该是字体的问题,可能是多多自己实现了某种字体,我们去找他的js 发现如我们所想,进行跟踪,发现的确是在css端进行了字体替换&am…

Servlet, Filter, Listener 启动与执行顺序

Servlet, Filter, Listener 启动与执行顺序 1、启动顺序 **Listener -> Filter -> Servlet**2、记忆口诀3、执行顺序 💖The Begin💖点点关注,收藏不迷路💖 在Java Web应用中,Servlet、Filter和Listener的启动与执…

从0开始深度学习(2)——自动微分

1 微积分 1.1 导数和微分 略 1.2 偏导数 略 1.3 梯度(gradient) 1.3.1 定义 对于一个多变量函数 f ( x 1 , x 2 , … , x n ) f\left(x_{1}, x_{2}, \ldots, x_{n}\right) f(x1​,x2​,…,xn​)其中点 a ( a 1 , a 2 , … , a n ) \mathbf{a}(a_…

【卷起来】VUE3.0教程-01-环境搭建与安装

​分享不易,耗时耗力,麻烦给个不要钱的关注和赞吧 🌲 什么是VUE Vue 是一个框架,也是一个生态。其功能覆盖了大部分前端开发常见的需求。但 Web 世界是十分多样化的,不同的开发者在 Web 上构建的东西可能在形式和规模…

SpringSecurity笔记整理

自定义登录页面 编写登录页面<!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml" xmlns:th"https://www.thymeleaf.org"> <head><title>Please Log In</title> </head> <body> <h1>Please Log …

鸿蒙OpenHarmony、HarmonyOS、HarmonyOS NEXT的区别

鸿蒙OpenHarmony、HarmonyOS、HarmonyOS NEXT的区别 OpenHarmony&#xff1a;开源底层。HarmonyOS&#xff1a;闭源手机系统&#xff0c;兼容安卓生态。HarmonyOS NEXT&#xff1a;纯血鸿蒙&#xff0c;不兼容安卓。 OpenHarmony&#xff08;开源&#xff09; 开源地址&…

Question mutiple pdf‘s using openai, pinecone, langchain

题意&#xff1a;使用 OpenAI、Pinecone 和 LangChain 对多个 PDF 文件进行提问。 问题背景&#xff1a; I am trying to ask questions against a multiple pdf using pinecone and openAI but I dont know how to. 我正在尝试使用 Pinecone 和 OpenAI 对多个 PDF 文件进行提…