强化学习第二步——什么是强化学习(以AI贪吃蛇为例)
1.核心概念学习强化学习首先要理解它的核心模型。你可以把强化学习想象成训练一只小狗坐下小狗尝试各种动作如果它坐下了你就给它骨头奖励如果它乱叫你就没有奖励。久而久之小狗为了得到更多骨头就会学会一听到“坐下”的指令就乖乖坐好。在正式的学术语言中这个过程由六个核心要素组成智能体 (Agent)决策的主体比如小狗或者玩游戏的AI。环境 (Environment)智能体所处的外部世界它会响应智能体的动作比如主人或者游戏程序。状态 (State, S)智能体当前所处的情况或环境的局势比如小狗听到的指令或者棋盘上当前的棋子布局。动作 (Action, A)智能体在特定状态下可以做出的选择比如走哪一步棋或者机器人向左还是向右移动。奖励 (Reward, R)环境给智能体的反馈用来评估上一个动作的好坏可以是正奖励如加分也可以是负奖励如扣分。智能体的终极目标是最大化长期累积奖励。策略 (Policy,π)智能体的“大脑”或“心法”它决定了在某种状态下应该选择什么动作。可以看作是一个从状态到动作的映射关系。2.强化学习与其他机器学习的区别为了让你更清楚它的定位我们把它和另外两种主流的机器学习方法做个对比特性监督学习非监督学习强化学习数据源有标签的数据如猫/狗图片无标签的数据如用户特征通过与环境交互实时产生的数据反馈机制明确的对错告诉你标准答案无反馈自己找数据的内在规律延迟的、试错性的奖励信号只告诉你赚了还是赔了核心目标预测、分类或回归聚类、降维做出连续的最佳决策关键点强化学习最独特的地方在于“试错Trial and Error”和“延迟奖励Delayed Reward”。有时候眼前的动作可能会导致扣分但为了长远能赢下整场比赛这个动作反而是最佳选择比如围棋中的“弃子”。好现在我们来做一个小任务吧思考题如果我们要训练一个AI来玩《贪吃蛇》游戏这个场景里的Agent智能体和Environment环境分别是什么它的State状态可以包含哪些信息你会怎么设计它的Reward奖励机制好让它既能吃到食物又不会撞墙1. 智能体 (Agent) 与 环境 (Environment)你的答案智能体是蛇环境是有食物的界面。完全正确。蛇是做出决策的主体而游戏地图格子、边界、食物位置则是它交互的世界。2. 状态 (State) 的精细化你的答案头的方向蛇的长度离边的距离。点评方向和离边的距离抓得非常准但在实际写代码训练时如果只给这些信息蛇可能会“自己撞死自己”因为随着长度增加它会变成障碍物。进阶补充为了让蛇更聪明通常我们需要给它提供一个周围环境的“雷达”。例如我们可以将状态简化为8个方向前、后、左、右以及4个对角线方向的距离感知到最近墙壁的距离到自己身体的距离到食物的距离以及当前头部的移动方向3. 奖励设计 (Reward Shaping) —— 核心难点你的答案吃到食物加1分撞墙扣10分。点评这是一个非常直观的稀疏奖励Sparse Reward设计。在实际训练中如果只这么设计你会发现蛇在刚开始的几个小时里只会“瞎晃悠”因为地图很大它可能走了一万步才不小心吃到一个食物。进阶优化奖励塑造为了让AI学得更快我们可以给它一些“过程性提示”朝着食物走每走一步如果离食物更近了给一个小奖励如 0.1如果远离了给一个小惩罚如-0.1。无效走位每白走一步没有吃到食物扣极小的分如-0.01逼迫它尽快去找食物而不是在原地转圈圈。撞到自己和撞墙一样扣 10 分。好啦通过贪吃蛇的例子你已经成功用强化学习的视角审视了一个实际问题。这就是我们以后解决任何RL任务的第一步定义环境、提取状态、设计动作、构思奖励。

相关新闻

Uthash常用接口

Uthash常用接口

# uthash 四大核心接口(刷题必背记忆技巧) 前提:哈希结构体必须带 UT_hash_handle hh;,存储 int 类型 key 统一用这组函数。 哈希表头:struct Hash* table NULL; ## 1. HASH_ADD_INT 插入元素 用法:HASH_A…

2026/7/6 1:03:43阅读更多 →
2026最新7款vibe coding学生党平替权威实测入门教程

2026最新7款vibe coding学生党平替权威实测入门教程

