博主头像

基于神经网络的强化学习:核心概念

外来客 • 2026-08-27 03:13:18

分享
𝕏 f
声明:本文为对公开内容的摘要整理, 未经本站独立核实,可能与原内容存在出入,不代表本站立场、观点或建议; 观点与版权归原作者及原平台所有。 如涉及版权问题,请联系我们,核实后立即删除。 [ 免责声明 ]

(原标题:Reinforcement Learning with Neural Networks: Essential Concepts)

🧠 强化学习核心机制

  • 适用场景:当无法预先知道理想输出值(目标值)时,传统反向传播无法计算误差和导数,此时需使用强化学习。
  • 核心算法:视频聚焦于“策略梯度”(Policy Gradients)算法,通过“猜测”理想值来训练神经网络。
  • 基本流程
  1. 神经网络根据输入(如饥饿程度)输出概率分布。
  2. 基于概率随机选择一个动作(如去哪家店)。
  3. 猜测:假设刚才选择的动作是“正确”的,从而设定理想输出值(例如,若选了 Norm,则假设 Norm 的概率应为 1.0,Squatch 为 0.0)。
  4. 基于这个猜测的理想值与实际网络输出值之间的差异,计算关于参数(如偏置 bias)的导数。
  5. 根据实际结果确定奖励(Reward)。
  6. 将导数乘以奖励,得到更新后的导数。
  7. 利用梯度下降法更新参数。

🍟 案例演示:选择薯条店

  • 场景设定:在 Squatch's Fry Shack 和 Norm's Fry Hut 之间选择,输入为饥饿程度(0.0 到 1.0),输出为去 Norm 的概率 $P_{norm}$。
  • 初始状态:饥饿程度为 0.0(不饿),初始偏置为 0.0,网络输出 $P_{norm} = 0.5$,$P_{squatch} = 0.5$。
  • 第一次迭代
  • 随机选择:随机数 0.2 落在 Squatch 区域,选择去 Squatch。
  • 猜测:假设去 Squatch 是正确的,理想 $P_{squatch}=1.0$,$P_{norm}=0.0$。
  • 导数计算:基于猜测计算出的导数为 0.5。
  • 奖励判定:Squatch 给了少量薯条,因为不饿,这是好结果,奖励设为 1.0。
  • 参数更新:更新导数 = $0.5 \times 1.0 = 0.5$。学习率设为 1.0,步长为 0.5。新偏置 = $0.0 - 0.5 = -0.5$。
  • 结果:再次输入 0.0,$P_{norm}$ 降为 0.4,$P_{squatch}$ 升为 0.6。
  • 第二次迭代
  • 随机选择:随机数 0.9 落在 Norm 区域,选择去 Norm。
  • 猜测:假设去 Norm 是正确的,理想 $P_{norm}=1.0$。
  • 导数计算:基于猜测计算出的导数为 -0.6。
  • 奖励判定:Norm 给了大量薯条,但不饿,这是坏结果,奖励设为 -1.0。
  • 参数更新:更新导数 = $-0.6 \times (-1.0) = 0.6$。步长为 0.6。新偏置 = $-0.5 - 0.6 = -1.1$。
  • 结果:再次输入 0.0,$P_{norm}$ 进一步降为 0.2。

⚖️ 奖励与导数的关系

  • 方向修正机制
  • 若猜测正确(奖励为正),导数方向不变,参数向正确方向移动。
  • 若猜测错误(奖励为负),导数方向反转,参数向相反方向移动,从而纠正错误。
  • 奖励幅度影响步长
  • 奖励绝对值越大,更新后的导数绝对值越大,参数更新的步长越大。
  • 例如,若奖励为 2.0,步长将是奖励为 1.0 时的两倍。
  • 关键逻辑:通过“猜测”生成导数,通过“奖励”校正导数的方向和幅度,最终实现参数优化。

📉 训练收敛与最终结论

  • 训练过程:使用 0 到 1 之间的各种饥饿程度值进行多次迭代更新。
  • 收敛状态:经过大量更新后,偏置值稳定在 -10 左右。
  • 最终行为
  • 当饥饿程度为 0.0(不饿)时,$P_{norm} \approx 0$,总是选择 Squatch(因为 Squatch 通常给少量薯条,适合不饿的人)。
  • 当饥饿程度为 1.0(很饿)时,$P_{norm} \approx 1$,总是选择 Norm(因为 Norm 通常给大量薯条,适合很饿的人)。
  • 核心优势:强化学习允许在缺乏预先标注的理想输出值的情况下,通过与环境交互(获取奖励)来优化神经网络参数。

0 条评论

发表评论

请先 登录 后参与讨论。