Q-Learning demo

Q-Learning

学习莫烦python

伪代码

1. 随机初始化Q(s, a)#可以为全零阵
2. repeat(for each episode):
3.     初始化s(随机)
4.     repeat(for each step of episode):
5.         选择一个a(有策略,比如epsilon greedy策略)
6.         根据s, a,得到下一个s'
7.         Q(s, a) = (1 - alpha) * Q(s, a) + alpha * {R(s, a) + gamma * max[Q(s', a')]
8.         s = s'
9.    until s 到达目标状态
10.可以选择一个条件,当Q收敛或者多少个episode的时候结束训练

agent在某一个状态的时候,要选择一个行为到达下一个状态,也就是选择一个a,如何选择:
如果每次选择都根据经验来选择,那么会不会落入局部最优解。如果随机选择,会不会导致收敛速度太慢。
一般采用epsilon-greedy策略:
也就是,有1 - epsilonepsilon的概率去随机,的概率凭借经验。

代码:

# coding:utf-8
from __future__ import print_function  # 必须放到开始
import numpy as np
import pandas as pd
import time

# 预设值
N_STATES = 6  # 状态数量
ACTIONS = [
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值