强化学习笔记
文章平均质量分 78
强化学习笔记
广告与算法
广告算法工程师,写些互联网广告的那些事儿
展开
-
深度强化学习-环境准备
安装git查看python版本安装pip mac里面python自带easy_install的,最快的应该就是在terminal里面sudo easy_install pip了,网络好几秒就ok。运行完可以用pip help测试一下是否安装成功,成功安装后,直接pip install numpy或者其他包就可以了。ps:用sudo的时候需要输入密码,这个密码是你自己电脑的密码,输入的时候采...原创 2018-03-06 17:17:42 · 1041 阅读 · 0 评论 -
【强化学习笔记】1.绪论
【深入浅出强化学习原理入门学习笔记】1.绪论最近看文章,看到了阿里巴巴搜索推荐团队已经在商品的排序中开始使用强化学习了,并且取得了不错的效果。因此感觉有必要学习一下,买了深入浅出强化学习原理入门这本书,发现真心不错,就想把从中学到的东西做一下笔记。这是一本什么书 介绍强化学习的完全教程强化学习解决什么问题 智能决策问题,确切的说是序贯决策问题,就是需要连续不断做出决策才能实现最终目...原创 2018-03-06 19:18:20 · 694 阅读 · 3 评论 -
【强化学习笔记】2 马尔可夫决策过程
【深入浅出强化学习原理入门学习笔记】2.马尔可夫决策过程马尔科夫性马尔科夫性{\color{red}{马尔科夫性}}:P[St+1|St]=P[St+1|S1,S2,S3,...,St]P[St+1|St]=P[St+1|S1,S2,S3,...,St]P \big[S_{t+1}|S_t\big]=P\big[S_{t+1}|S_1,S_2,S_3,...,S_t\big] 即系统的下一个状...原创 2018-03-06 20:09:35 · 983 阅读 · 0 评论 -
【强化学习笔记】3.1 基于模型的动态规划方法
【深入浅出强化学习原理入门学习笔记】3.基于模型的动态规划方法首先解释一下什么是有模型和无模型,马尔科夫决策过程用元组表示是(S,A,P,R,γ)(S,A,P,R,γ)\big(S, A, P, R, \gamma\big), SSS为有限状态集, AAA为有限动作集,PPP是状态转移概率(包含动作),RRR为回报函数,γγ\gamma为回报折扣因子。如果其中的PPP,RRR不知道的话,就是...原创 2018-03-06 23:11:04 · 2222 阅读 · 0 评论 -
【强化学习笔记】4.1 无模型的强化学习方法-蒙特卡罗算法
【深入浅出强化学习原理入门学习笔记】4.无模型的强化学习方法-蒙特卡罗算法再解释一下什么是无模型?无模型就是状态转移函数,回报函数不知道的情况。 在基于模型的动态规划方法中是基于模型的,包括策略迭代法和值函数迭代法,可以统一到广义策略迭代法,即先进行策略评估(计算值函数),然后基于基函数做策略改善。状态值函数和状态-行为值函数的本质是期望,之前动态规划的方法可以通过模型计算期望,在无模型...原创 2018-03-07 13:59:01 · 3359 阅读 · 1 评论 -
【强化学习笔记】5.1 无模型的强化学习方法-时间差分算法
【深入浅出强化学习原理入门学习笔记】5.无模型的强化学习方法-时间差分算法在无模型的强化学习方法-蒙特卡罗算法中介绍了蒙特卡罗算法是利用经验平均估计状态值函数,存在一个问题是经验平均要到一次实验结束后才出现,学习速度慢,学习效率不高。重新看一下在蒙特卡罗算法中状态值函数的更新方式 vk(s)=vk−1(s)+1k(Gk(s)−vk−1)vk(s)=vk−1(s)+1k(Gk(s)−vk−1)...原创 2018-03-07 16:55:52 · 3015 阅读 · 0 评论 -
【强化学习笔记】3.2 基于模型的策略迭代方法编程实现
待更原创 2018-06-04 17:27:10 · 1617 阅读 · 3 评论 -
【强化学习笔记】3.3 基于模型的值迭代方法编程实现
重新回顾一下值迭代算法(原理见3.1 基于模型的动态规划方法): 进行策略改善之前不一定要等到策略值函数收敛,可以在评估一次后就进行策略改善,迭代的终止条件是值函数不再发生变化(就是每个状态下的值函数不再发生变化)。 (1)初始化状态值函数和状态对应的动作(初始化可以采用随机策略,即随机选择状态下的动作) (2)遍历状态下的动作,选出收益最大的动作,作为状态对应的最终动作(贪心策略),更新状...原创 2018-06-06 10:06:42 · 1340 阅读 · 0 评论 -
【强化学习笔记】4.3 无模型的强化学习方法-蒙特卡罗算法与重要性采样
异策略与重要性采样因为异策略中的行动策略和目标策略不一样,也就是说行动策略产生的数据分布与目标策略的数据分布存在偏差,即即行动策略的轨迹概率分布和改善策略的轨迹概率分布不一样,因此在使用数据进行目标策略评估的时候需要考虑该影响,常用的方法是重要性采样。 重要性采样 ...原创 2018-06-08 14:55:18 · 2624 阅读 · 1 评论 -
【强化学习笔记】4.2 无模型的强化学习方法-蒙特卡罗算法编程实现
本文给出基于蒙特卡洛的强化学习方法(随机策略计算状态值函数)和基于蒙特卡洛的强化学习方法(ε−greedy策略计算状态行为值函数)两种方法的编程实现。 问题模型是迷宫问题。 基于蒙特卡洛的强化学习方法(随机策略计算状态值函数)#!/usr/bin/env python# -*- coding:utf-8 -*-#import gymimport random#import...原创 2018-06-11 16:14:26 · 2520 阅读 · 2 评论 -
【强化学习笔记】4.4 无模型的强化学习方法-蒙特卡罗算法与重要性采样代码实现
原理部分请参见【强化学习笔记】4.3 无模型的强化学习方法-蒙特卡罗算法与重要性采样原创 2018-06-11 17:26:59 · 1428 阅读 · 0 评论 -
【强化学习笔记】5.2 无模型的强化学习方法-时间差分之Sarsa算法代码实现
时间差分之Sarsa算法代码实现 原理见【强化学习笔记】5.1 无模型的强化学习方法-时间差分算法原创 2018-06-11 20:12:34 · 558 阅读 · 0 评论 -
【强化学习笔记】5.3 无模型的强化学习方法-时间差分之Q_learning算法代码实现
时间差分之Sarsa算法代码实现 原理见【强化学习笔记】5.1 无模型的强化学习方法-时间差分算法#!/usr/bin/env python# -*- coding:utf-8 -*-#import gymimport randomimport numpy as npclass GriDMdp: def __init__(s): s.gamma...原创 2018-06-11 20:22:49 · 995 阅读 · 0 评论 -
【强化学习笔记】6.1 基于值函数逼近的强化学习方法
值函数动态规划,蒙特卡洛和时间差分的强化学习,均遵循基本的步骤:先评估值函数,然后根据值函数改进策略。之前介绍的方法也有一个前提条件即状态和行为是离散的,状态空间和行为空间有限,状态值函数为一个索引,状态-行为值函数为二维表格,因此也被成为表格型强化学习。如果状态或者状态-行为的维度多大,比如状态为连续空间,那么就需要考虑逼近值函数了,之后仍然采用策略迭代或者值迭代的方法进行强化学...原创 2018-06-11 23:46:47 · 2614 阅读 · 0 评论 -
【强化学习笔记】6.2 基于值函数逼近的强化学习方法-蒙特卡洛线性逼近代码实现
基于值函数逼近的强化学习方法-蒙特卡洛线性逼近原理见【强化学习笔记】6.1 基于值函数逼近的强化学习方法。针对一个迷宫问题,设计蒙特卡洛线性逼近算法。 迷宫图示见下图,其中红色部分为障碍物,绿色部分为出口: 使用的模型是:线性模型 输入是状态的特征,这里是25维的one-hot编码 输出是动作对应的4维数组 使用tensorflow进行SDG训练。 (踩过的坑:输入输出设计...原创 2018-06-15 10:42:53 · 1582 阅读 · 1 评论 -
【强化学习笔记】6.3 基于值函数逼近的强化学习方法-TD Sarsa算法线性逼近代码实现
基于值函数逼近的强化学习方法-TD Sarsa算法线性逼近原理见【强化学习笔记】6.1 基于值函数逼近的强化学习方法待更原创 2018-06-15 11:19:12 · 1419 阅读 · 2 评论 -
【强化学习笔记】6.4 基于值函数逼近的强化学习方法-TD Q-learning线性逼近代码实现
基于值函数逼近的强化学习方法-TD Sarsa算法线性逼近原理见【强化学习笔记】6.1 基于值函数逼近的强化学习方法针对一个迷宫问题,设计TD Q-learning线性逼近算法(异策略)。 迷宫图示见下图,其中红色部分为障碍物,绿色部分为出口: 使用的模型是:线性模型 输入是状态的特征,这里是25维的one-hot编码 输出是动作对应的4维数组 使用tensorflow进行S...原创 2018-06-19 19:10:26 · 2362 阅读 · 0 评论 -
【强化学习笔记】6.5 基于值函数逼近的强化学习方法-TD Q-learning非线性逼近代码实现
基于值函数逼近的强化学习方法-TD Q-learning非线性逼近原理见【强化学习笔记】6.1 基于值函数逼近的强化学习方法针对一个迷宫问题,设计TD Q-learning非线性逼近算法(异策略)。 迷宫图示见下图,其中红色部分为障碍物,绿色部分为出口: 使用的模型是:非线性模型(两层神经网络) 输入是状态的特征,这里是25维的one-hot编码 输出是动作对应的4维数组 使...原创 2018-06-21 18:10:50 · 1771 阅读 · 0 评论 -
【强化学习笔记】6.7 基于值函数逼近的强化学习方法-深度强化学习网络(DQN)
深度强化学习网络(DQN)深度强化学习网络(DQN)是一种基于值函数逼近的强化学习方法,是在Q_learning基础上改进的,主要的改进有三个:(1)利用深度卷积神经网络逼近行为值函数,DQN使用的网络结构为三个卷积层和两个全连接层,输入是棋盘图像,输出是动作对应的概率。 (2)利用经验回放(均匀采样)训练强化学习的学习过程,通过对历史数据的均匀采样,实现数据的历史回放,打破采集...原创 2018-06-28 23:49:29 · 2893 阅读 · 1 评论 -
【强化学习笔记】6.6 基于值函数逼近的强化学习方法-TD Q-learning非线性逼近softmax代码实现
基于值函数逼近的强化学习方法-TD Q-learning非线性逼近原理见【强化学习笔记】6.1 基于值函数逼近的强化学习方法针对一个迷宫问题,设计TD Q-learning非线性逼近算法(异策略)。 迷宫图示见下图,其中红色部分为障碍物,绿色部分为出口: 使用的模型是:非线性模型(两层神经网络) 输入是状态的特征,这里是25维的one-hot编码 输出是动作对应的4维数组 ...原创 2018-06-30 15:31:19 · 1195 阅读 · 0 评论 -
强化学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
转载:http://blog.csdn.net/jinzhuojun/article/details/77144590和其它的机器学习方向一样,强化学习(Reinforcement Learning)也有一些经典的实验场景,像Mountain-Car,Cart-Pole等。话说很久以前,因为没有统一的开发测试平台,大家都会自己实现,有用C/C++的,有用Python,还有用Matlab的。所以...转载 2018-07-12 17:34:31 · 4463 阅读 · 0 评论 -
【强化学习笔记】7.1 基于策略梯度的强化学习方法
之前学习的强化学习方法是值函数的方法,目标是求取最优策略(是状态空间到动作空间的一个映射),而之前的方法主要是针对有限动作空间的情况,对于连续动作空间,需要考虑使用策略梯度的强化学习方法。策略梯度方法是指将策略参数化πθ(s)πθ(s)\pi _{\theta}(s),表示连续空间的策略,通过优化参数θθ\theta使得累积回报E[∑Ht=0R(st)|πθ]E[∑t=0HR(st)|πθ]E...原创 2018-07-13 00:17:02 · 2012 阅读 · 1 评论 -
【强化学习笔记】8.1 基于置信域策略优化的强化学习方法
在【强化学习笔记】7.1 基于策略梯度的强化学习方法中介绍的策略梯度方法存在步长选取的难题,Abbeel提出基于置信域策略优化的强化学习方法(TRPO),正面解决步长问题。首先需要确定什么是合适的步长,最基本的想法,合适的步长是当策略更新后,回报函数的值不能变差。 公式的推导还是请看原版书的作者博客吧!自己也没有看懂!。。。 强化学习进阶 第七讲 TRPO参考书籍:深入浅出强化学习原理...原创 2018-08-04 23:32:54 · 1658 阅读 · 0 评论 -
【强化学习笔记】9.1 基于确定性策略搜索的强化学习方法
前文介绍的策略梯度方法和TRPO方法是随机策略的方法,所谓随机策略就是在确定性策略的基础上添加上随机项。当然强化学习也可以直接使用确定性策略。确定性策略就是对于相同的策略,每种状态对应唯一确定的输出,这样需要采样的数据少,算法的效率高,但是确定性策略缺乏探索和改善的能力,因此基于确定性策略搜索的强化学习方法(DPG)往往采用异策略实现,即行动策略和评估策略不是同一个策略,如行动策略采用随机策略,以...原创 2018-08-04 23:44:59 · 1788 阅读 · 0 评论