- 博客(28)
- 资源 (5)
- 收藏
- 关注
原创 强化学习中的重要性采样
在强化学习中,**重要性采样(Importance Sampling)**是一种非常有用的技术,它主要用于估计和优化策略(policy)下的期望回报,特别是当我们无法直接从目标策略中采样时。重要性采样是一种概率技术,用于从一个概率分布中估计另一个分布的期望值。在强化学习中,这通常涉及到从与目标策略π\piπ不同的行为策略β\betaβ下的样本来估计π\piπ的性能。
2024-05-13 22:56:25
1114
原创 暴力快速入门强化学习
即表示从时刻t开始,棋盘状态为S,该时刻的状态按照智能体的策略一直执行下去,到最终游戏结束,得到的奖励累计之和,就用这个表示当前状态S的价值。也就唯一确定了,但很多情况往往是不确定的,比如你每学期你的状态都是摆烂,然后考试前你的行动都是通宵复习,但有时候你挂科了,有时候你及格了,还有时候你满分了,这就是不确定的,这是有概率的,当然在及格边缘的概率更大,所以我们定义这个环境变换的映射情况就叫做状态转移概率,即。前面说到用累计奖励作为状态的价值,其实就是用某个状态的回报作为该状态的价值,不过因为回报。
2024-03-22 23:24:50
1515
1
原创 贝尔曼公式
强化学习的思想借鉴了心理学、神经科学领域,即希望智能体(agent)像人一样,通过不断与外界进行交互,作用于环境,并得到环境的反馈,根据奖励和惩罚来调整自己的策略,不断修炼,希望最终学到的策略得到的奖励能够最大化。一般来说,一个科研思路都是从直觉开始的,但是怎么把直觉抽象出来,进行精确的数学表达,从而可以量化自己的直觉是很重要的。经过之前科学家们的不断探索,总结出了一条适用于实现强化学习这个想法的数学框架,即马尔科夫决策过程(MDP)
2024-01-16 20:41:27
849
原创 SAC算法详解
软行动者-评论家(Soft Actor-Critic, SAC)算法是一种基于深度学习的强化学习方法,其目标是在探索和利用之间实现平衡,同时保持策略的高熵(即随机性)。
2024-01-15 21:23:09
2619
原创 值迭代和策略迭代详解
强化学习中的两个核心算法——值迭代(Value Iteration)和策略迭代(Policy Iteration)——是解决马尔可夫决策过程(MDP)问题的经典方法。本文将详细介绍这两种算法的原理和区别。
2024-01-07 20:29:10
1493
原创 强化学习基础概念与学习资源推荐
强化学习(Reinforcement Learning, RL)是机器学习的一个重要分支,主要研究在不确定环境中如何做出决策以最大化某种累积奖励。它涉及三个基本要素:智能体(agent)、环境(environment)和奖励(reward)。智能体在环境中采取行动,环境根据智能体的行动给出下一个状态和奖励,智能体根据奖励来调整自己的行为策略。
2024-01-03 21:40:57
351
原创 Transformer中的kqv
💡 自注意力机制其实是希望实现当前一组输入的自关联,输入信息内部自己注意到哪些特征之间是关联性很高的(比如一个句子,相同词汇要根据整个句子才能知道具体意思)。,而计算机中一般被索引的数据都是通过索引键(key)来找到整个数据的(比如键值对,就是通过键,就能找到整个值)。💡 比如一组输入包含4个特征,那就需要两两计算不同特征之间的关联性。如果先计算第一个特征与其余特征的关联性,那第一个特征就先通过一个FC层。💡 现在想通过得到的这些关联性计算出新的特征,该特征包含了全局的关联信息,所以一个直观的思路就是。
2023-07-26 10:08:50
1126
原创 深度学习精简快速调参总结
就我之前做的实验而言,当weight decay为0时,loss其实经过上面学习率的调整也是能够正常降低并收敛的,但是最终收敛时loss还是比较大的。之前做自己的实验,调深度学习模型调了几个月,从早到晚,调到我要吐了,而且效果还不好,虽然在这个过程中也通过实践学到了一点点经验,但是比起我付出的时间和精力,感觉还是大亏啊!但是有时候会发现学习率调整为某个值时,loss一直不下降,然后学习率稍微调大一点,loss就不降反升,这时候可以把学习率调回原来的值,然后增加epoch,比如。
2023-07-25 12:29:43
215
原创 Python进程池调用类方法失败如何解决
Python中的进程池是无法调用类方法的,如果非要调用,要在类方法上一行加上@staticmethod,修饰为静态方法才可调用,静态方法也有一些限制,比如静态方法不能传递参数。另外一个比较好的解决方法是在全局重新定义一个方法,在该方法中创建类的实例化对象,然后再调用类中的方法,经过这样的包装就可以使用了。...
2022-02-17 19:46:14
1240
3
原创 PYQT5崩溃退出无报错怎么解决?
现在PyQt5如果遇到代码有问题且没有返回值时,就会崩溃退出,并且不会显示报错。这种情况下应该在代码中增加打印信息,然后一步步找到出错的代码,找到了之后将这行代码单独写在另一个py文件中单独运行,注意要保证这行代码执行时的数据与PyQt5中提供的数据一致,通过单独运行,就可以看到报错信息啦!...
2022-02-17 19:41:10
2464
原创 Python中Numpy数组转换成C++中OpenCV的Mat类型(超少代码,超快速度)
最近在做项目需要用python调用C++中的OpenCV源码,必须要将numpy类型的数组传到C++中才行,在网上找了一大圈方法,特别是这个大佬的代码: https://github.com/Algomorph/pyboostcvconverter刚开始用这位大佬的代码,得经过重重编译才能使用,起初一直编译不成功,要么就编译成功了调用失败,折腾了三天,终于成功调用它的实例代码了,但是当我想改C++代码中的函数来实现自己的需求时,又失败了,在反复折磨下,我放弃了。后面自己还是慢慢摸索别的方法,终于!!
2022-02-17 19:29:45
7639
29
原创 编译后文件调用总是出错如何解决
####最近在做项目,需要编译很多代码供自己的项目调用,但是每次编译完成之后,在调用dll或者pyd文件时,总是出错。我仔细地核对了编译过程的每一个步骤,但调用文件的时候还是出错。经过了几天的反复编译,最后我决定将编译文件的版本换高一点,比如opencv,之前一直编译3.0的,后面换成4.1的就成功了;编译boost也是,编译1.68一直失败,换成1.76就成功了。所以说以后如果确保自己编译过程没错的话,但是调用时出错,不防将编译文件的版本提高一点再进行编译。...
2022-02-06 22:17:08
1934
原创 opencv4.1.0编译opencv-contrib和cuda
之前想跑通surf-cuda算法,查了好多博客和视频,配置了三天才解决,现在写博客记录下配置过程。基本的配置过程如下:下载opencv4.1.1和opencv-contrib4.1.0下载cuda和cudnn下载cmake用cmake编译opencv除了基本的勾选项之外记得勾选nonfree选项generate之后打开项目配置属性配置的过程参考这个视频。在cmake的过程中如果发现配置信息有红色字体,说明有些资料没有下载下来,这个博客有解决方案。...
2022-01-25 12:41:45
3373
原创 操作系统之——加锁和信号量的区别
锁(lock)和信号量(semaphore)的区别在上操作系统课的时候,一直没弄懂加锁互斥,以及用信号量来进行临界区的互斥有啥异同。最近在书上看到一段话,我终于弄懂了!!!对一段代码加锁相当于我每次想要执行该段代码时,都要判断该lock是不是为真(没锁上)啊,为真我才能执行,如果不为真,我就等待下次调度该代码时再次判断lock是不是为真。而对一段代码加信号量,其实本质上也是判断该信号量是不是为真啊,为真我才能执行,但是如果不为真,该进程就进入等待队列,等待下次调度改代码时,直接就可以执行了,而不用
2021-10-28 15:51:35
1954
3
原创 文本分类的基本步骤
读取语料库(语料库中存着每个词对应的索引值)读取词嵌入库(根据每个索引值可以找到每个词对应的词向量)将词向量输入深度学习模型中进行学习
2021-07-04 16:23:07
471
原创 PyQt实现控件随窗口缩放自适应
在pyqt中使用布局时,要想让控件所占布局的比例发生变化,要将尺寸策略sizepolicy改为expending,然后将水平策略或者垂直策略改为对应尺寸,例如两个控件的水平策略改为2:1的比例。要想整体的控件随窗口缩放实现自适应大小的功能,就要在窗口空白处(即在没有选中控件的地方)单击右键,点击布局,选择水平布局或者垂直布局。这样所有的控件自动和窗口以前实现了统一的布局,所以就实现了窗口控件自适应的功能。...
2021-07-04 16:16:31
9522
2
原创 一些深度学习方面的tricks
最近看了一些论文,了解到了一些关于深度学习方面特别是计算机视觉方面的算法。基于量子优化的自适应确定权值的高分辨率重建深度网络:由生成对抗网络和原图像先验信息估计网络两个网络组成,该方法可以由低分辨率图像生成高分辨率图像。基于遗传算法的卷积神经网络参数优化方法:依据生物中遗传的特点,将卷积神经网络中的参数如卷积核个数、卷积核和池化层尺寸、超参数等参数看错一个个体中的基因,多个个体组成一个种群,种群在每代繁衍中基因进行遗传、突变、重组等,根据适者生存的原则,只有携带基因能够很好地适应环境的个体,才能达到环
2021-07-03 08:20:01
112
原创 损失函数图像离谱的原因
今天运行一个机器学习的模型,刚开始得到的损失函数图像一直是下面这样:反正基本是直的,就挺离谱,弄了好久都不知道为什么。后面终于弄懂了,原来我的数据x都是在0-1之间的,数值都很小,而我使用的损失函数没有求平均,用的是sum,所以即使梯度下降了,我的整个损失也只有轻微的变化,在图像上就当然看不出来了。把损失函数改成mean的形式就好了:...
2021-06-22 18:06:30
989
2
原创 K-means算法的基本过程
K-means算法的基本过程K-means算法是无监督学习中的聚类算法,具体其实是一个迭代算法。基本过程是:随机给定聚类中心,进行簇随机分配移动聚类中心循环1和2其实就是在平面或者空间中将一些点进行分类,比如要分成两类,随机在平面或空间中放两个点,哪些点离这两个点更近,哪些点就被分配到这两个点中的一个,然后把这两个点分别移到刚刚分配好的点集的均值中心位置,此时再根据距离仅的规则再分配一次,然后再移动,不断迭代这个过程,直至收敛。话不多说,直接看图:先随机分类根据距离远近进行簇分配根
2021-06-22 11:59:28
7260
原创 随机梯度下降与Mini-batch梯度下降
随机梯度下降与Mini-batch梯度下降在讲随机梯度下降(stochastic gradient descent)与Mini-batch gradient descent之前,先简要说一下批量梯度下降(batch gradient descent)。批量梯度下降应该就是我们最初了解的那种梯度下降,特点就是每一次更新参数,都需要把数据集中全部的数据都遍历一遍。具体看公式:上图是一个实现逻辑回归模型参数更新的基本过程,其中hθ(x)h_\theta(x)hθ(x)是假设函数,Jtrain(θ)J_
2021-06-22 11:40:23
421
原创 机器学习系统构建方法
关于机器学习的系统构建方法和一些小技巧对于机器学习问题,如果我们能不断地对自己的模型有新的想法,并且能够将自己的想法实现,能做到这些就已经很不错了。关于如何系统地构建机器学习模型,我推荐下列步骤:用交叉验证的方法快速实现一个模型,不必管这个模型的好坏,只要快速做出来就好,避免提前优化。画学习曲线来决定下一步该怎么做,比如增加数据特征、增加数据量、减小正则化参数λ\lambdaλ等等措施。不知道学习曲线是什么的参考我的上一篇博客:机器学习如何正确调参之学习曲线进行误差分析,所谓误差分析就是去看看验
2021-06-21 17:12:32
333
原创 机器学习如何正确调参之学习曲线
利用学习曲线让你的机器学习模型效果更好我们知道,很多时候我们的机器学习或者深度学习的模型一开始效果并不是很好,当训练出来结果不是很好时,通常有下列几种方法:增加数据量尝试减少的特征尝试增加特征减小正则化参数λ\lambdaλ增大正则化参数λ\lambdaλ那么什么时候用那种方法呢?如果只凭直觉胡乱尝试,很多时候只会是浪费时间,模型效果也没有得到多大提升。这篇博客会告诉你用如何用学习曲线来根据机器模型的结果正确调参,让你把时间花在刀刃上!下面先介绍学习曲线:上图中Jcv_{cv}cv
2021-06-21 12:32:09
1813
原创 机器学习之多变量线性回归(第三篇)
由于我才刚写博客不久,所以写的很像大多数博客那种风格,只是把我所学的知识机械地讲出来了,但是却缺少了我自己的理解。我的上一篇博客机器学习之线性回归算法(第二篇),在写的时候我就感觉很别扭,总是希望把更多的知识细节写上去,但又觉得太冗杂了,所以这篇博客,我决定按我所想来写,抛去我所学知识的细节,用最通俗易懂的方式来表达我的想法。好的,在上篇博客中讨论的是单变量线性回归,在这篇中我要讲清楚如何处理多变量线性回归。其实你别看这些词啊,什么单变量多变量,听起来很唬人,其实就是方程中未知数的个数,单变量就是只有一
2021-03-29 21:06:57
127
原创 机器学习之线性回归算法(第二篇)
线性回归算法在这一篇博客中,我会表达我对今天学习的线性回归算法的理解。OK,目前要解决的问题就是,我们得到了一个数据集,也称做训练集。而机器学习的过程就是:计算机读取数据集计算机通过某种算法分析数据集计算机分析过后得出了一个线性函数h(x)这个h(x)可以很好地拟合数据集地数据,从而可以方便人们对某个特定的数据进行预测。上面的线性函数h(x)叫做假设函数,“某种算法”这里用的是梯度下降法。如果听不懂也没有关系,接下来我将介绍如何实现该算法。假设函数:h(x)=θ0+θ1xh(x)=\t
2021-03-29 00:15:29
187
原创 机器学习入门第一篇
机器学习定义及分类首先说明,我是北京某211一名大二的学生,现在对机器学习完全是0基础,我想要每天写博客来记录我机器学习之路。机器学习定义:计算机程序从经验E中学习,去解决任务T,结束时会得到完成任务的表现评价P,通过P对T的评定使得经验E不断提高。机器学习分类:监督学习(supervised learning):教计算机学习;无监督学习(unsupervised learning):让计算机自己学习强化学习推荐系统目前主要学习前两种。监督学习在我理解来看,就是用已知有“正确答案”的数据
2021-03-27 23:06:18
76
ustb-计通必修课-计算机组成原理课程设计
2023-07-24
ustb-计科专选-python程序设计-作业报告
2023-07-24
图像分割批量转化json文件为mask文件的Python程序
2021-11-08
深度学习+图像分割+道路裂缝数据集
2021-09-03
基于pyqt5的图片查看器,是一个桌面端软件,其中的大图查看器具有鸟瞰图的功能。
2021-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人