avatar
Articles
91
Tags
49
Categories
34
Home
Archives
Tags
Categories
Link
About
Blogs
Home
Archives
Tags
Categories
Link
About

Blogs

DQN改进
Created2024-04-13|reinforcement_learning
Article Reading本次阅读三篇论文,分别是 1509.06461 1511.05952 1511.06581,分别是优先经验回放、Double DQN 和 Dual DQN Double DQNDouble DQN主要解决的问题是在贪心策略做最大化的时候出现的最大化偏差问题,什么是最大化偏差呢? 最大化偏差(过估计)正常情况下理想的最优策略下的状态价值函数和动作价值函数应该满足:即使这里的估计是无偏的,即满足也不代表它的二阶矩就是0(证明是把上面那个式子里面的正的部分和负的部分分开再求平方),假设在这种情况下,会有:(平均值原理)这个下界是紧下界。 最大化偏差问题会导致很多模型的训练出现训练不稳定或者就训练不起来的情况。 Double DQN如何解决最大化偏差问题Double DQN选择使用两个不同的网络来进行学习。首先是有一个 Target 网络用于对当前的动作进行评估,再用一个 Q-Network 来学习当前的价值。每过一段时间就用 Q网络来更新target网络。 这个时候的更新表达式如下: $$T_t^{\mathrm{DoubleQ}} \equiv...
Tmux 使用简介
Created2024-03-21|教程
tmux简介tmux是链接服务器跑服务的神器,可以在取消链接之后继续运行想要运行的程序 使用流程安装tmux使用 1sudo apt install tmux 即可 新建窗口1tmux new -s NAME 即可创建一个名为name的session,然后在里面运行你的指令即可 然后就可以直接关掉这个链接了 退出窗口如果想要退出当前的tmux session 可以先按下 ctrl + B 然后松开(这个时候没有变化是正常的)然后按下 D 就可以在不终止当前任务的情况下退出了。如果想直接终止这个任务,可以按下 ctrl + B + D 即不松手就行了。 关闭session使用命令 1tmux ls 查看当前在运行的session,使用 1tmux kill-sesion -t NAME 关掉session就可以了 恢复session使用命令 1tmux a -t NAME 可以恢复一个session
Gymnasium Environment Configuration
Created2024-03-20|reinforcement_learning
强化学习环境——gymnasium配置注意,现在已经是2024年了,建议使用最新的gymnasium而不是gym 配置正确的python版本现在是2024年的3月20日,目前的gymnasium不支持python3.12,建议使用conda创建一个3.11的环境: 1conda create -n RL python=3.11 然后进入这个环境中: 1conda activate RL 如果使用的是Windows下的powershell,此时你的终端最前面没有显示例如: 1(RL) xxx@xxx.xxx.xxx.xxx:~ 而是: 1xxx@xxx.xxx.xxx.xxx:~ 的话,建议先运行: 1conda init 然后使用 1conda info 查看一下现在的环境是不是激活成功了 安装gymnasium这里有两个坑,第一个是直接安装 gymnasium 只是装了个白板,里面啥也没有,需要安装的是 gymnasium[atari] 和 gymnasium[accept-rom-license]记住,两个都要装 第二个坑是不知道为什么用conda...
DQN
Created2024-03-18|reinforcement_learningArticle_Reading
Article...
Policy Gradient Methods
Created2024-03-13|reinforcement_learning
Background本书前面的部分主要讲的都是学习价值函数的方法,这里提出一种直接学习策略的方法,这里把策略记作一个带有参数的,即 Advantage优点之一是可以学习一个确定性的算法而不像 - greedy 的策略那样每次都有一个较小的概率选择非最优解。同时,基于价值函数学习的方法里面如何选择初始值和如何进行递降都是需要考虑的问题。 Policy Gradient在直接学习策略的时候,正确地更新参数 是十分重要的,所以需要想办法求出评估量对于 的梯度,此处定义:对于分幕式任务,在经过推导(RLBook2020 P325)后,得到: 这里虽然只找出了正比关系,但是在梯度下降的时候,只关注梯度的方向,并不关心梯度真正的值是多少 Monte Carlo Policy Gradient根据上面的式子,写成期望的形式:那么就可以得出梯度下降的公式:其中 是对于真实动作价值函数的逼近。上面的公式成为 all-actions methods 因为它包含了该状态所有可能的动作 下面介绍另一种强化学习版本的。 这里的 是依据策略 在 ...
On-policy Control with Approximation
Created2024-03-12|reinforcement_learning
Episodic Semi-gradient Control这里和上一章的公式的区别只是把状态价值函数改成了动作价值函数,即:对于一步的Sarsa算法来说,上面的公式应该写为:其算法流程图如下:而对于 步的Sarsa来说,和前面也没有太大的差别:只是这里的价值函数更新的时候变成了以n为周期的。 平均回报对于可以分为一个个Episode的任务,前面的折后回报是可以处理的,但是对于连续型任务是不够的,定义一个策略 的平均回报 如下:那么这个时候的状态价值函数、动作价值函数和最优状态价值函数和最优动作价值函数都可以写成一个新的形式:最优的就是取最大值就行了。 注意到上面的式子里面没有折扣率 了,因为在连续型任务中,先后出现的价值在重要性上没有区别。 在这种定义下的单步Sarsa算法如下:n步Sarsa的算法如下图所示:
On-policy Prediction with Approximation
Created2024-03-10|reinforcement_learning
提出背景由于某些问题的空间维度可能会很高,直接使用tabular的方法来保存所有信息是不现实的,所以考虑换一种方法来表示价值函数,即使用 来近似替代原来的状态价值函数 均方误差为了评估近似替代版本的价值函数和原始的价值函数之间的距离,这里提出均方误差 其定义为: 这其中的 是状态的分布,是状态 出现的概率 SGD和Semi-gradient MethodsSGD 的更新公式在SGD中,选择直接使用梯度下降的方法来更新参数 ,其更新公式如下:但是为了泛用性,这里通常使用样本 来代替真正的价值函数 例如 可能是带有噪声的版本或者直接采样取到的样本,基于蒙特卡洛的随机梯度下降流程图如下: 半梯度方法以 为学习目标,其更新公式是:半梯度学习方法减小了误差,在梯度下降的学习方法里面,本身的更新会受到weight的影响,导致算出来的不是真正的梯度。 线性方法线性方法就是使用线性函数来拟合价值函数。即定义:在使用线性函数的时候,其实可以不使用梯度下降的方法,因为这个时候可以采用最小二乘法求出精确的最优解。
Temporal-Difference Learning
Created2024-03-06|reinforcement_learning
TD-预测在蒙特卡洛方法中,对于 every-visit 的蒙特卡洛方法,可以给出一个递推的更新公式:这个式子里面的 必须在一幕结束之后才能计算出来,所以在一幕中学不到任何信息。 而 的定义是:如果使用 来估算 的话,那么有带入有注意到这里的式子里面已经没有东西需要在一个幕结束之后才能算出来,那么就得到了一个只需要一步的时序差分方法,称为 或单步 算法如图所示: TD-Error定义 TD-error 为:那么式 可以写为 蒙特卡洛误差可以被写成 TD-Error 的形式: Sarsa方法前面给出了状态价值函数的更新公式,但是在实际做出决策的时候,动作价值函数是更为实用的选择,所以这里给出动作价值函数的更新公式:这里的公式中同样不含有任何需要一个episode结束才能算出来的东西,所以可以动态更新。 On-policy的时序差分方法在给定策略 的情况下,可以根据公式 来更新动作价值函数,并且更新 来逼近最优的策略。算法如图: Q-Learning —— Off-Policy...
Monte Carlo Methods
Created2024-03-05|reinforcement_learning
提出背景在DP方法中,需要指导转移概率的先验知识,但是一般情况夏是不知道这个概率的,即无法知晓 那么前面的 DP 方法就会失效,那么这里提出一种基于采样的方法来获取相关的信息。蒙特卡洛方法指的是一系列从重复采样中进行估计的方法。在强化学习中,蒙特卡洛方法通过对大量样本的回报进行平均,来进行价值估计。随着收集到的样本越来越多,平均值就会收敛到期望值。MC算法是在每一幕结束之后进行更新的。 关于 visit 访问的定义如果状态 出现在策略 中,每一次出现称为一次 访问 , 第一次访问称为 首次访问 两种MC算法MC算法分为首次访问和每次访问两种,首次访问是只计算每一幕的首次访问的回报,而每次访问则是每一次遇到状态 就进行更新,首次访问的算法流程图如下:去掉关于 的判断就是每次访问的算法了。 利用蒙特卡洛方法估计动作价值如果问题是 Model-unaware 的那么就可以考虑利用蒙特卡洛方法去估计动作-状态价值函数 ,只需要把上面的算法中的 换成 二元组就可以了。 消除初始策略带来的影响为了尽可能多的探索可能的情况,减小策略带来的影响而学习到全局的最优解,通常有...
Dynamic Programming
Created2024-03-03|reinforcement_learning
递推表达式通过之前的定义可以得到一个递推版本的DP状态转移方程: 这里的 代表的是 步,具体的含义是可以通过 次 action 到达这个状态。所以上面的更新就是从 步的价值函数去更新 步的价值函数这里的并不是Bellman 方程,只是递推表达式,算法要求是到最后接近满足Bellman方程 注意,这里的更新是和策略 有关的,是在策略确定的情况下,通过更新的方式来确定真正的状态价值函数。 具体的算法如图: 在递推的过程中改进策略在迭代的过程中,如果已知策略 的价值函数 希望知道在某个状态 下选择一个不同于 的动作 是否会带来改善,这种策略的价值为:如果上面的式子的值大于目前的状态价值函数 那么就更新此时的策略为 而由于所有的策略的状态价值函数存在偏序关系,也就是说存在 upper bound 那么就可以利用这一点证明,每次取贪心的策略 即$$\pi’ = \mathop{argmax}a q_\pi(s,a) = \mathop{argmax}a \mathbb E[R{t + 1} + \gamma v_\pi (S{t +1}) | S_t...
1…456…10
avatar
Eric Li
Articles
91
Tags
49
Categories
34
Follow Me
Announcement
The blog is now under construction
Recent Posts
Hydra | python参数配置包2025-06-05
arXiv:1704.01665v4 | Learning Combinatorial Optimization Algorithms over Graphs | NCO论文阅读2025-05-23
GAE | 广义优势估计2025-03-24
PPO2025-03-07
FLA Lab Report | 自动机大作业实验报告2025-01-17
Categories
  • AI1
  • Algorithm2
  • Article_Reading1
    • reinforcement_learning1
  • CV1
  • Cryptology5
  • DB3
  • Diffusion1
Tags
wsl Others LaTeX Math OS Cryptology RBT Optimization IRL Integral notes DB latex Probability_Theory Network acme termux server InformationTheory texlive Hydra RegularExpression Article CV gitlab-ci Algorithm AVL cmake frp certbot ssl ICS B树 3D AI cpp Python Diffusion fla VSCode
Archives
  • June 2025 1
  • May 2025 1
  • March 2025 2
  • January 2025 3
  • December 2024 5
  • November 2024 9
  • October 2024 8
  • September 2024 4
Website Info
Article Count :
91
Unique Visitors :
Page Views :
Last Update :
©2023 - 2025 By Eric Li
Framework Hexo|Theme Butterfly
蜀ICP备2023025661号-1