强化学习入门-免模型预测


基本概念

  • 有模型与免模型的区别:
    前者:状态转移概率是已知的(动态规划、世界模型)
    后者:环境未知 (基本的强化学习方法)
  • 预测与控制:
    预测:主要目的是估计或计算环境中的某种期望值
    控制:如何选择动作以达到最高得分

蒙特卡洛估计

个人认为,蒙特卡洛算法的核心思想就是利用抽样获得的大量数据来估计总体
蒙特卡洛算法主要分成两类:
蒙特卡洛方法主要分成两种算法,一种是首次访问蒙特卡洛方法,另外一种是每次访问蒙特卡洛方法。
区别:
前者:对于每个状态,只记录在回合中第一次出现时的回报,忽略后续再次访问同一状态的回报

伪代码

for each episode:
    generate trajectory S₀, A₀, R₁, S₁, A₁, R₂, ..., S_T
    G = 0
    for t from T-1 downto 0:
        G = γG + R_{t+1}  # 计算回报
        if S_t not in S₀, S₁, ..., S_{t-1}:  # 首次访问
            N(S_t) += 1
            V(S_t) += (G - V(S_t)) / N(S_t)  # 增量式更新

伪代码

for each episode:
    generate trajectory S₀, A₀, R₁, S₁, A₁, R₂, ..., S_T
    G = 0
    for t from T-1 downto 0:
        G = γG + R_{t+1}
        N(S_t) += 1  # 每次访问都计数
        V(S_t) += (G - V(S_t)) / N(S_t)

后者:记录每次访问状态时的回报,计算所有访问的回报平均值

时序差分估计

可以把时序差分估计方法理解成一种“边体验边学习”的智能算法。

核心思路:结合两种“学习套路”

  • 它学了蒙特卡洛方法的“从实际经历中学习”:就像你做完一件事,会根据当下得到的反馈(比如奖励)和接下来可能遇到的情况来调整对这件事的判断。
  • 又学了动态规划的“用已有经验推新经验”:比如你知道下一步怎么做更划算,就会用这个判断来优化当前的选择,不用等整件事完全结束再总结。

单步时序差分:走一步看一步的更新

最简单的单步时序差分,就像下棋时走一步后就立刻调整策略:

  • 你走了一步(当前状态),得到了一些奖励(比如吃了对方一个子),然后看对方可能怎么应对(下一状态)。

  • 不用等这盘棋下完,你马上根据“当前奖励( V ( S t ) V(S_{t}) V(St))+对下一步的判断( r t + 1 + γ V ( s t + 1 ) r_{t+1}+\gamma V(s_{t+1}) rt+1+γV(st+1)),更新对“刚才那步棋”的评价。
    V ( s t ) ← V ( s t ) + α [ r t + 1 + γ V ( s t + 1 ) − V ( s t ) ] V(s_t) \leftarrow V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t)] V(st)V(st)+α[rt+1+γV(st+1)V(st)]

  • 这里的“对下一步的判断”其实是还没完全验证的估计值,用这个估计值来更新当前的判断,就叫“自举”——相当于用自己现有的经验(哪怕不完美)来完善自己,不用等所有信息都齐了。

时序差分误差:判断“预估”和“实际”的差距

咱们做判断时,经常会发现“预想的”和“实际发生的”有差距。比如你以为走一步能得10分,结果只得了8分,还差2分,这个差距就是“时序差分误差”。算法会根据这个误差来调整后续的判断,让预估越来越准。公式如下: δ = r t + 1 + γ V ( s t + 1 ) − V ( s t ) \delta = r_{t+1} + \gamma V(s_{t+1}) - V(s_t) δ=rt+1+γV(st+1)V(st)

特殊情况:遇到“终点”怎么办?

如果走到了游戏结束、任务完成的“终止状态”(比如棋下完了,或者到达目的地了),就没有“下一步”了。这时候算法会直接把“下一步的估计值”设为0,只根据当前的奖励来更新对最后一步的评价——就像考试结束了,不用想“接下来考什么”,直接根据这次的得分总结就好。

总的来说,时序差分的核心就是“不等结束,边做边改,用现有估计不断优化”,既比等全部结束再总结(蒙特卡洛)更灵活,又比完全依赖已有固定经验(动态规划)更贴近实际变化。

注:部分信息来自AI
原文:免模型预测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值