强化学习第二步——什么是强化学习(以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任务的第一步定义环境、提取状态、设计动作、构思奖励。