一、开篇实战:两天用vibe coding省下3万外包费用我之前从游戏后端转互联网独立开发,公司运营侧长期缺少数据看板工具,线下外包报价3万元起,交付周期至少两周。我当时接触vibe coding开发方式不足一个月,抱着试错心态主…

2026/7/6 1:03:43阅读更多 →
百度翻译 JS 逆向 2024:3步定位 sign 加密函数与 Python execjs 调用实战

百度翻译 JS 逆向 2024:3步定位 sign 加密函数与 Python execjs 调用实战

百度翻译JS逆向2024:3步定位sign加密函数与Python execjs调用实战 在当今数据驱动的开发环境中,掌握JS逆向技术已成为爬虫开发者必备的核心技能之一。百度翻译作为国内领先的翻译服务平台,其接口加密机制不断升级,为开发者带来了新…

2026/7/6 0:58:42阅读更多 →
WSL2 挂载 SMB 网络共享:3种方案对比与 2 个常见报错解决

WSL2 挂载 SMB 网络共享:3种方案对比与 2 个常见报错解决

WSL2 挂载 SMB 网络共享:3种方案对比与 2 个常见报错解决 对于在 Windows Subsystem for Linux 2 (WSL2) 环境下开发的用户来说,访问局域网内的共享文件夹或 NAS 存储是一个常见需求。本文将深入分析三种主流挂载方案的技术细节,并提供两个高…

2026/7/6 1:53:46阅读更多 →
SPSS 与 R 协同 PSM 分析:突破 1:1 限制实现 1:N 匹配的 4 步流程

SPSS 与 R 协同 PSM 分析:突破 1:1 限制实现 1:N 匹配的 4 步流程

SPSS 与 R 协同 PSM 分析:突破 1:1 限制实现 1:N 匹配的 4 步流程1. 理解 PSM 的核心逻辑与跨平台协作价值倾向性评分匹配(Propensity Score Matching, PSM)作为观察性研究中平衡混杂变量的黄金标准,其本质是通过构建一个"虚…

2026/7/6 1:53:46阅读更多 →
MySQL 8.0 Join 算法演进:Hash Join 对比 BNLJ 在 1亿 数据量下的性能跃迁

MySQL 8.0 Join 算法演进:Hash Join 对比 BNLJ 在 1亿 数据量下的性能跃迁

MySQL 8.0 Join 算法演进:Hash Join 对比 BNLJ 在 1亿数据量下的性能跃迁当数据规模突破1亿行时,数据库表连接操作的性能直接决定了业务系统的响应能力。MySQL 8.0引入的Hash Join算法与传统Block Nested-Loop Join(BNLJ)之间究竟…

2026/7/6 1:53:46阅读更多 →
MySQL Join 算法实战:从 10万 行数据实测看 INLJ、BNLJ 与 BKA 性能差异

MySQL Join 算法实战:从 10万 行数据实测看 INLJ、BNLJ 与 BKA 性能差异

MySQL Join 算法性能对决:10万行数据实测与深度调优指南引言在数据库查询优化领域,Join操作堪称性能优化的"分水岭"。当数据量突破10万行门槛时,不同Join算法的性能差异可能达到数量级之别。本文将通过实际测试数据,揭示…

2026/7/6 1:53:46阅读更多 →
SAP CKM3 成本组件分割价格取数:3个核心表CKMLHD/CKMLPRKEPH/CKMLPRKEKO关联逻辑详解

SAP CKM3 成本组件分割价格取数:3个核心表CKMLHD/CKMLPRKEPH/CKMLPRKEKO关联逻辑详解

SAP CKM3成本组件分割价格取数:核心表关联逻辑与实战解析 在SAP产品成本控制模块中,CKM3事务码作为物料成本分析的核心工具,其底层数据架构与取数逻辑直接影响成本分析的准确性与效率。本文将深入剖析CKMLHD、CKMLPRKEPH、CKMLPRKEKO三张关键…

2026/7/6 1:53:46阅读更多 →
高并发秒杀三大核心技术实战

高并发秒杀三大核心技术实战

在构建高并发秒杀系统时,确保系统在高流量冲击下仍能保持高性能、高可用和数据一致性是核心目标。经过对业界主流方案的梳理,可以提炼出三大核心技术支柱:原子性库存扣减、分布式锁防超卖、以及异步消息队列解耦。下面将结合具体技术实现和实…

2026/7/6 1:48:45阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →