- 博客(11)
- 收藏
- 关注
原创 解决Vue+ElementUI容器无法铺满网页的问题
通过调整html,body以及el-container容器的样式来解决无法铺满页面的问题
2024-08-27 17:27:19
1154
3
原创 深度学习笔记——锚框
目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界从而更准确地预测目标的真实边界框不同的模型使用的区域采样方法可能不同。这里我们介绍其中的一种方法:以每个像素为中心,生成多个缩放比和宽高比(aspect ratio)不同的边界框。这些边界框被称为锚框。
2024-01-26 17:33:16
2280
1
原创 动手学强化学习笔记-SAC算法
对于连续动作空间的环境,SAC算法的策略网络输出高斯分布的均值和标准差,但是根据高斯分布来采样动作的过程是不可导的(是因为高斯分布的采样是通过随机抽取标准正态分布(也称为高斯分布的变量)加上平均值和标准差的乘积得到的。而在某个最优动作比较确定的状态小,熵的取值就可以小一点。这个公式是指通过最小化动作分布的KL散度来改进策略,括号中的右半部分表示基于当前值函数和归一化因子的指数型动作分布,通过最小化 KL 散度,我们能够使改善后的策略更接近于基于当前值函数的指数型动作分布,从而提高整体策略的性能。
2023-09-20 21:21:51
7343
9
原创 动手学强化学习笔记-模仿学习
这一点和BC不同,BC完全不需要和环境交互。而模仿者策略的目标就是要使得其交互产生的轨迹尽可能地被判别器误认为是专家轨迹,也就是说判别器的输出越靠近0越好,因此,我们可以将奖励函数设置为r(s,a)=-logD(s,a),因为我们需要最大化奖励,而当判别器的输出趋向于0时,logD(s,a)趋向于负无穷,因此要加负号构造奖励函数,事实上,我们应该也可以利用神经网络,将损失函数设置为logD(s,a),通过最小化损失函数,从而使得判别器的输出靠近0。其中,B是专家的数据集,L是对应监督学习框架下的损失函数。
2023-09-19 23:50:14
689
原创 动手学强化学习笔记-DDPG算法
而之前的DQN算法直接估计最优函数Q,可以做到离线学习,但是它需要从所有动作中选取Q值最大的动作,能处理的动作空间有限,也有局限性。我们可以这样理解:假设现在已经有函数Q,给定一个状态s,但由于动作空间是无限的,我们无法遍历所有动作来得到Q值最大的动作,因此我们想使用策略μ来帮助我们找到使得Q(s,a)最大的动作a,即。更新方式与策略梯度定理其实很相近,只不过DDPG使用了经验回放池来训练网络,从而直接预测Q值,通过最大化Q网络的输出,从而最大化状态价值V,而不是使用蒙特卡洛采样计算价值。
2023-09-19 22:58:13
421
1
原创 动手学强化学习笔记-PPO算法
在微积分中,我们知道对于这个有约束条件的最大值,我们可以利用拉格朗日乘数法转化为无约束条件下的最大值,这个就是PPO-惩罚算法。取小是为了防止目标的变化过于剧烈,比如说原本没有进行截断的目标就已经满足了约束条件,如果此时再取到clip的边界值的话,那就会与上一个目标值的差距较大,目标变化过于明显,而两者取小就可以避免这种情况,从而保证了训练的稳定性。可见,作为TRPO的改进算法,PPO简化TRPO中的复杂计算,并且它在实验中的性能绝大多数情况下比TRPO更好。是一个超参数,表示进行截断的范围。
2023-09-19 21:17:27
1238
原创 动手学强化学习笔记-TRPO算法
然而,由于之前TRPO算法使用了泰勒展开的1阶和2阶近似,这样并非精准求解,因此,θ'可能未必比θ(k)好,或者未必能满足KL散度的限制。但是直接求解这个式子非常困难,因为π(θ')是我们需要求解的策略,而我们又利用它来收集样本,这个是不现实的。第一个公式其实就是最大化目标,第二个公式是使得KL散度足够小,从而保证新旧策略足够接近,这一看就是一个带约束条件的求多元函数最大值问题,TRPO算法是采用直接求解,其实事实上我们可以采用拉格朗日乘数法化为无约束条件的优化问题,这其实就是后面的PPO惩罚算法。
2023-09-19 20:22:22
944
5
原创 动手学强化学习-Actor-Critic算法
Actor要做的是与环境交互,并在Critic价值函数的指导下最大化目标,而时序差分残差是由时序差分目标和价值函数相减得到,而我们知道时序差分目标是用来估计当前状态价值的,而时序差分目标同时也可以用于估计Q值,价值函数就是Critic网络的输出值,是一个价值函数,所以时序差分残差在一定意义上可以理解成优势函数A,而Actor要做的就是最大化优势函数A,而我们知道优势函数A他是Critic网络输出的一个函数,所以,这才有了Actor网络是在Critic的指导下进行优化。设置超参数,开始试验。
2023-09-19 09:29:57
538
原创 动手学强化学习笔记-REINFORCE算法
定义策略网络PolicyNet,他的输入是某个状态,输出是该状态下的动作概率分布,我们利用softmax()函数来实现一个多项分布,事实上我们是利用价值的归一化来替代了动作的概率分布,简单来说,就是价值越高,那么他的概率就越大。由于采用蒙特卡洛方法进行估计,REINFORCE算法的梯度估计的方差很大,可能会造成一定程度上的不稳定。利用蒙特卡洛方法估计,利用这个公式来更新策略。定义REINFORCE算法。设置超参数,开始试验。
2023-09-19 08:46:48
509
原创 动手学强化学习笔记-Dueling DQN
当取最优动作a*时,A(s,a*)=maxA(s,a'),从而maxQ(s,a)=V(s),此时最优的Q有唯一的V,确保了V值建模的唯一性。对于该式子的证明,我们可以对优势函数A*(s,a)=Q*(s,a)-V*(s),两边同时取最优动作a*,则有maxA*(s,a*)=maxQ*(s,a*)-V*(s),又根据最优策略与Q值的关系(贝尔曼最优方程),有V*(s)=maxQ*(s,a),可以得到maxA*(s,a)=0。那么就可以得到Q*(s,a)=V*(s)+A*(s,a)-maxA*(s,a)。
2023-09-19 08:22:27
263
原创 动手学强化学习笔记-Double DQN
普通的DQN算法通常会导致对Q值的过高估计,原因是Q值的估计以及动作的选取采用了同一套神经网络,而神经网络在估算Q值时本身会产生正向或负向的误差,而拟合的误差在参数更新时并未得到修正,比如说状态s下所有动作的Q值均为0,而神经网络拟合时出现了某些动作价值估计有正误差的情况,即存在某个动作a使得Q(s,a)>0,此时我们的更新目标就出现了过高估计,r+γmaxQ>r+0,那么此时Q(s,a)就被过高估计了,而我们之后也会拿这个Q值去更新上一步的Q值,这样子误差就逐步累积了。,目标网络的参数记为。
2023-09-18 23:53:00
565
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人