- 博客(308)
- 资源 (3)
- 收藏
- 关注
原创 强化学习问题设计技巧
原因:强化学习相当于是加强版的搜索算法,需要对动作空间进行探索,高维的动作空间非常稀疏,模型很难学习到有用的东西。更加具体来说,当动作奖励更高的时候,对模型来说才是比较有用的。模型陷入局部最优中。原因:因为是无监督学习,标签并非是一对一的,模型收敛很困难。原因:假设环境是在纸上画一条线,要和最优解的线重合,那么是擦掉之前画的,重新画容易,还是在原来的基础上修改容易?是画了以后告诉你偏差多少容易,还是告诉你和之前相比,偏差更大/更小容易?原因:比较容易收敛,且对于连续动作,离散动作都能很好支持。
2024-11-07 18:36:51
383
1
原创 VAE论文阅读
其实有了概率密度,可以直接在里面采样。这里是推导过程,大家都这么写。在实际操作的时候,所有的p都会变成一个已知的分布,否则无法计算的。pθx一些公式p_\theta(x) = 一些公式pθx一些公式这些公式计算后发现是一个高斯分布NμσNμσxμσεxμσε其中ϵ\epsilonϵ是随机采样的噪声。所以说,两种形式必须都能看懂才行。
2024-07-17 19:17:29
1446
1
原创 django使用fetch上传文件
在上一篇文章中,我包装了fetch方法,使其携带cookie。${这里还是选择使用formData进行传递数据,一是django可以从POST.get(key)直接获取参数,如果是浅层的就不需要额外json.parse 了,二是json传输文件需要base64,可能有性能损失。
2024-05-29 10:57:47
619
1
原创 【torchrl】强化学习训练流程
如果采集到数据,马上就计算state value,那么其实不需要保存state,也就是critic(no grad)这一步可以放在step之前,然后在replay buffer中不再存储state,而是state value。有些算法可能会直接在这里估计state value,即这步的下面一步合并到这步中,那么就会增加state value, 和next state value。一般是采集一步数据,加入replay buffer,然后采样若干数据训练多次。也有是采集多步数据,然后训练多次。
2024-05-28 18:01:24
1101
原创 Windows Redis ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
带上配置文件运行就解决了 redis-server.exe redis.conf。我的原因是直接点了exe运行,没有带配置文件。
2024-05-27 22:40:08
296
原创 Django使用fetch实现登录
Django使用session管理(cookie)实现了一个用户登录和会话保持功能。如果需求不太复杂可以使用Django默认的登录功能。
2024-05-26 21:40:43
582
原创 Uni-app+Uni-cloud开发体验
好了,以上就是使用Uni-app+Uni-cloud的开发体验了,包含了用户登录,数据库操作,后台管理等等,感觉功能非常齐全,里面也有很多造好的轮子,和传统的开发方式相比应该可以提升不少的效率。
2024-02-04 10:31:36
767
原创 DDPM对于噪声的理解
在这个表达式中,噪声已经经过采样变成了一个确定的值,当然可以拟合了。所以说在训练的时候并没有拿具体的每一步噪声去拟合,而是使用一个噪声直接从X0计算到Xt,然后再用神经网络拟合那个噪声。很多人解释的时候说这样是提高效率云云,我觉得关键点还是,在目标函数中用到的噪声就是这个从X0到Xt的噪声!而不是每一步的噪声。如果用到了每一步的噪声,那么肯定还是去拟合每一步噪声的。X0是原始图像,Xt是加了t步噪声的图像。是一个固定的噪声值,不再是一个分布了!,此时Xt采样后变成了一个值,X0本身就是一个常数,而。
2023-12-19 11:02:31
1100
1
原创 强化学习库torchrl介绍和强化学习五问
torchrl是一个基于pytorch的强化学习库,我发现根据torchrl的结构可以对强化学习知识点有更加深入的理解,下面将我的理解记录如下:'next''reward'4.4f可以看出torchrl对强化学习的抽象做的比较好,另外也提供了一个叫做Trainer的类,可以不需要手动迭代了。
2023-10-09 13:47:12
2042
4
原创 rknn-toolkit安装的一点感想
rknn-toolkit装了好多次,总是会报错,终于尝试出了一个版本可以用的。(注意windows和linux上都能用)
2023-08-10 18:46:07
721
原创 无效的密码: 密码少于 8 个字符
修改用户密码修改有了限制,要求不少于8个字符。对于一个自己用的linux系统,每次输入密码都要输入8个,显然是不能忍受的。其实也有方法修改,就是进入root修改。root改密码是没有限制的。现在使用Ubuntu22.04好像加了限制。在装系统的时候设置密码没有特殊的要求,但是如果要。然后输入两遍密码就改成功了。虽然会提示你密码不能少于8个字符,但是是可以改的。
2023-07-29 20:19:39
4525
原创 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
这里是已经把用户加入了docker组了。
2023-04-29 10:24:00
198
原创 如何分辨on-policy和off-policy
这里一个(s,a)对看成一个随机变量,服从均匀分布,因此分布和策略无关(至于为什么s,a是均匀分布,那个是算法自己假设的),因此采样的时候需要用到experience replay,使得不管什么策略采样得到的reward,都变成均匀分布的。如果目标函数中s,a的分布和策略相关的,那么一定是on-policy的,如果是策略无关的,那么一定是off-policy的。就是一个期望+一个类似正则项的东西,而非常明显看出来,这个期望是服从策略theta’的,也就是说s,a分布和策略相关,因此是on-policy的。
2023-03-05 17:59:42
782
原创 开发一个看番app[樱花动漫移动端app]
使用react-native开发,功能:项目地址: https://github.com/HGGshiwo/Sakura界面:
2023-03-04 20:07:47
14713
原创 强化学习中对on-policy和off-policy的理解
我觉得说的不对,因为Sarsa使用的是下一个state的action value来估计state value,但是下一个action的选择也倾向于选择action value最大的,因此和Q-learning也就是determistic和stomastic的区别。因此最开始的图片其实两者都是on-policy的。我觉得Sarsa和Q-learning最大的不同在于Sarsa在算reward的这个s,a必须是上一次估计state value获得的s,a,而Q-learning则是可以任意的选择一个s,a。
2023-02-22 17:57:08
582
原创 model free算法中的action value以及state value的理解
model free算法中,由于未知模型,因此缺少两个重要的分布: p(r|a,s)和p(s’|a,s),因此求解贝尔曼方程或者贝尔曼最优方程必须估计state value和action value的期望。这里就涉及到重要的问题,如何理解action value和state value。
2023-02-15 23:24:29
900
原创 强化学习中,值迭代(value iteration)和策略迭代(policy iteration),Truncated policy iteration区别的理解
值迭代的过程是: v->q->pi->v->q->pi->v->q->…,策略迭代的过程是:v->q->v->q->v->q->pipi->…值迭代是一次v->q就更新了策略pi,策略迭代是v->q->v->q这样迭代了若干次,直到v收敛才更新pi,理论上需要迭代无数次,Truncated policy iteration指的是不需要更新到v收敛,v->q迭代若干次就更新pi。
2023-02-12 22:39:07
2786
2
原创 ROS中map,odom坐标系的理解以及acml和robot_pose_ekf的对比和小车漂移方法解决
只是一个概念上的坐标系,实际不存在如果说完全相信传感器的数据,那么可以认为odom坐标系就是map坐标系如何计算odom坐标系相对于map坐标系的位置:首先获得差速计推算出的小车坐标p,然后使用雷达再次估算小车的位置g(此时认为g比较准确,因此认为g就是小车在map上的坐标),那么差速计得到的坐标可以看成是小车在odom的坐标+odom相对于map的偏差,因此odom在map上的坐标就是p-g。
2023-02-03 08:11:32
6085
1
原创 gazebo多机器人仿真和move_base,diff_drive等gazebo包配置
gazebo中的多机器人仿真指的是在gazebo中加入多个urdf,并控制机器人运动。下面是我总结的一些名称的命名规律。
2023-01-29 20:49:54
1594
1
原创 使用gazebo对scara机械臂进行仿真
本文主要介绍如何仿真一个scara机械臂,以及在网上看了一些项目以后,有了一些感想,不想看的可以直接跳到机械臂部分。
2023-01-26 14:12:03
1847
翻译 ·Docker desktop启动卡住,Docker is starting...
关闭docker-desktop,如果关不掉可以尝试重启。再次打开就可以正常启动了。
2023-01-23 17:40:28
7423
2
原创 装 ros 报错 E: Unable to locate package ros-melodic-desktop-full
换了清华源也不行,后来发现有另一个安装方法:http://wiki.ros.org/ROS/Installation/TwoLineInstall/最终安装成功了,大家可以试一试。注意这个命令是安装20.04对应的ROS的。
2023-01-18 20:53:17
1615
原创 Uncaught (in promise) DOMException: The play() request was interrupted by a new load request.
原因是:video.play是一个promise,因此错误需要在结束以后catch。然后再次调用play函数即可。
2023-01-11 19:15:40
11454
原创 SVM(支持向量机)的一些思考:在margin上却不属于支持向量
ββ0minst21∥β∥2Ci1∑Nξiξi≥0yixiTββ0≥1−ξi∀i12.8LP21∥β∥2Ci1∑Nξi−i1∑NαiyixiTββ0−1−ξi)]−i1∑Nμiξi12.9先写出KKT条件:12.10:对β。
2023-01-07 23:26:19
367
翻译 Android虚拟机屏幕和边框大小不一致
修改C:\Users[Username]\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe的属性。
2022-12-27 18:18:49
200
原创 Vue拖拽边框的进一步实现
原文地址:https://blog.youkuaiyun.com/weixin_45337695/article/details/113337753对于一组拖拽,应该分为左侧,拖拽框,右侧三部分。(或者是上测,拖拽框,下侧三部分)函数的参数为:对于水平的拖拽框,第一个参数是上侧的元素,第二个拖拽框是下侧的元素,第三四个参数是上下最小的距离,第四个参数是拖拽框本身,第五个参数是是否是水平的,为true。对于垂直的拖拽框,第一个参数是左侧的元素,第二个是右侧的元素,第三四个是左右最小的距离,第四给是拖拽框本身,第五个是是否
2022-11-11 09:10:07
877
1
原创 regeneratorRuntime is not defined, Vue3+electron项目
让我崩溃的是我的transpileDependencies已经设置为true了(默认建项目的时候设置的是true),意味着应该会转义所有的node_module中的包。默认使用 Babel 7 + babel-loader + @vue/babel-preset-app,也就是无需再单独引入babel-loader等转换插件了。我当时按照网上说的安装了@babel/plugin-transform-runtime,配置了babel.config.js。
2022-10-25 19:16:46
1077
1
原创 考研复习 计组
汇编和编译生成编译(想到编译原理)生成汇编代码汇编生成机器码编译和解释编译->汇编代码->汇编->机器码->链接(库函数)->可执行文件解释边翻译为机器语言边执行,执行效率低硬件和软件实现逻辑等价系统软件操作系统、数据库管理系统(数据库系统不是)、编译程序、网络软件冯诺依曼架构包含(5叔叔空存储)输入、输出、控制、存储器、处理器数据和指令一同存放,靠不同的执行周期进行区别。......
2022-07-31 09:39:54
166
原创 考研复习 数据结构
稳定性归并,插入,基数,冒泡(跪插鸡毛)辅助空间冒泡(n~logn),归并O(n)复杂度和初始状态有关插入,冒泡,快排,希尔排序趟数和初始值有关冒泡一趟后可能没有一个元素在正确位置上归并,插入一趟后总有元素在正确位置上选择,冒泡,快排,堆排序。......
2022-07-21 10:11:11
169
原创 编译原理3
three–address code:x = y op zQuadruple:三地址码表现形式:(op, y, z, x)Triple:比如赋值:fact = 1,Triple: (asn, 1, fact),此时不需要省略比如乘法:x = y mul z Triple: (mul, y, z),此时需要省略,用到x的地方替换为这条的地址三地址码取值和赋值都是相同的x.i:p->lchild=p,求地址进行操作。p本身就是一个地址a[j+2]if 语句 if(E) S1 else S2while
2022-06-20 19:37:10
528
1
原创 编译原理2
属性定义计算方法函数Inherited Attributes依赖关系不是子节点指向父节点,包括父指向子或者兄弟指向兄弟preorder作为函数的参数Synthesized Attributes该属性总是由子节点指向父节点。(先计算子节点的属性值,然后赋值给父节点)post order作为函数的返回值S-attributed grammar:An attribute grammar in which all the attributes are synthes....
2022-06-20 19:23:00
382
原创 嵌入式复习
定义:嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁软硬件,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。实时系统:指系统能够在限定的响应时间内提供所需水平的服务。嵌入式操作系统:VxWorks、Windows CE、Android、iOS,Linux区别:嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统(可选),以及用户的应用软件系统等四个部分组成ARM和Thumb状态切换使用bx指令ARM=>Thumb:Thumb=>ARM:ARM寄存器:31(通用
2022-06-19 11:05:24
1086
原创 HW SR505红外传感器模块 一直输出高电平
1: 505检测的是物体移动,不是前面是否有人,如果一个人一动不动也是不会检测出来的。2: 505的正脚必须接5v,如果接3.3v则会不灵敏。505输出脚高电平总是3.3v,如果out引脚一直输出高电平试一下接+5v3: 505输出一次高电平会延迟8s±30%,也就是说如果检测到一次移动,会一直输出高电平,哪怕人已经走了。这个延迟时间无法改变,但是502可以修改。原理图:使用:+引脚接vcc, -引脚接dnc,out脚接输入引脚,如果out输出高电平则表示检测到移动测试代码:
2022-05-31 23:57:34
3395
5
原创 编译原理1
1: ambiguious:条件:出现至少两个parse tree或者两种最左/右推导,一般来说形式是A->aAbA,A->c|d,此时只需要利用第二个式子的两种情况分别替换第一个式子的两个A,如果得到相同结果即可。2: 生成最小状态1: 根据是否是终结状态分为两个集合2: 看第一个集合输入a是否会进入第二个集合,将其细分3: 看第二步分好的集合输入b是否会进入不同的集合…3: 正则表达式转为NFA:闭包: 增加两个状态和两个转移或: 增加2个状态和n个转移连接:增加一个
2022-05-21 20:44:53
423
普通物理学2(H)答案详解版
2020-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人