- 博客(17)
- 收藏
- 关注
原创 Tokenizer-BPE算法
使用自定义语料库训练出一个分词方法,最终得到一个分词组合字典和一个词汇表。2.计算语料库中的词频。这里使用AutoTokenizer.from_pretrained("gpt2")加载tokenizer,便于对句子做预分词(按空格分词,大小写转化等)。3.计算基础词汇表。初始词汇表由语料库中的所有字符组成,最后可以添加一个特殊token。4.把每个单词拆分为单独的字符。用字典splits表示,key为单词,value为单词的每个字符组成的列表。5.定义函数:计算splits中,每一字符对pair的频率。
2025-06-15 23:07:08
299
原创 《动手学强化学习》gym==0.18.3包资源
对于之前文章“《动手学强化学习》对于gym==0.18.3环境配置出错问题的解决方法之一(2025年3月16日)记录”中提到的gym包,这里作者直接提供修改了setup.py后的文件包,安装方式参考这篇文章:“《动手学强化学习》对于gym==0.18.3环境配置出错问题的解决方法之一(2025年3月16日)记录”。
2025-03-28 20:52:11
191
原创 《动手学强化学习》-第14章 SAC算法
DDPG算法训练不稳定,收敛性差,对超参数敏感,难以适应不同的环境。2018年,一个更加稳定的离线策略算法Soft Actor-Critic(SAC)被提出。SAC采用一种最大熵强化学习的方法。
2025-03-25 18:16:41
958
原创 《动手学强化学习》-第13章 DDPG算法
先前学习的基于策略梯度的算法如:REINFORCE、Actor-Critic、TRPO、PPO都是在线策略算法,意味着它们的样本效率(sample efficiency)比较低。而先前基于值函数的DQN算法是直接估计最有函数Q,可以做到离线策略学习,但是它只能处理动作空间有限的环境,这是因为它需要从所有动作中挑选一个Q值最大的动作。如果动作个数是无限的,虽然可以将动作进行离散化,但是这样比较粗糙,无法精细控制。为了探索出一种能够处理无限动作估计Q值的方法,深度确定性策略梯度算法(DDPG)被提出。
2025-03-24 21:38:17
815
原创 《动手学强化学习》-第12章 PPO算法
回顾一下TRPO的优化目标:TRPO采用了泰勒展开近似、共轭梯度、线性搜索等方法求解,计算过程非常复杂。因此,PPO采用了相对简单的方法求解,其中有两种形式:PPO-惩罚(PPO-Penalty),PPO-截断(PPO-Clip)。
2025-03-24 19:33:58
693
原创 《动手学强化学习》-第11章 TRPO算法
先前的基于策略梯度的算法有一个明显的缺点:当策略网络是深度模型时,沿着策略梯度更新参数有可能由于步长太长,策略突然显著变差,进而影响训练效果。针对这个问题,考虑在更新时找到一块信任区域,在这个区域上保证策略性能安全,这就是信任区域策略优化算法(TRPO)的主要思想,在理论上保证策略学习的性能单调性。
2025-03-24 17:46:38
463
原创 《动手学强化学习》-第10章 Actor-Critic算法
上一章的REINFORCE算法采用蒙特卡罗方法估计Q值,虽然这种做法能获得无偏(意思是从长期来看,不会系统性地偏离正确值)的梯度,但是这种方法导致梯度估计的方差很大,造成一定程度的不稳定。这个问题是Actor-Critic要解决的问题。不同于先前基于价值函数方法(DQN等等)和基于策略的方法(REINFORCE),Actor-Critic是一种囊括了基于价值函数和基于策略的方法,因为它既学习价值函数,又学习策略函数。
2025-03-23 19:45:25
836
原创 《动手学强化学习》-第9章 策略梯度算法
先前章节的Sarsa、Q-learning、Dyna-Q、DQN、Double DQN和Dueling DQN都是基于价值的方法。在强化学习中,除了基于价值的方法外,还有基于策略的方法。基于策略的方法中,是关键。
2025-03-23 15:34:21
1116
原创 《动手学强化学习》-第8章DQN改进算法
本章基于OpenAI gym库的倒立摆(Pendulum-v0)环境,环境如图所示:与车杆环境不同的是,倒立摆环境的动作空间是连续的,由于DQN只能处理离散动作环境,本章采取的做法是把连续的动作空间离散为11个动作,用动作[0,1,2,...,9,10]分别代表力矩[-2,-1.6,-1.2,...,1.2,1.6,2]。
2025-03-23 10:40:32
991
原创 《动手学强化学习》-第7章 DQN算法
由于状态空间是无限的,先用使用数组保存的方法不现实,所以使用一个神经网络来表示函数,其中是网络参数,称这个网络为Q网络。现设定状态空间为连续的。若动作是连续无限的,Q网络的输入是状态和动作,输出是一个标量,表示在状态下采取动作的价值;若动作是离散有限的,除了可以按动作是连续无限情况下的做法外,还可以只输入状态,输出每一个动作的Q值。在本章中,车杆环境的动作空间是离散的,则Q网络的输入输出采取后者的办法,即输入状态,输出每一个动作的Q值。上述的损失函数看出,学习目标是使。
2025-03-22 21:30:30
1046
原创 《动手学强化学习》-第6章 Dyna-Q算法
但作者认为,与Dyna-Q相比,动态规划算法中的基于模型的强化学习算法使用的模型是事先就定义好了模型的环境,是一个静态的环境,即状态转移函数和奖励函数已知且固定的,而Dyna-Q中的模型是在训练过程中被逐步建模的,是一个动态变化的模型。从这个角度来看,Dyna-Q算法属于无模型的强化学习感觉更合理一些,要么更贴切地说是基于一个动态模型的强化学习。Dyna-Q在正常的进行Q-learning更新Q值后,会把本次的数据。书中认为Dyna-Q算法是一个基于模型的强化学习算法,因其使用了一个模型。
2025-03-22 18:53:12
327
原创 《动手学强化学习》-第4章 动态规划算法
总的来说,策略迭代和价值迭代的整体步骤都是:价值函数迭代->根据新价值函数导出新策略,区别在于两者在“价值函数迭代”中采取的方法不同。
2025-03-22 13:09:58
954
原创 《动手学强化学习》-第3章 马尔可夫决策过程
后续的学习中,可以把马尔可夫决策过程(MDP)视为“环境”,MDP中的动作是由智能体(Agent)执行的。,5个元素分别指状态集合,动作集合,状态转移函数,奖励函数,折扣因子。在MDP上采样多条序列,计算从这个状态出发的回报的期望。同时取决于状态和动作,
2025-03-22 00:20:47
550
原创 《动手学强化学习》对于gym==0.18.3环境配置出错问题的解决方法之一(2025年3月16日)记录
由于我用的是Anaconda,所以打开Anaconda终端,cd到第1步中解压的gym-0.18.3目录下(包含setup.py文件的目录),然后执行以下命令即可安装。手动下载gym==0.18.3的包,然后在git bash(由于我的是Windows系统所以我用了git bash)中运行命令:tar -xzf gym-0.18.3.tar.gz进行解压;一开始在网上的普遍方法是降低setuptools和wheel的办法,但是我并没有成功,后来请求了强大的DeepSeek帮我解决了。
2025-03-16 23:23:52
1251
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