摘要:
一、代码如下: import random import gym import numpy as np import collections from tqdm import tqdm import torch import torch.nn.functional as F import matpl 阅读全文
摘要:
第 7 章 DQN 算法 7.1 简介 在第 5 章讲解的 Q-learning 算法中,我们以矩阵的方式建立了一张存储每个状态下所有动作\(Q\)值的表格。表格中的每一个动作价值\(Q(s,a)\)表示在状态\(s\)下选择动作\(a\)然后继续遵循某一策略预期能够得到的期望回报。然而,这种用表格 阅读全文
摘要:
第 6 章 Dyna-Q 算法 6.1 简介 在强化学习中,“模型”通常指与智能体交互的环境模型,即对环境的状态转移概率和奖励函数进行建模。根据是否具有环境模型,强化学习算法分为两种:基于模型的强化学习(model-based reinforcement learning)和无模型的强化学习(mod 阅读全文
摘要:
1、强化学习介绍 强化学习是指智能体通过与环境进行交互,不断的通过试错,以获得更大的累计奖励为目的,得到更好的策略。强化学习的学习路线比较陡峭,因为涉及到的数学知识更多一些,需要概率论、随机过程的知识。这里通过我自己的一些学习经验以及看过的一些资料,整理了一条逐渐深入的学习路线,可以大幅度提高学习效 阅读全文
摘要:
一、单步sarsa import matplotlib.pyplot as plt import numpy as np from tqdm import tqdm # tqdm是显示循环进度条的库 class CliffWalkingEnv: def __init__(self, ncol, nr 阅读全文
摘要:
第 5 章 时序差分算法 5.1 简介 第 4 章介绍的动态规划算法要求马尔可夫决策过程是已知的,即要求与智能体交互的环境是完全已知的(例如迷宫或者给定规则的网格世界)。在此条件下,智能体其实并不需要和环境真正交互来采样数据,直接用动态规划算法就可以解出最优价值或策略。这就好比对于有监督学习任务,如 阅读全文
摘要:
一、策略迭代 import copy class CliffWalkingEnv: """ 悬崖漫步环境""" def __init__(self, ncol=12, nrow=4): self.ncol = ncol # 定义网格世界的列 self.nrow = nrow # 定义网格世界的行 # 阅读全文
摘要:
第 4 章 动态规划算法 4.1 简介 动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决 阅读全文
摘要:
Typora是一款优秀的Markdown编辑器,它可以让你轻松编写出精美的文档。但是,Typora不再免费,必须付费才能继续使用。那么,是否有办法可以激活Typora呢?答案是肯定的。本文将为您介绍三种激活方法,让您可以继续使用Typora。 方法一:使用免费旧版本,修改注册表延长试用(操作难度较高 阅读全文
摘要:
一、greedy import numpy as np import matplotlib.pyplot as plt class BernoulliBandit: """ 伯努利多臂老胡机,输入K表示拉杆个数 """ def __init__(self, K): self.probs = np.r 阅读全文