
强化学习
CopperDong
纯属巧合
展开
-
知乎《强化学习知识大讲坛》学习笔记
强化学习入门 第一讲 MDPhttps://zhuanlan.zhihu.com/p/25498081强化学习入门 第二讲 基于模型的动态规划方法https://zhuanlan.zhihu.com/p/25580624强化学习入门 第三讲蒙特卡罗方法https://zhuanlan.zhihu.com/p/25743759强化学习入门 第四讲 时间差分法(TD方法)h...转载 2018-08-12 10:23:00 · 901 阅读 · 0 评论 -
强化学习实例4:构建新环境
机器人找金币grid_mdp.pyimport loggingimport numpyimport randomfrom gym import spacesimport gymfrom gym.utils import seedinglogger = logging.getLogger(__name__)class GridEnv(gym.Env): met...原创 2019-06-18 15:11:19 · 1607 阅读 · 0 评论 -
强化学习实例3:Q-Learning和Q-Network
The Frozen Lake environment,有4 x 4网格代表湖面,有16个状态,其中S,H,F和G代表不同的格子块,4个行为(上下左右)S:开始块 F:冰块 H:洞 G:目标块Q-Learning包括Q-table(16x4)和Q-valueimport gymimport numpy as npimport timeenv = gym.mak...原创 2019-06-18 10:32:04 · 907 阅读 · 0 评论 -
强化学习实例10:Q-Learning
SARASA算法:SARSA算法遵从了交互序列,根据下一步的真实行动进行价值估计;另一种TD法,Q-Learning算法没有遵循交互序列,而是在下一时刻选择了使价值最大的行动。这两种算法代表了两种策略评估的方式,分别是On-Policy和Off-Policy。On-Policy对值函数的更新是完全依据交互序列进行的,在计算时认为价值可以直接利用采样的序列估计得到。Off...原创 2019-06-21 16:41:17 · 1077 阅读 · 0 评论 -
强化学习实例9:时序差分法(Temporal Difference)
时序差分法(Temporal Difference,简称TD法),是一种结合了蒙特卡罗法和动态规划法的方法。通过蒙特卡罗法得到通过TD法得到其中称为TD目标TD使用了当前回报和下一时刻的价值估计,所以整体系统没有达到最优,这样的估计是有偏差的,但方差减少。而MC使用完整的采样得到了长期回报值,所以估计偏差小,但方差大。代码如下:# TD 之 SARSA...原创 2019-06-21 15:52:47 · 1689 阅读 · 1 评论 -
强化学习实例8:蒙特卡罗法(monte carlo)
在很多实际问题中,我们无法得到游戏的全貌,也就是说,状态转移矩阵无法获知,这被称为“无模型”问题。Bellman公式,可以通过不断迭代得到状态-行动值函数而在无模型问题中,状态转移概率将无法知晓,于是用最初的累积回报求得看到等号右边的期望,我们很自然地联想到了蒙特卡罗法,它是一种通过随机采样估计期望值的方法,全过程总结如下:(1)让Agent和环境交互后得到交互序列(2...原创 2019-06-21 15:34:50 · 1758 阅读 · 0 评论 -
强化学习实例11:策略梯度法(Policy Gradient)
本实例基于策略梯度的算法来学习“打乒乓球”游戏首先本实例的定义马尔可夫决策过程:状态s:每一时刻的游戏画面 行动a:右边绿色拍,向上或向下 策略:状态为s下,采取行动a的概率强化学习的目标是最大化长期回报期望:其中为策略参数定义目标函数J策略梯度为用Q代替r使用蒙特卡罗法求解使用蒙特卡罗法,方差大。为了模型的稳定,提出Actor-Criti...原创 2019-06-25 11:46:35 · 2755 阅读 · 2 评论 -
强化学习实例7:价值迭代法(value iteration)
策略迭代法,可以进一步优化为最大化价值v# 价值迭代法class ValueIteration(object): def value_iteration(self, agent, max_iter=-1): iteration = 0 while True: iteration += 1 new_v...原创 2019-06-20 16:35:57 · 4208 阅读 · 0 评论 -
强化学习实例6:策略迭代法(policy iteration)
马尔可夫决策过程定义:以上一节中蛇棋游戏为例,状态表示为100个格子,行动表示用哪种骰子,转移模型表示梯子,回报为是否到达终点,策略表示从开始到终点中的所有状态行动链:{(s0,a0), (s1,a1), ...... , (st, at}衡量策略的价值:值函数,有两种:状态值函数和状态-行动值函数累积回报:状态值函数(回报在s状态的期望值):状态-行为函数:上...原创 2019-06-20 16:06:00 · 4240 阅读 · 0 评论 -
强化学习实例2:MDP
红色块移动到黄色,黑色为障碍物马尔科夫链,预测最好的路径,值函数为回报r(reward)和the discounted value of the ending stateSARSA代表state, action, reward, next state和next action。it is known as an own policy Reinforcement Learnin...原创 2019-06-14 18:07:51 · 1829 阅读 · 1 评论 -
强化学习实例1:简单最短路径学习
让程序学习到从O到T最短的路径是一直往右走 O----Timport numpy as npimport pandas as pdimport timenp.random.seed(2)N_STATES = 6 # 假设只有5步远ACTION...原创 2019-06-14 15:25:30 · 4195 阅读 · 1 评论 -
强化学习实例5:构建简单蛇棋环境
蛇棋游戏import numpy as npimport gymfrom gym.spaces import Discreteclass SnakeEnv(gym.Env): SIZE=100 # 格子数 def __init__(self, ladder_num, dices): self.dices = dices # ...原创 2019-06-19 11:53:31 · 775 阅读 · 0 评论 -
强化学习:环境配置windows
1、安装gymhttps://openai.com/pip更改国内镜像源在windows文件管理器中输入%APPDATA%会定位到目录C:\Users\Administrator\AppData\Roaming\,在该目录下新建pip文件夹,在pip文件夹下新建pip.ini文件在新建的pip.ini文件中输入以下内容并保存[global]timeout = 6000...原创 2019-06-13 15:12:33 · 1473 阅读 · 0 评论 -
强化学习实例12:A3C
代码# coding: utf-8import multiprocessingimport threadingimport tensorflow as tfimport numpy as npimport gymimport osimport shutilimport matplotlib.pyplot as pltdef preprocessing_image(obs...原创 2019-07-02 19:00:43 · 529 阅读 · 0 评论