当前位置: 首页 > news >正文

深度强化学习之前:强化学习如何记录策略与价值?

提到强化学习,很多人会立刻想到 AlphaGo、自动驾驶这些 “高大上” 的应用 —— 它们往往与深度学习紧密绑定,通过复杂的神经网络让智能体在高维环境中自主决策。但你有没有想过:在深度学习与强化学习 “联姻” 之前,强化学习是如何工作的?那时的智能体又是如何记录自己的行动策略和价值判断的?

今天我们就来聊聊这个 “前深度学习时代” 的强化学习技术 —— 它们虽然简单,却是现代深度强化学习的基础。

强化学习的核心:记录 “状态 - 动作” 的智慧

强化学习的核心逻辑很简单:智能体在环境中通过 “试错” 学习,不断优化从 “状态” 到 “动作” 的映射(即策略),同时评估每个 “状态 - 动作” 组合的长期价值(即价值函数)。

在深度学习出现之前,受限于计算能力和算法设计,强化学习主要处理小规模、离散的状态与动作空间。那时没有神经网络帮忙 “自动提取特征”,人们只能通过两种朴素却有效的方式记录策略与价值:表格(Table)线性函数近似

一、表格方法:用 “查表” 解决小空间问题

如果环境的状态(S)和动作(A)都是离散且数量极少的,那么最简单直接的方式就是 —— 用表格 “硬存” 所有可能的映射关系。

1. 价值表格:Q-table 的朴素智慧

最经典的就是 Q-learning 中的 “Q-table”。它本质是一个二维表格:

  • 行:对应环境中的每一个状态(s ∈ S)

  • 列:对应智能体可执行的每一个动作(a ∈ A)

  • 单元格 Q (s,a):表示 “在状态 s 下执行动作 a,能获得的长期累积奖励”

举个例子:在一个 3×3 的网格世界中,智能体的状态是它的位置(共 9 种),动作是 “上下左右”(共 4 种)。此时 Q-table 就是一个 9×4 的表格,每个单元格直接存储 “在(x,y)位置选择‘向上’动作的价值”。

智能体学习的过程,就是不断更新表格中每个 Q (s,a) 的值:通过试错获取即时奖励,再用 “贝尔曼方程” 迭代优化长期价值。决策时,只需在当前状态对应的行中,选择 Q 值最大的动作即可(即 “贪婪策略”)。

2. 策略表格:直接定义行为概率

除了记录价值,也可以直接用表格记录策略 —— 即 “在状态 s 下选择动作 a 的概率”,记为 π(a|s)。

例如在围棋的简化版游戏中(假设只有 10 种可能的棋盘状态,每种状态有 5 种可行落子),策略表格就是 10×5 的矩阵,每个单元格存储 “在状态 s 下选择动作 a 的概率”。智能体决策时,直接根据表格中的概率分布随机选动作即可。

表格方法的优势:直观易懂,更新规则简单,在极小空间中收敛稳定。

适用场景:如网格导航、简单博弈(如井字棋)等状态 / 动作数量不超过 1000 的场景。

二、线性函数近似:用 “特征组合” 突破小空间限制

当状态或动作空间稍大(比如状态数达到 10000),表格就会面临 “维度爆炸” 问题 —— 表格规模会随状态数呈指数增长,存储和计算都难以承受。这时,“线性函数近似” 就成了更实用的选择。

核心思路:用 “人工特征 + 线性公式” 替代表格

线性函数近似的本质是:不直接存储每个(s,a)的价值 / 策略,而是用一组可学习的参数,通过 “特征组合” 计算出价值 / 策略

具体来说,我们需要:

  1. 人工设计特征:从状态 s 和动作 a 中提取关键信息(φ(s,a))。例如在机器人导航中,特征可以是 “与目标的距离”“当前方向是否朝向目标” 等。

  2. 线性组合:用参数 w 对特征进行加权求和,得到价值或策略:

  • 价值函数:Q (s,a; w) = w₁×φ₁ + w₂×φ₂ + … + wₙ×φₙ(即 w 与 φ 的内积)

  • 策略函数:π(a|s; w) = softmax (w・φ(s,a))(通过 softmax 将线性输出转为概率)

例子:用线性函数近似导航机器人

假设机器人的状态是(自身坐标 x, y,目标坐标 tx, ty),动作是 “前进、左转、右转”。我们可以设计 3 个特征:

  • φ₁ = 距离目标的直线距离(√[(x-tx)²+(y-ty)²])

  • φ₂ = 当前方向与目标方向的夹角(0~180 度)

  • φ₃ = 是否在障碍物附近(0 或 1)

然后用 Q (s,a; w) = w₁×φ₁ + w₂×φ₂ + w₃×φ₃ 来估计 “在状态 s 下执行动作 a 的价值”。智能体学习的过程,就是不断调整参数 w,让估计值更接近真实奖励。

线性方法的优势:通过特征压缩维度,能处理比表格更大的空间(状态数可达数万)。

适用场景:如简单机器人控制、低维离散游戏等可人工提取有效特征的场景。

局限性:为什么需要深度学习?

表格和线性函数近似虽然有效,但有一个致命缺陷 ——严重依赖人工设计

  1. 表格方法:仅适用于极小的离散空间。如果状态是连续的(如机器人关节角度 0~360 度)或高维的(如 100×100 的图像),表格根本无法存储(仅 100 维状态就有无限种可能)。

  2. 线性函数近似:依赖人工设计特征。对于复杂环境(如 Atari 游戏画面、自然语言交互),人类很难穷尽所有关键特征。例如玩《星际争霸》时,你无法用几个简单特征描述 “战场局势”。

而深度学习的出现,恰好解决了这个问题:神经网络可以自动从高维、连续的原始数据中提取特征,无需人工干预。例如,用卷积神经网络(CNN)处理游戏画面,用循环神经网络(RNN)处理时序状态 —— 这才有了 AlphaGo、自动驾驶等复杂应用。

总结:朴素方法的价值

表格和线性函数近似虽然简单,却是强化学习发展的重要基石。它们揭示了强化学习的核心逻辑 ——“通过状态 - 动作映射与价值估计优化决策”,而深度学习只是用更强大的 “特征提取工具” 扩展了其适用范围。

了解这些 “前深度学习时代” 的技术,不仅能帮我们理解强化学习的本质,更能让我们看清:任何复杂技术都是从简单方法逐步演化而来的。下次再听到 “深度强化学习” 时,或许你会想起:它的背后,是一个个朴素的表格和线性公式打下的基础。

(注:文档部分内容可能由 AI 生成)

http://www.dtcms.com/a/338393.html

相关文章:

  • Java面试题储备14: 使用aop实现全局日志打印
  • Nodejs学习
  • 【SkyWalking】单节点安装
  • Linux命令大全-rmdir命令
  • Java中的 “128陷阱“
  • vue从入门到精通:轻松搭建第一个vue项目
  • go语言条件语if …else语句
  • rem 响应式布局( rem 详解)
  • 鼠标右键没有“通过VSCode打开文件夹”
  • FreeRTOS【3-1】创建第一个多任务程序复习笔记
  • STM32驱动SG90舵机全解析:从PWM原理到多舵机协同控制
  • Sring框架-IOC篇
  • ​​Java核心知识体系与集合扩容机制深度解析​
  • JavaSE高级-02
  • JDBC的使用
  • 【Python】Python Socket 网络编程详解:从基础到实践​
  • Street Crafter 阅读笔记
  • IDEA创建项目
  • MYSQL中读提交的理解
  • MySQL新手教学
  • lesson41:MySQL数据库进阶实战:视图、函数与存储引擎全解析
  • springBoot启动报错问题汇总
  • OVS:ovn是如何支持组播的?
  • LwIP 核心流程总结
  • wishbone总线
  • thinkphp8:一、环境准备
  • c++26新功能—可观测检查点
  • torch.nn.Conv1d详解
  • C++最小生成树
  • 高等数学 8.5 曲面及其方程