强化学习

一、基本概念

  1. 智能体(agent)
  2. 状态(state)
  3. 行为(action)
  4. 奖励(reward)
  5. 策略(policy)

每一个动作都影响代理将来的状态,通过一个标量的奖励(reward)信号来衡量成功

目标:选择一系列行动来最大化未来的奖励

二、马尔科夫决策

强化学习本身是基于马尔科夫决策过程(MDP),确定性的动态规划相结合的产物,确定性相结合的产物,也称为马尔科夫型随机动态规划。其本质就是在某种状态下获取某种动作来获得最优策略的一种模型。MDP假设,每一个动作都是都是由完全的环境决定,只要有一个初始状态,后继状态就是全部确定的。

1.马尔科夫决策要求:

  • 能够检测到理想的状态
  • 可以多是尝试
  • 系统的下个状态只与当前状态信息有关,而与更早之前的状态无关,在决策过程中还和当前采取的动作有关

2.马尔科夫决策过程由5个元素构成:
S:表示状态集(states)

A:表示一组动作(actions)

P:表示状态转移概率 ???表示在当前s ∈S状态下,经过a ∈A作用后,会转移到的其他状态的概率分布情况 在状态s下执行动作a,转移到s’的概率可以表示为p(s’|s,a)

R: 奖励函数(reward function)表示 agent 采取某个动作后的即时奖励

 

y:折扣系数意味着当下的 reward 比未来反馈的 reward 更重要

三、Bellman方程(Bellman Equation):当前状态的价值和下一步的价值及当前的奖励(Reward)有关
价值函数分解为当前的奖励和下一步的价值两部分

四、Q-Learning(Q学习)

Q学习,一种基于贝尔曼方程的动态规划的算法,同时也是现在非常流行的一种强化学习方法

  • Q-Learning的核心是Q-table,Q-table的行列分别state和action的值

其中s,a表示当前的状态和行为,表示s的下一个状态和行为,学习参数r(gamma)为满足0=<r<=1的常数,如果r(gamma)接近0,表示agent倾向于只考虑立即获得回报值,如果r(gamma)接近1,agent将以更大的权重去考虑未来

回报值,愿意将回报延后

  • 公式Q(s,a)表示为当前s下采取a后获取的即时r(奖励)加上折价r(gamma)后的下一个状态最大的reward
  • 调Q矩阵算法
  1. 设置当前状态=起始状态
  2. 从当前状态开始,找到最高Q值动作
  3. 设置当前状态=下一个状态(在步骤2中找到)
  4. 重复2和3步骤直到当前状态=目标状态

其中R矩阵为我们一开始可以把状态和行动映射到奖励表或者回报表reward table,“matrix R”,矩阵Q被初始化为0,每一个场景episode

下面例子手工计算Q-table

  1. 外循环模拟次数num_episodes
  2.  内循环每次模拟的最大步数num_steps
  3. 根据当前的state和q-table选择action(可加入随机性)
  4. 根据当前的state和action获得下一步的state和reward
  5. 更新Q表:Q(state,action)=Q(state,action)+alpha*(R(state,action)+Gamma*Max[Q(nextstate,all action)]-Q(state,action))

     以上第5步的公式,为了手工推导,我们把alpha学习率这个超参数设置为1,公式变为

Q(state,action)=R(state,action)+Gamma*Max[Q(nextstate,all action)]

此外如果:R(state,action)=0则公式变为如下:(例如玩游戏在游戏没有取得胜利之前全部设置为0)

Q(state,action)=Q(state,action)+alpha*(Gamma*Max[Q(nextstate,all action)]-Q(state,action))

我们也可以完成一个场景后前向更新Q值

upd_pre_state_Q如下:

Qtable(prestate,preaction)=Q(prestate,preaction)+alpha*(Gamma*Max[Q(state_current,all action)]-Q(prestate,preaction))

 

           

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值