model_free model free reinforcement learning Model-Free强化学习(MFRL)的核心在于不依赖环境动态模型的策略学习方法,最优策略的选择为 π(s)=argmaxa∈A∑s′Psa(s′)V(s′)\pi(s) = \arg\max_{a \in \mathcal{A}} \sum_{s'}P_{sa}(s')V(s')π(s) 2024-05-25
Gymnasium-1 Gymnasium入门 Gymnasium 是一个为所有单代理强化学习环境提供 API 的项目,并包括常见环境的实现:cartpole、pendulum、mountain-car、mujoco、atari 等 该 API 包含四个关键函数:make、reset、step 和 render。 Gymnasium 的核心是 Env,一个高级 Python 类,代表强化学习理论中的马尔可夫决策 2024-05-22
Policy Gradient Policy Gradient 策略梯度算法也算是参数化模型的一种方法,在前面一章中,我们对参数化值函数估计而非对策略本身参数化,实际上我们也可以直接对策略进行参数化估计,这一章我们默认策略为随机性策略。 对于随机策略 πθ(a∣s)=P(a∣s;θ)\pi_\theta(a|s)=P(a|s; \theta)πθ(a∣s)=P(a∣s;θ),直觉上我们应该 降低带来较低价值/奖励的 2024-05-21
参数化值函数近似与 DQN 参数化值函数近似 Q-learning 算法中,我们存储每个状态下所有动作的 QQQ 值的表格。表格动作价值 Q(s,a)Q(s, a)Q(s,a) 表示在状态 sss 下选择动作 aaa 然后继续遵循某一策略预期得到的期望回报。然而,这种用表格存储动作价值的做法只在环境的状态和动作都是离散的,并且空间都比较小的情况下适用 当处理大规模 MDP 或者连续状态空间时,采用的方式往往是参数化 2024-05-18
奈奎斯特判据推导 奈奎斯特判据推导 对于线性定常系统,我们之前最初判断稳定性的方式是:判断闭环传递函数所有根(即所有闭环极点)的实部是否全部为负。奈奎斯特判据的目标是,通过一种共性映射将原复平面(记为 sss 平面)映射到新的平面(记为 FFF 平面),通过辐角原理在新的复平面上研究闭环极点的新位置反推原复平面内闭环极点的位置情况 辐角原理 设复平面上的回路 Γs\Gamma_sΓs 的内部为 I(Γ 2024-05-14
n维欧拉公式 欧拉公式在n维的推广 我们知道 ez=er(cosθ+sinθ)e^{z} = e^r(cos \theta + sin\theta)ez=er(cosθ+sinθ) 为最熟悉的欧拉公式形式,而复数的表示可以用二元的矩阵取代,因此我们可以将复数形式的欧拉公式改写为矩阵形式,因此很自然的一个想法是,这个公式是否能推广到 nnn 维欧式空间 欧拉公式的意义 以一个线性微分方程组为例: {d 2024-05-07
Rewrite the Stars论文精读 Why do element-wise mutiplication work? 我们常常注意到在神经网络中,element-wise multiplication 往往能够取得很好的效果。之前不同领域中文章往往也应用了这一点并且提出了各自的概念或解释(例如gating mechanism,high-order, modulation mechanism, visual-attention等等 2024-05-04
cuda-4-计时 写CUDA,追求的就是加速比,想要得到准确的时间,计时函数就是必不可少 计时通常分为两种情况: 直接得到接口函数的时间,一般用于得到加速比;可以使用CPU计时函数和GPU计时函数 获得接口函数内核函数、内存拷贝函数等所耗时间,一般用于优化代码时;可以使用nvprof工具 CPU计时函数 在利用CPU计时函数时,要考虑的一个问题是:核函数的执行是异步执行的,所以必须加上核函数同步函数, 2024-04-28
cuda-3-错误 cuda CUDA运行时API大多支持返回错误代码,返回值类型:cudaError_t 运行时API成功执行,返回值为cudaSuccess 运行时API返回的执行状态值是枚举变量,对应官方文档查看错误代码可以知道错误来源 捕捉主机函数错误: CUDA代码在主机端(CPU)和设备端(GPU)的错误检测方法并不相同 在主机端(CPU)执行的CUDA代码主要包括对CUDA API函数的调 2024-04-27
Java GUI Java GUI——Java图形用户界面 Java GUI概述 早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI),在今天,一个应用软件没有良好的GUI是无法让用户接受的。Java语言提供了一套可以轻松构建GUI的工具 AWT 是 Java最早的界面库(java.awt:Abstract Windows ToolKit(抽象窗口工具包),需要调用本地系统方法来实现功能,属重 2024-04-26