自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 基础算法篇(八),异步强化学习方法与A3C

这一篇,我们介绍一种全新的强化学习方法,称为“异步”强化学习方法。首先,这里没有用算法(algorithm)而是用方法(method),是因为这里提供的是一种与前面相关算法相兼容的新的实现思路,而不是本身在算法方面的革新。其次,我们看“异步”这个词,它已经很明确的表示了这个方法的特点,简单来说,其实就是将“并行”的思路代入前面我们提到的各种value-based或policy-based方法中。具体的细节,请参考DeepMind的论文:Asynchronous Methods for Deep Reinf

2020-09-27 16:52:23 2812

原创 基础算法篇(七),确定性策略的DPG与DDPG

我们在前面两章介绍了Policy Based范畴的经典策略梯度方法和基于AC框架的PPO方法,在上述方法中,策略梯度都为如下形式:∇J(θ)=Eτ∼P(τ;θ)[R(τ)∑t=1T∇log⁡πθ(at∣st)]\nabla J\left(\theta\right)=E_{\tau\sim P\left(\tau;\theta\right)}\left[R\left(\tau\right)\sum_{t=1}^T\nabla\log\pi_\theta\left(a_t\left|s_t\right.\r

2020-09-10 22:01:21 3126

原创 算法实战篇(二),Tensorflow实现Actor-Critic框架下的经典PPO算法

本篇是我们算法实战的第二篇,针对的是我们在“基础算法篇(六),基于AC框架的PPO算法”中提出的相关算法,具体算法中部分参考了莫烦老师的相关代码,在这里向莫烦老师表示感谢。Tensorflow实现Actor-Critic框架下的经典PPO算法一、基础游戏背景介绍二、主函数三、Agent类(一)PPO类的初始化函数(二)建立Critic深度神经网络(价值网络)1. 价值网络的建立2. 更新方法的定义(三)建立Actor深度神经网络(策略网络)1. 策略网络的建立2. 更新方法的定义(四)利用策略网络(Act

2020-09-04 17:29:56 5058 2

原创 基础算法篇(六),基于AC框架的PPO算法

我们上一章给大家介绍了经典的策略梯度(PG)算法,但这个经典算法存在两个问题:一是需要完整序列我们根据强化学习的目标“最大化总收益”而得到的公式中包含R(τ)=∑t=1TrtR\left(\tau\right)=\sum_{t=1}^Tr_tR(τ)=∑t=1T​rt​,就算我们对其进行添加基线、改变收益计算方式等,都还是没有脱离从ttt时刻起,需要后续所有收益这一问题,这一方法类似于我们在“基础算法篇(二),蒙特卡洛方法解决Model-Free强化学习问题”讲的方法,而这对强化学习本身来说,是很难

2020-09-01 16:06:54 6766 1

原创 算法实战篇(一),Tensorflow实现经典DQN算法

我们在“基础算法篇(四)值函数逼近方法解决强化学习问题”中介绍了经典的DQN算法,今天,我们就来点实际的,正式实现一下相关算法。Tensorflow实现经典DQN算法一、基础游戏背景介绍二、建立文件与撰写主函数三、Agent功能介绍(一)DQN类的初始化函数(二)建立深度神经网络(三)设计网络参数更新方法(四)Agent行为生成(即利用网络输出行为)(五)存储数据(六)训练网络更新参数(七)更新目标网络参数总结一、基础游戏背景介绍我们这次代码实现中,使用的对象,是Gym中的活动杆游戏,如下图所示:游

2020-08-26 15:07:48 6490 3

原创 基础算法篇(五),Policy Based方法解决强化学习问题

我们前面几章介绍的方法中,无论是动态规划(DP)、蒙特卡洛(MC)、时序差分(TD)、或者值函数逼近方法(DQN、Double DQN、Dueling DQN、Prioritized Replay DQN)等,都是先计算出状态价值或状态-行为值,然后再用贪婪法等选择“行为”,这些方法统称为Value Based的方法。那么,有没有办法直接去求出行为呢?下面,我们就带大家进入Policy Based方法的大家庭。基本思路首先,让我们先回顾一下强化学习的基本过程:在强化学习基本概念小结中我们讲过,可以

2020-08-25 02:04:29 1544 1

原创 基础算法篇(四),值函数逼近方法解决强化学习问题

在时序差分方法那一章的最后,我们对前面介绍的动态规划(DP)、蒙特卡洛(MC)和时序差分(TD)等算法进行了总结,其中提到了在上述算法中,其实都需要精确的求出几乎每个状态价值或状态-行为值(类似于算法需要维护一张Q表)。那么这就带来了一个问题,如果要解决的强化学习问题状态价值特别多,或者本身就是个连续值。那么,这个Q表就会变得特别大,以至于程序无法维护(内存溢出或者查询更新效率奇低)。那么,有没有什么方法解决这一问题呢?值函数逼近方法介绍既然Q表是离散形式的,我们能够直接想到的方法,就是构造一个函数对其

2020-08-19 10:41:39 1387 2

原创 番外篇,强化学习基础环境搭建

我们要学习强化学习相关知识,仅仅通过看书肯定是远远不够的,必须要自己动手写一些代码,这样对相关内容的了解才能更全面,我们的知识也能够真正落地。因此,本篇主要是让大家了解一下基础环境的搭建。Python、Anaconda、PyCharmPython我们要进行强化学习实践,首推还是使用Python来搭建基础编程环境。如果对Python还不熟,推荐这个Python基础教程。Anaconda在开发环境配置方面,推荐大家使用Anaconda,通过它可以搭建虚拟环境。你可以把它构建的虚拟环境视为一个封

2020-08-17 17:19:55 3250

原创 基础算法篇(三),时序差分方法解决Model-Free强化学习问题

上一章我们介绍用蒙特卡洛(MC)方法解决Model-Free的强化学习问题时,核心关键就是利用用多次的累积回报去逼近状态价值vπ(s)v_{\mathrm\pi}\left(s\right)vπ​(s)或状态-行为值qπ(s,a){\mathrm q}_{\mathrm\pi}\left(\mathrm s,\mathrm a\right)qπ​(s,a)。即如下公式:v(stk)←v(stk−1)+1α[Gtk−v(stk−1)]v\left(s_t^k\right)\leftarrow v\left

2020-08-17 00:49:15 829 1

原创 基础算法篇(二),蒙特卡洛方法解决Model-Free强化学习问题

从这一节开始,我们开始向大家介绍如何解决Model-Free强化学习问题。在前面强化学习基本概念小结中我们向大家介绍了,Model-Free指的是状态转移概率ppp(或状态转移矩阵PPP)未知,那么以下两个公式:vπ(s)=∑a∈Aπ(a∣s)[rsa+γ∑s′∈SPss′avπ(s′)]v_{\mathrm\pi}\left(s\right)=\sum_{a\in A}\mathrm\pi\left(\mathrm a\left|\mathrm s\right.\right)\left[\mathrm

2020-08-08 21:24:03 826

原创 基础算法篇(一),动态规划方法解决Model-Based强化学习问题

首先,让我们复习一下这个手绘的(丑)图:在前面我们学习过,根据上图可以得到状态价值函数和状态-行为值函数之间存在如下关系:vπ(s)=∑a∈Aπ(a∣s)qπ(s,a)v_{\mathrm\pi}\left(s\right)=\sum_{a\in A}\mathrm\pi\left(\mathrm a\left|\mathrm s\right.\right){\mathrm q}_{\mathrm\pi}\left(\mathrm s,\mathrm a\right)vπ​(s)=∑a∈A​π(a∣s

2020-08-08 09:33:48 763 1

原创 基本概念篇(三),强化学习基本概念小结

现在,总结一下我们前面介绍的相关内容:首先,我们介绍了强化学习的八个基本要素,具体参见:基本概念篇(一),强化学习基本要素其次,我们对强化学习的过程进行了描述,具体参见:基本概念篇(二),强化学习过程具体来讲,强化学习可以描述成一个MDP(马尔科夫决策过程),即M={S,A,P,r,γ,τ}M=\left\{S,A,P,r,\gamma,\tau\right\}M={S,A,P,r,γ,τ},这其中:SSS 是状态集;AAA 是动作集;PPP 是状态转移矩阵;r:  S×A→[−Rmax,Rm

2020-08-06 11:30:09 561

原创 基本概念篇(二),强化学习过程

上篇文章介绍了强化学习的八个基本要素,利用这些要素,我们就可以将一个完整的强化学习过程描述出来。大家在看其他的参考书时,在这部分其实都是把强化学习的过程描述为一个“马尔科夫决策过程”。我们首先可以回忆一下上一节中那个图,首先就是将强化学习过程离散化,分成一步一步的过程。那么这其中最重要的马尔科夫特性,其实讲的就是每一步之间的关系。简单来说,就是系统这一步的状态,只与系统前一步状态相关,而与历史状态无关。用公式表示就是:P[st+1∣s1,⋯ ,st]=P[st+1∣st]P\left[s_{t+1}\l

2020-08-05 15:26:42 2822 2

原创 基本概念篇(一),强化学习基本要素

其实本来不想写这篇的,相信愿意往下看的童鞋,对强化学习本身应该有一定了解。但其实你看的多了就会发现,现有很多文章在细节方面还是有不少差异的。因此,这篇文章也是为了统一本博客的话语体系,为后面内容打基础。首先请看下面这张图:上图就是强化学习的最一般思路。其中Agent代表你实现的各种“牛叉”算法,Environment则代表Agent输出或作用的对象。其实这一思路,特别类似于我们人类或者自然界的动物等,通过与环境的交互,逐渐适应环境并学习到知识。当然,现有强化学习的算法从效率上来说,别说和人类相比,与动

2020-08-04 14:56:52 9021 1

原创 强化学习笔记开篇

强化学习笔记-引言废话篇废话篇自己学习了一段时间的强化学习相关知识了,书买了郭宪的《深入浅出强化学习》,肖智清的《强化学习原理与Python实现》,当然,一定包括Sutton的经典《Reinforcement Learning:An introduction》。视频就看了李宏毅老师的课程。网上教程则看的比较多,成体系的我觉得刘建平的强化学习专栏很值得推荐。讲真的,自己现在只是浅浅的有了一点感觉而已,还有很多问题没有想清楚。所以,写这个的主要目的还是为了让自己能够理清楚相关知识。我觉得能写出来,应该

2020-08-04 13:03:40 361

原创 上课笔记篇---用Pytorch实现简单的线性回归

@用Pytorch实现简单线性回归用Pytorch实现简单的线性回归之前关于深学啥的,看了一些书和论文,但真正上手,还没做过。现在项目有需求,就在微信上报了个班,开始学习Pytorch上手的东西。这里做一个记录,以备自己以后查看。直接上代码吧这个代码是教程上的,版权归教程所有,如果侵权,我会马上删掉。.// An highlighted blocklr=0.1 #学习率x=torch...

2020-05-02 13:09:25 220

原创 用Netlogo实现病毒传播对经济的影响分析

一、基本考虑新冠病毒的传播,已经形成了全球大流行。而针对新冠病毒的防治,各国政府的态度和策略在一开始区别是很大的。有些是举全国之力、以雷霆万钧之势抗击疫情,而有些则由于担忧大规模的隔离和禁足对经济产生的不良影响,一直犹豫不决。为了更直观的展示不同策略对经济可能产生的影响,需要定量化研究新冠疫情下不同策略的具体效果。针对上面的需求,我们利用netlogo对相关问题进行建模。具体来说,我们考虑两种...

2020-04-06 16:18:59 5339 45

原创 如何用Python实现微信按时发送文件

如何用Python实现微信按时发送文件自动修改Word微信自动发送文件主程序总结一下回到单位,被通知要自行在家隔离15天,为了防疫大业必须严格按照要求约束自己。但是,不但单位需要每天按时上报情况,连儿子的小学也要每天上报孩子的体温情况。可是……学校老师要求每天早上八点前上报,那个点谁能起得来?所以干脆,咱写个程序自动完成这个任务吧。说干就干,仔细想想,这个工作可分为两个部分:一是能够自动对需...

2020-01-31 16:34:53 5766 9

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除