images/logo.jpg

枕石的个人博客

强化学习的数学原理(八):值函数近似

深度Q网络(DQN)的核心思想是通过学习价值来指导策略。它并不直接学习一个策略函数,而是训练一个深度神经网络(Q网络)来精确地近似动作价值函数(Q函数),即评估在任何状态下执行各个动作的长期回报。在训练过程中,智能体采用探索性的ϵ-贪心策略与环境交互并收集数据,其学习目标则始终是纯粹的贪心策略。完成训练后,采用纯粹的贪心策略 (Greedy Policy),将状态 s 输入已训练好的Q网络,网络输出所有动作的Q值向量,选择并执行Q值最高的那个动作。

强化学习的数学原理(十):Actor Critic方法

Actor-Critic 方法使用两个神经网络协同工作:Actor (策略网络):负责决策,学习在特定状态下应该采取什么动作。它输入状态,输出动作的概率;Critic (价值网络):负责评估,学习当前状态有多好。它输入状态,输出一个价值评分。工作流程:训练时,Actor 做出动作,Critic 对其进行评分。Actor 根据 Critic 的评分来调整自己的策略,力求做出更好的决策。最终策略:训练过程中策略是随机的以鼓励探索,训练完成后则变为贪心的,总是选择概率最高的动作以获得最大回报。

强化学习的数学原理(九):策略梯度方法

策略梯度方法将策略直接参数化为一个由 $θ$ 定义的可微函数 $\pi_\theta$(如神经网络),进而将强化学习问题转化为一个优化问题:它定义了一个衡量策略优劣的性能度量 $J(θ)$,并计算该度量关于参数 $θ$ 的梯度,最终通过梯度上升算法,沿着梯度方向迭代更新参数,以寻找能使性能度量最大化的最优策略。

强化学习的数学原理(七):时序差分方法TD Learning

在强化学习领域,当我们没有环境的完整模型时,如何评估一个策略的好坏并最终找到最优策略呢?蒙特卡洛(Monte Carlo)方法为我们提供了一种思路:通过完整的经验序列来估计价值。然而,它必须等到一个完整的 episode 结束后才能进行学习。动态规划(Dynamic Programming)虽然高效,却依赖于已知的环境模型。

Go语言sort包与排序实战

在 Go 语言中,排序是一项常见的操作,无论是处理用户数据、实现算法,还是优化性能,都离不开排序。Go 标准库提供了一个强大的 sort 包,它设计精巧、用法灵活,能够满足各种排序需求。本文将带你深入探索 sort 包的用法,从基础的切片排序到复杂的自定义结构体排序,助你轻松掌握 Go 语言的排序实战技巧。