- 博客(116)
- 资源 (8)
- 收藏
- 关注
原创 多智能体强化学习入门(八)——图卷积强化学习DGN
GRAPH CONVOLUTIONAL REINFORCEMENT LEARNING文章在https://zhuanlan.zhihu.com/p/143816617
2020-05-26 23:39:28
1904
原创 多智能体强化学习入门(七)——AC for CDec-POMDP 大规模规划学习算法
Thien, Nguyen & Kumar, Akshat & Lau, Hoong. (2017). Policy Gradient With Value Function Approximation For Collective Multiagent Planning.内容详见:https://zhuanlan.zhihu.com/p/66571753
2019-05-22 10:46:38
1624
原创 多智能体强化学习入门(六)——MFMARL算法(Mean Field Multi-Agent RL)
本节内容见https://zhuanlan.zhihu.com/p/56049023
2019-01-30 20:46:32
5154
原创 多智能体强化学习入门(二)——基础算法(MiniMax-Q,NashQ,FFQ,WoLF-PHC)
本节内容在https://zhuanlan.zhihu.com/p/53563792。
2018-12-29 09:44:56
7877
原创 多智能体强化学习入门(一)——基础知识与博弈
本次开一个专栏,用来分享关于多智能体强化学习方面的入门内容。强化学习在单体稳定环境中取得了非常好的效果,DeepMind,OpenAI目前都在把眼光投向了多智能体强化学习,尤其是分布式的算法。本节内容分享在https://zhuanlan.zhihu.com/p/53474965。...
2018-12-29 09:44:12
14254
1
原创 【强化学习】确定性策略强化学习-DPG&DDPG算法推导及分析
一、DGP推导本篇介绍确定性策略梯度算法,该算法主要用于off-policy(on-policy也能用)。在DQN等值函数估计算法中,最终策略的形式是需要对动作状态值函数取极大a=argmaxa′Q(s,a′)a={\rm argmax}_{a'}Q(s,a')a=argmaxa′Q(s,a′),这种方法只能用在有限的离散动作空间中,无法应用在较大离散空间或...
2018-12-07 17:32:50
19457
2
原创 【强化学习】中Q-learning,DQN等off-policy算法不需要重要性采样的原因
由于Q-learning采用的是off-policy,如下图所示但是为什么不需要重要性采样。其实从上图算法中可以看到,动作状态值函数是采用1-step更新的,每一步更新的动作状态值函数的R都是执行本次A得到的,而我们更新的动作状态值函数就是本次执行的动作A的Q(S,A)Q(S,A)Q(S,A)。就算A不是通过greedygreedygreedy策略选择的(是通过ϵ−greedy\epsilon...
2018-12-07 17:21:57
4641
原创 【强化学习】值函数强化学习-DQN、DDQN和Dueling DQN算法公式推导分析
一、值函数估计方法引入在值函数估计方法中,我们希望拟合一个价值模型用来估计每个状态动作对的累积回报。其代价函数可以写为L=12∑a∑s(Q(s,a)−Q(s,a;θ))2L=\frac{1}{2}\sum_{a}\sum_{s}(Q(s,a)-Q(s,a;\theta))^2L=21a∑s∑(Q(s,a)−Q(s,a;θ))2其中Q(s,a)Q(s,a)Q(s,a)为真实的累积回报...
2018-12-05 10:41:35
14949
原创 【强化学习】随机策略梯度算法(stochastic-policy-gradient)
策略搜索方法相对于值函数法有如下优缺点优点:直接策略搜索方法是对策略π\piπ进行参数化表示,与值函数方中对值函数进行参数化表示相比,策略参数化更简单,有更好的收敛性。利用值函数方法求解最优策略时,策略改进需要求解argmaxaQθ(s,a)argmax_a Q_\theta(s,a)argmaxaQθ(s,a),当要解决的问题动作空间很大或者动作为连续集时,该式无法有效求解。直接策...
2018-12-04 17:40:43
9783
2
原创 共轭梯度法详细推导分析
共轭梯度法是一种经典的优化算法。算法求解速度较快,虽然比梯度下降法复杂,但是比二阶方法简单。一、引入1. 优化模型建立假定待优化的问题如下所示:minxf(x)=12xTAx−bTx\min_{x} f(x)=\frac{1}{2}x^TAx - b^Txxminf(x)=21xTAx−bTx其中xxx为待优化变量,AAA为半正定矩阵(在线性代数中,正定矩阵为对称矩阵),bbb...
2018-11-29 21:10:57
42224
20
原创 XGBoost论文原理公式推导
目标函数Obj(Θ)=L(Θ)+Ω(Θ)Obj(\Theta) = L(\Theta) + \Omega(\Theta)Obj(Θ)=L(Θ)+Ω(Θ)其中L(Θ)L(\Theta)L(Θ)为损失(误差)函数,Ω(Θ)\Omega(\Theta)Ω(Θ)为正则化项。模型Obj(Θ)=∑i=0nl(yi,y^i)+∑k=1KΩ(fk)y^it=∑k=1tfk(xi)=y^it−1+ft(...
2018-11-09 11:18:02
372
原创 算法面试中的逻辑题
1. 射影定理在直角三角形中,斜边上的高是两条直角边在斜边射影的比例中项,每一条直角边又是这条直角边在斜边上的射影和斜边的比例中项。BD2=AD∗DCAB2=AD∗ACBC2=CD∗ACBD^2=AD*DC\\AB^2=AD*AC\\BC^2=CD*ACBD2=AD∗DCAB2=AD∗ACBC2=CD∗AC2. 硬币生成等价事件取大于事件数的最小二进制数。0表示反,1表示正。然后...
2018-11-09 11:11:24
763
原创 算法题4
1. 课程表 II现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。输入: 4, [[1,0],[2...
2018-11-09 11:02:52
474
原创 算法题3
1. 三角形最小路径和给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。分析:自下而上动态规划,建立一个大小为n的help矩阵,用来保存走到当前层各个位置的最短路径,然后一层层向上累积。int...
2018-11-09 11:01:35
403
原创 算法题2
1. 变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:f(n)=f(1)+f(2)+...+f(n−1)+1f(n)=f(1)+f(2)+...+f(n-1)+1f(n)=f(1)+f(2)+...+f(n−1)+12. 矩形覆盖我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形...
2018-11-09 11:00:20
892
原创 队列与栈面试题C++
概念1.图的深度优先遍历(DFS) 可以用栈实现,从根结点开始沿左孩子到最深的节点压入栈中,然后依次弹出,若栈顶节点还有没有访问的孩子,则没访问过得孩子入栈直到最深的节点,然后再弹出。元素入栈顺序则为深度优先遍历顺序。 2.图的宽度优先遍历(BFS) 可以用队列实现,将根结点放入队列,每弹出一个节点,就将该节点的孩子全部放入队列,放入队列的顺序为宽度优先遍历顺序。示例一实现一...
2018-11-09 10:57:30
552
原创 二分搜索面试题C++
二分搜索的常见考察点对于边界条件的考察以及代码实现的能力,如果边界条件处理不当,可能会出现死循环或者漏掉某个数的情况。仔细设计中间划分点的逻辑判断以及循环的终止条件,防止出现循环永远不能终止的情况。在有序循环数组中进行二分搜索 循环数组是指,1,2,3,4,5的任意前部分放到数组后,例如,23451,34512,45123,51234.二分搜索的重要提醒一般的中点选取为mi...
2018-11-09 10:57:13
357
原创 链表面试题C++
注意头结点的处理,如果倒叙记得将新的尾节点指向空。示例一给定一个整数num,如何在节点值有序的链表中插入一个节点值为num的节点,并且保证这个单链表依然有序。#include<iostream>#include<thread>using std::endl;using std::cout;template&amp
2018-11-09 10:57:11
730
原创 字符串面试题C++
重要概念1.回文 2.子串(连续) 3.子序列(不连续) 4.前缀:指除了最后一个字符以外,一个字符串的全部头部组合。 5.后缀:指除了第一个字符以外,一个字符串的全部尾部组合。 - - - - - 例:”ABCDAB”的前缀为[A, AB, ABC, ABCD, ABCDA],后缀为[BCDAB, CDAB, DAB, AB, B],共有元素为”AB”,长度为2; 6.前缀树(T...
2018-11-09 10:57:09
1996
原创 卡特兰数公式
公式一Cn2n−Cn+12n=Cn2nn+1C2nn−C2nn+1=C2nnn+1C_{2n}^n - C_{2n}^{n+1} = \frac{C_{2n}^n }{n+1}题目一假设有n对左右括号,请求出合法的排列有多少个?合法是指每一个括号都可以找到与之配对的括号,比如n=1时,()是合法的,)(不合法。 分析:n对括号的排列共有Cn2nC2nnC_{2n}^n种,错误...
2018-11-09 10:56:53
424
原创 哈希函数、Map-Reduce与Hadoop
哈希函数哈希函数又叫散列函数,哈希函数的输入域可以是非常大的范围,比如任意字符串,但是输出域是固定范围,假设为s。 哈希函数的性质: 1. 典型的哈希函数都拥有无限的输入值域。 2. 输入值相同时,返回值相同,通常将返回值称为哈希值。 3. 输入值不同时,返回值可能相同,也可能不同。 4. 不同输入值得到的哈希值,整体均匀的分布在输出域s上。(重要) 性质1,2,3是哈希函数的基础...
2018-11-09 10:56:46
992
原创 动态规划C++
引入题目给定数组arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim代表要找的钱数,求还钱有多少种方法。 分析:可以使用,暴力搜索方法、记忆搜索方法、动态规划方法、状态继续简化后的动态规划方法。暴力搜索方法arr = {5,10,25,1},aim=1000. 1.用0张5元货币,让[10,25,1]组成剩下的1...
2018-11-09 10:56:46
3154
原创 位运算基础与面试题C++
共有如下几种位运算 运算符 功能 用法 ~ 位取反 ~expr << 左移 expr1< >> 右移 expr1>>ex
2018-11-09 10:56:00
438
原创 算法题
1.栈的压入与弹出。 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 分析:建立一个栈stack,i=0,依次放入,每一次放入与弹出序列arr[...
2018-11-09 10:55:38
591
原创 各种排序算法详解C++实现
1.冒泡排序 时间复杂度O(n2)O(n2)O(n^2),空间复杂度O(1)O(1)O(1)。 a.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 b.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 c.针对所有的元素重复以上的步骤,除了最后一个。 d.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 若...
2018-10-24 20:07:32
2216
2
原创 强化学习相关问题
一次看到苏克在知乎写的强化学习问题,自己顺便学习了一下,可能总结有不对的地方,希望朋友们指出。1. 强化学习与监督学习的区别强化学习就是通过不断与环境交互,利用环境给出的奖惩来不断的改进策略(即在什么状态下采取什么动作),以求获得最大的累积奖惩。主要区别:监督学习的训练样本是有标签的,强化学习的训练是没有标签的,是通过不断与环境交互获得奖惩来学习的。监督学习的过程是静态的,强化学习的过...
2018-10-23 21:32:37
848
原创 【强化学习】随机策略梯度强化学习-TRPO置信域策略优化推导分析《Trust Region Policy Optimization》
本文参照此文做了学习整理。根据策略梯度方法,很难选择步长使参数更新向着策略变好的方向变化,如果步长不合适,可能导致越学越差致使系统崩溃。如何选择一个合适的步长,或者说,如何找到新的策略使新的回报函数的值单调递增,或单调不减。这是TRPO解决的问题。强化学习的回报函数定义为:η(π~)=Eπ~[∑t=0∞γt(r(st))]\eta(\tilde{\pi} )=E_{\tilde{\pi}...
2018-10-14 09:46:58
2160
原创 【强化学习】GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》
通过深度强化学习,我们能够让机器人针对一个任务实现从0到1的学习,但是需要我们定义出reward函数,在很多复杂任务,例如无人驾驶中,很难根据状态特征来建立一个科学合理的reward。人类学习新东西有一个重要的方法就是模仿学习,通过观察别人的动作来模仿学习,不需要知道任务的reward函数。模仿学习就是希望机器能够通过观察模仿专家的行为来进行学习。OpenAI,DeepMind,Google...
2018-09-27 10:26:43
33805
10
原创 Hoeffding's inequality霍夫丁不等式
引入假定投硬币,投出正面的概率为ppp,反面的概率为1−p1−p1-p。则投出nnn次,正面出现的期望次数为npnpnp。硬币正面最多出现kkk次的概率可以通过下式确定 P(H(n)≤k)=∑i=0k(ni)pi(1−p)n−iP(H(n)≤k)=∑i=0k(ni)pi(1−p)n−iP(H(n)\le k)=\sum\limits_{i=0}^k \left( {\begin{arra...
2018-05-24 16:06:34
6299
1
原创 正态分布与均匀分布之间的变换
一、任何分布都能化为[0,1][0,1][0,1]均匀分布 假设FX(a)=p(x≤a)FX(a)=p(x≤a)F_X(a)=p(x\le a)为累积分布函数,f(x)f(x)f(x)为概率密度函数,FX(a)=∫a−∞f(x)dxFX(a)=∫−∞af(x)dxF_X(a)=\int_{-\infty}^af(x)dx,则存在如下等式 P(FX(X)≤a)=P(X≤F−1X(a))=...
2018-05-20 10:29:20
30991
2
原创 多维高斯分布与协方差矩阵的关系以及高斯椭圆
一维高斯分布概率密度函数f(x;μ,σ)=1σ2π−−√exp(−(x−μ)22σ2)f(x;μ,σ)=1σ2πexp(−(x−μ)22σ2)f(x;\mu,\sigma) = \frac{1}{\sigma \sqrt{2\pi}} \exp(-\frac{(x-\mu)^2}{2\sigma^2}) 若随机变量XXX服从这个高斯分布,则可写作X∼N(μ,σ)X∼N(μ,σ)X\si...
2018-05-17 16:34:32
31312
3
转载 稀疏表示与字典更新KSVD算法
1. 算法简介K-SVD可以看做K-means的一种泛化形式,K-means算法总每个信号量只能用一个原子来近似表示,而K-SVD中每个信号是用多个原子的线性组合来表示的。K-SVD通过构建字典来对数据进行稀疏表示,经常用于图像压缩、编码、分类等应用。2. 主要问题Y = DXWhere ...
2018-05-11 10:14:59
7715
3
转载 缓存淘汰算法-LRU算法
转载自:缓存淘汰算法-LRU算法 1. LRU1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1.2. 实现 最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: ...
2018-04-27 09:32:17
452
原创 关于内存分配的几个错误C++
错误一HEAP CORRUPTION DETECTED: after Normal block (#150) at 0x0046B2A0. CRT detected that the application wrote to memory after end of heap buffer. 分析:分配的内存空间不足导致。详细代码如下 BinNode<int> *h...
2018-03-28 08:43:40
578
转载 C++类中静态变量和静态方法使用介绍
转载自:https://www.cnblogs.com/ppgeneve/p/5091794.html 静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。 静态数据成员 在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即
2018-03-16 16:54:46
2925
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人