算法
zhaoying9105
这个作者很懒,什么都没留下…
展开
-
强化学习中同步动态规划和异步动态规划 Synchronous and Asynchronous dynamic programminging
同步动态规划是基础:一次性更新所有的S的value。异步动态规划分集中常见类型: in-place 动态规划: 不对上一周期的value进行备份,直接使用这一周期的value(当然,本周期的value本来就是上一周期优化的结果,只是少了备份这一步,节省了一些内存)Prioritised Sweeping:计算优化目标值和现实值之差,对多个S计算后排成一列,差值大的在前,依次优化对应的s的原创 2017-06-19 15:21:58 · 3491 阅读 · 0 评论 -
强化学习中的蒙特卡洛(monte-carlo)算法和时序差分算法
【未完成】蒙特卡洛特点周期性更新:一整个周期结束了(到达了终点)才回进行一个更新(更新所有经历过的state的value)所以是无偏估计First-Visit:第一个周期经历了 某个状态s,第二个周期也第一次经历了这个状态s,待第二个周期结束之后,计算出了第二个周期s对应的G值(G = 这一步的reward + 打折系数 ^ 1 * 下一步的reward + 打折系数 ^ 2 * 下下步的rew原创 2017-06-12 09:52:55 · 6105 阅读 · 0 评论 -
深度强化学习中的DQN系列算法
DQN是考虑到维度灾难,在q-learning算法的价值函数近似Value Function Approximation基础上修改的。主要是对Q(s,a,w)进行修改,s可能是非常大的,比如输入一个图像,a可能是很小的,比如玩游戏时候几个操作键。这种情况下引入神经网络,可以把Q(s,a,w)变成a = Q(s,w),输出的是a大小的向量,每个元素表示每个动作a下的Q(s,a)值。原创 2017-06-20 11:11:24 · 3753 阅读 · 0 评论 -
深度学习中的sarsa(lambda)和 Q(lambda)算法
这个没什么好说的,因为在莫烦python中出现了,可能会引起一些疑惑,普通的sarsa 和q-learning就是普通的时序差分(TD)的实现,sarsa(lambda) 和 Q(lambda)算法 就是TD(lambda)的实现。原创 2017-06-20 14:13:09 · 2755 阅读 · 0 评论 -
深度强化学习中DDPG算法
深度强化学习总的来说都是以强化学习为骨架,用神经网络代替耗内存很高的组件,加速计算。DDPG算法是的Actor-Critic算法和神经网络的集合,就是actor部分和critic部分都用神经网络来表示。重要的是两个神经网络怎么优化。actor部分(就是策略函数):a = π (s,u) critic部分(就是Q函数): Q(s,a,w) 怎么求策略梯度呢?策略梯度就是Q对u 的梯度,先Q对a求原创 2017-06-20 15:06:30 · 2393 阅读 · 0 评论 -
深度强化学习中的NAF算法-连续控制(对DQN的改进)
DQN算法以及之前的种种改进都是面向离散的action的,DQN算法没有办法面向连续的action,因为Q值更新的时候要用到求最大的action。本来DQN主要是输出Q值的,aciton是通过argmax顺便实现的,但是现在NAF需要用神经网络输出了,那么就是同时输出Q 和 a。基本的idea就是引入了Advantage函数A(s,a),也就是每一个动作在特定状态下的优劣。原创 2017-06-20 17:13:43 · 5700 阅读 · 1 评论 -
梯度下降算法
【持续更新】 【个人理解,可能有错】标准梯度下降算法每次输入一个batch的数据,每个数据对参数进行偏微分,得到的结果在batch中平均,用于更新参数;随机梯度下降算法每次只输入一个数据,数据对参数进行偏微分,得到的结果用于更新参数,好像可以理解为batch为1的标准梯度下降算法;原创 2017-06-09 11:27:09 · 471 阅读 · 0 评论 -
深度学习中sarsa算法和Q-learning算法的区别
sarsa 和 Q-learning都是时序差分下对动作价值函数优化的单步方法,算法基本上一样,只有一点: 为了更新St的动作价值函数,需要St+1的动作价值函数,St+1具体是什么St+1是由上个episode决定了,但是St+1对应的action由什么决定呢?sarsa的处理方式是episinon + greedy,和St选择aciton采取的方法是一样的,称为 on-policy; Q-l原创 2017-06-12 10:07:01 · 9158 阅读 · 1 评论