images/logo.jpg

枕石的个人博客

Go语言数组与切片详解

在 Go 语言中,数组(Array)和切片(Slice)是最常用的顺序容器。它们看似相似,却有本质上的区别:数组是值类型、长度固定;切片是引用类型、长度可变。本文将从定义、内存模型、函数传参/返回、使用场景等方面进行详细总结。

强化学习的数学原理(六):随机近似与随机梯度下降

在现代机器学习和深度学习领域,随机梯度下降(Stochastic Gradient Descent, SGD)算法几乎无处不在。从训练庞大的神经网络到处理海量数据集,SGD 及其变体是优化模型参数的核心引擎。然而,要真正理解 SGD 为何如此有效以及其收敛性的理论保障,我们不能仅仅将其视为一个简单的算法,而应追溯其深刻的数学根源——随机近似(Stochastic Approximation)理论。本文将从一个最基础的问题“增量式均值计算”出发,逐步揭示 Robbins-Monro 算法的精髓,并最终证明 SGD 正是该理论框架下的一个经典应用。

强化学习的数学原理(五):蒙特卡洛方法

1. 蒙特卡洛方法的基本思想

1.1 回顾策略迭代 (Policy Iteration)

策略迭代是强化学习中的一个经典框架,它由两个核心步骤交替进行:

  • 策略评估 (Policy Evaluation): 对当前的策略 $\pi_k$ 进行评估,计算出其状态价值函数 $v_{\pi_k}$。这需要求解贝尔曼期望方程: $v_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_k}$

强化学习的数学原理(四):值迭代和策略迭代

在基于模型的强化学习(特别是使用动态规划求解马尔可夫决策过程)中,价值迭代(Value Iteration)和策略迭代(Policy Iteration)是两大基石算法。它们从不同角度出发,最终都旨在找到最优策略 $\pi_*$。本文将深入剖析这两种算法的运作机制,并引出统一两者的泛化算法——截断策略迭代(Truncated Policy Iteration)。