强化学习第一步:Q_learning 算法,Q现实与Q估计分不清楚?我来说说我的理解

Q_learning 算法,Q现实与Q估计分不清楚

Q_learning 算法的一些简介

是一种与模型无关的强化学习算法,直接优化一个可迭代计算的Q函数。其他的算法思想很多博客都有写过,在此我就不再赘述啦,值得注意的是他是一种离线学习(off-policy)

公式

他所利用的公式呢主要有:

  1. 贝尔曼方程 :在这里Bellman方程实际上就是价值动作函数的转换关系(我就不推到啦)
  2. 时间差分法 ;时间差分法也就是 Q的更新函数
    间差分方法结合了蒙特卡罗的采样方法和动态规划方法的bootstrapping(利用后继状态的值函数估计当前值函数)使得他可以适用于model-free的算法并且是单步更新,速度更快。值函数计算方式如下:
    在这里插入图片描述

这就是TD目标,对应是Q函数中的Q现实,在这里插入图片描述,而整个括号里面的就是是 TD偏差。

Q现实与Q估计

我们先来看看Q_learning的更新函数:
在这里插入图片描述
当智能体执行一步后从状态S1转移至S2,他会根据 Q表判断在S2执行下一步中最大的奖励再乘以一个衰减值,那么这一部分加上当前奖励r,为什么就是S1的Q现实奖励了呢?

其实这类似于一个循环,因为想要知道S1的奖励,我们按这种思想又要知道S2的最大奖励乘以衰减值,那么想要知道S2的奖励,我们按这种思想又要知道S3的最大奖励乘以衰减值等等等等
这就是教程中出现的一个公式的由来
在这里插入图片描述
所以从长远看,在这里插入图片描述就是实际获得的实实在在奖励,而Q(s,a)只是在执行某步后对未来奖励的猜测

————————————————

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Q-learning算法是一种强化学习算法,用于求解马尔可夫决策过程(MDP)中的最优策略。它通过学习一个动作函数(Q函数),来使智能体在环境中选择最优的行动。 在Matlab中实现Q-learning算法的步骤如下: 1. 初始化Q函数:创建一个大小为(状态数,动作数)的矩阵Q,并将其初始化为0或者随机。 2. 设置环境和智能体的初始状态。 3. 选择行动:根据当前状态和Q函数,选择一个行动。可以使用ε-greedy策略,在一定概率下选择探索行动,而在剩下的概率下选择利用已知的最优行动。 4. 执行行动并观察奖励和下一个状态。 5. 更新Q函数:使用Q-learning更新公式,将当前状态行动对的Q进行更新。公式为:Q(state, action) = Q(state, action) + learning_rate * (reward + discount_factor * max(Q(next_state, :)) - Q(state, action)) 6. 将下一个状态变为当前状态,重复第3-5步,直到达到终止状态。 7. 重复多次以上步骤,直到Q函数收敛。 在步骤5中,学习速率(learning_rate)和折扣因子(discount_factor)是Q-learning算法中的两个重要参数。学习速率控制了每次更新Q时,新旧之间的权重;折扣因子则决定了对未来奖励的重视程度,如果折扣因子接近1,则对未来奖励更加看重。 通过上述步骤,我们可以在Matlab中实现Q-learning算法,并通过迭代多次优化Q函数,得到最优的行动策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值