强化学习的数学原理(二):贝尔曼公式
强化学习核心:贝尔曼方程详解
在强化学习(Reinforcement Learning)中,我们的目标是让智能体(Agent)学会如何在一个环境中采取行动,以最大化累积奖励。为了评估一个策略(Policy)的好坏,我们需要一个标准来衡量在某个状态或采取某个动作后,未来可能获得的奖励总和。价值函数(Value Function)应运而生,而贝尔曼方程(Bellman Equation)则是连接价值函数的核心桥梁。
在强化学习(Reinforcement Learning)中,我们的目标是让智能体(Agent)学会如何在一个环境中采取行动,以最大化累积奖励。为了评估一个策略(Policy)的好坏,我们需要一个标准来衡量在某个状态或采取某个动作后,未来可能获得的奖励总和。价值函数(Value Function)应运而生,而贝尔曼方程(Bellman Equation)则是连接价值函数的核心桥梁。
1. 单步过程 (A single step process) $$S_t \xrightarrow{A_t} R_{t+1}, S_{t+1}$$
此过程由以下概率分布所决定:
2. 多步轨迹 (Multi-step trajectory) $$S_t \xrightarrow{A_t} R_{t+1}, S_{t+1} \xrightarrow{A_{t+1}} R_{t+2}, S_{t+2} \xrightarrow{A_{t+2}} \dots$$
State (状态)
Action (动作)
PPO(Proximal Policy Optimization,近端策略优化) 算法是深度强化学习里非常重要的一类 策略梯度(Policy Gradient) 方法,被广泛应用于游戏智能体、机器人控制等场景。
Go 没有类(class),但它依然支持 封装、继承(组合)、多态 这些面向对象思想,只是实现方式和传统语言(Java/C++/Python)不同。
Go 用 struct 表示对象的数据。
在所有实际项目中,几乎所有业务实体都要用 struct。
Go 是一门 静态类型语言,所有变量在 编译期 必须有确定的类型(可推断)。Go 提供了多种声明方式,既保持了静态语言的安全性,又在语法上简洁。
var 声明var name type
var name type = value
var name = value // 类型自动推断示例: