- 博客(87)
- 资源 (3)
- 收藏
- 关注
原创 数据结构与算法(4)——搜索算法
定义:需要在“树”中或者“图”中搜索到我们需要的序列或者位置。特点:通常是给定了一个“树”或“图”,然后要求里面满足要求的部分常用的有三种搜索算法:深度优先搜索、广度优先搜索、回溯算法。一般深度优先搜索能做的,广度优先搜索也能做。回溯算法是用来处理需要穷举出所有情况的问题,典型的为排列组合问题,通常这也称为“暴力搜索”,且回溯算法相比于深度优先搜索和广度优先搜索有一个显著的特点——“恢复现场”。
2023-06-04 10:57:56 1834 1
原创 100余行代码带你入门强化学习DQN算法
100多行代码入门强化学习DQN算法1. 简介2. 关键要点2.1 replay buffer存储及采样数据2.2 DQN网络2.3 主函数3. 完整代码1. 简介DQN算法是经典的强化学习算法, 作为一个入门级的算法,很有必要自己手动写一个简易实现。2. 关键要点DQN算法中,重要的是两个东西,一个是replay buffer,一个是agent。replay buffer涉及到经验的存储与采样。而agent中则涉及到构建神经网络与使用bellman equation更新网络。2.1 replay
2022-01-18 16:49:09 1828 1
原创 数据结构与算法(2)——滑动窗口
数据结构与算法(2)——滑动窗口1. 滑动窗口的定义与特点2. 滑动窗口的解题思路3. LeetCode中的滑动窗口题1. 滑动窗口的定义与特点定义:滑动窗口就是用左右指针来标记窗口的左右边界,然后左右指针移动就形成了窗口的滑动。特点:从滑动窗口的定义来看,滑动窗口只能解决连续子串的问题,即窗口内的元素在位置上是连续的。2. 滑动窗口的解题思路滑动窗口没有固定的解题模板,需要根据情况灵活变动。(多刷题来掌握)滑动窗口必须需要两个指针,然后需要一些辅助工具,比如可能需要哈希表(即Python中的d
2022-01-08 20:51:42 924
原创 【强化学习论文解读 2】 Theory and application to reward shaping
【强化学习论文解读 2】 Theory and application to reward shaping1. 引言2. 论文解读2.1 背景2.2 预备知识2.3 Reward shaping的充分必要条件2.4 相关推论3. 总结1. 引言本文介绍一篇1999年发表在ICML的文章:Policy invariance under reward transformations: Theory and application to reward shaping。论文的作者是大家非常熟悉的吴恩达(Andr
2021-11-10 20:04:22 1123
原创 【强化学习与机器人控制论文 3】基于强化学习的五指灵巧手玩转魔方
这里写目录标题1. 引言2. 论文解读2.1 背景2.2 硬件平台和仿真平台的搭建2.3 主要算法框架2.4 自动域随机化ADR2.5 实验结果3. 总结1. 引言本文介绍一篇OpenAI团队出品,2019年挂在arXiv上,目前还未被任何会议期刊接收的文章:Solving Rubik’s Cube with a Robot Hand。它是上一篇Learning dexterous in-hand manipulation 的续集,上一篇的论文详解请参考: 【强化学习与机器人控制论文 2】基于强化学习的
2021-11-08 11:14:50 1205
原创 【强化学习与机器人控制论文 2】基于强化学习的五指灵巧手操作
基于强化学习的五指灵巧手操作1. 引言2. 论文解读2.1 背景2.2 论文中所用到的强化学习方法2.3 实验任务和系统2.4 仿真到实物的迁移2.5 分布式RL训练——从状态中学到控制策略2.6 ResNet——从视觉中得到状态估计2.7 实验结果3. 总结1. 引言本文介绍一篇OpenAI团队出品,2018年挂在arXiv上,2020年被机器人领域顶刊 The International Journal of Robotics Research 接收的文章:Learning dexterous in
2021-11-01 17:22:03 2302
原创 【强化学习与机器人控制论文 1】基于深度强化学习的机械臂避障
基于深度强化学习的机械臂避障论文传送门论文传送门Deep Reinforcement Learning for Collision Avoidanceof Robotic Manipulators,这是一篇发表在 European Control Conference 的文章,虽然不是顶会,但是和自己的研究方向比较相关,目前被引量为28。...
2021-10-30 20:19:42 6108 14
原创 【强化学习论文解读 1】 NAF
【强化学习论文解读 1】 NAF1. 引言2. 论文解读2.1 背景2.2 NAF算法原理2.3 Imagination Rollouts方法3. 总结1. 引言本文介绍一篇2016年发表在ICML的文章:Continuous Deep Q-Learning with Model-based Acceleration。论文传送门:Continuous Deep Q-Learning with Model-based Acceleration论文有两个亮点,一是提出了一种用于连续动作版本的 Q-lea
2021-10-29 19:29:14 1243
原创 强化学习经典model-free方法总结
强化学习经典方法总结1. 基于值函数(value-based)的方法1.1 sarsa1.2 Q-learning1.3 DQN1.4 Double DQN1.5 Dueling DQN1.6 QR-DQN1.7 Rainbow2. 基于策略(Policy-based)的方法2.1 DPG2.2 DDPG3. 基于价值和策略(Actor-Critic架构)的方法本文对强化学习的model-free经典方法做一个总结归纳,以便在使用方法或阅读文献时进行对比查找。本文的框架如图所示:1. 基于值函数(va
2021-10-24 20:09:53 4131
原创 数据结构与算法(1)——动态规划
数据结构与算法(1)——动态规划1. 动态规划的定义2. 动态规划题目的特点3. 动态规划的解题步骤3.1 确定状态3.2 转移方程3.3 初始条件和边界情况3.4 计算顺序4. LeetCode中的动态规划题及案例分析1. 动态规划的定义动态规划(英语:Dynamic programming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。重叠子问题:原问题能够拆解为有限个的子问题,且这些子问题有重复出现。如果没有重
2021-08-16 13:45:34 869
原创 kaggle竞赛之Hungry Geese比赛
kaggle竞赛之Hungry Geese比赛1. 比赛内容和规则1.1 比赛内容1.2 比赛规则2. 强化学习算法思路2.1 HandyRL2.2 蒙特卡罗树搜索3. 经验总结本文主要记录参加kaggle竞赛的强化学习赛道的算法思路。在kaggle的众多竞赛中,强化学习赛道并不常见,此次比赛结果还未出,等过两周了再更新此文。1. 比赛内容和规则本章简要介绍Hungry Geese比赛内容和规则,能够让新手快速了解kaggle竞赛的大致流程。1.1 比赛内容Hungry Geese比赛(比赛链接)
2021-08-11 11:03:19 1456
原创 强化学习之图解SAC算法
强化学习之图解SAC算法1. 网络结构2. 产生experience的过程3. Q Critic网络的更新流程4. V Critic网络的更新流程5. Actor网络的更新流程柔性动作-评价(Soft Actor-Critic,SAC)算法的网络结构有5个。SAC算法解决的问题是离散动作空间和连续动作空间的强化学习问题,是off-policy的强化学习算法(关于on-policy和off-policy的讨论可见:强化学习之图解PPO算法和TD3算法)。SAC的论文有两篇,一篇是《Soft Actor-C
2021-07-01 12:45:44 16973 5
原创 强化学习之图解PPO算法和TD3算法
强化学习之图解PPO和TD3算法0. 引言1. PPO算法1.1 网络结构1.2 产生experience的过程1.3 Actor网络的更新流程1.4 Critic网络的更新流程2. TD3算法2.1 网络结构2.2 产生experience的过程2.3 Actor网络的更新流程2.4 Critic网络的更新流程2.5 总结0. 引言关于on-policy和off-policy的定义,网上有很多不同的讨论,我认为,on-policy和off-policy的差异在于所用到的数据(s,a,r,s′)(s,a
2021-06-27 20:12:44 9451 9
原创 数值分析(13):常微分方程的数值解法之线性多步法
线性多步法1. 引言2. 线性多步法2.1 迭代表达式2.2 局部截断误差,阶,主局部截断误差1. 引言除了Runge-Kutta方法是否还有提高精度的方法?回答是肯定的,就是采用前面多个信息,比如:用xn,xn−1,...,xn−lx_n,x_{n-1},...,x_{n-l}xn,xn−1,...,xn−l上的近似yn,yn−1,...,yn−ly_n,y_{n-1},...,y_{n-l}yn,yn−1,...,yn−l来求yn+1y_{n+1}yn+1 ,这样的数值方法称为多步
2021-06-16 21:54:29 7273
原创 数值分析(12):Rung-Kutta法及单步法的收敛性和稳定性分析
Rung-Kutta法及单步法的收敛性和稳定性分析1. 引言2. Runge-Kutta法2.1 一阶RK方法2.2 二阶RK方法2.3 三阶RK方法2.4 四阶RK方法3. 单步法收敛性和稳定性3.1 收敛性3.2 相容性3.3 稳定性1. 引言在《数值分析(11):常微分方程的数值解法之Euler法》中已经介绍了常微分方程的数值解法的一种方法,显式Euler法,这种方法可以通过泰勒展开得到,即:取前两项即得到显式Euler法:y(xn+1)=y(xn)+hy′(xn)y(x_{n+1})=y(
2021-06-05 21:27:55 8254
原创 数值分析(11):常微分方程的数值解法之Euler法
常微分方程的数值解法之Euler法1. 引言2. Euler方法2.1 显式Euler方法2.2 隐式Euler方法2.3 梯形方法3. 隐式方程的迭代求解4. 预估-校正方法5. 误差分析5.1 显式单步方法误差分析5.2 隐式单步方法误差分析1. 引言我们通常遇到的一阶常微分方程初值问题,如下所示:如何证明上面的微分方程存在解,且解唯一呢?则需要以下的存在唯一性定理:上面定理中的Lipschitz条件,其定义如下:这个定义很难验证,通常使用以下的充分条件来判断函数是否满足Lipschit
2021-05-31 11:15:00 7673
原创 数值分析(10):数值积分之Gauss型求积公式
Gauss型求积公式1. 引言2. Gauss型求积公式2.1 Gauss型求积公式的定义2.2 Gauss点的性质2.3 构造Gauss型求积公式2.4 Gauss型求积公式的余项2.5 Gauss型求积公式的稳定性与收敛性2.6 Gauss-Legendre求积公式2.7 Gauss-Chebyshev求积公式1. 引言在前一章《数值分析(9):数值积分之Newton-Cotes求积公式和复合求积公式》中,提出使用等分区间的方式来给出插值节点,从而得到lagrange插值多项式,最后得到Newton
2021-05-23 16:48:42 9526
原创 数值分析(9):数值积分之Newton-Cotes求积公式和复合求积公式
数值积分之Newton-Cotes求积公式1. Newton-Cotes求积公式1.1 N-C求积公式的推导1.2 N-C求积公式的余项1.3 N-C求积公式的数值稳定性2. 复合求积公式2.1 复合梯形求积公式2.2 复合Simpson求积公式1. Newton-Cotes求积公式1.1 N-C求积公式的推导在《数值分析(8):数值积分之Lagrange法》中已经介绍了插值型求积公式,它是用n次lagrange插值多项式来近似被积函数,从而对原积分进行近似(因为原积分被积函数的原函数不一定能写出来,
2021-05-23 14:51:40 4248
原创 数值分析(8):数值积分之Lagrange法
数值积分1. 引言2. 数值求积基本原理3. 两个简单的求积公式3.1 梯形公式3.2 Simpson求积公式4. 代数精度5. 插值型求积公式1. 引言在做定积分时,如果能够求出被积函数的原函数,那么定积分很容易求出,但是在工程中遇到的定积分大多数是求不出原函数的,那么如何用一些手段来估计这个定积分使得结果满足一定的精度呢?解决问题的基本方法是用 插值多项式 近似 被积函数f(x)f(x)f(x) 把插值多项式的积分值作为原积分的近似值。在正式介绍求积公式之前,首先来回顾三个知识点,分别是积分中值
2021-05-17 14:55:58 2886
原创 kaggle竞赛之Shopee比赛经验与感受
kaggle竞赛之Shopee比赛经验与感受1. 比赛内容和规则1.1 比赛内容1.2 比赛规则2. 算法思路3. 经验总结本文主要记录自己在第一次参加kaggle比赛时踩过的坑以及一些经验体会,希望能够对大家有些帮助。第一次参赛虽然只拿到了铜牌,但是也比较满意了。1. 比赛内容和规则本章简要介绍shopee比赛内容和规则,能够让新手快速了解kaggle竞赛的大致流程。1.1 比赛内容Shopee竞赛是一项具有奖金的kaggle竞赛,前三名能够获得奖金,前1%的队伍能获得金牌,前1% ~ 5%的
2021-05-15 22:23:31 1830
原创 数值分析(7):函数逼近
函数逼近1. 引言2. 预备知识3. 正交多项式1. 引言在前面章节《数值分析(6):分段低次插值和三次样条插值》和《数值分析(5):插值法》中已经介绍了如何用给定的插值点进行插值,得到的插值函数能够精确地经过这些给定的插值点。但是如果这些点本身就不精确,那么我们就没必要精确地经过这些点,只要保证在插值函数多项式的次数较低的情况下,和这些点保持一个较小的误差即可,即函数逼近。首先来看代数多项式空间的概念:再来看函数空间的概念:显然函数空间是由函数组成的,满足加法和数乘运算的线性空间。对于函数
2021-05-12 15:00:14 5110
原创 数值分析(6):分段低次和三次样条插值
分段低次和三次样条插值1. 引言2. 分段低次插值方法2.1 分段线性插值2.2 分段三次Hermite插值3. 三次样条插值函数3.1 待定系数法3.2 三弯矩法3.3 插值余项1. 引言根据前一章《数值分析(5):插值法》可知,给定n+1n+1n+1个点,可以用Newton法或lagrange法插出一个nnn次多项式函数φ(x)\varphi(x)φ(x),让φ(x)\varphi(x)φ(x)能够精确地穿过这n+1n+1n+1个点,且通过插值余项我们可以知道不处于这n+1n+1n+1个点的原函数值
2021-04-29 21:01:02 1691
原创 Objective-C学习笔记(4)——特有语法
特有语法1. 类的本质2. SEL3. 点语法4. @property5. @synthesize7. @property增强8. 动态类型和静态类型9. id类型10. instancetype类型11. 动态类型检测12. 构造方法1. 类的本质1.首先内存的五大区域有:栈堆BSS段数据段代码段:用来存储代码2.下面来讨论三个问题:第一个和第三个问题已经回答,下面来回答第二个问题3.类是以什么样的形式存储在代码段的用示意图表示即为:4.如何拿到存储
2021-04-24 15:16:42 367
原创 Objective-C学习笔记(3)——继承和多态
继承1. static关键字2. self关键字3. 继承3.1 继承的用法3.2 子类和父类3.3 继承的本质4. 访问修饰符5. 私有属性和私有方法6. 里氏替换原则7. 方法重写8. 多态1. static关键字如果方法的返回值是当前类的对象,那么方法的返回值就写instancetype2. self关键字3. 继承3.1 继承的用法为什么会用继承,主要是遇到以下问题:继承的目的、语法、效果,以及关于继承的几个术语继承是类在继承,而不是对象在继承。子类从父类继承,
2021-04-23 09:36:47 165
原创 Objective-C学习笔记(1)——OC的基本概念和类
OC的基本概念和类1. 基本概念1.1 OC和C程序的区别1.2 #import指令.1.3 框架1.4 自动释放池1.5 NSLog函数。1.6 字符串1.7 @符号1.8 函数与注释2. OC中的数据类型2.1 OC中支持C语言中的所有的数据类型.2.2 新增类型2.2.1 BOOL类型.2.2.2 Boolean2.2.3 class类2.2.4 id类型万能指针2.2.5 nil值2.2.6 SEL方法选择器2.2.7 block代码段3. 关于类的语法3.1 类的属性(变量)3.2 类的方法3.3
2021-04-22 14:03:30 610
原创 强化学习知识要点与编程实践(8)——探索与利用
探索与利用0. 引言1. 多臂赌博机2. 常用的探索方法2.1 衰减ϵ\epsilonϵ-贪婪方法2.2 不确定行为优先探索2.2.1 乐观初始估计2.2.2 置信区间上限2.2.3 概率匹配2.3 基于信息价值的探索本文未经许可,禁止转载,如需转载请联系笔者0. 引言在强化学习问题中,探索和利用是一对矛盾: 探索 尝试不同的行为继而收集更多的信息,利用 则是做出当前信息下的最佳决定。探索可能会牺牲一些短期利益,通过搜集更多信息而获得较为长期准确的利益估计;利用则侧重于对根据已掌握的信息而做到短期利
2021-04-16 11:09:02 739
原创 强化学习知识要点与编程实践(7)——基于模型的学习和规划
基于模型的学习和规划0. 引言1. 环境的模型2. 整合学习与规划——Dyna算法本文未经许可,禁止转载,如需转载请联系笔者0. 引言无论是前面第五章的关于价值函数的近似,还是第六章的基于策略梯度的深度强化学习,都没有让个体去试图理解环境,没有让他学习环境的变化规律。如果能建一个较为准确的模拟环境动力学特征的模型或者问题的模型本身就类似于一些棋类游戏是明确或者简单的,个体就可以通过构建这样的模型来模拟其与环境的交互,这种依靠模型模拟而不实际与环境交互的过程类似于“思考”过程。通过思考,个体可以对问题
2021-04-12 22:26:40 469
原创 强化学习知识要点与编程实践(6)——基于策略梯度的深度强化学习
基于策略梯度的深度强化学习0. 引言1. 基于策略学习的意义2. 策略目标函数3. Actor-Critic算法4. 深度确定性策略梯度(DDPG)算法5. 编程实践本文未经许可,禁止转载,如需转载请联系笔者0. 引言前一章《价值函数的近似表示(含DQN算法)》中介绍了在强化学习中如何处理状态数量多或者状态连续时的情况,其基本思路就是构建一个价值近似函数(通常是一个神经网络),输入 是状态矢量(矢量的每个元素可以取连续值,元素数量即为神经网络的输入神经元个数)或状态矢量+动作,输出 是V值或Q值,如下
2021-04-10 18:40:05 1650
原创 数值分析(4):非线性方程和方程组的数值解法
非线性方程和方程组的数值解法1. 引言2. 二分法3. 不动点迭代法3.1 不动点和不动点迭代法3.2 全局收敛性3.3 局部收敛性4. Newton迭代法4.1 Newton迭代法思路4.2 收敛性与收敛阶1. 引言对于n次多项式方程,必定有n个复数根(代数基本定理)。判断一个根是几重根,可以用导数来判断,如果f(m−1)(x∗)=0f^{(m-1)}(x^*) = 0f(m−1)(x∗)=0但是f(m)(x∗)≠0f^{(m)}(x^*) \neq 0f(m)(x∗)=0,那么x∗x^*x∗是
2021-04-07 19:57:11 4863
原创 图解DQN,DDQN,DDPG网络
图解DQN,DDQN,DDPG网络1. DQN1.1 网络结构1.2 产生experience的过程1.3 Q网络的更新流程2. DDQN2.1 网络结构2.2 产生experience的过程2.3 Q网络的更新流程3. DDPG3.1 网络结构3.2 产生experience的过程3.3 Actor网络的更新流程3.4 Critic网络的更新流程1. DQN深度Q网络(Deep Q Network)适用于动作离散的强化学习任务1.1 网络结构深度Q网络有两个网络结构,如下所示:Q网络输入是状态
2021-04-03 19:55:15 14704 6
原创 强化学习知识要点与编程实践(5)——价值函数的近似表示
价值函数的近似表示0. 前言1. 价值近似的意义2. 目标函数与梯度下降3. 常用近似函数3.1 线性近似3.2 神经网络4. DQN算法和DDQN算法5. 编程实践本文未经许可,禁止转载,如需转载请联系笔者0. 前言本章之前的内容介绍的多是规模比较小的强化学习问题,生活中有许多实际问题要复杂得多,有些是属于 状态数量 巨大甚至是连续的,有些 行为数量 较大或者是连续的。这些问题要是使用前几章介绍的基本算法效率会很低,甚至会无法得到较好的解决。本章就聚焦于求解那些 状态数量多或者是连续状态 的强化学习
2021-03-30 17:03:30 382
原创 强化学习知识要点与编程实践(4)——不基于模型的控制
不基于模型的控制0. 前言1. 行为价值函数的重要性2. ϵ\epsilonϵ-贪婪策略3. 现时策略(on-policy)蒙特卡罗控制4. 现时策略时序差分控制4.1 Sarsa算法4.2 Sarsa(λ\lambdaλ)算法4.3 比较Sarsa和Sarsa(λ\lambdaλ)5. 借鉴策略(off-policy)Q学习算法6. 编程实践本文未经许可,禁止转载,如需转载请联系笔者0. 前言前一章内容讲解了个体在不依赖模型的情况下如何进行预测,也就是求解在给定策略下的状态价值或行为价值函数。本章
2021-03-22 16:19:59 384
原创 强化学习知识要点与编程实践(3)——不基于模型的预测
不基于模型的预测0. 前言1. 蒙特卡罗强化学习2. 时序差分强化学习2.1 MC法和TD法的区别2.2 MC法、TD法、DP法的区别3. n步时序差分学习4. TD(λ\lambdaλ)算法分析5. 编程实践本文未经许可禁止转载,如需转载请联系笔者0. 前言在前一章: 动态规划寻找最优策略中,已经讲述了在已知状态转移概率时,如何使用 策略评估、策略迭代、价值迭代 的方法来求解价值函数,或寻找最优价值函数与最优策略。本章的重点在于未知环境的状态转移概率,就是在一个状态下采取一个动作,并不知道自己可能
2021-03-18 21:37:44 432
原创 强化学习知识要点与编程实践(2)——动态规划寻找最优策略
动态规划寻找最优策略0. 前言1. 策略评估2. 策略迭代3. 价值迭代4. 异步动态规划算法5. 编程实践0. 前言本文未经许可禁止转载,如需转载请联系笔者本章将详细讲解如何利用动态规划算法来解决强化学习中的规划问题。规划问题包含两个方面的内容,一是预测(prediction),二是控制(control),预测问题是给定策略,然后求在这个给定策略下,各个状态的价值;控制问题是不给定策略,只给定必要的环境信息(如奖励和状态转移概率等),然后求解最优策略和此策略下的最优价值函数。动态规划是指把求解复杂
2021-03-16 19:32:38 543
原创 数值分析(2):线性代数方程组的直接解法
线性代数方程组的直接解法1. Gauss消去法1.1 顺序消去与回代过程1. Gauss消去法本质:对增广矩阵做行变换,将系数矩阵变为上三角阵,然后从最后一行开始往前迭代求解1.1 顺序消去与回代过程令:其中:那么:因此A(n)A^{(n)}A(n)会是一个上三角阵,不妨记为UUU故这里得到矩阵的第一个分解方式—— Doolittle分解,即:...
2021-03-15 11:23:03 1559 1
原创 强化学习知识要点与编程实践(1)——马尔可夫决策过程
马尔可夫决策过程0. 前言1. 马尔科夫过程(Markov Process)2. 马尔可夫奖励过程(Markov Reward Process)3. 马尔可夫决策过程0. 前言马尔可夫决策过程是强化学习中重要的概念之一,但是在介绍马尔可夫决策过程之前,需要先了解马尔可夫过程,和马尔可夫奖励过程,它们是依次递进的关系。1. 马尔科夫过程(Markov Process)在一个时序过程中,如果 t+1t+1t+1 时刻的状态仅取决于 ttt 时刻的状态 StS_tSt 而与 ttt 时刻之前的任何状态
2021-03-14 11:27:37 914
腐蚀膨胀数字图像处理.zip
2019-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人