<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title/><link>https://cestfloraison.asia/</link><atom:link href="https://cestfloraison.asia/index.xml" rel="self" type="application/rss+xml"/><description/><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 24 Oct 2022 00:00:00 +0000</lastBuildDate><image><url>https://cestfloraison.asia/media/icon_hu_e3207b04c7f1a0a.png</url><title/><link>https://cestfloraison.asia/</link></image><item><title>Stat-ML 讨论班笔记（三）：在线学习与机器学习前沿</title><link>https://cestfloraison.asia/blog/stat-ml-frontiers/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/stat-ml-frontiers/</guid><description>&lt;h1 id="operationalizing-steins-method-for-online-linear-optimization"&gt;Operationalizing Stein&amp;rsquo;s Method for Online Linear Optimization&lt;/h1&gt;
&lt;h2 id="preliminaries-of-online-linear-optimization"&gt;Preliminaries of Online Linear Optimization&lt;/h2&gt;
&lt;p&gt;考虑一个 toy example：每一轮，算法选择一个决策 $x_t \in [-1,1]$，对手给出一个损失的梯度 $g_t \in [-1,1]$，算法承受的损失是 $g_t x_t$。假设共 $T$ 轮游戏，总的损失 $ \operatorname{Loss}_T = \sum_{t=1}^T g_t x_t $&lt;/p&gt;
&lt;p&gt;算法的目标是在对对手没有任何先验了解的情况下，给出一个稳健的策略最小化 $ \operatorname{Loss}_T$，但 loss 是和问题的复杂度相关的： $ \operatorname{Loss}_T \le \operatorname{Bound}(\text{complexity of } g_1,...,g_T) $&lt;/p&gt;
&lt;p&gt;所以，我们引入 regret 的概念来表示算法的表现在多大程度上偏离了最优的静态策略：&lt;/p&gt;
$$ \operatorname{Regret}_T (u) := \sum_{t=1}^T g_t (x_t - u), \forall u \in [-1, 1] $$&lt;p&gt;&lt;em&gt;Loss-regret Duality&lt;/em&gt; 对于任何适当的闭凸函数 $\psi_T: [-1,1] \to (-\infty, \infty),$ $ \operatorname{Regret}_T (u) \le \psi_T (u), \forall u \in [-1, 1] \iff \operatorname{Loss}_T \le -\psi_T^*(-\sum_{t=1}^T g_t) $&lt;/p&gt;
&lt;p&gt;其中 $\psi_T^*$ 是 $\psi_T$ 的对偶函数：$ \psi_T^* (s) = \sup_{x \in [-1,1]} (s x - \psi_T (x)) $&lt;/p&gt;
&lt;p&gt;这告诉我们，证明关于 regret 的界和关于 loss 的界是相通的。&lt;/p&gt;
&lt;p&gt;考虑最坏情况 uniform regret $ \operatorname{Regret}_T^{\text{unif}} = \sup_{u \in [-1,1]} \operatorname{Regret}_T (u) = \max \{\operatorname{Regret}_T (-1), \operatorname{Regret}_T (1)\} $&lt;/p&gt;
&lt;p&gt;上式成立是因为 $\operatorname{Regret}_T (u)$ 是关于 $u$ 的线性函数。一个经典的目标是使得 $\operatorname{Regret}_T^{\text{unif}} \le c_T$，即取 $\psi_T = c_T$。 对应于 loss，可以得到 $ \operatorname{Loss}_T \le -|\sum_{t=1}^T g_t| + c_T $&lt;/p&gt;
&lt;p&gt;在讨论最优算法之前，我们先考虑一个合理的算法。一个很自然的想法是 Empirical Risk Minimizer ：&lt;/p&gt;
$$ x_t = \operatorname{sign}(-\sum_{i=1}^{t-1} g_i) $$&lt;p&gt;这个策略过于激进，在最坏情况下，它可能导致总损失达到 $\Theta(T)$ 的量级。&lt;/p&gt;
&lt;p&gt;一个稍作修正的想法是在这个基础上加入正则化，这就得到Online Gradient Descent：&lt;/p&gt;
$$ x_{t+1} = \operatorname{Proj}_{[-1,1]} [x_t - \eta g_t] $$&lt;p&gt;如果换一种方式来度量距离，则可以得到 Multiplicative Weight Update ：&lt;/p&gt;
$$ x_{t+1} = \tanh(-\eta \sum_{i=1}^t g_i) $$&lt;p&gt;OGD 和 MWU 都是一个更普适的框架 Mirror Descent 的特例。它们都能提供&amp;quot;合理&amp;quot;的后悔值和总损失上界。不过，我们在此不深入讨论，因为我们之后会介绍能超越它们的算法。&lt;/p&gt;
&lt;h2 id="stein-based-algorithm-and-its-implications"&gt;Stein-based Algorithm and its Implications&lt;/h2&gt;
&lt;p&gt;我们从总损失的角度来分析算法的性能极限。如果一个算法能实现 $ \operatorname{Loss}_T \le -\psi_T^*(-\sum_{t=1}^T g_t) $ 的上界，那么这个 $\psi_T^*$ 函数必须满足一个&amp;quot;没有免费午餐&amp;quot;的必要条件。&lt;/p&gt;
&lt;p&gt;考虑一个最简单的随机对手：每一轮的梯度 $g_t$ 都是 i.i.d. Rademacher。在这种情况下，任何合理的算法的期望损失都不应为负。这给了我们一个约束：&lt;/p&gt;
$$ E_{g_{1:T} \sim \text{Rad}} [\psi_T^* (\sum_{t=1}^T g_t)] \le 0 $$&lt;p&gt;根据中心极限定理，当 $T$ 很大时，梯度的总和 $\sum_{t=1}^T g_t$ 的分布可以用一个正态分布 $\mathcal{N}(0, T)$ 来近似。因此，上述约束可以近似为：&lt;/p&gt;
$$ E_{X \sim \mathcal{N}(0, T)} [\psi_T^*(X)] \le 0 $$&lt;p&gt;OLO 的性能极限，本质上是由一个关于高斯积分的不等式所决定的。最优的算法必须在其设计中&amp;quot;内嵌&amp;quot;这种概率渐近（在此例中为高斯）的行为。这正是镜像下降 Mirror Descent 等通用算法的不足之处，它们没有考虑到这种底层的概率结构。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Achieving Additively Sharp Tradeoffs in OLO&lt;/em&gt; 令 $\psi_T^*: \mathbb{R} \to \mathbb{R}$ 是任意 1-Lipschitz 的凸函数满足 $E_{X \sim \mathcal{N}(0,T)} [\psi_T^*(X)] = 0$，则存在 $O(1)$-time-per-round 算法满足&lt;/p&gt;
$$ \operatorname{Loss}_T \le -\psi_T^*(-\sum_{t=1}^T g_t) + O(\log T) $$&lt;p&gt;同时不存在任何算法保证&lt;/p&gt;
$$ \operatorname{Loss}_T \le -\psi_T^*(-\sum_{t=1}^T g_t) - \Omega(1) $$&lt;p&gt;$f$ 是一个满足 Stein Equation 的函数，$\rho_t = \sqrt{T-t}， s_t = \sum g_i$。标准的一维 OLO 求解算法是在每个时间步骤计算 $x_t$ 作为当前时间的决策： $ x_t := E_{Z \sim \mathcal{N}(0,1)} [f_{s_{t-1}, \rho_{t-1}, \psi_T^*} (s_{t-1} + \rho_t Z)] $&lt;/p&gt;
&lt;p&gt;为了不陷入繁琐的细节，我们考虑一个简化的版本来构建直觉。把 $\rho_t \leftarrow \rho_{t-1}$，算法做的决策可以近似为&lt;/p&gt;
$$ \tilde{X}_t := E_{Z \sim \mathcal{N}(0,1)} [f_{s_{t-1}, \rho_{t-1}, \psi_T^*} (s_{t-1} + \boldsymbol{\rho_{t-1}} Z)] = - E_Z [ (\psi_T^*)' (s_{t-1} + \sqrt{T - t + 1} Z) ]. $$&lt;p&gt;OLO 的难点在于无法预知未来，但我们可以猜测未来的数据是高斯分布的，即假设 $g_t$ 服从高斯分布。在第 $t$ 轮，我们将 $X_t$ 选为（期望意义上的）事后最优决策：&lt;/p&gt;
$$ X_t \leftarrow E_{g_t, \dots, g_T \sim \mathcal{N}(0,1)} [ \operatorname{arg\,min}_{u \in [-1, 1]} \sum_{i=1}^T g_i u ] = E_{X \sim \mathcal{N}(s_{t-1}, T - t + 1)} [ \operatorname{arg\,min}_{u \in [-1, 1]} X u ]. $$&lt;p&gt;上述策略没有体现出我们想实现的 tradeoff。tradeoff 的具体含义是，你无法设计一个在所有可能场景下都做到最好的算法。你必须做出选择，你更看重在哪种场景下的性能，并愿意牺牲其他场景下的部分性能作为代价。&lt;/p&gt;
&lt;p&gt;为了将我们预设的、由 $\psi_T^*$ 函数所描述的性能目标编码进算法中，我们需要在优化问题里加入一个正则项：&lt;/p&gt;
$$ \tilde{X}_t = E_{X \sim \mathcal{N}(s_{t-1}, T - t + 1)} [ \operatorname{arg\,min}_{u \in [-1, 1]} X u + \psi_T (-u) ] = - E_Z [ (\psi_T^*)' (s_{t-1} + \sqrt{T - t + 1} Z) ], $$&lt;p&gt;这恰好就是算法在做的决策（的近似）。&lt;/p&gt;
&lt;h1 id="statistical-theory-for-deep-neural-network"&gt;Statistical Theory for Deep Neural Network&lt;/h1&gt;
&lt;p&gt;Why Theory?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;understand why deep learning works&lt;/li&gt;
&lt;li&gt;useful to extract key concepts&lt;/li&gt;
&lt;li&gt;comparsion with other methods,&lt;/li&gt;
&lt;li&gt;selection of tuning parameters&lt;/li&gt;
&lt;li&gt;detecting limitations of deep learning&lt;/li&gt;
&lt;li&gt;improvements (hybrid method)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="theory-of-shallow-networks"&gt;Theory of Shallow Networks&lt;/h2&gt;
&lt;p&gt;对于 $v=(v_1, \dots, v_r)^T, y=(y_1,\dots, y_r)^T$，定义 $\sigma_v: \mathbb{R}^r \to \mathbb{R}^r$ 为 $ \sigma_v (y) = (\sigma(y_1-v_1),\dots,\sigma(y_r-v_r))^T $&lt;/p&gt;
&lt;p&gt;一个最简单的神经网络可以表示为 $ f(x)=W_L \sigma_{v_L} W_{L-1} \sigma_{v_{L-1}} \dots W_1 \sigma_{v_1}W_0 x $&lt;/p&gt;
&lt;p&gt;Deep learning 指的是使用 gradient-based methods 来拟合数据的方法。考虑函数族 $ \mathcal{F}_{m,\sigma}=\{f = \sum_{j=1}^m c_j \sigma(w_j^T \cdot + v_j)\}: w_j \in \mathbb{R}^d, v_j, c_j \in \mathbb{R} $&lt;/p&gt;
&lt;p&gt;为所有单层神经网络函数构成的集合。我们想考虑：（1）这个函数类有多大？（2）这个函数类能估计多光滑的函数？估计的误差如何？&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Universal approximation&lt;/em&gt; 对于任意 $\epsilon&gt;0$ 和 $[0,1]^d$ 上的连续函数 $f$，存在 $m=m(f,\epsilon)$， $ \inf_{g \in F_{m,\sigma}} \|f-g\|_{L^{\infty} ([0,1]^d)}\le \epsilon $&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;证明用到对多项式函数的显式构造，但是构造中有的参数很小，有的参数很大；&lt;/li&gt;
&lt;li&gt;使用任意点处的激活函数值可以拟合一个特定的 $x^n$；&lt;/li&gt;
&lt;li&gt;微小扰动会带来完全不同的性质；&lt;/li&gt;
&lt;li&gt;如果 $\sigma$ universial approximation 的性质；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;换一种形式，可以证明由 ridge functions 张成的空间 $ f=\sum_{j=1}^m g_j (w_j^T \cdot) $ 也具有 universal approximation property，其中 $g_j$ 是单元连续函数。&lt;/p&gt;
&lt;p&gt;Fourier Transform 也有 uniform approximation 的性质，而且其形式上正是取了激活函数为 $\cos$ 的单层神经网络：$ f(x)=\frac{1}{(2\pi)^d} \int \cos (w^T x + \phi(w)) |\mathcal{F} f(w)| \mathrm{d} w $&lt;/p&gt;
&lt;p&gt;假设 $f$ 是有限宽度的 shallow network，具有以下形式：$ x \to f(x)=\int c \sigma(w^T x + v) \mathrm{d} P(c,w,v) $&lt;/p&gt;
&lt;p&gt;其中 $P$ 是 $\mathbb{R} \times \mathbb{R}^d \times \mathbb{R}$ 上的概率测度。将 $P(c,w,v)$ 写作 $P(c | w,v)P(w,v)$，则 $ x \to f(x) = \int \phi(w,v) \sigma(w^T x + v) \mathrm{d} P(w,v) $&lt;/p&gt;
&lt;p&gt;其中 $\phi(w,v)=\int c \mathrm{d} P(c | w,v)$。&lt;/p&gt;
&lt;p&gt;Maurey&amp;rsquo;s theorem 指出，对于任意具有 $ f(x)=\int g(\theta, x) \mathrm{d} P(\theta) $ 形式的函数，总存在 $\theta_1, \dots, \theta_m \in \Theta$，使得对于任何测度 $Q$，$ \|f - \frac{1}{m} \sum_{j=1}^m g(\theta_j, \cdot)\|_{L^2 (Q)} \le \frac{\|g\|_{L^2 (P\otimes Q)}}{\sqrt{m}} $&lt;/p&gt;
&lt;p&gt;$m^{-1/2}$ 的界还可以被改进，和参数空间的复杂度（用覆盖数刻画）以及激活函数 $\sigma$ 的 smoothness 有关。可以做到 $m^{-1/2 - s/D}$。 其中 smoothness 的定义是，存在 $K,C'$，对于任何 $\theta_* = (w_*,v_*) \in \Theta$ 和 $0&lt;\epsilon&lt;1$，可以找到 $(w_1,v_1),\dots,(w_K,v_K)$，使得对于任意的 $\theta = (w,v) \in \Theta \cap B(\theta_*, \epsilon)$，存在 $\lambda_1 (\theta),\dots, \lambda_K (\theta) \in [-C',C']$ 满足 $ \|w^T \cdot + v - \sum_{j=1}^K \lambda_j (\theta) \sigma(w_j^T \cdot + v_j)\| \le C' \epsilon^s $&lt;/p&gt;
&lt;p&gt;直观理解，任何在 $\epsilon$-ball 中的神经元可以被 $K$ 个其他神经元的线性组合拟合，误差为 $\epsilon^s$。&lt;/p&gt;
&lt;p&gt;给定一个有 $N$ 个参数的函数族 $\mathcal{F}_N$（比如神经网络），对于同一个 domain 内的函数族 $\mathcal{G}$，$\mathcal{F}$ 的拟合效果有多好？具体而言，$ r(N) = \sup_{g \in \mathcal{G}} \inf_{f \in \mathcal{F}_N} \|f-g\| $&lt;/p&gt;
&lt;p&gt;计算 $r(N)$ 是不可能的，我们的兴趣更多集中在 $r(N)$ 趋向于0的速度上。&lt;/p&gt;
&lt;p&gt;对于 $[0,1]^d$ 内的 $\beta$-smooth 函数，$r(N) \approx N^{-\beta/d}$。对于 分段常值函数，$\beta=1$，对于分段线性函数，$\beta=2$。有趣的是，对于 ReLu，$\beta=2+(d-1)/2$。&lt;/p&gt;
&lt;p&gt;总而言之，对于 shallow network，我们有 universal approxiamtion，approxiamation rates 和 estimation risk bounds。关键的发现是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;universal approximation is a weak guarantee；&lt;/li&gt;
&lt;li&gt;shallow ReLU networks 看似是分段线性，但有更高的 smoothness&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="advantages-of-additional-layers"&gt;Advantages of Additional Layers&lt;/h2&gt;
&lt;p&gt;Localization 指拟合一个 support 有界的函数。Shallow network 无法做到 localization，但只要有两层 hidden layers，就可以做到。比如，$ \mathbf{1}(x \in [-1,1]^d) = \sigma_0 \left(\sum_{i=1}^d \sigma_0(x_i+1) + \sigma_0(-x_i +1) - 2d + \frac{1}{2}\right) $&lt;/p&gt;
&lt;p&gt;其中 $\sigma_0 = 1(\cdot \ge 0)$ 是 Heaviside 激活函数。使用 ReLU 也可以，因为对于充分大的 $\alpha$，$\sigma(\alpha x) - \sigma(\alpha x - 1)\approx \sigma_0 (x)$。&lt;/p&gt;
&lt;p&gt;估计 $x^2$ 的方式可以由导数定义的变形得到：$ \frac{\sigma(t+2x h) - 2\sigma(t + x h) - \sigma(t)}{\sigma''(t) h^2} \approx x^2 $&lt;/p&gt;
&lt;p&gt;层叠起来就可以估计 $x^{2^k}$。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Kolmogorov-Arnold representation theorem&lt;/em&gt; 对于任何连续函数 $f: [0,1]^d \to \mathbb{R}$，存在单元连续函数 $g_q, \phi_{(p,q)}$ 使得 $ f(x_1,\dots,x_d)=\sum_{q=0}^{2d} g_q \left(\sum_{p=1}^d \psi_{(p,q)} (x_p)\right) $&lt;/p&gt;
&lt;p&gt;注意，这里直接使用了等号。&lt;/p&gt;
&lt;p&gt;存在实数 $a, b_p, c_q$ 和连续的单调函数 $\psi: \mathbb{R} \to \mathbb{R}$，使得对于任意连续函数 $f:[0,1]^d \to \mathbb{R}$，存在连续函数 $g: \mathbb{R} \to \mathbb{R}$ 使得 $ f(x_1,\dots,x_d) = \sum_{q=0}^{2 d} g\left(\sum_{p=1}^d b_p \psi(x_p + q a) + c_q\right) $&lt;/p&gt;
&lt;p&gt;所有关于 $f$ 的信息都只包含在 $g$ 中。上面的形式和两层隐藏层的神经网络结构相似。不幸的是，$g$ 没有很好的连续性。&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="kan-architecture"
srcset="https://cestfloraison.asia/blog/stat-ml-frontiers/kan-architecture_hu_86ac6fceb3252500.webp 320w, https://cestfloraison.asia/blog/stat-ml-frontiers/kan-architecture_hu_b4b631c26978c0ce.webp 480w, https://cestfloraison.asia/blog/stat-ml-frontiers/kan-architecture_hu_3680a62d963163e7.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/stat-ml-frontiers/kan-architecture_hu_86ac6fceb3252500.webp"
width="760"
height="477"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;KAN 的好处是：有可学习的激活函数，在达到相同的估计质量时使用更少的参数，可解释性更强。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Deep ReLU Network&lt;/em&gt; 通过构造性证明，Deep ReLU 可以做到下面四个操作，这是别的方法很难做到的。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Representation of Identity&lt;/em&gt; ReLU 满足 $\sigma \circ \sigma = \sigma$，所以可以拟合恒等函数；&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Highly Oscillating Functions&lt;/em&gt; 对于一个 $(p_1, \dots, p_L)$ 的 $L$ 层 ReLU 网络，其分段数高达 $ (3/2)^L \prod_{j=1}^L (p_j + 1) $，所以可以拟合复杂的折线。&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Approximation of $x^2$ and $x y$&lt;/em&gt; 通过基础的三角形函数 $T(x) = (2x)_+ - (4x-2)_+$，深度 ReLU 网络可以构造出有 $2^k$ 个尖峰的锯齿函数 $R^k$。进行级数求和 $\sum_{k=1}^m R^k (x)$，可以以 $O(4^{-m})$ 的速度逼近 $x(1-x)$，达到相同的误差浅层 ReLU 需要 $O(2^{m/2})$ 的参数。既然能逼近平方，利用极化恒等式 $ x y = ((x+y)/2)^2 - ((x-y)/2)^2 $ 就可以实现乘法操作。&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Localization and Taylor Approximation&lt;/em&gt; 如果能实现乘法，就可以在空间中实现 localization，在每个局部使用网络计算高阶 Taylor 展开，使得深度 ReLU 能够以 $N^{-\beta/d}$ 的速率逼近任何 $\beta$-smooth 函数。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="double-descent-and-implicit-regularization"&gt;Double Descent and Implicit Regularization&lt;/h2&gt;
&lt;p&gt;明明 overparametrization 但是却有很好的泛化性，或许是因为 SGD 内含 implicit 。作者的观点是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implicit regularization 不足以做 denoising；&lt;/li&gt;
&lt;li&gt;但是在实际中还是有用，是因为数据集本身有很多相同的结构。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于线性回归 $Y=X \beta + \epsilon$，使用均方损失 $\frac{1}{2} \|Y - X \beta\|^2$，梯度下降初始化 $\beta_0 = \tilde{\beta}_0 + \beta'$，其中 $\beta' \in \ker(X), \tilde{\beta}_0 \perp \ker(X)$。最小值点 $\beta^* \in \arg \min \{\|\beta\|, Y=X \beta\}$。&lt;/p&gt;
&lt;p&gt;对于深度线性网络 $f(x)=W_L \dots W_0 x$，gradient flow 有性质 $ W_l^T W_l (t) - W_{l-1} (t) W_{l-1} (t)^T = \text{constant} $&lt;/p&gt;
&lt;p&gt;加入 $L^2$ 正则化的梯度流能加速 $W_l^T W_l (t) \to W_{l-1} (t) W_{l-1} (t)^T$。&lt;/p&gt;
&lt;p&gt;Benign overfitting, grokking.&lt;/p&gt;
&lt;h1 id="denoising-diffusions-optimal-rate-of-discretisation-in-wasserstein-distance"&gt;Denoising Diffusions: Optimal Rate of Discretisation in Wasserstein Distance&lt;/h1&gt;
&lt;p&gt;Wasserstein distance，考虑把一个分布的&amp;quot;质量&amp;quot;搬运成另一个分布所需要的最小代价。&lt;/p&gt;
&lt;p&gt;设 $(X, d)$ 是一个度量空间，$\mu$ 和 $\nu$ 是定义在 $X$ 上的两个概率分布。对于 $p \ge 1$，$p$-Wasserstein distance 定义为&lt;/p&gt;
&lt;h1 id="w_p-mu-nu"&gt;$$
W_p (\mu, \nu)&lt;/h1&gt;
&lt;p&gt;\left(
\inf_{\gamma \in \Gamma(\mu, \nu)}
\int_{X \times X} d(x, y)&lt;sup&gt;p \mathrm{d} \gamma(x, y)
\right)&lt;/sup&gt;{1/p}.
$$&lt;/p&gt;
&lt;p&gt;其中，$\Gamma(\mu, \nu)$ 表示所有以 $\mu$ 和 $\nu$ 为边缘分布的联合分布集合，也就是说&lt;/p&gt;
&lt;h1 id="gammamu-nu"&gt;$$
\Gamma(\mu, \nu)&lt;/h1&gt;
&lt;p&gt;\left{
\gamma \in \mathcal{P}(X \times X) :
\gamma(A \times X) = \mu(A),
\gamma(X \times B) = \nu(B)
\right}.
$$&lt;/p&gt;
&lt;p&gt;直观地说，$\gamma(x, y)$ 描述了要把多少概率质量从位置 $x$ 搬运到位置 $y$。距离 $d(x, y)^p$ 是这次搬运的代价。因此 $W_p (\mu, \nu)$ 衡量的是：在所有可能的搬运方案中，把 $\mu$ 变成 $\nu$ 的最小平均搬运成本。&lt;/p&gt;
&lt;p&gt;最常见的是二阶 Wasserstein distance：&lt;/p&gt;
&lt;h1 id="w_2mu-nu"&gt;$$
W_2(\mu, \nu)&lt;/h1&gt;
&lt;p&gt;\left(
\inf_{\gamma \in \Gamma(\mu, \nu)}
\int_{X \times X} |x - y|&lt;sup&gt;2 \mathrm{d} \gamma(x, y)
\right)&lt;/sup&gt;{1/2}.
$$&lt;/p&gt;
&lt;p&gt;如果在欧氏空间 $\mathbb{R}^d$ 上考虑两个随机变量 $X \sim \mu$ 和 $Y \sim \nu$，那么 Wasserstein distance 也可以写成 coupling 的形式：&lt;/p&gt;
&lt;h1 id="w_p-mu-nu-1"&gt;$$
W_p (\mu, \nu)&lt;/h1&gt;
&lt;p&gt;\left(
\inf_{X, Y: X \sim \mu, Y \sim \nu}
\mathbb{E} [|X - Y|&lt;sup&gt;p]
\right)&lt;/sup&gt;{1/p}.
$$&lt;/p&gt;
&lt;p&gt;这里的 infimum 是在所有可能的联合构造 $(X, Y)$ 上取的。也就是说，虽然 $X$ 和 $Y$ 的边缘分布分别固定为 $\mu$ 和 $\nu$，但它们之间的相关性可以自由选择。Wasserstein distance 寻找的是让 $X$ 和 $Y$ 尽可能接近的最优联合方式。&lt;/p&gt;
&lt;p&gt;在 diffusion theorem 中考虑 Wasserstein distance，主要是因为 diffusion model 的目标不是逐点恢复某一个样本，而是让生成分布接近真实数据分布。也就是说，我们关心的是&lt;/p&gt;
$$
P_{\theta} \approx P^*,
$$&lt;p&gt;其中 $P_{\theta}$ 是模型反向生成出来的分布，$P^*$ 是真实数据分布。为了严格描述&amp;quot;两个分布接近&amp;quot;，需要选择一个概率分布之间的距离。选择 Wasserstein distance 的理由如下。&lt;/p&gt;
&lt;p&gt;第一，Wasserstein distance 有几何意义。如果两个分布的质量位置很接近，即使它们的密度支撑集不完全重合，Wasserstein distance 仍然可以给出有意义的、有限的距离。&lt;/p&gt;
&lt;p&gt;例如，两个 Dirac 分布&lt;/p&gt;
$$
\mu = \delta_x, \quad \nu = \delta_y
$$&lt;p&gt;之间的总变差距离在 $x \neq y$ 时恒为&lt;/p&gt;
$$
\mathrm{TV}(\delta_x, \delta_y) = 1,
$$&lt;p&gt;但 Wasserstein distance 是&lt;/p&gt;
$$
W_p (\delta_x, \delta_y) = d(x, y).
$$&lt;p&gt;因此，如果 $x$ 和 $y$ 很接近，Wasserstein distance 也很小。这种性质非常适合描述生成样本位置上的小偏差。&lt;/p&gt;
&lt;p&gt;第二，diffusion theorem 通常需要刻画误差如何从 score estimation error、discretization error、initialization error 传播到最终生成分布。Wasserstein distance 可以把路径层面的误差转化为分布层面的误差。例如，如果两个反向过程 $X_t$ 和 $Y_t$ 使用相同的 Brownian motion 耦合起来，那么可以通过估计&lt;/p&gt;
$$
\mathbb{E} \|X_T - Y_T\|^2
$$&lt;p&gt;来控制最终分布之间的 $W_2$ 距离：&lt;/p&gt;
$$
W_2^2(\mathrm{Law}(X_T), \mathrm{Law}(Y_T))
\le
\mathbb{E} \|X_T - Y_T\|^2.
$$&lt;p&gt;右边是随机过程路径之间的均方误差，而左边是两个最终分布之间的距离。通过这种 coupling argument，diffusion theorem 可以把 SDE 的稳定性分析转化为生成分布的误差界。&lt;/p&gt;
&lt;p&gt;第三，在 diffusion model 中，真实数据分布可能集中在低维流形附近，而高斯噪声分布通常分布在整个高维空间中。KL divergence 或 total variation distance 在这种情况下可能过强，甚至可能因为支撑集不匹配而失去有用性。Wasserstein distance 对支撑集错位更加温和，因此更适合刻画生成模型中的几何误差。&lt;/p&gt;
&lt;p&gt;因此，在 diffusion theorem 中使用 Wasserstein distance 的核心原因是：&lt;/p&gt;
$$
\text{trajectory error} \Longrightarrow \text{distribution error}.
$$&lt;p&gt;也就是说，理论证明通常先通过 SDE 稳定性控制两条随机轨迹之间的距离，再利用 coupling 关系推出最终生成分布和真实数据分布之间的 Wasserstein 距离上界。&lt;/p&gt;
&lt;p&gt;以下用 $p$ 代表维度。&lt;/p&gt;
&lt;p&gt;考虑 DDPM。首先生成 $X \sim P^*$。$P^*$ 不可知，我们只能知道 $ s^*(t,x) = \nabla_x \log \pi^* (t,x), \quad \pi^* (t,x) = \text{pdf of } (\overline{\alpha}_t X + \overline{\beta}_t \xi) $&lt;/p&gt;
&lt;p&gt;其中 $\xi \sim \mathcal{N}_p (0,I)$，$\xi \perp\!\!\!\perp X \sim P^*, \overline{\alpha}_t = e^{-(T-t)}, \overline{\beta}_t^2 = 1 - \overline{\alpha}_t^2$。&lt;/p&gt;
&lt;p&gt;(Anderson, 1982) 任选 $T&gt;0$ 和 Brownian 随机变量 $B_t$，如果 $Y_0 \sim \pi^* (T, \cdot), Y_T = \mathrm{SDE}(T, s^*, B)_T$，则 $Y_T \sim P^*$。&lt;/p&gt;
&lt;p&gt;这里 $\pi^* (T, \cdot)$ 表示经过 $T$ 时间加噪的数据分布，在实践中不可知。&lt;/p&gt;
&lt;p&gt;(Idealised DDPM) 将 $\pi^* (T,\cdot)$ 替换为 $\mathcal{N}_p (0,I_p)$ 并离散化，于是 $Z_0 \sim \mathcal{N}_p (0,I_p), Z_K = \mathrm{Euler}(T, s^*, B, h)_K$，可得 $Z_{T/h} \sim P_{T/h}^{\mathrm{DD}}$&lt;/p&gt;
&lt;p&gt;一个 informal 的结果是：如果 $P^*$ 是好的，那么 $ W_2 (P_{T,h}^{\mathrm{DD}}, P^*)\le C\sqrt{p}(\mathrm{Err}_T (Y_0,Z_0) + \mathrm{Err}_{T,h}(\mathrm{SDE},\mathrm{Euler})) $&lt;/p&gt;
&lt;p&gt;Ornstein&amp;ndash;Uhlenbeck 过程&lt;/p&gt;
$$
d X_t = - X_t \mathrm{d} t + \sqrt{2} \mathrm{d} B_t,
\quad t \ge 0,
\quad X_0 \sim P^*,
\quad (B_t)_{t \ge 0} \perp X_0.
$$&lt;p&gt;可以推出&lt;/p&gt;
$$ X_t = \alpha_t X_0 + \beta_t \xi $$&lt;p&gt;，其中&lt;/p&gt;
$$ \alpha_t = e^{-t} \text{ and } \beta_t = \sqrt{1 - \alpha_t^2}. $$&lt;p&gt;(Anderson, 1982) 存在一个 Brownian Motion $\tilde{B} \perp X_T$，使得过程&lt;/p&gt;
$$ Y_t = X_{T - t} $$&lt;p&gt;满足&lt;/p&gt;
&lt;h1 id="mathrmd-y_t"&gt;$$
\mathrm{d} Y_t&lt;/h1&gt;
&lt;p&gt;\left(
Y_t + 2 \nabla \log \pi^*(T - t, Y_t)
\right) \mathrm{d} t
+
\sqrt{2} \mathrm{d} \tilde{B}_t,
\quad 0 \le t \le T,
$$&lt;/p&gt;
&lt;p&gt;其中 $\pi^*(t, x)$ 是 $X_t$ 的概率密度函数。&lt;/p&gt;
&lt;p&gt;不可行算法：选择一个 $T &gt; 0$，采样 $Y_0 \sim \pi^*(T, \cdot)$ 以及 $(\tilde{B}_t)_{[0, T]}$，然后输出 $Y_T$。&lt;/p&gt;
&lt;p&gt;可行算法：选择一个离散化&lt;/p&gt;
$$ 0 = t_0 &lt; \dots &lt; t_K = T, $$&lt;p&gt;采样 $Z_0, \xi_i \overset{\text{iid}}{\sim} N(0, I)$，并按顺序计算&lt;/p&gt;
&lt;h1 id="z_k1"&gt;$$
Z_{k+1}&lt;/h1&gt;
&lt;p&gt;Z_k
+
h_k (
Z_k + 2 \hat{s}(T - t_k, Z_k)
)
+
\sqrt{2 h_k} \xi_{k+1}.
$$&lt;/p&gt;
&lt;p&gt;其中 $\hat{s}(T - t_k, Z_k)$ 是 score proxy，而 $\sqrt{2 h_k} \xi_{k+1}$ 对应于 $\sqrt{2}(B_{t_{k+1}} - B_{t_k})$。输出 $Z_{K - 1}$。&lt;/p&gt;
&lt;h1 id="stochastic-and-online-convex-optimization"&gt;Stochastic and Online Convex Optimization&lt;/h1&gt;
&lt;p&gt;Online convex optimization 是一个两方序贯博弈。算法每轮选择一个 $\theta_t \in \Theta$，对手给出一个损失函数 $l_t: \Theta \to \mathbb{R}$，算法在第 $t$ 轮承受损失为 $l_t (\theta_t)$。我们希望最小化 regret：$ \operatorname{Reg}_n (\theta^*) = \sum_{i=1}^n l_t (\theta_t) - \sum_{t=1}^n l_t (\theta^*) $&lt;/p&gt;
&lt;p&gt;OCO 一般假设 $\Theta \subset \mathbb{R}^d$ 是闭凸集，且每个 $l_t$ 关于 $\theta$ 是凸函数。&lt;/p&gt;
&lt;p&gt;Stochastic convex optimization 假设数即来自某个未知分布 $P$，期望最小化期望损失 $L(\theta) = \mathbb{E}_{P} l(\theta,Z)$，其中对每个 $z$，$l(\theta,z)$ 关于 $\theta$ 是凸函数。&lt;/p&gt;
&lt;p&gt;如果我们把随机样本对应的损失函数看作 online 损失 $l_t (\theta) = l(\theta,Z_t)$，算法根据过去的样本 $Z_1,\dots,Z_{t-1}$ 选择 $\theta_t$，最后输出平均参数 $\overline{\theta_n} = \frac{1}{n} \sum_{i=1}^n \theta_t$，由于 $L(\theta)$ 是凸函数，由 Jensen 不等式，$ L(\overline{\theta}_n) \le \frac{1}{n} \sum_{i=1}^n L(\theta_t) $&lt;/p&gt;
&lt;p&gt;又因为 $\theta_t$ 只依赖 $Z_1,\dots,Z_{t-1}$，$\theta_t$ 和 $Z_t$ 条件独立，因此 $L(\theta_t) = \mathbb{E}[l(\theta_t, Z_t)]$，所以 online 中对平均 regret 的控制，可以转化为对 stochastic objective $L(\overline{\theta}_n)$ 的收敛控制。OCO 更一般，SCO 可以看作 OCO 的一个特例。&lt;/p&gt;
&lt;h2 id="projected-subgradient-method"&gt;Projected Subgradient Method&lt;/h2&gt;
&lt;p&gt;在线凸优化的一般方法是，建立关于损失函数 $l_t$ 的模型，并在模型上做优化。我们定义在 $\theta_0$ 处损失 $l$ 的模型为 $\hat{l}(\cdot;\theta_0)$，满足（1）$\theta \to \hat{l}(\theta; \theta_0)$ 是凸且可求次梯度的；（2） $\hat{l}(\theta;\theta_0)\le l(\theta)$，在 $\theta=\theta_0$ 取等。最常见的模型是一阶模型，取 $g \in \partial l(\theta_0)$，取 $ \hat{l}(\theta; \theta_0) = l (\theta_0) + \langle g, \theta - \theta_0 \rangle $&lt;/p&gt;
&lt;p&gt;最基本的梯度下降方法是 projected subgradient methods。每一轮，预测 $\theta_t$ 并承受 $l_t (\theta_t)$。然后，取 $g_t \in \partial l_t (\theta_t)$，更新 $ \theta_{t+1} = \arg \min_{\theta \in \Theta} \left\{\langle g_t, \theta \rangle + \frac{1}{2 \eta_t} \|\theta - \theta_t\|_2^2\right\} $&lt;/p&gt;
&lt;p&gt;一方面,希望沿着当前损失 $l_t$ 的一阶近似下降，即让 $\langle g_t, \theta \rangle$ 尽可能小；另一方面又不希望新的点离 $\theta_t$ 太远，因此加入二次正则项 $\frac{1}{2 \eta_t} \|\theta - \theta_t\|_2^2$。&lt;/p&gt;
&lt;p&gt;由于这里使用的是欧氏距离，更新可以等价写成两步：&lt;/p&gt;
$$
\theta_{t+1/2} = \theta_t - \eta_t g_t,
\quad
\theta_{t+1} = \operatorname{Proj}_{\Theta} (\theta_{t+1/2}).
$$&lt;p&gt;也就是说，先做一次普通的 subgradient descent，再把结果投影回可行域 $\Theta$：&lt;/p&gt;
$$
\operatorname{Proj}_{\Theta} (v) = \arg \min_{\theta \in \Theta} \|\theta - v\|_2^2.
$$&lt;p&gt;因此这个方法叫 projected subgradient method。具体的收敛结果如下：&lt;/p&gt;
$$
\sum_{t=1}^n [l_t (\theta_t) - l_t (\theta)]
\le
\frac{1}{2 \eta} \|\theta_1 - \theta\|_2^2
+
\frac{\eta}{2} \sum_{t=1}^n \|g_t\|_2^2.
$$&lt;p&gt;这是因为&lt;/p&gt;
&lt;p&gt;$$
|\theta_{t+1} - \theta|_2&lt;sup&gt;2
\le |\theta_t - \eta g_t - \theta|_2&lt;/sup&gt;2 =
|\theta_t - \theta|_2^2&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2 \eta \langle g_t, \theta_t - \theta \rangle +
\eta&lt;sup&gt;2 |g_t|_2&lt;/sup&gt;2.
$$&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;由于 $g_t \in \partial l_t (\theta_t)$，由凸函数的一阶条件，代入前面的 one-step progress，可得&lt;/p&gt;
$$
\|\theta_{t+1} - \theta\|_2^2
\le
\|\theta_t - \theta\|_2^2
-2 \eta [l_t (\theta_t) - l_t (\theta)] +
\eta^2 \|g_t\|^2
$$&lt;p&gt;对 $t = 1, \dots, n$ 求和，可得&lt;/p&gt;
$$
\sum_{t=1}^n [l_t (\theta_t) - l_t (\theta)]
\le
\frac{1}{2 \eta} \|\theta_1 - \theta\|_2^2
+
\frac{\eta}{2} \sum_{t=1}^n \|g_t\|_2^2.
$$&lt;p&gt;这就是 projected subgradient method 的基本 regret bound。这个 bound 可以解释为两部分：$\frac{1}{2 \eta} \|\theta_1 - \theta\|_2^2$ 表示初始化点 $\theta_1$ 和参考点 $\theta$ 的距离造成的代价。步长 $\eta$ 越大，这一项越小。$\frac{\eta}{2} \sum_{t=1}^n \|g_t\|_2^2$ 表示每一步次梯度带来的累计波动。步长 $\eta$ 越大，这一项越大。所以步长 $\eta$ 的选择是在这两项之间做平衡。&lt;/p&gt;
&lt;p&gt;如果进一步假设可行域和次梯度都有界：&lt;/p&gt;
$$
\Theta \subset \{\theta \in \mathbb{R}^d : \|\theta\|_2 \le R_2\},
\quad
\|g\|_2 \le G_2,
$$&lt;p&gt;并且取 $\theta_1 = 0$，则对任意 $\theta^{\star} \in \Theta$，&lt;/p&gt;
$$
\|\theta_1 - \theta^{\star}\|_2 \le R_2,
\quad
\sum_{t=1}^n \|g_t\|_2^2 \le n G_2^2.
$$&lt;p&gt;代入 regret bound：&lt;/p&gt;
$$
\sum_{t=1}^n [l_t (\theta_t) - l_t (\theta^{\star})]
\le
\frac{R_2^2}{2 \eta} + \frac{\eta n G_2^2}{2}.
$$&lt;p&gt;为了平衡两项，取&lt;/p&gt;
$$
\eta = \frac{R_2}{G_2 \sqrt{n}}.
$$&lt;p&gt;于是得到&lt;/p&gt;
$$
\sum_{t=1}^n [l_t (\theta_t) - l_t (\theta^{\star})]
\le
R_2 G_2 \sqrt{n}.
$$&lt;p&gt;因此 projected subgradient method 可以得到 $O(\sqrt{n})$ 的 regret：&lt;/p&gt;
$$
\operatorname{Reg}_n (\theta^{\star}) = O(R_2 G_2 \sqrt{n}).
$$&lt;h2 id="mirror-descent-methods"&gt;Mirror Descent Methods&lt;/h2&gt;
&lt;p&gt;定义一种新散度 Bregman divergence $\psi: \mathbb{R}^d \to \mathbb{R}$：$ D_{\psi} (w,v) = \psi(w) - \psi(v) - \langle \nabla \psi (v), w - v \rangle $&lt;/p&gt;
&lt;p&gt;Bregman divergence 恒非负。如果取 $\psi(w) = \frac{1}{2} \|w\|_2^2$，那 $D(w,v)=\frac{1}{2} \|w-v\|_2^2$。更一般地，如果取 $\psi(w)=\frac{1}{2} w^T A w$，则 $ D_{\psi} (w,v) = \frac{1}{2} (w-v)^T A (w-v) = \frac{1}{2} \|w-v\|_A^2 $&lt;/p&gt;
&lt;p&gt;如果取 $\psi(w) = \sum_{j=1}^d w_j \log w_j$，那么 $D_{\psi} (w,v) = D_{\mathrm{kl}} (w || v)$。&lt;/p&gt;
&lt;p&gt;更一般的 mirror descent algorithm 建立在 Bregma divergence 上。每一轮，预测 $\theta_t \in \Theta$ 并承受损失 $l_t (\theta_t)$。然后，建立 $l_t$ 在 $\theta_t$ 处的模型 $\hat{l}_t$，然后做 non-Euclidean update: $ \theta_{t+1} = \arg \min_{\theta \in \Theta} \left\{\hat{l}(\theta; \theta_t) + \frac{1}{\eta_t} D_{\psi} (\theta, \theta_t)\right\} $&lt;/p&gt;
&lt;p&gt;为什么叫 mirror descent？可以从对偶空间的角度考虑，$g_t \in V^*$ 在对偶空间中。$\psi$ 是一个 distance-generating function，把原始空间中的点映射到对偶空间中的点，经过更新后再映射回来。&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="mirror-descent"
srcset="https://cestfloraison.asia/blog/stat-ml-frontiers/mirror-descent_hu_3cc2735ebef426a0.webp 320w, https://cestfloraison.asia/blog/stat-ml-frontiers/mirror-descent_hu_7f1a134e2ed334f2.webp 480w, https://cestfloraison.asia/blog/stat-ml-frontiers/mirror-descent_hu_b13ef3b686f531e4.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/stat-ml-frontiers/mirror-descent_hu_3cc2735ebef426a0.webp"
width="760"
height="343"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;当 mirror descnt 选择负熵作为 distance-generating function，并且可行域是概率单纯形时，mirror descent 的更新会变成 exponentiated gradient。&lt;/p&gt;
&lt;p&gt;考虑概率单纯形：&lt;/p&gt;
$$
\Theta = \Delta_d = \{v \in \mathbb{R}_+^d : \langle 1, v \rangle = 1\}.
$$&lt;p&gt;在单纯形上，$\psi(w) = \sum_j w_j \log w_j$ 诱导出的 Bregman divergence 是&lt;/p&gt;
$$D_{\psi} (w, v) = \sum_j w_j \log (w_j / v_j)$$&lt;p&gt;。&lt;/p&gt;
$$
\arg \min_{\theta \in \Delta_d}
\left\{
\langle g_t, \theta \rangle
+
\frac{1}{\eta_t} \sum_j \theta_j \log (\theta_j / \theta_{t,j})
\right\}.
$$&lt;p&gt;这个式子的含义是：第一项 $\langle g_t, \theta \rangle$ 希望沿着当前损失的下降方向移动；第二项是 KL 正则项，限制新的概率分布 $\theta$ 不要离旧的概率分布 $\theta_t$ 太远。因此这个算法是在概率单纯形上使用 KL geometry 的 mirror descent。&lt;/p&gt;
&lt;p&gt;为推导显式更新，记 $v = \theta_t$，并考虑如下优化问题：&lt;/p&gt;
$$
\operatorname{minimize}_{\theta}
\quad
\langle g, \theta \rangle
+
\frac{1}{\eta} \sum_j \theta_j \log (\theta_j / v_j)
\quad
\text{subject to } \theta \in \Delta_d.
$$&lt;p&gt;用 Lagrangian 乘子法，最终可以得到 $ \theta_{t+1,i} = \frac{\theta_{t, i} e^{-\eta_t g_{t,i}}}{\sum_j \theta_{t,j} e^{-\eta_t g_{t,j}}} $&lt;/p&gt;
&lt;p&gt;这里的更新是乘法形式，每个坐标的权重都会被乘上一个指数因子，$\theta_{t+1,i} \propto \theta_{t,i} \exp(-\eta_t g_{t,i})$。 这种算法适合概率分布，权重分配，专家问题等场景，因为它天然保证 $\theta_{t+1,i}\ge 0, \sum_i \theta_{t+1,i}=1$。&lt;/p&gt;
&lt;p&gt;对 mirror descent 的收敛性分析如下。定义 dual norm $ \|y\|_* = \sup_{\|x\|\le 1} x^T y $&lt;/p&gt;
&lt;p&gt;这里的对偶仍然可以从对偶空间的角度理解。$y$ 可以看作原空间对偶空间中的元素。$l_2$ 的对偶还是 $l_2$，$l_1$ 和 $l_{\infty}$ 互为对偶。&lt;/p&gt;
&lt;p&gt;称 $\psi:\mathbb{R}^d \to \mathbb{R}$ 是关于 $\|\cdot\|$ 的强凸函数，若 $ \psi(v) \ge \psi(w) + \langle g, v-w \rangle + \frac{1}{2} \|w-v\|^2 $&lt;/p&gt;
&lt;p&gt;Euclidean 是强凸函数。negative entropy 是强凸函数。$\psi(w)=\frac{1}{2 (p-1)} \|w\|_p^2,(1&lt;p\le 2)$ 也关于 $l_p$ 强凸。当维度 $d\ge 3$ 时，考虑 $p = 1 + \frac{1}{\log d}$，由于 $\|w\|_1 \le d^{(p-1)/p} \|w\|_p$，所以 $\|w\|_p \ge d^{(1-p)/p}\|w\|_1 \ge e^{-1}\|w\|_1$，所以 $ D_{\psi} (w,v) \ge \frac{1}{2} \|w-v\|_p^2 \ge \frac{1}{2e^2}\|w-v\|_1^2 $&lt;/p&gt;
&lt;p&gt;引入 p-norm 的目的是为了构造一个在 $l_1$ 下强凸的 distance-generating function $\psi$，让 mirror dscent 可以处理更一般的 $l_1$-geometry，而非局限在概率 simplex 上。选取 $p=1+\frac{1}{\log d}$ 可以让 $l_p$ norm 充分接近 $l_1$ norm。&lt;/p&gt;
&lt;p&gt;设 $l_t$ 是任意一列凸函数，并且 $\theta_t$ 由 mirror descent 生成。假设 distance-generating function $\psi$ 关于范数 $\|\cdot\|$ 是强凸的，该范数对应的对偶范数为 $\|\cdot\|_* $。那么对于一列次梯度 $g_t \in \partial l_t (\theta_t)$，有如下结论。&lt;/p&gt;
&lt;p&gt;(a) 如果对所有 $t$ 都有 $\eta_t = \eta$，那么对任意 $\theta^{\star} \in \Theta$，&lt;/p&gt;
$$
\sum_{t=1}^n [l_t (\theta_t) - l_t (\theta^{\star})]
\le
\frac{1}{\eta} D_{\psi} (\theta^{\star}, \theta_1)
+
\frac{\eta}{2} \sum_{t=1}^n \|g_t\|_*^2.
$$&lt;p&gt;(b) 如果 $\Theta$ 是紧集，并且对任意 $\theta \in \Theta$ 都有&lt;/p&gt;
$$
D_{\psi} (\theta^{\star}, \theta) \le R^2,
$$&lt;p&gt;那么&lt;/p&gt;
$$
\sum_{t=1}^n [l_t (\theta_t) - l_t (\theta^{\star})]
\le
\frac{1}{\eta_n} R^2
+
\sum_{t=1}^n \frac{\eta_t}{2} \|g_t\|_*^2.
$$&lt;p&gt;上述定理告诉我们，在一般的非欧几何下，mirror descent 也可以得到和 projected gradient descent 类似的 regret bound。&lt;/p&gt;
&lt;h1 id="conservative-optimisim-with-pessimistic-baselines-for-offline-to-online-learning"&gt;Conservative Optimisim with Pessimistic Baselines for Offline-to-online Learning&lt;/h1&gt;
&lt;h2 id="multi-armed-bandits"&gt;Multi-armed Bandits&lt;/h2&gt;
&lt;p&gt;Multi-armed bandits 的问题设定是：有 $K$ 种 action， 每种 action 的回报是未知的 $\mu_i$。在第 $t$ 论，选择动作 $a_t$，并观察到 reward $r_t \sim P_{a_t}$（未知，均值为 $\mu_{a_t}$）。目标是最小化 regret： $ R_T = \mathbb{E} [\sum_{t=1}^T (\mu^* - \mu_{a_t})], \mu^* = \max_i \mu_i $&lt;/p&gt;
&lt;p&gt;最主要的挑战是：如何平衡 exploration 和 exploitation？&lt;/p&gt;
&lt;p&gt;一种常见的准则是 Upper Confidence Bound (UCB)。令 $ U_i (t) = \hat{\mu}_i (t) + \sqrt{\frac{\log (1/\delta)}{T_i (t)}} $&lt;/p&gt;
&lt;p&gt;前者代表 empirical mean，后者代表 uncertanty bonus。对于访问次数比较少的 action，给予其较大的潜力。令 $\Delta_i = \mu^* - \mu_i$ UCB 保证 $ R_T = O\left(\sum_{\Delta_i &gt;0} \frac{\log T}{\Delta_i}\right), \quad \underbrace{R_T = O(\sqrt{K T})}_{\text{worst-case regret}} $&lt;/p&gt;
&lt;p&gt;有时候我们已经有一些历史数据 $D_0 = \{N_i, \{y_{i,s}\}_{s=1}^{N_i}\}_{i=1}^K$。假设我们执行 $a_0 = \pi(D_0)$， 目标是 $\min R_0 = \mathbb{E}[\mu^* - \mu_{a_0}]$，这是一个 offline bandits。&lt;/p&gt;
&lt;p&gt;一种常见的准则是 Lower Confidence Bound (LCB)。令 $\hat{\mu}_i (0)$ 表示 offline empirical mean，定义 $ L_i (0) = \hat{\mu}_i (0) - \sqrt{ \frac{\log (1/\delta)}{N_i}} $&lt;/p&gt;
&lt;p&gt;这是一种悲观的策略，认为被遍历到的次数比较少的 action 可能并没有想象的那么好。LCB 保证至少有 $1-\delta$ 的概率，$ R_0 (\text{LCB}) = O(\sqrt{1/N_{\min}}), \quad R_T (\text{LCB}) = T \cdot R_0 (\text{LCB}) $&lt;/p&gt;
&lt;p&gt;我们当然可以把 offline 和 online learning 结合起来。在 $T$ 比较小的时候，LCB 更好。在 $T$ 比较大的时候，UCB 更好。于是我们好奇，具体什么时候用 UCB，什么时候用 LCB 呢？首先看最坏情况：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;&lt;em&gt;Algorithm&lt;/em&gt;&lt;/th&gt;
&lt;th style="text-align: center"&gt;$T = 1$&lt;/th&gt;
&lt;th style="text-align: center"&gt;$T = N$&lt;/th&gt;
&lt;th style="text-align: center"&gt;$T \gg N$&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;UCB&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O(\sqrt{1 / N_{\min}})$&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O(N \sqrt{K / (\sum_{i} N_i)})$&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O(\sqrt{K T})$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;LCB&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O(\sqrt{1 / N_{\min}})$&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O(N \sqrt{1 / N_{\min}})$&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O(T \sqrt{1 / N_{\min}})$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;再看 gap-dependent regret：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: center"&gt;Algorithm&lt;/th&gt;
&lt;th style="text-align: center"&gt;Gap-dependent regret&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;UCB&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O\left(\sum_{i: \Delta_i &gt; 0} \left(\frac{\log(1 / \delta)}{\Delta_i} - N_i \Delta_i\right)_+\right)$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;LCB&lt;/td&gt;
&lt;td style="text-align: center"&gt;$O\left(T \cdot \min_{i \in [K]} \left\{\Delta_i + \sqrt{\frac{\log(1 / \delta)}{N_i}}\right\}\right)$&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;我们无法找到一个具体的 $T_0$ 作为切换两种方法的静态阈值。&lt;/p&gt;
&lt;h2 id="from-static-switching-to-credit-control"&gt;From Static Switching to Credit Control&lt;/h2&gt;
&lt;p&gt;不提前固定策略，而是在每一轮根据当前信息动态判断，这一轮能不能承受 optimistic exploration 的风险。具体来说，定义预算 budget = cumulative reward - LCB baseline，即&lt;/p&gt;
$$
B_t = \sum_{s=1}^t \mu_s - t \mu_{\text{LCB}}
$$&lt;p&gt;如果 $B_t &gt; 0$，说明目前表现超过了 LCB 基准，可以拿一部分出去探索；如果 $B_t \le 0$，则说明没有足够预算，应该回到更保守的 LCB baseline。&lt;/p&gt;
&lt;p&gt;定义 regret 为&lt;/p&gt;
$$
R_T = T \mu^* - \sum_{t=1}^T \mu_t
$$&lt;p&gt;regret 越小越好。理想情况下，希望对每个 horizon $T$ 都有&lt;/p&gt;
$$
\sum_{t=1}^T \mu_t \ge T \mu_{\text{LCB}}
$$&lt;p&gt;也就是说，算法的累计收益不能低于一直使用 LCB baseline 的收益。但是这个约束有时过强，因此可以引入容忍参数 $\alpha$，放宽为&lt;/p&gt;
$$
\sum_{t=1}^T \mu_t \ge (1 - \alpha) T \mu_{\text{LCB}}
$$&lt;p&gt;其中 $\alpha \in [0,1]$。当 $\alpha = 0$ 时，约束没有放宽；当 $\alpha &gt; 0$ 时，允许算法用一部分收益作为探索代价。&lt;/p&gt;
&lt;p&gt;具体算法如下。首先从 offline data 中选择一个 pessimistic baseline。对每个 arm，根据历史样本计算它的 lower confidence bound：&lt;/p&gt;
$$
\hat{\mu}_i (0) - \sqrt{\log(1 / \delta) / N_i}
$$&lt;p&gt;其中 $\hat{\mu}_i (0)$ 表示只使用 offline data 得到的第 $i$ 个 arm 的样本均值，$N_i$ 是第 $i$ 个 arm 的历史样本数，$\sqrt{\log(1 / \delta) / N_i}$ 是置信半径。选择 offline LCB arm：&lt;/p&gt;
$$
a_0 \in \arg \max_{i \in [K]} \left\{
\hat{\mu}_i (0) - \sqrt{\log(1 / \delta) / N_i}
\right\}
$$&lt;p&gt;这个 $a_0$ 被固定为 pessimistic baseline。它不是样本均值最大的 arm，而是下置信界最大的 arm，因此更保守、更安全。&lt;/p&gt;
&lt;p&gt;在线阶段，在每一轮 $t$，用 offline data 和 online data 的混合数据计算 optimistic candidate。对每个 arm 定义&lt;/p&gt;
&lt;h1 id="u_it"&gt;$$
U_i(t)&lt;/h1&gt;
&lt;p&gt;\hat{\mu}_i(t, N)
+
\sqrt{\log(1 / \delta) / (N_i + T_i (t))}
$$&lt;/p&gt;
&lt;p&gt;其中 $T_i(t)$ 表示在线阶段到第 $t$ 轮前，第 $i$ 个 arm 已经被选择的次数。因此 $N_i + T_i (t)$ 是第 $i$ 个 arm 的总样本量：&lt;/p&gt;
&lt;h1 id="texttotal-samples"&gt;$$
\text{total samples}&lt;/h1&gt;
&lt;p&gt;\text{offline samples}
+
\text{online samples}
$$&lt;/p&gt;
&lt;p&gt;置信半径可以记为&lt;/p&gt;
&lt;h1 id="mathrmrad_i-t-n"&gt;$$
\mathrm{rad}_i (t, N)&lt;/h1&gt;
&lt;p&gt;\sqrt{\log(1 / \delta) / (N_i + T_i (t))}
$$&lt;/p&gt;
&lt;p&gt;于是&lt;/p&gt;
$$
U_i (t) = \hat{\mu}_i (t, N) + \mathrm{rad}_i (t, N)
$$&lt;p&gt;然后选择 UCB 最大的 arm 作为 optimistic candidate：&lt;/p&gt;
$$
I_t \in \arg \max_{i \in [K]} U_i (t)
$$&lt;p&gt;这里 $I_t$ 只是 UCB 推荐的候选动作，还不是算法最终执行的动作。最终是否执行 $I_t$，还要看 exploration budget 是否足够。&lt;/p&gt;
&lt;p&gt;令 $\mathcal{U}_{t-1}$ 表示前 $t-1$ 轮中算法接受 UCB candidate 的轮次集合，令 $\mathcal{B}_{t-1}$ 表示前 $t-1$ 轮中算法回退到 LCB baseline 的轮次集合。在第 $t$ 轮，如果考虑接受 UCB candidate $I_t$，则定义 certified credit：&lt;/p&gt;
&lt;h1 id="zeta_t"&gt;$$
\zeta_t&lt;/h1&gt;
&lt;h2 id="mu_i_t"&gt;\sum_{s \in \mathcal{U}&lt;em&gt;{t-1}} \mu&lt;/em&gt;{a_s}
+
|\mathcal{B}&lt;em&gt;{t-1}| \mu&lt;/em&gt;{a_0}
+
\mu_{I_t}&lt;/h2&gt;
&lt;p&gt;(1 - \alpha) t \mu_{a_0}
$$&lt;/p&gt;
&lt;p&gt;具体来看，前三项&lt;/p&gt;
$$
\sum_{s \in \mathcal{U}_{t-1}} \mu_{a_s}
+
|\mathcal{B}_{t-1}| \mu_{a_0}
+
\mu_{I_t}
$$&lt;p&gt;表示如果第 $t$ 轮接受 $I_t$，那么到第 $t$ 轮为止的累计期望收益。其中第一项是过去接受 UCB 的轮次收益，第二项是过去回退到 baseline $a_0$ 的轮次收益，第三项是当前候选 arm $I_t$ 的收益。最后一项 $(1 - \alpha) t \mu_{a_0}$ 是放宽后的 baseline 累计收益。因此决策规则为&lt;/p&gt;
$$
a_t =
\begin{cases}
I_t &amp; \zeta_t \ge 0, \\
a_0 &amp; \zeta_t &lt; 0,
\end{cases}
$$&lt;p&gt;实际操作过程中，用 $L_i (t)$ 代替未知的 $\mu_{a_s}$，用 $U_{a_0} (t)$ 代替 $T_{\mu \text{LCB}}$。&lt;/p&gt;</description></item><item><title>Stat-ML 讨论班笔记（二）：估计与泛化理论</title><link>https://cestfloraison.asia/blog/stat-ml-estimation-theory/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/stat-ml-estimation-theory/</guid><description>&lt;h1 id="estimation-and-generalization"&gt;Estimation and Generalization&lt;/h1&gt;
&lt;h2 id="uniformity-and-metric-entropy"&gt;Uniformity and Metric Entropy&lt;/h2&gt;
&lt;p&gt;对于一族函数 $f:\mathcal{X} \to \mathcal{Y}$ 中的某个固定的 $f$，令 $Y_f = f(X)$ 大数定律告诉我们 $ P(\limsup_{n \to \infty} |\overline{Y_f}-Y_f|=0)=1 $&lt;/p&gt;
&lt;p&gt;我们希望上式关于 $f$ 一致成立。&lt;/p&gt;
&lt;p&gt;对于 $f: \mathcal{X} \to \mathbb{R} \in \mathcal{F}$，定义 $ P_n f =\mathbb{E}_{P_n} [f(X)]=\frac{1}{n} \sum_{i=1}^n f(X_i) $&lt;/p&gt;
&lt;p&gt;Glivenko-Cantelli 定理考虑了对原始分布的一个经验估计，在 $\mathcal{F}=\{f_x | f_x (X)=\mathbf{1}(X\le x)\}$ 下给出经验均值的一致收敛性： $ \sup_{f \in \mathcal{F}} |P_n f - P f| \to 0 $&lt;/p&gt;
&lt;p&gt;考虑更广泛的版本，若 $f: \mathcal{X} \to [a,b]$ 为有界函数集合，则有 $ P\left(\|P_n -P\|_{\mathcal{F}} \ge \mathbb{E}(\|P_n - P\|_{\mathcal{F}})+t\right)\le \exp\left(-\frac{2n t^2}{(b-a)^2}\right) $&lt;/p&gt;
&lt;p&gt;这里是把 $\sup$ 视为一个范数，从而利用 vector tensorization 将目标从 high prob bound 变成 in-expectation bound，即证明 $\mathbb{E}(\|P_n - P\|_{\mathcal{F}})=o(1)$。&lt;/p&gt;
&lt;p&gt;证明用到 bounded differences inequality。上述结论说明，如果我们想要研究&amp;quot;经验分布&amp;quot;是否能够良好地表示原始分布，只需要研究均值即可，因为稳定性（有界差分条件）可以确保集中性。&lt;/p&gt;
&lt;p&gt;不过原始分布 $P$ 很难知道，所以我们引入对称化的技巧来显式的消去原始分布 $P$，引入 $\epsilon \in \{-1,1\}$，可以得到对任意的 $p\ge 1$： $ 2^{-p} \mathbb{E}\left[\left\|\sum_{i=1}^n \epsilon_i (X_i - \mathbb{E}[X_i])\right\|^p\right] \le \mathbb{E}\left[\left\|\sum_{i=1}^n (X_i - \mathbb{E}[X_i])\right\|^p\right]\le 2^p \mathbb{E}\left[\left\|\sum_{i=1}^n \epsilon_i X_i\right\|^p\right] $&lt;/p&gt;
&lt;p&gt;也可以引入 Rademacher 复杂度 $ P_n^0 = \frac{1}{n} \sum_{i=1}^n \epsilon_i \mathbf{1}_{X_i},\quad R_n = \mathbb{E}(\sup \|P_n^0 f\|) $&lt;/p&gt;
&lt;p&gt;代表对称经验测度关于符号变量 $\epsilon_i$ 的期望。如果 $X_i$ i.i.d.，有 $ \mathbb{E}[\|P_n - P\|_{\mathcal{F}}]\le 2 \mathbb{E}[\|P_n^0\|_{\mathcal{F}}] $&lt;/p&gt;
&lt;p&gt;对于有界的 $f: \mathcal{X} \to [a,b]$，上式立即可以导出 $ P\left(\|P_n - P\|_{\mathcal{F}} \ge 2\mathbb{E}[\|P_n^0\|_{\mathcal{F}}]+t\right) \le \exp\left(-\frac{2 n t^2}{(b-a)^2}\right) $&lt;/p&gt;
&lt;p&gt;有关 Rademacher 复杂度，有以下结果，比如 Massart&amp;rsquo;s finite class bound： 如果 $\sigma_n^2 = n^{-1} \mathbb{E}[\max_{f \in \mathcal{F}} \sum_{i=1}^n f(X_i)^2]&lt;\infty$，则 $ R_n (\mathcal{F}) \le \frac{\sqrt{2 \sigma_n^2 \log |F|}}{\sqrt{n}} $&lt;/p&gt;
&lt;p&gt;它给出了一个有限函数族拟合随机噪声的能力上限，和 $\log |F|$ 与 $1/\sqrt{n}$ 相关。&lt;/p&gt;
&lt;p&gt;Ledoux-Talagrand Contraction 给出，对于任意的 $T \subset \mathbb{R}^n$ 和满足 1-Lipschitz 且 $\phi_i (0)=0$ 的函数 $\phi_i: \mathbb{R} \to \mathbb{R}$，对于任意不减的凸函数 $\Phi: \mathbb{R} \to \mathbb{R}_+$， $ E\left[\Phi\left(\frac{1}{2} \sup_{t \in T} \left|\sum_{i=1}^n \phi_i(t_i)\epsilon_i \right|\right)\right] \le E[\Phi(\sup_{t \in T}\langle t, \epsilon\rangle)] $&lt;/p&gt;
&lt;p&gt;其推论是，对于任何函数集 $\mathcal{F}$ 和 L-Lipschitz 函数 $\phi$，均有 $ R_n (\phi \circ \mathcal{F})\le 2 L R_n (\mathcal{F}) + \frac{|\phi(0)|}{\sqrt{n}} $&lt;/p&gt;
&lt;p&gt;其意义是，在机器学习中我们关心的往往不是 $f(X)$ 本身的复杂度，而是损失函数 $l(f(X),Y)$ 的复杂度。但只要 $l$ 满足 Lipschitz 条件，我们就可以利用上述不等式，只需关注 $f(X)$ 本身的复杂度。它也揭示了 Rademacher 复杂度对被有界梯度的函数 $\phi$ 复合后的鲁棒性。&lt;/p&gt;
&lt;p&gt;如果 $|\mathcal{F}|$ 无穷大怎么办？可以引入 covering 和 packing 的概念。用 $N(\delta, \Theta, \rho)$ 表示可以用最少 $N$ 个小&amp;quot;圆盘&amp;quot;覆盖整个 $\mathcal{F}$，使得对于任意 $\theta$，存在 $\rho(\theta, \theta_i)&lt;\delta$。&lt;/p&gt;
&lt;p&gt;用 $M(\delta, \Theta, \rho)$ 表集合中可以放下的最多的 $M$ 个互不相交的距离为 $\delta$ 的小圆盘的数量。它们之间满足 $ M(2\delta, \Theta, \rho)\le N(\delta, \Theta, \rho)\le M(\delta, \Theta, \rho) $&lt;/p&gt;
&lt;p&gt;如果 $\mathcal{F}$ 是所有 $f: \mathcal{X} \to [-b,b]$ 上的函数，度量 $\rho$ 是 $\|f-g\|_{\infty}=\sup_{x \in \mathcal{X}}|f(x)-g(x)|$，则 $ P\left(\sup_{f \in \mathcal{F}}|P_n f - P f|\ge t\right)\le \exp\left(-\frac{n t^2}{18b^2} + \log N(t/3, \mathcal{F}, \|\cdot\|_{\infty})\right) $&lt;/p&gt;
&lt;h2 id="generalization-bounds"&gt;Generalization Bounds&lt;/h2&gt;
&lt;p&gt;在机器学习任务中，我们希望找到一个函数，能够很好的解释原始分布的机制。比如有一个输入为 $X$，输出 $Y \in \{-1,1\}$ 的黑盒，如果我们能找到一个 $f$ 满足 $f(X)&gt;0 \Rightarrow Y=-1, f(X)&lt;0 \Rightarrow Y=1$，我们就相当于理解了这个黑盒的机制。&lt;/p&gt;
&lt;p&gt;一般我们能做的是：确定 $f$ 可能的范围 $\mathcal{F}$，或者利用黑盒重复采样。对于每个 $f$，我们定义 $l_f (Z)$ 来衡量 $f$ 有多好。之前的理论告诉我们，在某些条件下分布对其均值有良好的集中性，且经验分布可以很好地还原原始分布，所以我们考虑经验风险 $\hat{L}_n (f)=\frac{1}{n} \sum_{i=1}^n l(f, Z_i)$。如果找到了合适的 $f$，使得经验风险接近于原始分布的风险，那就是实现了泛化。&lt;/p&gt;
&lt;p&gt;我们的终极目标是对于每一个 $f$，定量证明 w.h.p.(with high probability) $|\hat{L}_n (f) - L(f)| = o(1)$，其中 $o(1)$ 和 $f$ 的具体性质有关。这个问题的一个简化版本是找到一个一致上界 $ P\left(\sup_{f \in \mathcal{F}}|\hat{L}_n (f) -L (f) |&gt;t\right) $&lt;/p&gt;
&lt;p&gt;其中的 $f$ 可被视为一个探测函数。&lt;/p&gt;
&lt;p&gt;当 $|\mathcal{F}|$ 可数时，$P$ 是 $\mathcal{Z}$ 上的一个分布， 若 $l(f,Z)$ 满足对所有 $f$ 均是 sub-Gaussian，而且给每一个 $f$ 给出一个编码 $c(f)$ 满足 $\sum_f e^{-c(f)}\le 1$，则下式有 $1-\delta$ 的概率在 $Z_{1:n}$ 成立： $ L(f)\le \hat{L}_n (f) + \sqrt{\frac{2 \sigma^2 (\log 1/\delta + c(f))}{n}} $&lt;/p&gt;
&lt;p&gt;这里的 $c(f)$ 表示 prior complexity。从信息论的视角看，我们希望使用一套编码系统把每一个 $f$ 都记录下来，$c(f)$ 就是分配给 $f$ 的编码长度，结构越简单的模型 $f$ 对应的 $c(f)$ 越短。证明中，我们给简单的模型多分配一点容错率，给复杂的模型少分配一点。我们给模型 $f$ 分配的单边失败概率正是 $\delta \cdot e^{-c(f)}$。&lt;/p&gt;
&lt;p&gt;如果 $\mathcal{F}$ 不可数，处理起来就很复杂，或者使用 Rademacher 复杂度建模，或者使用覆盖数建模。其内容比较复杂，在此省略。&lt;/p&gt;
&lt;h2 id="beyond-uniform-convergence-pac-bayes"&gt;Beyond Uniform Convergence: PAC-Bayes&lt;/h2&gt;
&lt;p&gt;uniform convergence 的目标是：w.h.p. $\sup_{f \in \mathcal{F}} |P_n f - P f|=o(1)$。我们说明了其收敛的速度与 $|\mathcal{F}|$ 有关。如果 $|\mathcal{F}|$ 无穷大，则无意义。&lt;/p&gt;
&lt;p&gt;本质上，我们想说的是 w.h.p. $|P_n f - P f| = o(1)$，其趋近的速度取决于 $f$ 的难度，这比 uniform convergence 更精确。&lt;/p&gt;
&lt;p&gt;PAC-Bayes 也是基于这个直觉，引入 instance dependence。特别地是，这里会做一个 lifting：相比于考虑每个单独的 $f \in \mathcal{F}$，我们考虑 $\mathcal{F}$ 上 的分布，即若干 $f$ 的 weighted average（用分布 $\pi$ 表示），得到一个 $|P_n f - P f|$，然后证明 w.h.p.，$|P_n f - P f|=o(1)$，这个 $o(1)$ 取决于 $\pi$ 的难度。&lt;/p&gt;
&lt;p&gt;令 $\Pi$ 表示 $\mathcal{F}$ 上的所有概率分布，$\pi_0$ 为一个固定的在 $f$ 上的分布。则下式成立的概率至少为 $1-\delta$： $ \int (P_n f - P f)^2 \mathrm{d} \pi(f) \le \frac{8 \sigma^2}{3} \frac{(D_{\mathrm{kl}} (\pi || \pi_0) + \log 2/\delta)}{n}, \quad \text{for all } \pi \in \Pi $&lt;/p&gt;
&lt;p&gt;定义不同 $\pi$ 难度时我们会用到一个先验的 $\pi_0$，通常为 uniform distribution。由 Jensen InE，可以得到 $ \int |P_n f - P f|\mathrm{d} \pi(f) \le \sqrt{\frac{8 \sigma^2}{3} \frac{(D_{\mathrm{kl}} (\pi || \pi_0) + \log 2/\delta)}{n}} $&lt;/p&gt;
&lt;p&gt;还有一个重要的表示是 KL 散度的 variational representation：&lt;/p&gt;
$$ D_{\mathrm{kl}} (P || Q) = \sup_g \left(\mathbb{E}_{P} [g(X)] - \log \mathbb{E}_{Q} [e^{g(X)}]\right) \tag{5.18} $$&lt;p&gt;所谓 variational 就是将两个分布之间的距离写成关于某个探测函数优化问题的解，是 uniform convergence 直觉的反向。本质思想是：negative Shannon entropy 的凸共轭是 log sum exp 函数，而 KL divergence 的凸共轭是 log partition，是 LSE 的 weighted 版本。&lt;/p&gt;
&lt;p&gt;假设 $P,Q$ 的支撑集为 $\{1,...,k\}$，$p,q \in \Delta_k = \{p \in \mathbb{R}_+^k | \langle 1,p \rangle =1 \}$。定义 $f_q (v)=\log\left(\sum q_j e^{v_j}\right)$，是关于 $v$ 的凸函数。(5.18) 在离散情形下等价于 $ h(p)= \sup_{v \in \mathbb{R}^k}\{\langle p, v \rangle - f_q (v)\} $&lt;/p&gt;
&lt;p&gt;RHS 是一个凸函数，求导数等于0就可以找到极值点，从而证明 (5.18)。&lt;/p&gt;
&lt;h1 id="minimax-lower-bounds"&gt;Minimax Lower Bounds&lt;/h1&gt;
&lt;p&gt;本章节的主要内容是定义何为 minimax risk，并讨论建立其下界的技巧（Le Cam, Fano, Assouad）。本章节中推导的下界将基于 local minimax risk，即证明在某个特定点附近的参数估计是很困难的；在后续章节中，我们将进一步讨论更具有全局意义的最优性概念。&lt;/p&gt;
&lt;h2 id="basic-framework-and-minimax-risk"&gt;Basic Framework and Minimax Risk&lt;/h2&gt;
&lt;p&gt;在解决经典的 estimation problems 时，我们使用 minimax risk 的标准版本。在涉及优化问题时，我们将引入一个更广泛的版本：minimax excess risk。&lt;/p&gt;
&lt;p&gt;令 $\mathcal{P}$ 表示样本空间 $\mathcal{X}$ 上的一族分布，$\theta: \mathcal{P} \to \Theta$ 是 $\mathcal{P}$ 上的函数，将分布 $P$ 映射为参数 $\theta(P)$。目标是根据从未知分布 $P$ 中采样得到的 $X_i$ 估计 $\theta(P)$。有时 $\theta(P)$ 唯一确定 $P$，有时不然，但至少揭示了关于 $P$ 的一些信息。&lt;/p&gt;
&lt;p&gt;为了衡量参数估计的好坏，定义 $\rho: \Theta \times \Theta \to \mathbb{R}_+$ 为 $\Theta$ 上的（半）范数，并令 $\Phi:\mathbb{R}_+ \to \mathbb{R}_+$ 为满足 $\Phi(0)=0$ 的不减函数。对于一个分布 $P$，假设 $X_i$ 是服从 $P$ 的 i.i.d.。对于一个给定的估计方式 $\hat{\theta}: \mathcal{X}^n \to \Theta$，我们用以下风险衡量 $\hat{\theta}(X_1,\dots,X_n)$ 的好坏： $ \mathbb{E}_{P} [\Phi(\rho(\hat{\theta}(X_1,\dots,X_n), \theta(P)))] $&lt;/p&gt;
&lt;p&gt;比如，当 $\rho(\theta, \theta')=|\theta, \theta'|, \Phi(t)=t^2$ 时，此时的风险就是均方误差。通过上式，我们得到了关于问题的 risk functional。&lt;/p&gt;
&lt;p&gt;对于任何固定的 $P$，总存在一个平凡的 $\hat{\theta}$：直接返回 $\theta(P)$ 就可以最小化风险。所以，我们不想把 risk functional 停留在 pointwise sense（即只对某个固定的 $P$），而要考虑所有可能分布。一种做法是 Bayesian，在 $\mathcal{P}$ 上放置一个先验的概率分布 $\pi$，把 $\theta(P)$ 视为 $P$ 服从分布 $\pi$ 的随机变量。这里采用另一种方法，将衡量 $\hat{\theta}$ 的 risk 改写为 $ \sup_{P \in \mathcal{P}} \mathbb{E}_{P} [\Phi(\rho( \hat{\theta}(X_1,\dots,X_n), \theta(P) ))] $&lt;/p&gt;
&lt;p&gt;使得上式最小的估计方式 $\theta$ 给出了 minimax risk 的标准定义：&lt;/p&gt;
$$ \mathcal{M}_n (\theta(P), \Phi \circ \rho)= \inf_{\hat{\theta}} \sup_{P \in \mathcal{P}} \mathbb{E}_{P} [\Phi(\rho( \hat{\theta}(X_1,\dots,X_n), \theta(P) ))] $$&lt;p&gt;在有些问题中，我们假设存在某个 loss function $l: \Theta \times \mathcal{X} \to \mathbb{R}$，对于任何观测 $x \in \mathcal{X}$，$l(\theta;x)$ 衡量了使用 $\theta$ 作为估计方法的 误差。在此情况下，定义 population loss: $ L_{P} (\theta)=\mathbb{E}_{P} [l(\theta; X)]=\int_{\mathcal{X}} l(\theta;X) \mathrm{d} P(x) $&lt;/p&gt;
&lt;p&gt;一个例子是 Support Vector Machine。在线性分类问题中，我们观察到数据对 $z = (x, y)$，其中 $y \in \{-1, 1\}$, $x \in \mathbb{R}^d$，目标是寻找一个参数 $\theta \in \mathbb{R}^d$，使得 $\operatorname{sign}(\langle \theta, x \rangle) = y$。Hinge loss $(\theta; z) = [1 - y \langle \theta, x \rangle]_+$ 是一个自然的凸替代函数；在集合 $\Theta = \{\theta \in \mathbb{R}^d : \|\theta\|_2 \le r\}$ 上最小化相关的 risk functional 即可得到SVM。&lt;/p&gt;
&lt;p&gt;对于给定样本 $X_1, ..., X_n$ 的一个（可能是随机的）估计器 $\hat{\theta} : \mathcal{X}^n \to \Theta$，我们将针对 $\mathcal{P}$ 的 maximum excess risk 定义为：&lt;/p&gt;
$$ \sup_{P \in \mathcal{P}} \left\{\mathbb{E}_{P} [L_{P} (\hat{\theta}(X_1, ..., X_n))] - \inf_{\theta \in \Theta} L_{P} (\theta)\right\} $$&lt;p&gt;其中期望是关于 $X_i$ 以及 $\hat{\theta}$ 中的任何随机性求取的。该表达式刻画了 $\hat{\theta}$ 的（期望）risk 与 minimum risk（即假设提前知道分布 $P$ 时所能达到的风险）之间的差异。Minimax excess risk 是基于损失 $\ell$、定义域 $\Theta$ 和分布族 $\mathcal{P}$ 定义的：&lt;/p&gt;
$$ M_n (\Theta, \mathcal{P}, \ell) := \inf_{\hat{\theta}} \sup_{P \in \mathcal{P}} \left\{\mathbb{E}_{P} [L_{P} (\hat{\theta}(X_1, ..., X_n))] - \inf_{\theta \in \Theta} L_{P} (\theta)\right\} $$&lt;p&gt;其中下确界是遍历所有估计器 $\theta : \mathcal{X}^n \to \Theta$ 取的，并且损失 $\ell$ 隐式地定义了总体损失 $L_{P}$。&lt;/p&gt;
&lt;h2 id="preliminaries-on-methods-for-lower-bounds"&gt;Preliminaries on Methods for Lower Bounds&lt;/h2&gt;
&lt;p&gt;计算 maximum risk 的方法往往通过将其视为一个 Bayesian 问题以获取下界。令 $\{P_v\}$ 是以 $v$ 为下标，以 $\pi$ 为概率密度的一族分布，maximum risk 有下界 $ \sup_{P \in \mathcal{P}} \mathbb{E}_{P} [\Phi(\rho(\hat{\theta}(X_1^n), \theta(P)) )] \ge \sum_v \pi(v) \mathbb{E}_{P_v} [\Phi(\rho(\hat{\theta}(X_1^n), \theta(P_v)) )] $&lt;/p&gt;
&lt;p&gt;我们考虑将参数估计问题简化为一个假设检验问题以获得下界。给定有限集 $\mathcal{V}$，考虑 $\{P_v\}_{v \in \mathcal{V}}$。这一族分布诱导出 $\{\theta(P_v)\}_{v \in \mathcal{V}}$。我们称这在度量 $\rho$ 下是一个 $2\delta$-packing，若 $ \rho(\theta(P_v), \theta(P_{v'}))\ge 2\delta,\quad v\neq v' $&lt;/p&gt;
&lt;p&gt;我们使用这个分布族来定义最标准的假设检验问题。首先，大自然在 $\mathcal{V}$ 中等概率选择 $V$。其次，在 $V=v$ 的条件下，从 $P_v^n$ 中采样 $X=X_1^n$。根据观察到的 $X$，我们的目标是确定 $v$，具体而言我们用 $\Psi: \mathcal{X}^n \to \mathcal{V}$ 作为检验函数。特别地，如果我们取 $\overline{P}=\frac{1}{|\mathcal{V}|} \sum_{v \in \mathcal{V}} P_v$ 为混合分布，假设检验问题就变成了根据 $\overline{P}$ 中的采样，确定随机选取的下标 $V$。&lt;/p&gt;
&lt;p&gt;由此，可以得到参数估计问题的一个经典下界： $ \mathcal{M}_n (\theta(P), \Phi \circ \rho)\ge \Phi(\delta) \inf_{\Psi} P(\Psi(X_1,\dots,X_n)\neq V) $&lt;/p&gt;
&lt;p&gt;证明思路如下。固定 $\hat{\theta}$，由于 $\Phi$ 不减，可以得到 $ \mathbb{E}[\Phi(\rho(\hat{\theta}, \theta))]\ge \mathbb{E}[\Phi(\delta) \mathbf{1}\{\rho(\hat{\theta}, \theta)\ge \delta\}]=\Phi(\delta)P(\rho(\hat{\theta}, \theta)\ge \delta) $&lt;/p&gt;
&lt;p&gt;令 $\theta_v=\theta(P_v)$。由于我们假设 $\rho(\theta_v, \theta_{v'})\ge 2\delta$，当我们定义 $ \Psi(\hat{\theta})=\arg \min_{v \in \mathcal{V}} \{\rho(\hat{\theta}, \theta_v)\} $ 时，可以得到 $\rho(\hat{\theta}, \theta_v)&lt;\delta \Rightarrow \Phi(\hat{\theta})=v$。同理，$\Phi(\hat{\theta})\neq v \Rightarrow \rho(\hat{\theta}, \theta_v)\ge \delta$。于是可得：&lt;/p&gt;
$$ \begin{aligned} \sup_{P} P(\rho(\hat{\theta}, \theta_v)\ge \delta)&amp;=\frac{1}{|\mathcal{V}|} \sum_{v \in \mathcal{V}}P(\rho(\hat{\theta}, \theta_v)\ge \delta | V=v)\\ &amp;\ge \frac{1}{|\mathcal{V}|} \sum_{v \in \mathcal{V}}P(\Psi(\hat{\theta}\neq v) | V=v) \end{aligned} $$&lt;p&gt;对所有 $\Psi$ 取 $\inf$ 就得到了原命题的结论。&lt;/p&gt;
&lt;p&gt;剩下的挑战是为多元假设检验问题中的错误概率寻找下界，我们通过选择分离度 $\delta$ 来在损失 $\Phi(\delta)$和错误概率之间做 tradeoff。通常，人们会选择能够保证错误概率为常数的最大 $\delta$。为此，我们将介绍三种技术：Le Cam、Fano和 Assouad。在此之前，我们先回顾一些定义在概率分布上的 divergence measures 之间的不等式。&lt;/p&gt;
&lt;p&gt;由凸函数 $f$ 定义的 $f$-divergence 是&lt;/p&gt;
$$ D_f (P||Q) = \int q(x) f(p(x)/q(x)) \mathrm{d} \mu(x) $$&lt;p&gt;几种常见的 $f$-divergence 如下：&lt;/p&gt;
$$ \|P - Q\|_{\mathrm{TV}} := \sup_{A \subset \mathcal{X}} |P(A) - Q(A)| = \frac{1}{2} \int |p(x) - q(x)| \mathrm{d} \mu(x), $$$$ d_{\mathrm{hel}} (P, Q)^2 := \frac{1}{2} \int (\sqrt{p(x)} - \sqrt{q(x)})^2 \mathrm{d} \mu(x), $$$$ D_{\mathrm{kl}} (P||Q) := \int p(x) \log \frac{p(x)}{q(x)} \mathrm{d} \mu(x), \tag{9.2.2} $$&lt;p&gt;它们之间满足如下不等式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hellinger distance:&lt;/li&gt;
&lt;/ul&gt;
$$ d_{\mathrm{hel}} (P,Q)^2\le \|P-Q\|_{\mathrm{TV}} \le d_{\mathrm{hel}} (P,Q) \sqrt{2-d_{\mathrm{hel}} (P,Q)^2} $$&lt;ul&gt;
&lt;li&gt;Pinsker&amp;rsquo;s ineuqality:&lt;/li&gt;
&lt;/ul&gt;
$$ \|P-Q\|_{\mathrm{TV}}\le \frac{1}{2} D_{\mathrm{kl}} (P || Q) $$&lt;p&gt;此外，关于 product distributions 和 tensorization，还有以下结果： $ D_{\mathrm{kl}} (P || Q)=\sum_{i=1}^n D_{\mathrm{kl}} (P_i || Q_i) $&lt;/p&gt;
&lt;p&gt;而且由于 $d_{\mathrm{hel}} (P,Q)^2=1-\int \sqrt{\mathrm{d} P \mathrm{d} Q}$， Hellinger distance 也可以进行 tensorization：$ d_{\mathrm{hel}} (P,Q)^2 = 1 - \prod_{i=1}^n (1- d^2_{\mathrm{hel}} (P_i,Q_i)) $&lt;/p&gt;
&lt;p&gt;于是我们还可以得到 $ \|P_n-Q^n\|^2_{\mathrm{TV}}\le \frac{1}{2} D_{\mathrm{kl}} (P^n || Q^n) = \frac{n}{2} D_{\mathrm{kl}} (P || Q) $，$ \|P_n-Q^n\|^2_{\mathrm{TV}} \le \sqrt{2} d_{\mathrm{hel}} (P^n, Q^n) \le \sqrt{2 - 2(1 - d_{\mathrm{hel}} (P,Q)^2)^n} $&lt;/p&gt;
&lt;p&gt;上式说明，如果我们能保证 $D_{\mathrm{kl}} (P || Q)\le 1/n$ 或者 $d_{\mathrm{hel}} (P,Q)\le 1/\sqrt{n}$，就可以保证 $\|P^n-Q^n\|_{\mathrm{TV}}\le 1-c$，对某个固定的常数 $c&gt;0$。&lt;/p&gt;
&lt;p&gt;下面我们还需要回顾 packing 相关的内容。有关体积的放缩给出，如果 $B$ 是 $\mathbb{R}^d$ 中的单位球，则 $ (1/\delta)^d \le N(\delta, B, \|\cdot\|)\le (1+2/\delta)^d $&lt;/p&gt;
&lt;p&gt;由于 $M(\delta, B, \|\cdot\|)\ge N(\delta, B, \|\cdot\|)$，所以有以下推论：存在 $\mathcal{V} \subset B, |\mathcal{V}|\ge 2^d$ 满足 $\forall v\neq v' \in \mathcal{V}, \|v-v'\|\ge 1/2$。&lt;/p&gt;
&lt;p&gt;另一种常见的 packing 来自编码理论。Gilbert-Varshamov bound 指出，存在 $\mathcal{V} \subset \{-1,1\}^d$，$|\mathcal{V}|\ge \exp(d/8)$ 且 $ \|v-v'\|_1 = 2 \sum_{j=1}^d \mathbf{1}\{v_j\neq v'_{j}\}\ge d/2 $ \tag{6.24}&lt;/p&gt;
&lt;p&gt;证明思路如下。考虑 $\mathcal{H}_d = \{-1, 1\}^d$ 的一个极大子集 $\mathcal{V}$，满足 $\|v - v'\|_1 \ge d/2$。其极大性表明，如果我们要构造闭球 $B(v, d/2) := \{w \in \mathcal{H}_d : \|v - w\|_1 \le d/2\}$，必有&lt;/p&gt;
$$ \bigcup_{v \in \mathcal{V}} B(v, d/2) = \mathcal{H}_d \quad \Rightarrow \quad |\mathcal{V}| |B(0, d/2)| = \sum_{v \in \mathcal{V}} |B(v, d/2)| \ge 2^d. \tag{9.2.6} $$&lt;p&gt;现在我们使用概率方法求 $|B(v, d/2)|$ 的上界。令 $S_i$ 为取值为 $\{0, 1\}$ 的 i.i.d. 伯努利随机变量。对于任意 $v \in \mathcal{H}_d$，&lt;/p&gt;
$$ \begin{aligned} 2^{-d} |B(v, d/2)| &amp;= \mathbb{P}(S_1 + S_2 + \dots + S_d \le d/4) = \mathbb{P}(S_1 + S_2 + \dots + S_d \ge (3d)/4) \\ &amp;\le \mathbb{E}[\exp(\lambda S_1 + \dots + \lambda S_d)] \exp(-3 \lambda d / 4) \end{aligned} $$&lt;p&gt;这里的不等式使用了 Chernoff bound可得。因为 $\mathbb{E}[\exp(\lambda S_1)] = \frac{1}{2}(1 + e^{\lambda})$，我们得到&lt;/p&gt;
$$ 2^{-d} |B(v, d/2)| \le \inf_{\lambda \ge 0} \left\{ 2^{-d}(1 + e^{\lambda})^d \exp(-3 \lambda d / 4) \right\} $$&lt;p&gt;取 $\lambda = \log 3$，可得&lt;/p&gt;
$$ |\mathcal{V}| \ge \frac{3^{3d/4}}{2^d} = \exp\left(d \left[ \frac{3}{4} \log 3 - \log 2 \right]\right) \ge \exp(d/8) $$&lt;h2 id="le-cams-method"&gt;Le Cam&amp;rsquo;s Method&lt;/h2&gt;
&lt;p&gt;考虑只有两个备择假设的假设检验问题，$V$ 等概率为 1 或 2。对于任何 test $\Psi: \mathcal{X} \to \{1,2\}$，错误的概率是 $ P(\Psi(X)\neq V) = \frac{1}{2} P_1 (\Psi(X) \neq 1)+\frac{1}{2} P_2 (\Psi(X) \neq 2) $&lt;/p&gt;
&lt;p&gt;对于 $\mathcal{X}$ 上的任何分布 $P_1, P_2$，均有 $ \inf_{\Psi} \{P_1 (\Psi(X)\neq 1) + P_2 (\Psi(X)\neq 2)\} = 1 - \|P_1-P_2\|_{\mathrm{TV}} $&lt;/p&gt;
&lt;p&gt;如果 $P_1$ 和 $P_2$ 是等概率选择的，那么 $ \inf_{\Psi} P(\Psi(X_1,\dots,X_n)\neq V) = \frac{1}{2} - \frac{1}{2} \|P_1^n - P_2^n\|_{\mathrm{TV}} $&lt;/p&gt;
&lt;p&gt;结合上面的式子可以得到 minimax risk 的一个下界。对于任何 $\mathcal{P}$ 和 $P_1,P_2 \in \mathcal{P}$ 满足 $\rho(\theta(P_1), \theta(P_2))\ge 2\delta$，我们有 $ \mathcal{M}_n (\theta(P), \Phi \circ \rho)\ge \Phi(\delta)\left[\frac{1}{2} - \frac{1}{2} \|P_1^n - P_2^n\|_{\mathrm{TV}}\right] $&lt;/p&gt;
&lt;p&gt;如果我们能选择适当的 $P_1,P_2$，使得 $\|P_1^n - P_2^n\|_{\mathrm{TV}} \le 1/2$，只要 $\rho(\theta(P_1), \theta(P_2))\ge 2\delta$，就有 $\mathcal{M}_n\ge \frac{1}{4} \Phi(\delta)$。类似的例子可以用在 Bernoulli mean estimation 上，得到 $ \mathcal{M}_n (\operatorname{Bernoulli}([-1,1]), (\cdot)^2)\ge \frac{1}{24n} \text{ or } \frac{1}{16n} $&lt;/p&gt;
&lt;p&gt;这些例子说明我们可以在均方误差下以与 $1/n$ 成正比的速率来估计 $\theta$。&lt;/p&gt;
&lt;h2 id="fanos-method"&gt;Fano&amp;rsquo;s Method&lt;/h2&gt;
&lt;p&gt;Fano 的方法可以适用于 $|\mathcal{V}|&gt;2$ 的场景。先从 Fano&amp;rsquo;s InE 出发：对于任意的 Markov chain $V \to X \to \hat{V}$，我们有 $ h_2 (P(\hat{V}\neq V)) + P(\hat{V}\neq V)\log(|V|-1)\ge H(V | \hat{V}) $&lt;/p&gt;
&lt;p&gt;其中 $h_2(p)=-p \log p - (1-p)\log (1-p)$。 直观理解，RHS 是观测到 $\hat{V}$ 后真实值 $V$ 剩下的不确定性，LHS 的第一项是是否出错的信息熵，第二项是如果出错是哪一个错了的信息熵。&lt;/p&gt;
&lt;p&gt;推论：如果 $V$ 在 $\mathcal{V}$ 上服从均匀分布，对于任意 Markov chain $V \to X \to \hat{V}$， $ P(\hat{V}\neq V)\ge 1-\frac{I(V;X)+\log 2}{\log |\mathcal{V}|} $&lt;/p&gt;
&lt;p&gt;于是，如果 $\{\theta(P_v)\}_{v \in \mathcal{V}}$ 是一个 $2\delta$-packing，并且 $V$ is uniform on $\mathcal{V}$，采样 $X \sim P_v$，可得 $ \mathcal{M}(\theta(\mathcal{P}); \Phi \circ \rho)\ge \Phi(\delta)\left(1-\frac{I(V;X)+\log 2}{\log |\mathcal{V}|}\right) $ \tag{6.36}&lt;/p&gt;
&lt;p&gt;我们把下界视为关于 $\delta$ 的函数。当 $\delta \to 0$ 时，$P_v$ 会更加接近，$I(V;X)$ 会减小，假设检验问题会变得更难。所以我们希望将 $\theta(P_v)$ 设定为关于 $\delta$ 的函数，找到最大的 $\delta$ 使得 $ \frac{I(V;X)+\log 2}{\log |\mathcal{V}|}\le 1/2 $ \tag{6.37}&lt;/p&gt;
&lt;p&gt;也就是让错误概率成为一个常数，使得 minimax lower bound 至少达到 $\Phi(\delta)/2$。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Mutual Information and KL-divergence&lt;/em&gt; 用 KL 散度表达互信息：$ I(V;X)=D_{\mathrm{kl}} (P_{X,V} || P_X \times P_V) $&lt;/p&gt;
&lt;p&gt;在之前的设定中，$V$ 是根据先验分布 $\pi$（为了简便只考虑其为离散分布）取出的。令 $P_v$ 表示 $V=v$ 时的分布，则 $X$ 是从 $\overline{P}=\sum_v \pi(v)P_v$ 分布中采样的，于是可得 $ I(V;X)=\sum_v \pi(v) D_{\mathrm{kl}} (P_v || \overline{P}) $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Local Fano Method&lt;/em&gt; 在 uniform setting 下，根据 log 的凸性，有 $ I(V;X)=\frac{1}{|\mathcal{V}|} \sum_{v \in \mathcal{V}} D_{\mathrm{kl}} (P_v || \overline{P}) \le \frac{1}{|\mathcal{V}|^2} \sum_{v, v'} D_{\mathrm{kl}} (P_v || P_{v'}) $&lt;/p&gt;
&lt;p&gt;在 local Fano method 中，我们构造一个分布族 $P_v$ 来定义一个 $2 \delta$-packing，即对于所有 $v \neq v'$，均有 $\rho(\theta(P_v), \theta(P_{v'})) \ge 2 \delta$，但同时它还额外满足一个 uniform upper bound：&lt;/p&gt;
$$ D_{\mathrm{kl}} (P_v || P_{v'}) \le \kappa^2 \delta^2 $$&lt;p&gt;其中 $\kappa &gt; 0$ 是一个固定的、依赖于具体问题的常数。如果上式成立，那么只要我们能找到一个 local packing $\mathcal{V}$ 使得&lt;/p&gt;
$$ \log |\mathcal{V}| \ge 2(\kappa^2 \delta^2 + \log 2), $$&lt;p&gt;我们就可以保证 (6.37) 成立，从而得到 minimax lower bound：&lt;/p&gt;
$$ M(\theta(\mathcal{P}), \Phi \circ \rho) \ge \frac{1}{2} \Phi(\delta). $$&lt;p&gt;其困难之处在于如何构造 $\mathcal{V}$，使得能够选择合适的 $\delta$ 来获得 sharp lower bounds。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Constructing Local Packings&lt;/em&gt; 使用 Fano 方法的主要困难在于构造所谓的 local packing。典型的方法是构造一个固定集合（例如在向量空间 $\mathbb{R}^d$ 中）的 packing $\mathcal{V}$，具有恒定的半径和恒定的距离。然后我们按 $\delta &gt; 0$ 对填装的元素进行缩放，这保持了基数 $|\mathcal{V}|$ 不变，但允许我们在 packing 的分离度和一致散度界中选择 $\delta$。例如，(6.24) 表明，我们可以构造具有固定半径、基数满足 $\log |\mathcal{V}| \gtrsim d$ 的指数级 packing，从而给出对维度的依赖关系。&lt;/p&gt;
&lt;p&gt;我们通过正态分布的均值估计的例子来说明这个技术。考虑 $\mathcal{N}_d = \{N(\theta, \sigma^2 I_{d \times d}) | \theta \in \mathbb{R}^d\}$；我们希望在均方误差下估计给定分布 $P \in \mathcal{N}_d$ 的均值 $\theta = \theta(P)$，即损失为 $\|\hat{\theta} - \theta\|_2^2$。令 $\mathcal{V}$ 为单位 $\ell_2$-球的 $1/2$-packing，其基数至少为 $2^d$。&lt;/p&gt;
&lt;p&gt;现在构造 local packing。固定 $\delta &gt; 0$，并且对于每个 $v \in \mathcal{V}$，设定 $\theta_v = \delta v \in \mathbb{R}^d$。那么对于 $\mathcal{V}$ 中每一个不同的对 $v, v'$，我们有&lt;/p&gt;
$$ \|\theta_v - \theta_{v'}\|_2 = \delta \|v - v'\|_2 \ge \delta/2 $$&lt;p&gt;此外，我们注意到对于这样的对，同样有 $\|\theta_v - \theta_{v'}\|_2 \le 2 \delta$。应用 (6.36) 的 Fano minimax 界，我们发现（给定 $X_i \overset{\text{i.i.d.}}{\sim} P$）&lt;/p&gt;
$$ M_n (\theta(\mathcal{N}_d), \|\cdot\|_2^2) \ge \left(\frac{1}{2} \cdot \frac{\delta}{2}\right)^2 \left(1 - \frac{I(V; X_1^n) + \log 2}{\log |\mathcal{V}|}\right) = \frac{\delta^2}{16} \left(1 - \frac{I(V; X_1^n) + \log 2}{d \log 2}\right) $$&lt;p&gt;现在注意到，对于任意一对 $v, v'$，如果 $P_v$ 是正态分布 $N(\theta_v, \sigma^2 I_{d \times d})$，我们有&lt;/p&gt;
$$ D_{\mathrm{kl}} (P_v^n || P_{v'}^n) = n \cdot D_{\mathrm{kl}} (N(\delta v, \sigma^2 I_{d \times d}) || N(\delta v', \sigma^2 I_{d \times d})) = \frac{n \cdot \delta^2}{2 \sigma^2} \|v - v'\|_2^2 $$&lt;p&gt;由于 $\|v - v'\|_2 \le 2$，我们得到了具有 $\kappa^2 = \frac{2n}{\sigma^2}$ 的 KL 散度界。&lt;/p&gt;
&lt;p&gt;结合我们的推导，我们得到 minimax bound：&lt;/p&gt;
$$ M_n (\theta(\mathcal{N}_d), \|\cdot\|_2^2) \ge \frac{\delta^2}{16} \left(1 - \frac{2n \delta^2 / \sigma^2 + \log 2}{d \log 2}\right) $$&lt;p&gt;然后通过取 $\delta^2 = \frac{d \sigma^2 \log 2}{8n}$，我们发现&lt;/p&gt;
$$ 1 - \frac{2n \delta^2 / \sigma^2 + \log 2}{d \log 2} = 1 - \frac{1}{d} - \frac{1}{4} \ge \frac{1}{4} $$&lt;p&gt;基于 $d \ge 2$ 的假设，可得：&lt;/p&gt;
$$ M_n (\theta(\mathcal{N}_d), \|\cdot\|_2^2) \ge \frac{d \sigma^2 \log 2}{128n} \cdot \frac{1}{4} \gtrsim \frac{d \sigma^2}{n} \tag{9.4.7} $$&lt;p&gt;虽然常数项显然是松弛的，但我们得到了在 $d$、$n$ 以及方差 $\sigma^2$ 方面正确的缩放比例；样本均值达到了相同的风险。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Distance-based Fano Method&lt;/em&gt; 上述 local Fano method 总是需要构造一个 well-seperated packing。我们可以将不等式的约束放得更宽，即将估计错误 $\hat{V}\neq V$ 放宽成估计的误差大 $P(\rho_{\mathcal{V}}(\hat{V},V)&gt;t)$。通过 Markov 不等式，这种控制能得到 $E[\rho_{\mathcal{V}}(\hat{V},V)]$ 的界。&lt;/p&gt;
&lt;p&gt;对于给定的 $t\ge 0$，定义&lt;/p&gt;
$$ N_t^{\max}=\max_{v \in \mathcal{V}}\{\operatorname{card}\{v' \in \mathcal{V} | \rho(v, v')\le t\}\},\quad N_t^{\min}=\min_{v \in \mathcal{V}}\{\operatorname{card}\{v' \in \mathcal{V} | \rho(v, v')\le t\}\} $$&lt;p&gt;定义错误概率 $P_t = P(\rho_{\mathcal{V}}(\hat{V},V)&gt;t)$，可以得到推广的 Fano 不等式：对于任何 Markov chain $V \to X \to \hat{V}$，我们有 $ h_2 (P_t) + P_t \log \frac{|\mathcal{V}|-N_t^{\min}}{N_t^{\max}} + \log N_t^{\max} \ge H(V | \hat{V}) $&lt;/p&gt;
&lt;p&gt;其推论是，如果 $V$ 在 $\mathcal{V}$ 上是均匀分布，且 $|\mathcal{V}|-N_t^{\min} &gt; N_t^{\max}$，那么 $ P(\rho_{\mathcal{V}} (\hat{V}, V)&gt;t) \ge 1 - \frac{I(V;X) + \log 2}{\log (|\mathcal{V}|)/N_t^{\max}} $&lt;/p&gt;
&lt;p&gt;和经典 Fano 的主要区别在于，$|\mathcal{V}|$ 被替换成 $\frac{|\mathcal{V}|}{N_t^{\max}}$，这个量可以粗略地看作 $\mathcal{V}$ 中可能被划分出来的区域的数量。现在，我们把原始的估计问题映射为一个允许错误的检验问题。&lt;/p&gt;
&lt;p&gt;和 local Fano method 的记号一样，唯一不同的是定义分离度 $ \delta(t) = \inf \{\rho(\theta_v, \theta_{v'}) | \rho(v, v')&gt;t\} $&lt;/p&gt;
&lt;p&gt;当 $t=0$ 并且 $\rho_{\mathcal{V}}$ 是离散度量时，定义就退化为 packing set。下面，我们可以证明：$ \mathcal{M}_n (\theta(P), \Phi\circ\rho)\ge \Phi(\delta(t)/2)\left[1 - \frac{I(X;V) + \log 2}{\log (|\mathcal{V}|)/N_t^{\max}}\right] $&lt;/p&gt;
&lt;h2 id="assouads-method"&gt;Assouad&amp;rsquo;s Method&lt;/h2&gt;
&lt;p&gt;Assouad&amp;rsquo;s method 将问题转化为多重二元假设检验问题，此方法只适用于问题的损失函数可以和超立方体上各个点的识别问题联系起来的情形。&lt;/p&gt;
&lt;p&gt;令 $\mathcal{V} = \{-1,1\}^d$。称 $P_v$ 关于 $\Phi\circ\rho $ 构成一个 $2\delta$-Hamming separation，如果存在 $\hat{v}: \theta(P) \to \{-1,1\}^d$ 满足 $ \Phi(\rho(\theta,\theta(P_v))) \ge 2 \delta \sum_{j=1}^d \mathbf{1}\{[\hat{v}(\theta)]_j \neq v_j\} $&lt;/p&gt;
&lt;p&gt;考虑如下随机过程：自然等概率选择 $V \in \{-1,1\}^d$，采样 $X \sim P_v$。令 $P_{(\pm j)}$ 代表第 $j$ 和分量 $V_j=\pm 1$ 的概率分布，我们可以得到： $ \mathcal{M}_n (\theta(P), \Phi\circ\rho)\ge \delta \sum_{j=1}^d \inf_{\Psi} [P_{(+j)}(\Psi(X)=+1) + P_{(-j)} (\Psi(X)\neq -1)] $&lt;/p&gt;
&lt;p&gt;化成逐分量检验的问题。特别地，定义 $P_{(+j)} = 2^{1-d} \sum_{v:v_j=1}P_v$，$P_{(-j)}$ 类似，则可以推出 $ \mathcal{M}_n (\theta(P), \Phi\circ\rho)\ge \delta \sum_{j=1}^d [1-\|P_{(+j)}-P_{(-j)}\|_{\mathrm{TV}}] $&lt;/p&gt;
&lt;h1 id="constrained-risk-inequalities"&gt;Constrained Risk Inequalities&lt;/h1&gt;
&lt;h2 id="strong-data-processing-inequalities"&gt;Strong Data Processing Inequalities&lt;/h2&gt;
&lt;p&gt;令 $f:\mathbb{R}_+ \to \mathbb{R} \cup \{+\infty\}$ 为凸函数且 $f(1)=0$。对于 $\mathcal{X}$ 上的分布 $P_0,P_1$ 和从 $\mathcal{X}$ 到 $\mathcal{Z}$ 的 信道 $Q$，定义边际分布为 $M_v (A)=\int Q(A | x) \mathrm{d} P_v (x)$。称信道 $Q$ 关于 $f$-divergence 满足 $\alpha\le 1$ 的强数据处理不等式，若对于任意 $\mathcal{X}$ 上的分布 $P_0,P_1$，均有 $ D_f (M_0 || M_1) \le \alpha D_f (P_0 || P_1) $&lt;/p&gt;
&lt;p&gt;对于这样的 $f$，定义 $f$-strong data processing constant $ \alpha_f (Q)=\sup_{P_0\neq P_1} \frac{D_f (M_0 || M_1)}{D_f (P_0 || P_1)} $&lt;/p&gt;
&lt;p&gt;这类不等式常用在 fast mixing of Markov chains 中，即一个 Markov chain 从任意初始分布出发，经过较少步数后很快接近平稳分布的性质。假设 Markov kernel $Q$ 满足系数为 $\alpha$ 的强数据处理不等式，$\pi$ 是 Markov process 的平稳分布。用 $\circ$ 代表一次转移，$ Q \circ P = \int Q(\cdot | x) \mathrm{d} P (x) $&lt;/p&gt;
&lt;p&gt;则对于任意 $\pi_0$，均有 $ \|\underbrace{Q \circ \dots \circ Q}_{k \text{ times}}\circ \pi_0 - \pi\|_{\mathrm{TV}}\le \alpha^k \|\pi_0-\pi\|_{\mathrm{TV}} $&lt;/p&gt;
&lt;p&gt;Markov kernel $Q$ 的 Dobrushin coefficient 定义为 $ \alpha_{\mathrm{TV}} (Q)=\sup_{x,y} \|Q(\cdot | x) - Q(\cdot | y)\|_{\mathrm{TV}} $&lt;/p&gt;
&lt;p&gt;是两个单点经信道 $Q$ 转换后分布的 TV divergence 的最大值。Dobrushin 习数满足很多性质。比如它是 TV divergence 的强数据处理常数： $ \alpha_{\mathrm{TV}} (Q)=\sup_{P_0 \neq P_1} \frac{\|Q \circ P_0 - Q \circ P_1\|_{\mathrm{TV}}}{\|P_0 - P_1\|_{\mathrm{TV}}} $&lt;/p&gt;
&lt;p&gt;一方面，取分布 $\mathbf{1}_x$ 和 $\mathbf{1}_y$，由于 $\|\mathbf{1}_x - \mathbf{1}_y\|_{\mathrm{TV}}=1$，所以 $ \sup_{P_0 \neq P_1} \frac{\|Q \circ P_0 - Q \circ P_1\|_{\mathrm{TV}}}{\|P_0 - P_1\|_{\mathrm{TV}}} \ge \sup_{x,y} \|Q(\cdot | x) - Q(\cdot | y)\|_{\mathrm{TV}} $&lt;/p&gt;
&lt;p&gt;另一方面的证明比较困难。对于任意 $A$，定义 $Q_* (A):=\inf_y Q(A | y)$。由定义，$|Q(A | x) - Q_* (A)|\le \alpha_{\mathrm{TV}}(Q):=\alpha$。令 $M_v=\int Q(\cdot | x) \mathrm{d} P_v (x), v \in \{0,1\}$。我们有：&lt;/p&gt;
$$ \begin{aligned} M_0 (A) - M_1 (A) &amp;= \int Q(A | x) (\mathrm{d} P_0 - \mathrm{d} P_1)(x) \\ &amp;= \int Q(A | x)[\mathrm{d} P_0 (x) - \mathrm{d} P_1 (x)]_+ - \int Q(A | x)[\mathrm{d} P_1 (x) - \mathrm{d} P_0 (x)]_+ \\ &amp;\le \int Q(A | x)[\mathrm{d} P_0 (x) - \mathrm{d} P_1 (x)]_+ - \int Q_* (A) [\mathrm{d} P_0 (x) - \mathrm{d} P_1 (x)]_+ \\ &amp;= \int (Q(A | x) - Q_* (A))[\mathrm{d} P_0 (x) - \mathrm{d} P_1 (x)]_+ \\ &amp;\le \alpha \int [\mathrm{d} P_0 - \mathrm{d} P_1] = \alpha \|P_0 - P_1\|_{\mathrm{TV}} \end{aligned} $$&lt;p&gt;另一个性质表明 $\alpha_{\mathrm{TV}} (Q)$ 是所有 $\alpha_f$ 的上界：$ \alpha_{\mathrm{TV}} (Q) \ge \alpha_f (Q) \ge \alpha_{\chi^2}(Q) = \alpha_{\mathrm{kl}} (Q) $&lt;/p&gt;
&lt;p&gt;应用强数据不等式到之前的 minimax risk 上会得到更严格的结果。&lt;/p&gt;
&lt;h2 id="local-privacy"&gt;Local Privacy&lt;/h2&gt;
&lt;p&gt;什么是 differential privacy？其要旨是一个算法的输出不应该显著暴露某一个个体是否出现在数据集中。一个随机算法 $M$ 满足 $\epsilon$-DP，若对两个只相差一个人的相邻数据集 $D$ 和 $D'$ 以及任意输出集合 $S$，都有 $ P(M(D) \in S) \le e^{\epsilon} P(M(D') \in S) $&lt;/p&gt;
&lt;p&gt;DP 分为 central DP 和 local DP。&lt;/p&gt;
&lt;p&gt;定义 $\epsilon$-differentially private channel $Q$，输入为 $x$，输出为 $Z_i$。对于任意可测集 $A$ 和输入 $x,x',z_1^{i-1}$，均有 $ \frac{Q(Z_i \in A | X_i = x, z_1^{i-1})}{Q(Z_i \in A | X_i = x', z_1^{i-1})}\le e^{\epsilon} $&lt;/p&gt;
&lt;p&gt;也就是说，观察者看到输出 $Z_i$ 后，不能很容易区分真实输入到底是 $x$ 还是 $x'$。&lt;/p&gt;
&lt;p&gt;对于任何分布 $P_0,P_1$ 和对应的边际分布 $M_v = \int Q(\cdot | x)\mathrm{d} P_v (x)$，均有 $ D_{\mathrm{kl}} (M_0 || M_1) + D_{\mathrm{kl}} (M_1 || M_0) \le 4 (e^{\epsilon} - 1)^2 \|P_0 - P_1\|_{\mathrm{TV}}^2 $&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="dp-channel"
srcset="https://cestfloraison.asia/blog/stat-ml-estimation-theory/dp-channel_hu_a97934c057830ea0.webp 320w, https://cestfloraison.asia/blog/stat-ml-estimation-theory/dp-channel_hu_11e76efcd675b60e.webp 480w, https://cestfloraison.asia/blog/stat-ml-estimation-theory/dp-channel_hu_6fb4a522b2b09c8a.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/stat-ml-estimation-theory/dp-channel_hu_a97934c057830ea0.webp"
width="760"
height="216"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;注意 KL-divergence 的取值范围是 $(0,\infty)$ 而 TV-divergence 的取值范围是 $[0,1]$，所以用 TV-divergence 限制 KL-divergence 给出了一个非平凡的界。&lt;/p&gt;
&lt;p&gt;张量化的直接推论是：$ D_{\mathrm{kl}} (M_0^n || M_1^n) \le 4 \sum_{i=1}^n (e^{\epsilon_i}-1)^2 \|P_0 - P_1\|_{\mathrm{TV}}^2 $&lt;/p&gt;
&lt;p&gt;定义 channel-constrained minimax risk: $ \mathcal{M}_n (\theta(P), \Phi\circ\rho, Q )=\inf_{\hat{\theta}_n} \inf_{Q \in \mathcal{Q}} \sup_{P \in \mathcal{P}} [\Phi(\rho( \hat{\theta}_n (Z_1^n),\theta(P) ))] $&lt;/p&gt;
&lt;p&gt;取 $\mathcal{Q}=\mathcal{Q}_{\epsilon}$ 为 $\epsilon$-locally differentially private channels，可以得到一系列有趣的结果。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bounded mean estimation&lt;/em&gt; 令 $\mathcal{P}$ 是支撑集为 $[-b,b]$ 的分布族，对于任意 $\epsilon\ge 0$，均有 $ \mathcal{M}_n (\theta(P),(\cdot)^2,Q_{\epsilon}) \gtrsim \frac{b^2}{(e^{\epsilon} - 1)^2 n} + \frac{b^2}{n} $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Estimating the parameter of a uniform distribution&lt;/em&gt; 令 $\mathcal{P}=\{\operatorname{Uniform}(\theta,\theta+1), \theta \in [0,1]\}$。令 $P_0=\operatorname{uniform}(0,1)$，$P_1=\operatorname{Uniform}(\delta, 1+\delta)$，此时 $\|P_0 - P_1\|_{\mathrm{TV}}=\delta$。对于任意 $\epsilon$-differentially private channel $Q$ 诱导的分布 $M_0,M_1$，均有 $ D_{\mathrm{kl}} (M_0^n || M_1^n) \le 4(e^{\epsilon} - 1)^2 n \|P_0 - P_1\|_{\mathrm{TV}}^2 = 4(e^{\epsilon} - 1)n \delta^2 $&lt;/p&gt;
&lt;p&gt;使用 Le Cam&amp;rsquo;s method 并取 $\delta\asymp \frac{1}{n(e^{\epsilon} - 1)^2}$，可以得到 $ \mathcal{M}_n (\theta(P),(\cdot)^2,Q_{\epsilon}) \gtrsim \frac{1}{(e^{\epsilon} - 1)^2 n} $&lt;/p&gt;
&lt;h2 id="communication-complexity"&gt;Communication Complexity&lt;/h2&gt;
&lt;p&gt;Alice 和 Bob 分别拥有输入 $x,y$，他们希望计算 $f(x,y)$，他们至少要互相传输多少信息呢？考虑一个协议 $\Pi$，我们将其视作若干轮，每一轮协议可以决定是谁发消息，并发送一条 $\{0,1\}$ 消息。$\Pi$ 的通讯花费就是计算 $f$ 需要传输的最多信息。&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="communication-protocol"
srcset="https://cestfloraison.asia/blog/stat-ml-estimation-theory/communication-protocol_hu_7d3726b30d8ee006.webp 320w, https://cestfloraison.asia/blog/stat-ml-estimation-theory/communication-protocol_hu_d95fb15a45dcd351.webp 480w, https://cestfloraison.asia/blog/stat-ml-estimation-theory/communication-protocol_hu_9f55dd167da26a94.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/stat-ml-estimation-theory/communication-protocol_hu_7d3726b30d8ee006.webp"
width="760"
height="427"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;标准地说，定义在 $\mathcal{X} \times \mathcal{Y}$ 上，输出到 $\mathcal{Z}$ 的协议 $\Pi$ 是一棵二叉树，每个非叶子节点 $v$ 均有一个标签 $a_v: \mathcal{X} \to \{0,1\}$ 或者 $b_v: \mathcal{Y} \to \{0,1\}$，每个叶子节点都有一个标签 $z \in \mathcal{Z}$。&lt;/p&gt;
&lt;p&gt;令 $\Pi_{\text{out}} (x,y)$ 表示输入 $(x,y)$ 后协议的输出，我们首先关心能在任意输入下均能正确计算 $f$ 的最短协议，即 $ \operatorname{CC}(f):=\inf \{\operatorname{depth}(\Pi) | \Pi_{\text{out}} (x,y) = f(x,y) \text{ for all } x \in \mathcal{X}, y \in \mathcal{Y}\} $&lt;/p&gt;
&lt;p&gt;很多时候，我们也会考虑随机化的通讯协议，容忍一些错误概率。不妨令随机变量 $U_a, U_b \overset{\text{iid}}{\sim} \operatorname{Uniform}[0,1]$，节点 $a_v: \mathcal{X} \times [0,1] \to \{0,1\}, b_v: \mathcal{Y} \times [0,1] \to \{0,1\}$。现在我们考察的对象是 $ \operatorname{RCC}_{\delta} (f) := \inf \{\operatorname{depth}(\Pi) | P(\Pi_{\text{out}} (x,y) \neq f(x,y)) \le \delta \text{ for all } x \in \mathcal{X}, y \in \mathcal{Y}\} $&lt;/p&gt;
&lt;p&gt;$\delta&gt;0$ 的选取不太重要，因为我们总有 $ \operatorname{RCC}_{\delta} (f) \le O(1) \log 1/\delta \cdot \operatorname{RCC}^{1/3} (f) $&lt;/p&gt;
&lt;p&gt;有时我们也会考虑 public randomness，即 Alice 和 Bob 共用同一个随机变量 $U \sim \operatorname{Uniform}[0,1]$： $ \operatorname{RCC}_{\delta}^{\text{pub}} (f) = \inf \{\operatorname{depth}(\Pi) | P(\Pi_{\text{out}} (x,y,U) \neq f(x,y) \le \delta \text{ for all } x \in \mathcal{X}, y \in \mathcal{Y}\} $&lt;/p&gt;
&lt;p&gt;上面考虑的是所以可能的输入（worst case）。当输入 $(x,y)$ 按照分布 $\mu$ 随机生成时，我们考虑的对象是 $ \operatorname{DCC}_{\delta}^{\mu} (f) = \inf \{\operatorname{depth}(\Pi) | \mu(\Pi_{\text{out}} (X,Y) \neq f(X,Y)) \le \delta\} $&lt;/p&gt;
&lt;p&gt;其中的 infimum 是对所有确定性协议取的。一旦我们把问题转化为某个输入分布 $\mu$ 下，就可以只考虑确定性协议，因为如果随机化平均后错误率不超过 $\delta$，则必然存在某一个 $u$ 使得 $\mu(\Pi_{\text{out}} (X,Y,u) \neq f(X,Y))\le \delta$，一旦把 $u$ 固定，就变成了确定性协议。&lt;/p&gt;
&lt;p&gt;我们最后要考虑的是 information complexity。这里，我们不再关注 depth，而是令 $X,Y$ 是从某个分布中随机选取的，并考察互信息 $I_2 (X,Y; \Pi(X,Y))$： $ \operatorname{IC}_{\delta} (f): \sup \inf_{\Pi} \{ I_2 (X,Y; \Pi(X,Y)) | P(\Pi_{\text{out}} (x,y) \neq f(x,y) \le \delta, \forall x \in \mathcal{X}, y \in \mathcal{Y}\} $&lt;/p&gt;
&lt;p&gt;其中 supremum 在联合分布 $(X,Y)$ 上取，infimum 在随机化的 $\Pi$ 上取。一个微小的区别是，我们想要 $\Pi$ 在所有输入 $(x,y)$ 上错误概率都很小，并非只是特定分布中取出的 $(X,Y)$。有时我们也会考虑 distributional information complexity: $ \operatorname{IC}_{\delta}^{\mu} (f)=\inf_{\Pi} \left\{I_2 (X,Y; \Pi(X,Y)) | \mu(\Pi_{\text{out}} (X,Y) \neq f(X,Y)) \le \delta\right\} $&lt;/p&gt;
&lt;p&gt;对通信复杂度的不同记号天然满足序关系。对于任意函数 $f, \delta \in (0,1)$ 和 $\mathcal{X} \times \mathcal{Y}$ 上的概率测度 $\mu$，我们有&lt;/p&gt;
$$ \operatorname{CC}(f) \ge \operatorname{RCC}_{\delta} (f) \ge \operatorname{RCC}_{\delta}^{\text{pub}} (f) \ge \operatorname{DCC}_{\delta}^{\mu} (f) \ge \operatorname{IC}_{\delta}^{\mu} (f), \quad \operatorname{RCC}_{\delta} (f) \ge \operatorname{IC}_{\delta} (f) $$&lt;p&gt;前两个不等式是显然的。关于互信息，我们有 $ \operatorname{depth}(\Pi) \ge H_2 (\Pi) \ge H_2 (\Pi) - H_2 (\Pi | X,Y) = I_2 (X,Y; \Pi (X,Y)) $&lt;/p&gt;
&lt;p&gt;所以对于任意 $\delta \in (0,1/2)$，我们均有 $ \operatorname{RCC}_{\delta} (f) \ge \operatorname{IC}_{\delta} (f) \text{ and } \operatorname{DCC}_{\delta}^{\mu} (f) \ge \operatorname{IC}_{\delta}^{\mu} (f) $&lt;/p&gt;
&lt;p&gt;最后，我们要证的只剩下 $\operatorname{RCC}_{\delta}^{\text{pub}} (f) \ge \operatorname{DCC}_{\delta}^{\mu} (f)$。为此，令 $\Pi$ 为任何满足以下条件的协议：$P(\Pi_{\text{out}} (x,y,U) \neq f(x,y))\le \delta, \forall x,y$。在 $(X,Y) \sim \mu$ 上求期望，得到 $ \delta \ge \mathbb{E}_{\mu} [P(\Pi_{\text{out}} (X,Y,U) \neq f(X,Y) | X,Y)] \ge \inf_u \mu(\Pi_{\text{out}} (X,Y,u) \neq f(X,Y)) $&lt;/p&gt;
&lt;p&gt;此即，至少存在某个 $u$ ，平均错误率小于 $\delta$。上述的第一个不等式可以有指数级别的差距，但 randomized complexity 和 information complexity 往往是同阶的。&lt;/p&gt;
&lt;p&gt;要得到确定性协议通信复杂度的下界，我们首先关注协议树输入的结构。令 $v$ 是确定性协议 $\Pi$ 的节点，$R_v$ 是能到达 $v$ 的输入 $(x,y)$，则 $R_v$ 是一个矩形。&lt;/p&gt;
&lt;p&gt;证明由归纳法可得。我们称 $R$ 是 $f$-constant 若 $f(x,y)=f(x',y'), \forall (x,y),(x',y')\in R$。因此，所有正确的 $\Pi$ 都将 $\mathcal{X} \times \mathcal{Y}$ 划分为若干个 $f$-constant 的矩形，每个矩形对应一个叶子节点。于是，下面的推论是自然的：令 $N$ 为将 $\mathcal{X} \times \mathcal{Y}$ 划分为矩形的最小划分数，则 $\operatorname{CC}(f)\ge \log_2 N$。&lt;/p&gt;
&lt;p&gt;定义 fooling sets。集合 $S \subset \mathcal{X} \times \mathcal{Y}$ 被称为关于 $f$ 的 fooling set，如果对 $S$ 内任意满足 $f(x_0,y_0)=f(x_1,y_1)$ 的点，下面两个式子至少有一个成立：$f(x_0,y_1)\neq f(x_0,y_0) $ or $ f(x_1,y_0)\neq f(x_0,y_0)$。&lt;/p&gt;
&lt;p&gt;如果 $f$ 有大小为 $N$ 的 fooling set，则 $\operatorname{CC}(f)\ge \log_2 N$，因为任何 $f$-constant 矩形至多包含 $S$ 中的一个元素。&lt;/p&gt;
&lt;p&gt;fooling set idea 的一个扩展是矩形测度方法。令 $P$ 是 $\mathcal{X}\times \mathcal{Y}$ 上的概率分布，如果所有 $f-$constant 矩形 $R$ 都满足 $P(R)\le \delta$，则 $\operatorname{CC}(f)\ge \log_2 1/\delta$。这是因为 $1\le \sum_{l=1}^N P(R_l)\le N\delta \Rightarrow N \ge 1/\delta$。&lt;/p&gt;
&lt;p&gt;利用这些结果，我们在两个具体的例子上求出通信复杂度的下界。比如，考虑检验两个 n-bit 字符串 $x,y \in\{0,1\}^n$ 是否相同。定义 $S=\{(x,x) | x \in \{0,1\}^n\}, |S|=2^n$，$S$ 是一个 fooling set，因此 $n\le \operatorname{CC}(\operatorname{EQ})\le n+1$。再比如，计算 $\operatorname{IP}_2 (x,y)=\langle x, y\rangle \bmod 2, x,y \in \{0,1\}^n$。令 $P$ 为 $\{0,1\}^n \times \{0,1\}^n$ 上的均匀分布，$R=A \times B$ 是满足 $\langle x, y\rangle =0$ 的矩形。$A$ 和 $B$ 的 span 均是 $\mathbb{F}_2^n$ 的子空间且正交，因此若记 $d_0 = \dim(\operatorname{span}(A)), d_1 = \dim(\operatorname{span}(B))$，则 $d_0+d_1\le n$。于是我们得到 $|R|\le |A|\cdot |B|\le 2^n$，这说明 $P(R)\le 2^n/2^{2n}=2^{-n}$，于是 $n \le \operatorname{CC}(\operatorname{IP}_2)\le n+1$。&lt;/p&gt;
&lt;p&gt;当我们允许 randomization 时，下界会显著变化。同样是确定 $x,y \in \{0,1\}^n$ 是否相同。令素数 $p$ 满足 $n^2\le p\le 2n^2$。Alice 在 $\{0,\dots,p-1\}$ 中随机选取 $U$，并计算 $a(U)=x_1+x_2 U + \dots + x_n U^{n-1} \bmod p$。然后，Alice 将 $U$ 和 $a(U)$ 告诉 Bob，这至多消耗 $2 \log_2 p \le 4 \log_2 n + 2 \log 2$ bits。然后 Bob 计算 $b(U)=y_1+y_2 U + y_3 U^2 + \dots + y_n U^{n-1} \bmod p$。$a(U)=b(U)$ 但 $x\neq y$ 的概率很小，当且仅当 $U$ 是 $p(u)=\sum_{i=1}^n (x_i - y_i)u^{i-1}$ 的根，而多项式至多 $n-1$ 个根，因此错误概率小于 $(n-1)/p &lt; 1/n$。&lt;/p&gt;
&lt;p&gt;在 communication complexity 中，我们的关注点往往是先假设我们有一个先验上足够准确的 estimator or protocol，然后证明它必须传递一定数量的信息。也就是说，我们不采用其逆否形式：有限的信息会导致估计器不准确。虽然这两种表述是等价的，但针对相关问题，采用最相关的视角往往更有用。&lt;/p&gt;
&lt;p&gt;information complexity 下界主要基于两个核心思想。第一是 direct sum inequalities。这类不等式说明，如果要在 $n$ 个输入上计算一个函数，那么所需通信量大约是只在一个输入上计算该函数的 $n$ 倍。第二个是，为计算不同的基本 primitive 所必须包含的信息量建立下界。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Direct sum bounds and decomposition&lt;/em&gt; 我们考虑具有如下形式的函数 $ f(x_1^n,y_1^n)=g(h(x_1,y_1),h(x_2,y_2),\dots,h(x_n,y_n)) $&lt;/p&gt;
&lt;p&gt;其中 $g$ 是关于 $n$ 个 primitive $h$ 的函数。我们称 $g$ 可分解为 primitive $h$。比如，当 $f(x,y)=1 \text{ if } x\neq y, f(x,y)=0 \text{ otherwise}$ 时，可认为 $h(x_i,y_i)=\mathbf{1}\{x_i \neq y_i\}$ 而 $g(z)=\mathbf{1}\{\langle 1,z\rangle &gt; 0\}$。&lt;/p&gt;
&lt;p&gt;为了说明 $f$ 的 information complexity 至少是组成其的 primitive 的复杂度的和，我们给出 plantable inputs 的定义。令 $f:\mathcal{X}^n \times \mathcal{Y}^n \to \{0,1\}$ 有如上形式的分解，其中 $h$ 的取值范围为 $\{0,1\}$。$(x,y)$ 是一个 planted solution 如果对于所有 $i \in \{1,2,\dots,n\}$ 和所有 $x_i',y_i'$，向量 $ x'=(x_1,\dots,x_{i-1},x_i',x_{i+1},\dots,x_n) \text{ and } y'=(y_1,\dots,y_{i-1},y_i',y_{i+1},\dots,y_n) $&lt;/p&gt;
&lt;p&gt;均有 $f(x',y')=h(x_i',y_i')$。binary inner product 是一个例子。&lt;/p&gt;
&lt;p&gt;定义 $\mathcal{X} \times \mathcal{Y}$ 上的 fooling distribution $\mu$ 是满足以下性质发分布：$\mu^n$ 支撑集内所有的 $(x_1^n,y_1^n)$ 均为 planted solution。对于 $h:\mathcal{X} \times \mathcal{Y} \to \{0,1\}$，定义 conditional information complextiy $ \operatorname{CLC}_{\delta}^{\mu} (h) = \inf_{\Pi} \sup_{V} \left\{I(X,Y; \Pi(X,Y) | V) \text{ s.t. } P(\Pi_{\text{out}} (x,y) \neq h(x,y))\le \delta \right\} $&lt;/p&gt;
&lt;p&gt;其中的 infimum 是在所有的（随机化的）协议上取，supremum 是在所有使得 $X,Y$ conditionally independent 是随机变量 $V$ 上取。这是因为满足上述性质的 $X,Y$ 往往是不独立的，但可以引入条件 $V$ 解耦 fooling distribution 的相关性。如果我们能找到 $V$，使得互信息 $I(X,Y, \Pi(X,Y) | V)$ 对所有正确的协议都足够大，则 $h$ 的条件信息复杂度也会很大。具体而言，我们有的结果是：令 $\mu$ 是关于 $f$ 和 $h$ 的 fooling distribution，那么 $ \operatorname{IC}_{\delta} (f) \ge n \cdot \operatorname{CIC}_{\delta}^{\mu} (h) $&lt;/p&gt;
&lt;p&gt;下面是一个直接的推论。令 $f(x,y)=\langle x,y\rangle \bmod 2$ 或者 disjointness function $f(x,y)=\mathbf{1}\{\langle x,y\rangle&gt;0\}$。令 $\mu$ 是 fooling distribution，则 $ \operatorname{IC}_{\delta} (f) \ge n \cdot \operatorname{CIC}_{\delta}^{\mu} (h) $&lt;/p&gt;
&lt;p&gt;其中 $h(a,b)=a b$ 是 product function。&lt;/p&gt;
&lt;h2 id="communication-complexity-in-estimation"&gt;Communication Complexity in Estimation&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="distributed-estimation"
srcset="https://cestfloraison.asia/blog/stat-ml-estimation-theory/distributed-estimation_hu_db487e20ab98567.webp 320w, https://cestfloraison.asia/blog/stat-ml-estimation-theory/distributed-estimation_hu_7b2afb3f6b08cbbd.webp 480w, https://cestfloraison.asia/blog/stat-ml-estimation-theory/distributed-estimation_hu_355df90ac3efa455.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/stat-ml-estimation-theory/distributed-estimation_hu_db487e20ab98567.webp"
width="760"
height="336"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;我们考虑如下设定。有 $m$ 台机器，分别拥有数据 $X_i$。通信按轮次进行：$t=1,2,\dots,T$。在每一轮 $t$ 中，第 $i$ 台机器发送一个数据 $Z_i^{(t)}$。为了允许非常强大的协议，并且除了每台机器 $i$ 只能发送一定数量的信息之外尽量少加其他限制，我们允许 $Z_i^{(t)}$ 任意依赖机器 $i$ 自己之前发送的消息 $Z_{&lt;i}^{(t)}$ 以及所有机器在之前轮次发送的消息 $Z_k^{(\tau)}$。因此，在第 $t$ 轮中，第 $i$ 个个体按照如下 channel 生成它要通信的变量 $Z_i^{(t)}$： $ Q_{Z_i^{(t)}}(\cdot | X_i, Z_{&lt;i}^{(t)}, B^{(t-1)}) = Q_{Z_i^{(t)}} (\cdot | X_i, Z_{\to i}^{(t)}) $&lt;/p&gt;
&lt;p&gt;其中 $Z_{\to i}^{(t)}$ 是一个简记符号。&lt;/p&gt;
&lt;p&gt;下面我们主要将通过两种方式估计统计估计本身的信息复杂度下界。第一，我们会发展另一个 direct sum bound，其含义是：求解一个 $d$ 维问题的难度，大约是求解对应一维问题难度的 $d$ 倍。第二，我们会扩展前面已经发展出的 data processing inequalities，使其能够适用于特定的通信场景。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Direct sum communication bounds&lt;/em&gt; 我们考虑这样一族分布：$X$ 的各个分量是独立的，这样就可以使用 Assouad&amp;rsquo;s method。我们使用 $v \in \{0,1\}^d$ 作为分布的下标，并在证明下界的过程中假设标准的 Markov 结构：$ V \to (X_1,\dots,X_m) \to \Pi (X_1^m) $&lt;/p&gt;
&lt;p&gt;其中 $V$ 从 $\{-1,1\}^d$ 中均匀选取，$\Pi$ 表示完整的通信记录。我们假设 $X$ 满足 d 维 product distribution，于是在 $V=v$ 时 $ X \overset{\text{iid}}{\sim} P_v = P_{v_1} \otimes P_{v_2}\otimes\cdots\otimes P_{v_d} $&lt;/p&gt;
&lt;p&gt;我们首先要证明的是，如果数据具有 9.36 的形式，那么一维情形的信息复杂度的 $d$ 倍约为 $d$ 维情形时的信息复杂度。令 $X_{(\le m,j)}=(X_{(i,j)})_{i=1}^m$ 表示数据的第 $j$ 维，$X_{(\le m,\setminus j)}$ 表示剩下的 $d-1$ 个维度（$i=1,2,\dots,m$）。于是，我们可以得到如下 Markov 结构： $ V_j \to X_{(\le m,j)} \to \Pi (X_1^m) \leftarrow X_{(\le m,\setminus j)} \leftarrow V_{(\setminus j)} $&lt;/p&gt;
&lt;p&gt;将 $X_{(\le m,\setminus j)}$ 视作额外的随机性，可以得到简化的 Markov 结构：$ V_j \to X_{(\le m,j)} \to \Pi $&lt;/p&gt;
&lt;p&gt;令 $M_{(-j)},M_j$ 分别表示 $V_j = \pm j$ 的边际分布。根据 Le Cam&amp;rsquo;s testing equality 和 Hellinger 与全变差距离之间的等价关系，可以得到&lt;/p&gt;
$$ \begin{aligned} \inf_{\hat{V}} 2 \sum_{j=1}^d \mathbb{P}(\hat{V}_j (\Pi) \neq V_j) &amp;\ge \sum_{j=1}^d (1 - \|M_{(-j)} - M_{(+j)}\|_{\mathrm{TV}}) \\ &amp;\ge \sum_{j=1}^d (1 - \sqrt{2 d_{\mathrm{hel}}^2(M_{(-j)}, M_{(+j)})}) \\ &amp;\ge d \left(1 - \left(\frac{2}{d} \sum_{j=1}^d d_{\mathrm{hel}}^2(M_{(-j)}, M_{(+j)})\right)^{1/2}\right) \end{aligned} $$&lt;p&gt;总结一下，可以得到 Assouad&amp;rsquo;s method in communication： $ \sum_{j=1}^d P(\hat{V}_j (\tau) \neq V_j) \ge \frac{d}{2} \left( 1- \sqrt{\frac{2}{d} \sum_{j=1}^d d^2_{\mathrm{hel}} (M_{(-j)},M_{(+j)})} \right) $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Communication data processing&lt;/em&gt; 令 $P_0,P_1$ 是 $\mathcal{X}$ 上的任意分布，$V \in\{0,1\}$ 均匀随机，在条件 $V=v$ 下取 $X \sim P_v$。考虑 Markov chain $V \to X \to Z$，互信息强数据处理不等式常数 $\beta(P_0,P_1)$ 是 $ \beta(P_0,P_1) := \sup_{X \to Z} \frac{I(V;Z)}{I(X;Z)} $&lt;/p&gt;
&lt;p&gt;其中 supremum 是对所有从 $X$ 到 $Z$ 可能的 Markov kernel 取。&lt;/p&gt;
&lt;p&gt;令 $V \to X \to Z$，其中 $X \sim P_v$。令 $P_X$ 和 $P_X (\cdot | Z)$ 代表边际和条件分布。如果 $|\log \frac{\mathrm{d} P_v}{\mathrm{d} P_{v'}}|\le \alpha$ 恒成立，则 $ I(V;Z) \le 4(e^{\alpha} - 1)^2 \mathbb{E}_{Z} [ \|P_X (\cdot | Z) - P_X\|^2_{\mathrm{TV}} ]\le 2 ( e^{\alpha} -1)^2 I(X;Z) $&lt;/p&gt;
&lt;p&gt;下面，我们给出连接互信息和 contraction-type bounds 的两个主要结果。称两个分布 $P_0,P_1$ $(c,\beta)$-contractive，若 $ \beta(P_0,P_1) \le \beta \le 1 \text{ and } \max\{D_{\infty} (P_0 || P_1), D_{\infty} (P_1 || P_0)\}\le \log c $&lt;/p&gt;
&lt;p&gt;其中 $D_{\infty} (\cdot || \cdot)$ 是 Renyi-$\infty$-divergence。&lt;/p&gt;
&lt;p&gt;令 $1\le c&lt;\infty, \beta\le 1$。令 $P_0,P_1$ 是 $(c,\beta)$-contractive 分布，$M_v$ 是 $V=v$ 时 $\Pi$ 的边际分布。于是，$ d^2_{\mathrm{hel}} (M_0,M_1) \le \frac{7}{2} (c+1) \beta \cdot \min\{ I(X_1^m; \Pi(X_1^m) | V=0), I(X_1^m; \Pi(X_1^m) | V=1) \} $&lt;/p&gt;
&lt;p&gt;令 $\Pi$ 是 entire communication protocol（如上图所示），$V \in \{-1,1\}^d$ 均匀随机，生成 $X_i \overset{\text{iid}}{\sim} P_v, i=1,2,\dots,m$。假设 $P_{(\pm v_j)}$ $(c,\beta)$-contractive，则对任意估计 $\hat{V}$，均有 $ \sum_{j=1}^d P(\hat{V}_j (\Pi) \neq V_j) \ge \frac{d}{2} \left(1-\sqrt{\frac{7(c+1) \beta}{d} \cdot I(X_1,\dots,X_m;\Pi | V)}\right) $&lt;/p&gt;</description></item><item><title>Stat-ML 讨论班笔记（一）：统计推断基础</title><link>https://cestfloraison.asia/blog/stat-ml-foundations/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/stat-ml-foundations/</guid><description>&lt;h1 id="information-theory-primer"&gt;Information Theory Primer&lt;/h1&gt;
&lt;h2 id="shannon-entropy"&gt;Shannon Entropy&lt;/h2&gt;
&lt;p&gt;香农熵衡量随机变量 $X$ 不确定性的大小： $ H(X)=-\sum_x p(x)\log p(x) $&lt;/p&gt;
&lt;p&gt;在此基础上，可以定义条件熵 $ H(X | Y=y)=-\sum_x p(x | y)\log p(x | y) $&lt;/p&gt;
&lt;p&gt;给定条件会减少不确定性，即 $ H(X | Y)\le H(X) $&lt;/p&gt;
&lt;h2 id="divergence"&gt;Divergence&lt;/h2&gt;
&lt;p&gt;散度衡量两个分布的距离，即差异的大小： $ D_f (P || Q) = \sum_x q(x) f\left(\frac{p(x)}{q(x)}\right) $&lt;/p&gt;
&lt;p&gt;其中 $f$ 为连续是上凸函数，$f(1)=0$。一个最重要的特例是 KL 散度：$ D_{\mathrm{KL}} (P || Q)=\sum_x p(x) \log \frac{p(x)}{q(x)} $&lt;/p&gt;
&lt;p&gt;KL 散度非负。注意到 $P$ 和 $Q$ 不对称，$P$ 的地位是真实分布，$Q$ 的地位是去拟合的分布。KL 散度的一种理解方式是，用分布 $Q$ 来编码 $P$ 时，平均每个符号消耗多少 bit。&lt;/p&gt;
&lt;p&gt;Divergence 是比 entropy 更广泛和基础的概念。一方面是因为 KL 散度可以推导出 Shannon entropy。展开 KL 散度：&lt;/p&gt;
$$
\begin{aligned}
D_{\mathrm{KL}}(P || Q) &amp;= \sum_{x \in \mathcal{X}} P(x) [\log P(x) - \log Q(x)] \\
&amp;= \sum_{x \in \mathcal{X}} P(x) \log P(x) - \sum_{x \in \mathcal{X}} P(x) \log Q(x) \\
&amp;= H(P,Q) - H(P)
\end{aligned}
$$&lt;p&gt;假设样本空间 $\mathcal{X}$ 的大小为 $n$。若我们选取 $Q$ 为 $\mathcal{X}$ 上的&lt;em&gt;均匀分布&lt;/em&gt;，即对于任意 $x$，有 $Q(x) = 1/n$。此时&lt;/p&gt;
$$ H(P, Q) = - \sum_{x \in \mathcal{X}} P(x) \log (1/n) = - \log (1/n) \sum_{x \in \mathcal{X}} P(x) = \log n $$&lt;p&gt;于是&lt;/p&gt;
$$ H(P) = \log n - D_{\mathrm{KL}}(P || U) $$&lt;p&gt;由上可知，Shannon entropy $H(P)$ 可以理解为该系统可能达到的最大不确定性 ($\log n$) 减去它当前分布与完全随机分布（均匀分布）之间的距离 ($D_{\mathrm{KL}}$)。&lt;/p&gt;
&lt;p&gt;另一方面，KL 散度和互信息可以直接聪离散的 pmf 推广到 pdf，但熵的概念不可以，因为不满足非负性。&lt;/p&gt;
&lt;p&gt;其他常用的散度包含 TV, Hellinger 和 $\chi^2$。&lt;/p&gt;
&lt;h2 id="mutual-information"&gt;Mutual Information&lt;/h2&gt;
&lt;p&gt;互信息是两个随机变量的共有信息量： $ I(X,Y)=\sum_{x,y} p(x,y) \log \frac{p(x,y)}{p(x)p(y)} $&lt;/p&gt;
&lt;p&gt;互信息是 joint 和 marginal 分布的 KL divergence。直观理解： $ I(X;Y)=H(Y)-H(Y | X) $&lt;/p&gt;
&lt;h2 id="techniques"&gt;Techniques&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Chain Rule&lt;/em&gt; 令 $X_1, \dots, X_n$ 为离散随机变量，则 $ H(X_1, \dots, X_n)=H(X_1) + H(X_2 | X_1) + \dots + H(X_n | X_1^{n-1}) $&lt;/p&gt;
&lt;p&gt;即联合分布是熵可以视为条件熵的逐步叠加。互信息也有类似的链式法则。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tensorization of KL and Hellinger Distances&lt;/em&gt; 将 product distribution 的散度用 marginal 之间的散度来表示：&lt;/p&gt;
$$ D_{\mathrm{KL}} (P || Q) = D_{\mathrm{KL}} (P_1 \times \dots \times P_n || Q_1 \times \dots \times Q_n)=\sum_{i=1}^n D_{\mathrm{KL}} (P_i || Q_i) $$&lt;p&gt;类似地，Hellinger distance 也可以方便地 tensorize，但 TV 不行。这解释了为什么要考虑多种 $f$ 散度，因为它们各有擅长。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Data Processing Inequality&lt;/em&gt; 考虑 Markov chain: $X \to Y \to Z$，必有 $I(X;Z)\le I(X;Y)$，即通信时只可能损失信息而不能增加信息。证明如下：$ I(X;Y,Z)=I(X;Z)+I(X;Y | Z)=I(X;Y) + \underbrace{I(X;Z | Y)}_{=0, \text{Markov 性质}} $&lt;/p&gt;
&lt;p&gt;更一般地，定义 Markov chain 的 kernel（不妨理解为转移矩阵）K，必有 $ D_f (K_P || K_Q) \le D_f (P || Q) $&lt;/p&gt;
&lt;p&gt;即 Markov chain 不会增加信息。&lt;/p&gt;
&lt;h2 id="fundamental-limit-of-hypothesis-testing"&gt;Fundamental Limit of Hypothesis Testing&lt;/h2&gt;
&lt;p&gt;Hypothesis testing 可以理解为根据收集的数据判断哪个关于世界的假设 $P_i$ 是正确的。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Le Cam&amp;rsquo;s Lemmma&lt;/em&gt; 如果我们只有两个备择假设 $P_1, P_2$，自然界从中随机选择一个。此时错误的概率 $ P( \Phi(X) \neq V)=\frac{1}{2} P_1(\Phi(X)\neq 1) + \frac{1}{2} P_2 (\Phi(X)\neq 2) $&lt;/p&gt;
&lt;p&gt;Le Cam 引理给出了错误概率的下界，与 $P_1$ 和 $P_2$ 的距离相关： $ \inf_{\Phi} ( P_1(\Phi(X)\neq 1) + P_2 (\Phi(X)\neq 2)) = 1 - \|P_1 - P_2\|_{\mathrm{TV}} $&lt;/p&gt;
&lt;p&gt;其中 $ \|P_1 - P_2\|_{\mathrm{TV}} = 1 - \sup_{A \subset X} (P_1 (A) - P_2 (A)) $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pinsker&amp;rsquo;s Inequality&lt;/em&gt; 因为 TV 散度无法 tensorize，我们往往将其放缩为可 tensorize 的散度：$ \|P_1^n - P_2^n\|_{\mathrm{TV}}^2 \le \frac{1}{2} D_{\mathrm{KL}} (P_1^n || P_2^n) = \frac{n}{2} D_{\mathrm{KL}} (P_1 || P_2) $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Fano&amp;rsquo;s Inequality&lt;/em&gt; 随机变量 $X \in \mathcal{X}$，观察到 $Y$ 后我们希望构造一个估计器 $\hat{X}=f(Y)$，错误概率定义为 $P_e = P(\hat{X} \neq X)$。Fano 给出了 $P_e$ 的下界：$ H(P_e) + P_e \log (|\mathcal{X}|-1) \ge H(X | Y) $&lt;/p&gt;
&lt;h1 id="exponential-families-and-statistical-modeling"&gt;Exponential Families and Statistical Modeling&lt;/h1&gt;
&lt;h2 id="sufficient-statistic-and-exponential-family-models"&gt;Sufficient Statistic and Exponential Family Models&lt;/h2&gt;
&lt;p&gt;设 $X$ 是来自于分布 $p_{\theta} (x)$ 的样本。若在给定统计量 $T(X) = t$ 的条件下，$X$ 的条件分布与参数 $\theta$ 无关，则称 $T(X)$ 是 $\theta$ 的 充分统计量。&lt;/p&gt;
&lt;p&gt;我们通常使用 Neyman-Fisher 因子分解定理判定充分性。 $T(x)$ 是充分统计量的充要条件为概率密度函数 $ p_{\theta} (x) = h(x) \cdot g_{\theta} (T(x)) $&lt;/p&gt;
&lt;p&gt;如果一个分布的 pdf/pmf 可以表示为如下形式，则称其属于指数分布族：&lt;/p&gt;
$$ p_{\theta} (x) = h(x) \exp(\langle \theta, \phi(x) \rangle - A(\theta)) $$&lt;p&gt;其中 $\phi(x)$ 是充分统计量，$h(x)$ 是基础测度，$A(\theta)$ 是 log partition function，用来对 pdf/pmf 实现归一化：&lt;/p&gt;
$$ A(\theta) = \log \int_{\mathcal{X}} h(x) \exp(\langle \theta, \phi(x) \rangle) \mathrm{d} x $$&lt;p&gt;许多常见的分布，比如 Bernoulli 分布，Poisson 分布，正态分布，都属于指数分布族。&lt;/p&gt;
&lt;p&gt;指数分布族具有良好的解析性质。比如， $ \nabla A(\theta) = \mathbb{E}_{\theta} [\phi (X)] $&lt;/p&gt;
$$ \nabla^2 A(\theta) = \operatorname{Cov}_{\theta} (\phi(X)) \succeq 0 $$&lt;p&gt;(24) 说明 $A(\theta)$ 是凸函数。如果 $T(x)$ 是 minimal（各参量线性无关），则 $A(\theta)$ 严格凸。&lt;/p&gt;
&lt;h2 id="fitting-an-exponential-family-model"&gt;Fitting an Exponential Family Model&lt;/h2&gt;
&lt;p&gt;对于任何分布，使用指数分布族去拟合相当于 $ \operatorname{minimize}_{\theta} \ D_{\mathrm{KL}} (P || P_{\theta}) = \int p(x) \log \frac{p(x)}{p_{\theta} (x)} \mathrm{d} x $&lt;/p&gt;
&lt;p&gt;这等价于最小化 $ -\int p(x) \log p_{\theta} (x) \mathrm{d} x = -\langle \theta, \mathbb{E}_{P} [\phi (X)] \rangle + A(\theta) $&lt;/p&gt;
&lt;p&gt;这说明上述问题关于 $\theta$ 是一个凸优化问题。&lt;/p&gt;
&lt;p&gt;换一个视角看，$-\int p(x) \log p_{\theta} (x) \mathrm{d} x=H(P, P_{\theta})$ 是 cross-entropy，所以最小化 KL 散度等价于最小化 cross-entropy。&lt;/p&gt;
&lt;p&gt;在实际应用中，我们用来自 $P$ 的 $n$ 个采样 $X_i$ 来代表 $P$。代入上述的式子，最小值在 $ \nabla A(\hat{\theta}_n)=\mathbb{E}_{\hat{\theta}_n}[\phi(X)]=\frac{1}{n} \sum_{i=1}^n \phi(X_i) $&lt;/p&gt;
&lt;p&gt;时取到，即匹配了 $\phi(x)$ 的样本矩和一阶矩。这说明最小化 KL 散度等价于极大似然估计。&lt;/p&gt;
&lt;p&gt;根据 (27)，我们还可以得到估计参数与实际参数之间的关系： $ \hat{\theta}_n - \theta^* \sim \mathcal{N}(0, n^{-1} \cdot \nabla^2 A(\theta^*)^{-1}) $&lt;/p&gt;
&lt;p&gt;这说明 Hessian 矩阵越大，误差越小。&lt;/p&gt;
&lt;p&gt;考虑 $\theta$ 的一个局部，得到两个分布 $P_{\theta}$ 和 $P_{\theta + \Delta}$，计算两者之间的 KL 散度可以得到 $ D_{\mathrm{KL}} (P_{\theta} || P_{\theta+\Delta}) = \frac{1}{2} \Delta^T \nabla^2 A(\theta) \Delta + O(\|\Delta\|^3) $&lt;/p&gt;
&lt;p&gt;这说明 Hessian 还控制了局部分辨率的大小。&lt;/p&gt;
&lt;p&gt;定义 $s(\theta)=\frac{\partial}{\partial \theta} \ln p_{\theta} (x)$ 为 score function，其满足 $\mathbb{E}[s(\theta)]=0$。Fisher 信息量 $I(\theta)$ 被定义为 score 函数的方差： $ I(\theta)=\mathbb{E}\left[ \left(\frac{\partial}{\partial \theta} \ln p_{\theta} (x) \right)^2\right] $&lt;/p&gt;
&lt;p&gt;$I(\theta)$ 描述了对数似然函数曲线的弯曲程度。$I(\theta)$ 越大，说明对数似然函数随 $\theta$ 的变化越剧烈，估计越精准。具体而言，Cramer-Rao 下界给出 $ \operatorname{Var}(\hat{\theta})\ge \frac{1}{I(\theta)} $&lt;/p&gt;
&lt;p&gt;对于指数分布族，恰有 $I(\theta)=A''(\theta)=\operatorname{Var}(\phi(x))$。&lt;/p&gt;
&lt;h2 id="generalized-linear-models-and-regression"&gt;Generalized Linear Models and Regression&lt;/h2&gt;
&lt;p&gt;指数分布族可用于解决条件预测问题，即在给定 $X \in \mathcal{X}$ 的情况下预测 $Y \in \mathcal{Y}$： $ p_{\theta} (y | x) = \exp(\phi(x, y)^{\top} \theta - A(\theta | x)) h(y) $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Linear Regression&lt;/em&gt; 假设：$Y | X = x \sim \mathcal{N}(\theta^{\top} x, \sigma^2)$，则充分统计量 $\phi(x, y) = \frac{1}{\sigma^2} x y$，对数配分函数 $A(\theta | x) = \frac{1}{2 \sigma^2} \theta^{\top} x x^{\top} \theta$。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Binary Logistic Regression&lt;/em&gt; 假设 $Y \in \{0, 1\}$，则充分统计量 $\phi(x, y) = x y$，对数配分函数 $A(\theta | x) = \log(1 + \exp(x^{\top} \theta))$。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Multiclass Logistic Regression&lt;/em&gt; 假设 $Y \in \{1, \dots, k\}$，为每个类别分配参数 $\theta_y$。模型形式 $ p_{\theta} (y | x) = \frac{\exp(\theta_y^{\top} x)}{\sum_{j=1}^k \exp(\theta_j^{\top} x)} $&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Poisson Regression&lt;/em&gt; 假设 $Y \in \mathbb{N}$ 充分统计量：$\phi(x, y) = y x$，对数配分函数：$A(\theta | x) = \exp(\theta^{\top} x)$。&lt;/p&gt;
&lt;p&gt;统一为 GLM 的好处是可以将这四个问题都看做求解 $ \nabla A(\theta | x)= \mathbb{E}_{\theta} [\phi(X, Y)|X = x] $&lt;/p&gt;
&lt;p&gt;这个矩匹配问题。而且，上述四个模型的负对数似然 损失函数都是凸函数，性质良好。&lt;/p&gt;
&lt;p&gt;假设 $X$ 服从边缘分布 $Q$，整体联合分布为 $(X, Y) \sim P_{\theta} \circ Q$。通过 Taylor 展开 Bregman 散度，参数微小扰动 $\Delta$ 下的 KL 散度近似为：&lt;/p&gt;
$$
D_{\mathrm{KL}} (P_{\theta} \circ Q || P_{\theta + \Delta} \circ Q) \approx \frac{1}{2} \Delta^{\top} \mathbb{E}_{Q} [\nabla^2 A(\theta | X)] \Delta
$$&lt;h1 id="concentration-inequalities"&gt;Concentration Inequalities&lt;/h1&gt;
&lt;h2 id="basic-tail-inequalities"&gt;Basic Tail Inequalities&lt;/h2&gt;
&lt;p&gt;Concentration Inequalities 是一类研究随机变量集中程度的不等式。相较于大数定律，它们更精确地描述了有限样本的随机变量偏离其期望值的概率。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;弱大数定律&lt;/em&gt;&lt;/p&gt;
$$ \lim_{n \to \infty} P \left( \left|\frac{1}{n} \sum_{i=1}^n X_i - \mu\right| &gt; \epsilon \right) = 0 \quad \text{for any } \epsilon &gt; 0 $$&lt;p&gt;&lt;em&gt;强大数定律&lt;/em&gt;&lt;/p&gt;
$$ P \left( \lim_{n \to \infty} \frac{1}{n} \sum_{i=1}^n X_i = \mu \right) = 1 $$&lt;p&gt;基本的 Tail Inequalities 包括 Markov Inequality 和 Chebyshev Inequality：&lt;/p&gt;
$$ P(X\ge t)\le \frac{\mathbb{E} [X]}{t}, \quad P(X-\mathbb{E}[X]) \ge t \le \frac{\operatorname{Var}(X)}{t^2} , \quad P(X-\mathbb{E}[X]) \le -t \le \frac{\operatorname{Var}(X)}{t^2} $$&lt;p&gt;将矩母函数 $\phi_X (\lambda)=\mathbb{E}[e^{\lambda X}]$ 代入，得到 Chernoff bound： $ P(X \ge t) \le \frac{E[e^{\lambda X}]}{e^{\lambda t}}=\phi_X (\lambda) e^{-\lambda t} $&lt;/p&gt;
&lt;p&gt;当 $X \sim \mathcal{N}(0, \sigma^2)$ 时，$ \phi_X (\lambda)=\exp\left(\frac{\lambda^2 \sigma^2}{2}\right)$。关注 Gaussian 的尾部分布，我们定义 $X$ 为 $\sigma^2$-sub-Gaussian，若 $ \mathbb{E}(\exp(\lambda (X-\mathbb{E}[X])))\le \exp\left(\frac{\lambda^2 \sigma^2}{2}\right) $&lt;/p&gt;
&lt;p&gt;Rademacher 随机变量（即$\{-1,1\}$上的均匀分布）是 $1$-sub-Gaussian。&lt;/p&gt;
&lt;p&gt;另一个重要的引理是 Hoeffding&amp;rsquo;s lemma。 当 $X \in [a,b]$ 为有界随机变量时，$ \mathbb{E}[e^{\lambda (X - \mathbb{E}[x])}]\le \exp\left(\frac{\lambda^2 (b-a)^2}{8}\right) $&lt;/p&gt;
&lt;p&gt;其证明的两种方法非常典型。第一种方法使用了 &lt;em&gt;symmetrization&lt;/em&gt; 技巧，即引入一个独立的 Rademacher 随机变量 $\epsilon$。令 $X'$ 为 $X$ 的一个独立副本，则 $ \phi _{X - \mathbb{E}(X)} (\lambda) = \mathbb{E}[\exp(\lambda(X - \mathbb{E}[X']))] \le \mathbb{E}[\exp(\lambda (X - X'))] = \mathbb{E}[\exp(\lambda \epsilon(X - X'))] $&lt;/p&gt;
&lt;p&gt;这里的不等式使用了 Jensen 不等式，最后一个等号成立是因为 $\mathbb{E}[X-X']=0$。接下来， $ \mathbb{E}[\exp(\lambda \epsilon(X - X'))] \le \mathbb{E}\left[\exp\left(\frac{\lambda^2 (X-X')^2}{2}\right)\right]\le \exp\left(\frac{\lambda^2 (b-a)^2}{8}\right) $&lt;/p&gt;
&lt;p&gt;为了简化 $\mathbb{E}[X]=0$，第二种方法考虑了矩母函数的对数 $ \psi(\lambda)=\log \phi_X (\lambda) = \log \mathbb{E}[e^{\lambda X}] $&lt;/p&gt;
&lt;p&gt;如果考虑 $p_{\lambda} (y) = \frac{e^{\lambda y}}{\mathbb{E} [e^{\lambda y} X]} p(y)$，可以发现 $ \psi'(\lambda)=\mathbb{E}[Y_{\lambda}], \quad \phi''_{\lambda} = \operatorname{Var}(Y_{\lambda}) $&lt;/p&gt;
&lt;p&gt;由于 $ \operatorname{Var}(B) = \inf_t \mathbb{E}[(B-t)^2] \le \mathbb{E}\left[\left(B-\frac{(a+b)}{2}\right)^2\right] \le \frac{(a-b)^2}{4} $&lt;/p&gt;
&lt;p&gt;于是 $\phi'(\lambda)\le \frac{(b-a)^2}{4} \lambda$。结合 $\psi'(0)=0$ 可以得到 $ \log \phi_X (\lambda) = \psi (\lambda) = \int_0^{\lambda} \psi'(u) \mathrm{d} u \le \int_0^{\lambda} \frac{(b-a)^2}{4} u \mathrm{d} u = \frac{(b-a)^2}{8} $&lt;/p&gt;
&lt;p&gt;sub-Gaussian 是根据矩母函数定义的，它也反映了随机变量尾部的性质： $ P(X-\mathbb{E}[X] \ge t) \lor P(X - \mathbb{E}[X]\le -t) \le \exp\left(-\frac{t^2}{2 \sigma^2}\right) $&lt;/p&gt;
&lt;p&gt;这个性质还可以被 tensorize：对于独立的 $\sigma_i^2$-sub-Gaussian 随机变量 $X_i$，有&lt;/p&gt;
$$ \mathbb{E}\left[\exp\left(\lambda \sum_{i=1}^n (X_i - \mathbb{E}[X_i])\right)\right] \le \exp\left(\frac{\lambda^2 \sum_{i=1}^n \sigma_i^2}{2}\right) $$$$ P\left(\sum_{i=1}^n (X_i - \mathbb{E}[X_i]) \ge t\right) \lor P\left(\sum_{i=1}^n (X_i - \mathbb{E}[X_i]) \le -t\right) \le \exp\left(-\frac{t^2}{2 \sum_{i=1}^n \sigma_i^2}\right) $$&lt;p&gt;将矩母函数的分布限制在一个区域内，可以得到 sub-exponential 的概念。一个参数为 $(\tau^2,b)$ 的 sub-exponential 分布是对所有 $|\lambda|\le 1/b$ 均有 $ \mathbb{E}[e^{\lambda(X-\mathbb{E}[X])}] \le \exp\left(\frac{\lambda^2 \tau^2}{2}\right) $&lt;/p&gt;
&lt;p&gt;sub-Gaussian 是 b=0 的情形。在 sub-exponential 的背景下，我们可以得到更紧的不等式。比如，当 $X \in [-b,b]$ （这暗示 $\sigma^2\le b^2$）时， $ \mathbb{E}(\exp(\lambda X))\le \exp\left(\frac{3\lambda^2 \sigma^2}{5}\right), \text{ for } |\lambda|\le \frac{1}{2b} $&lt;/p&gt;
&lt;p&gt;进一步，如果 $\lambda\ge 0, X\le b, \mathbb{E}[X]=0$ 时，不需要给出 $X$ 的下界，Bernnett&amp;rsquo;s Inequality 有 $ \mathbb{E}(\exp(\lambda X))\le 1 + \frac{\sigma^2}{b^2} (e^{\lambda b} - 1- \lambda b) $&lt;/p&gt;
&lt;p&gt;从 sub-exponential 的矩母函数中我们可以得到尾部特征：对于 $\mathbb{E}[X]=0$ 的 $(\tau^2,b)$-sub-exponential， 有 $ P(X\ge t) \lor P(X \le -t) \le \exp\left(-\frac{1}{2} \min \left\{\frac{t^2}{\tau^2}, \frac{t}{b}\right\}\right) $&lt;/p&gt;
&lt;p&gt;同样也可以张量化：对于独立的 $(\tau_i^2, b_i)$-sub-exponential 随机变量 $X_i$，有 $ \mathbb{E}\left[\exp\left(\lambda \sum_{i=1}^n a_i X_i\right)\right] \le \exp\left(\frac{\lambda^2 \sum_{i=1}^n a_i^2 \tau_i^2}{2}\right), \text{ for } |\lambda|\le \frac{1}{2 \max_i b_i|a_i|} $&lt;/p&gt;
&lt;p&gt;在众多 sub-exponential 的例子中， Bernstein condition 是一个重要的特例。称 $X$ 满足 $b$-Bernstein condition，如果 $ |E[(X-\mu)^k]|\le \frac{k!}{2} \sigma^2 b^{k-2}, \text{ for } k=3,4,\dots $&lt;/p&gt;
&lt;p&gt;下述引理指出满足 $b$-Bernstein condition 的随机变量是 $(\sigma^2, b)$-sub-exponential 的：$ \mathbb{E}[e^{\lambda (X-\mathbb{E}[X])}]\le \exp\left(\frac{\lambda^2 \sigma^2}{2(1-b|\lambda|)}\right), \text{ for } |\lambda|\le 1/b $&lt;/p&gt;
&lt;p&gt;Bernnett&amp;rsquo;s Inequality 是 Bernstein condition 的一个直接推论。令 $X_i$ 为满足 $\mathbb{E}[X_i]=0, \operatorname{Var}(X_i)=\sigma_i^2, X_i\le b$ 的随机变量。令 $h(t)=(1+t)\log(1+t)-t, \sigma^2=\sum \sigma_i^2$，则 $ P\left(\sum_{i=1}^n X_i \ge t\right) \le \exp\left(-\frac{\sigma^2}{b^2} h\left(\frac{b t}{\sigma^2}\right) \right) $&lt;/p&gt;
&lt;h2 id="martingale-methods"&gt;Martingale Methods&lt;/h2&gt;
&lt;p&gt;令 $M_1, M_2, \dots$ 为实值随机变量，如果存在 $\{Z_1, Z_2, \dots\} \in \mathcal{Z}$ 和一列函数 $f_n: \mathcal{Z}^n \to \mathbb{R}$ 使得 $ E[M_n | Z_1^{n-1}] = M_{n-1} \text{ and } M_n = f_n (Z_1^n) $&lt;/p&gt;
&lt;p&gt;则 $M_n$ 为鞅序列。我们称 $M_n$ 适应 $\{Z_n\}$。&lt;/p&gt;
&lt;p&gt;序列 $D_n$ 被称为鞅差序列，若 $M_n := \sum_{i=1}^n D_i$ 是鞅序列。不难得到，存在 $Z_n, g_n$ 满足 $ E[D_n | Z_1^{n-1}] = 0 \text{ and } D_n = g_n (Z_1^n) $&lt;/p&gt;
&lt;p&gt;鞅序列的一个实例是公平赌博。$M_n$ 代表玩到第 $n$ 轮时的财富，$Z_1, \dots, Z_{n-1}$ 是之前观察到的结果，条件 $ E[M_n | Z_1^{n-1}] = M_{n-1}$ 表明，在知道全部的历史信息时，下一轮的财富期望仍然是当前的财富。&lt;/p&gt;
&lt;p&gt;另一个重要的鞅差序列是 Doob martingales。令 $f: \mathcal{X} \to \mathbb{R}$ 为任意函数，差分序列 $ D_i := \mathbb{E}[f(X_1^n)| X_1^i] - E[f(x_1^n)|X_1^{i-1}] $&lt;/p&gt;
&lt;p&gt;证明使用全期望公式，$ E[D_i | X^{i-1}_1] = E[E[f (X_1^n ) | X_1^i] | X^{i-1}_1 ] - E[f (X_1^n ) | X^{i-1}_1 ] = 0 $&lt;/p&gt;
&lt;p&gt;注意到 $M_n = f(X_1^n) - E[f(X_1^n)]$，所以 Doob martingale 刻画了 $f$ 和其期望之间的误差。&lt;/p&gt;
&lt;p&gt;称 $D_n$ 为 $\sigma_n^2$-sub-Gaussian martingale difference 序列，若$ E[\exp(\lambda D_n) | Z_1^{n-1}] \le \exp\left(\frac{\lambda^2 \sigma_n^2}{2}\right) $&lt;/p&gt;
&lt;p&gt;Azuma-Hoeffding 定理给出，对于 $\sigma_n^2$-sub-Gaussian martingale difference 序列 $\{D_n\}$，$M_n$ 是 $\sum_{i=1}^n \sigma_i^2$-sub-Gaussian，并且 $ \max\{P(M_n \ge t), P(M_n \le -t)\} \le \exp\left(-\frac{t^2}{2 \sum_{i=1}^n \sigma_i^2}\right) $&lt;/p&gt;
&lt;p&gt;对应 (69)，可以发现独立的 sub-Gaussian 和 sub-Gaussian martingale 具有类似的性质。事实上，独立是一种特殊的鞅情形。&lt;/p&gt;
&lt;p&gt;作为上述性质的直接推论，如果 $|D_i|\le c$ 恒成立（暗示 $\sigma_i^2\le c^2$），则 $ P(n^{-1/2} M_n \ge t) \lor P(n^{-1/2} M_n \le -t) \le \exp\left(-\frac{t^2}{2 c^2}\right) $&lt;/p&gt;
&lt;p&gt;这说明一个每步不超过 $c$ 的鞅随机游走偏离期望的程度为 $O(\sqrt{n})$。&lt;/p&gt;
&lt;h2 id="bounded-differences-inequality"&gt;Bounded Differences Inequality&lt;/h2&gt;
&lt;p&gt;Bounded difference 指 $f$ 单个自变量的改变对函数值的改变可控：$ | f(x_1^{i-1},x_i,x_{i+1}^n) - f(x_1(i-1), x_i', x_{i+1}^n) | \le c_i $&lt;/p&gt;
&lt;p&gt;满足上述性质的 $f$ 满足著名的 bounded diferences inequality:&lt;/p&gt;
$$
P (f(X_1^n) - E[f(X_1^n)] \ge t) \lor P (f(X_1^n) - E[f(X_1^n)] \le -t) \le \exp\left(- \frac{2 t^2}{\sum_{i=1}^n c_i^2}\right)
$$&lt;p&gt;证明思路是使用 Doob martingale 和 Azuma-Hoeffding inequality。&lt;/p&gt;
&lt;p&gt;在 Banach 空间中，令 $X_i$ 满足 $E[X_i]=0, \|X_i\|\le c$。由三角不等式，$f(X_1^n):=\left\|\frac{1}{n} \sum X_i\right\|$ 满足 bounded difference，因而若 $X_i$ 独立，有 $ P\left(\left\|\frac{1}{n} \sum_{i=1}^n X_i\right\| - E\left(\left\|\frac{1}{n} \sum_{i=1}^n X_i\right\|\right)\ge t\right) \le 2 \exp\left(-\frac{n t^2}{2 c^2}\right) $&lt;/p&gt;
&lt;p&gt;Banach 空间（完备的赋范向量空间）可用 $L^p (1\le p\le \infty)$ 范数理解，Hilbert 空间（完备的内积空间）可用 $L^2$ 范数理解。&lt;/p&gt;
&lt;p&gt;另一个例子是 Rademacher complexities，用来衡量一个函数类的表达能力。直观理解，其衡量一个函数类在多大程度上能够拟合纯噪声。定义 empricial Rademacher complexity of $\mathcal{F}$ 为 $ R_n (\mathcal{F} | x_1^n) = \frac{1}{n} E\left[\sup_{f \in \mathcal{F}}\sum_{i=1}^n \epsilon_i f(x_i)\right] $&lt;/p&gt;
&lt;p&gt;$\mathcal{F}$ 的 Rademacher complexity 是 $ R_n (\mathcal{F}) = E[R_n (\mathcal{F} | X_1^n)] $&lt;/p&gt;
&lt;p&gt;如果 $f: \mathcal{X} \to [b_0, b_1]$，则 Rademacher complexities 满足 bounded difference，由此可知 $R_n (\mathcal{F} | X_1^n)$ 是 $\frac{(b_1-b_0)^2}{4n}$-sub-Gaussian 的。&lt;/p&gt;
&lt;p&gt;还可以把 Rademacher complexity 视为一个随机向量。定义 $ P_n^0 = \frac{1}{n} \sum_{i=1}^n \epsilon_i \mathbf{1}_{X_i}, f \to P_n^0 f = \frac{1}{n} \sum_{i=1}^n \epsilon_i f(X_i) $&lt;/p&gt;
&lt;p&gt;可以定义&lt;/p&gt;
$$
\begin{aligned}
\|P_n^0\|_{\mathcal{F}}&amp;= \sup_{f \in \mathcal{F}} P_n^0 f = \sup \frac{1}{n} \sum_{i=1}^n \epsilon_i f(X_i) \\
\mathbb{E}_{\epsilon} [\|P_n^0\|_{\mathcal{F}}]&amp;=R_n (\mathcal{F} | X_1^n)
\end{aligned}
$$</description></item><item><title>骆老师</title><link>https://cestfloraison.asia/friends/luo-laoshi/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/friends/luo-laoshi/</guid><description>&lt;p&gt;初中升高中的时候，刚建起班级 QQ 群，就有一个人几乎把所有人都加了一遍。我想这应该是一个超级大 E 人叭！其实呢，骆老师不是社交恐怖分子。高一的时候自告奋勇和骆老师一起当语文课代表，但高二的时候因为竞赛被撤职了。骆老师的座位常年在我隔壁大组的右前方，不过因为我高中社交窄窄的，所以并没有和骆老师变熟。&lt;/p&gt;
&lt;p&gt;来浙大以后，重建了许多与高中朋友之间的关系。骆老师正是大学之后变熟的好朋友之一，甚至是代表。报到那天，就在东操的路上碰到了骆老师。大一上的思想道德与法治恰好与骆老师分到了一个班，于是在同一个小组。大一下的孔子与论语又和骆老师分到了一个班。好巧！搬离紫金港的时候，大晚上又在楼下碰到了骆老师。世界真小叭！&lt;/p&gt;
&lt;p&gt;BME 和自控同病相怜。两个本质相同的本科专业，两个饱受争议的学院，一个大热门一个大冷门。互相调侃和批评学院的破事制造了许许多多有趣的话题。&lt;/p&gt;
&lt;p&gt;骆老师是骑车大王！大二上期末考结束的时候，有幸借了骆老师的车，一起和骆老师刚确定（但彼时未知）的男朋友和同学一起爽骑 40 km。后来又骑过一回。骆老师体力真好啊！上坡我真骑不动。&lt;/p&gt;
&lt;p&gt;新疆行也和骆老师一起。有一餐晚饭在十一点多吃，那次骆老师说她打算留学。我突然就也想留学了，或许是早有这个打算，但迟迟没有看到身边有人这样选择。希望我们留学顺利！&lt;/p&gt;</description></item><item><title>Parallel Compute: A Case study of Speculative Decoding</title><link>https://cestfloraison.asia/blog/parallel-compute-speculative-decoding/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/parallel-compute-speculative-decoding/</guid><description>&lt;div style="width: 100%; margin: 2rem 0;"&gt;
&lt;iframe src="https://cestfloraison.asia/pdfs/parallel-compute-speculative-decoding.pdf" title="Parallel Compute: A Case study of Speculative Decoding" style="display: block; width: 100%; height: 80vh; min-height: 720px; border: 1px solid rgba(100, 116, 139, 0.25); border-radius: 0.75rem; background: #f8fafc;" loading="lazy"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Five common parallelism strategies are widely used in large-scale parallel computing: &lt;em&gt;data parallelism, tensor parallelism, pipeline parallelism, expert parallelism (MoE), and context parallelism&lt;/em&gt;. Data parallelism replicates the model across devices and partitions the input batch; tensor parallelism shards individual tensor operations across multiple devices; pipeline parallelism divides model layers into stages that process different micro-batches concurrently; expert parallelism distributes different experts in a MoE model across devices and dynamically routes tokens among them; and context parallelism partitions long input sequences across devices to distribute the computation and memory cost of attention.&lt;/p&gt;
&lt;p&gt;Conceptually, these strategies are relatively straightforward. In practice, however, they are system-level optimizations deeply intertwined with &lt;em&gt;asynchronous communication, data movement, synchronization, memory management, and workload scheduling&lt;/em&gt;. Their actual performance depends not only on how computation is partitioned, but also on how effectively communication can be overlapped with computation and how well synchronization and load imbalance are controlled. Consequently, implementing and optimizing these seemingly simple parallelism strategies can become substantially more complicated at scale.&lt;/p&gt;
&lt;p&gt;These are system-level optimization. As for algorithm-level design, Speculative Decoding one of the most prevalent design in LLM serving system.&lt;/p&gt;
&lt;p&gt;The motivation of SD is: a target model can score all positions of the drafted sequence in parallel, although the draft itself may be sequential. Therefore, we introduce the draft-then-verify paradigm. The drafter is a light weight model that decodes swiftly and the LLM just verify and correct for one time.&lt;/p&gt;
&lt;p&gt;For vanilla SD, the limitations are as follow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It requires an additional draft model and draft-target mismatch limits acceptance rate;&lt;/li&gt;
&lt;li&gt;Extra memory footprint is demanded, and decoding is always a memory-bandwidth bound.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;EAGLE families are famous and outstanding for multiple-token prediction. EAGLE-1 predict target-model features insted of direct;y drafting tokens, thus a single layer is qualified for prediction. In EAGLE-2, the fixed-shape tree is replaced by dynamically allocated draft tree according to predicted acceptance probabilities. EAGLE-3 further leverage multi-level target-model features for more accurate feature prediction.&lt;/p&gt;
&lt;p&gt;So how do we ensure lossless verification and resampling? Here, we adopt rejection sampling to preserve the target model distribution. Tree attention artfully letevery token only attends its ancestors, and thus a single turn of rejection sampling is enough.&lt;/p&gt;
&lt;p&gt;As for training, EAGLE-1/2 introduce two losses: feature level and token level. EAGLE-3 removes the feature-prediction constraint and improves drafting with direct token prediction, multi-level target-feature fusion, and training-time test.&lt;/p&gt;
&lt;p&gt;However, autoregression is inherently sequential. How about introducing diffusion models?&lt;/p&gt;
&lt;p&gt;DSpark removes the autoregressive bottleneck of speculative drafting by generating a block of draft tokens in parallel with a diffusion model.&lt;/p&gt;
&lt;p&gt;Dflash accelerates inference by injecting cached target-model features into every draft layer and replacing autoregressive token-by-token drafting with a single parallel masked-block forward pass.&lt;/p&gt;
&lt;p&gt;DFlash trains a lightweight diffusion drafter on randomly anchored masked blocks, conditioned on frozen target-model features via KV injection, using position-decayed cross-entropy to prioritize early speculative tokens.&lt;/p&gt;
&lt;p&gt;DSpark aims to retain DFlash&amp;rsquo;s parallel drafting efficiency while recovering token-to-token consistency and avoiding costly verification of low-confidence suffix tokens. It introduces lightweight causal dependency, usually Markov or RNN.&lt;/p&gt;
&lt;p&gt;On system level, DSpark predicts survival probability of each draft prefix and uses a hardware-aware scheduler to verify only prefixes whose expected acceptance gain justifies their target-model batch cost, pruning low confidence suffixes before expensive verification.&lt;/p&gt;
&lt;p&gt;draft-then-verify methods are effective, but they have some disadvantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verification becomes expensive;&lt;/li&gt;
&lt;li&gt;Rejected tokens waste substantial compute;&lt;/li&gt;
&lt;li&gt;Variable acceptance creates ragged batching.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Diffusion Language models can predict multiple future positions in parallel, but they model per-position marginals rather than the joint future-token distribution, so parallel sampling generally breaks token dependencies and cannot reduce NFEs losslessly.&lt;/p&gt;
&lt;p&gt;K-forcing aims to predict the joint distribution of next k tokens. In order to predict the joint distribution, they put forward the push-forward language model. Noise Inversion, as the baseline, is affected by train-inference mismatch and numerical fragility. The solution in k-forcing is progressive self-forcing distillation.&lt;/p&gt;
&lt;p&gt;With regard to architecture design, AR teacher backbone compresses all noise variables into one conditioning token and decode k future positions with independent heads. A newly added architecture represent each noise variables as a separate causal token, so the latter token depends on the former tokens.&lt;/p&gt;
&lt;p&gt;In conclusion, we talk about five parallelism strategies, the vanilla speculative decoding, EAGLE families as representitive of draft-then-vefify paradigm, Dflash, DSpark introduce diffusion-LLM in multiple-token prediction and k-forcing is more batch-serving friendly.&lt;/p&gt;</description></item><item><title>五场数模之经历</title><link>https://cestfloraison.asia/jottings/five-mathematical-modeling-experiences/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/jottings/five-mathematical-modeling-experiences/</guid><description>&lt;p&gt;第一次数模是高中被数学竞赛的同学拉去打美赛。那一周正值期中考后一周，刚考出历史新低的我甚至错过了选题，昏头昏脑地就开始备赛。在有趣的蜂蜜种群分析和无聊的二氧化碳浓度预测中，我们队选择了后者。那时候什么都不懂，见是预测题，就派了一个同学在 B 站上死磕四万行的 transformer（彼时为 2022 年），一个同学在 matlab 上阅读求资源求来的 ARIMA，我还坚持直接用英语写论文因为我不喜欢翻译。最后成绩平平。&lt;/p&gt;
&lt;p&gt;到了大一春夏，五一期间闲逛看到了数模校赛。彼时刚认识一位计算机高手，于是便拉上高中同学一起打比赛。选择数模，一是因为相对于其他比赛来说周期最短，比较轻松；二是因为毕竟是数学竞赛出身，有点迷之自信。由于数模，2025 年 5 月，我第一次用上了 github copilot 的自动补全。同学第一次向我展示用一句话生成一个贪吃蛇游戏的时候，我深为震撼。校赛的周期有十天，是一个和无人机轨迹规划有关的问题。首个周末，我们聚在小剧场的二楼，在草稿纸上画各种各样的图，用直觉想各种各样的策略。工作日，我们分头负责代码实现，并在下一个周末再聚起来推进到底。我记得为了让 github copilot 理解我们复杂的几何逻辑算法，并且画出想要的示意图，我们不得不用非常详细且没有歧义的语言向它描述算法的每个流程。我记得我想画出一个类似 voronoi 图的东西，但 copilot 总是有几率把错误的边加粗，于是我只能反复运行，直到抽出一张可以放在论文里的图。&lt;/p&gt;
&lt;p&gt;写论文的时候，没有查阅任何模板，就凭自己的问题的理解组织了整篇文章。我们把所有想到的思路都写了上去，它们就像树根一样往各个方向生长，虽然没有特别突出的。后来成绩不错，于是就有了些自信。&lt;/p&gt;
&lt;p&gt;国赛前夕，有学长想和我组队，于是我就和原队友分开，推荐了一个新同学代替我的位置，我和云辩的学长姐组队比赛。这回是 2025 年 9 月。比赛前我特意申请了 copilot 学生认证，不知为何额度还是很少，这为这次比赛的蹉跎埋下了伏笔。没有了 copilot，当时的我只会用对话版的腾讯元宝。比赛初，乃至比赛的第二天，我和学姐都执着于用纯几何方法判定烟雾弹是否能遮挡导弹这个立体几何问题。一路上想到了空间解析几何，想到了工图学的三视图，不过最后没用，还是回归搜索。元宝写的代码非常拉，几乎都是错的，还是学长的 copilot 指出的错误。当时我代码代码写不出，建模建模想不出，病急乱投医甚至找了不知道什么平台，花了 20 块钱买了 50 次高级模型的对话机会。对，甚至是按对话次数计费的，所以我每次都写一个超级长的 prompt。那个时候还在手写 python，被学长嘲笑毫无代码功底。我心想大二要好好练一练 coding 能力了。&lt;/p&gt;
&lt;p&gt;国赛期间一直在焦虑能不能做完五个问题，焦虑的时候就疯狂刷小红书，对答案。因为题目有歧义，还被小红书横生一番焦虑。跨校区组队提供了酒店，学长姐坐在凳子上，我则一直跪在床边，把膝盖都跪红了。不过那个时候还是很有人类参与的，草稿纸写了一张又一张。不幸地是，最后写论文的时候太急，只剩最后两个小时才开始写摘要，而 latex 的联合编译因为子文件和 main.tex 使用的库不同导致编译错误。最后半个小时，我和学姐焦急地在旁边看学长操作，把问题五的解合并到总论文中。最后，在 19:59 我们上交了论文，网卡，20:00 才交上，没有拿到 MD5 码。&lt;/p&gt;
&lt;p&gt;忙活了三天，论文竟然没交成功。学长立马给谈老师打了电话，结果是没办法。坐在酒店的玻璃窗边，没有很难过，反而很平静。后来大家去吃了一顿日料。拆队的另两个同学也遭遇了挫折，于是和其中一个同学夜晚在东操一圈一圈地走，约定明年要一雪前耻。那天一直到凌晨两点都没睡，后面还有表演赛的事，也无暇悲伤。&lt;/p&gt;
&lt;p&gt;到了寒假的美赛，已是 2026 年 1 月。gemini 的学生优惠正值末班车，而新推出的 gemini 3 pro 势头正猛。整个大二秋冬一直忙于社团的事情，直到寒假我才第一次用上外国 AI。当时在 98 看了一些 gem 的攻略，其实就是 skill，然后开始美赛。队友的家长有事不在家，于是同学只能把他二年级的妹妹带到学校来。我们一天到晚待在研讨室，妹妹也只能一天到晚待在研讨室，可妹妹才二年级，坐不住。所以，支线任务是哄妹妹玩。上午的时候让她写自己的寒假数学作业，中午带她看新三国的鬼畜，还有我的世界、植物大战僵尸。晚上，队友还要开车送妹妹回家住，所以备赛的氛围一直颇为 chill。&lt;/p&gt;
&lt;p&gt;chill 的底气是 gemini 3 pro 确实厉害。我们建模的基础全部来自 gemini 的 deep research 功能，找了几篇有趣的论文，把几个公式拼凑在一起。写作的时候，先在 overleaf 上生成中文，然后再逐行翻译成英文。彼时，我还执着于先生成大纲，然后再扩展到全文，不过有了 AI 的帮助，生成大纲已经容易多了。当时电池的数据集很难找，还在 B 站上参考了数学建模老哥的资料。印象里那个时候没有写什么很复杂的代码，处理出来的效果虽差但也够用，所以虽然一直是对话框交流，但也足够应付代码了。那时在研讨室的白板上，我们还写了不少思路，列了不少公式，但最后的总结和整合工作主要是 AI 做的。最后一个晚上，有点紧迫，我首次因为正事通宵就是这回，通宵把论文赶出来。因为在同一个对话框里翻译了太长的文字，还把 gemini 3 pro 的额度用完了。最后几个小时，因为 latex 模板的引用格式出错，我们还排查了许久。那是我第一次在本地成功编译 latex，算是了解了国赛的一大心结。不枉我通宵到早上七点。&lt;/p&gt;
&lt;p&gt;不过 latex 联合编译很慢，并且内容和图片比较多，最后的版本差强人意。最终的结果还不错，但没有特别满意。赛后，我们夜晚在银泉周围骑车，问要不要参加国赛。既然我们都有点遗憾，那就再参加一年国赛吧。&lt;/p&gt;
&lt;p&gt;在大二春夏，coding agent 的发展实在是太快了。学期初刚进组的时候，用的还是 glm 5，写实验报告用的还是网页版 gemini 3 pro 的复制粘贴。到了夏学期，实验报告已经升级为 codex 端到端作业，glm 也从 5 升级成了 5.1、5.2。5.1 刚出来的时候，我还夸过它比 5 聪明，现在却是觉得 5.2 都不够用了。我们几个人向来懒得做赛前准备，一直以赛代练。赛前我们就在想，今年会出什么题目呢，会不会像校赛那样出一些要手动收集数据的问题，或者一些新奇的问题。在比赛前一天，gpt 6 astra 解决了 NS 方程的一个版本，这更让我们又自信又迷茫。&lt;/p&gt;
&lt;p&gt;拿到题目的第一个晚上，我们还在研讨室的白板上画了不少图进行分析。由于十点钟教学楼关门，简单讨论后我们决定分别让 gpt 5.6 sol、gpt 6 astra 和 glm 5.3 跑一个版本，其中 glm 5.3 是端到端的，前两者有一些人类干预。从第二天看到 AI 的解法开始，那块白板就再没被用过。不得不说 AI 端到端的效果实在惊人。但问题也不小：我们看不懂，以及它生成的论文不说人话。&lt;/p&gt;
&lt;p&gt;所以接下来的几天，我们先尝试继续优化问题三和问题四，与此同时开始沉下心来仔细阅读 AI 的思路。不得不说，AI 的思路非常复杂，有一种 dfs 的美，但是很难被高层次地概括和精简，以及它的用词实在太雷霆了。我们几乎花了一个下午和一个晚上才读懂两篇 AI 对问题的解法。有趣的是，glm 5.3 的表现比 gpt 6 astra 还要好，我们说中国人出的题还得是中国人的模型做。&lt;/p&gt;
&lt;p&gt;从某种程度上来说，这一次国赛是压力最小的一次，因为大部分时间都花在等 AI、鼓起勇气理解 AI 的非人话，和看 KPL 上。但当 AI 思考时间特别长，或者一直不说人话的时候，就会有一种异样的焦虑。这种感觉就像是轻松燃尽，似乎什么都没做，但是很累而且没有正反馈，也没有耐心看完 AI 的非人话。&lt;/p&gt;
&lt;p&gt;为了把 AI 生成的思路说成人话，我们采取了以下有趣的策略。第一，当然是尽可能读懂并概括。对于简单的问题，我可以完全理解，所以我可以完全从头组织结构和逻辑推进的顺序。但对于策略很复杂的问题，我怎么读都只能一知半解。这时，我选择先生成大纲，也就是只包含论证思路的人话版。本来想的是大纲要纯人写，但最后写了两问，还是交给 AI 生成再手动修改。第二，调整修辞。我明确 ban 掉下述词语：“探针”，“骨干”，“作业”，“证书”，这根本不是中文好吧。第三，用一种间接的方式，调整详略和连贯性。这一步是最磨人的。我一方面没法自己上手编辑，另一方面每次提出要求之后它都想很久，等 AI 的时候又没有事情可做，所以非常牢。尤其是最后时间有点来不及了，更是非常易怒，非常焦虑，非常累。这一次连图片也没有自己画，我们的可视化大师也选择全部使用 codex 生图。唉。&lt;/p&gt;
&lt;p&gt;所以本次比赛有一个很奇特的现象。每天晚上十点钟教学楼关门后，我们也没有继续讨论到很晚。有一天晚上我心情很不好，队友陪我一起去吃正新鸡排。还有一天是狼队 vs TTG 的决赛，看了巅峰对决的直播。这样看来这一次是压力最小的一次，强大的 AI 也确实成为我们坚信能做完的底气。不过，这一次的体验也是最差的，因为这一次完全是 AI 牵着我们的鼻子走。没有思考的乐趣，没有进入心流的状态。理解 AI 的东西到最后也是一知半解，也没有锻炼什么能力，或许唯一锻炼的能力是耐心和说人话。怎么会有代码一开始就写好但是理解了整整两天的呢。我们也不是没有尝试思考，但也想不过 AI，而且理解 AI 和说人话实在折磨人。最后交代码前，发现所有代码文件夹的命名里都含 glm_ 和 gpt6_，于是紧急改代码，令人忍俊不禁。&lt;/p&gt;
&lt;p&gt;我不禁联想到暑假的 HPC 短学期，也是实验太难大家只能高强度使用 AI。有这样的机会逼你去使用 AI 固然是一件好事，需要在这样的场景中去锻炼使用 AI 的技巧，突破不想为 AI 花钱的心态。可然后呢？HPC 榜单上比别人多一两百分的人，或许只是比别人多开了一个端到端的终端。程序结果的优劣，乃至竞赛成绩的好坏，已然难以成为判断水平高下的理由，甚至难以成为一个持久的动力。辛辛苦苦花这么多时间把分刷高了，又有什么意义呢。&lt;/p&gt;
&lt;p&gt;在这样的环境下，到底怎样才算自己真正懂了呢？我反反复复看了 HPC 的课程 slides 和实验报告的 tutorial，但到头来也还是一知半解，动手只能靠 coding agent。当取得实验效果不能用来证明自己真的懂了的时候，或许唯一的方法就是写文章来总结，或者讲给别人听。但这很难，也很慢。&lt;/p&gt;
&lt;p&gt;无论怎么说，经过这一次国赛，我感觉学东西的目的还是为了自己的兴趣，而不是为了达到某个效果，做出某个成果。疲于理解 AI 生成的结果并不能让人快乐，同理漫天飞的具身智能论文也有点这种感觉。还是自己一步一步慢慢理解，壁垒比较高的东西比较有意思。所以 OpenAI 破解这个千禧年问题、破解那个数学难题，或者有一些完全不懂数学的人拿自己的 token 去做一些很难的数学问题，做出来了又如何？你自己又不懂，也没有办法确认它是对的。不过看到这样的事件的时候还是免不了焦虑。&lt;/p&gt;
&lt;p&gt;同期，有辩论队的面试和表演赛，有音乐会。但我却困在这里对着 agent 思考的图标发呆，焦虑地玩手机，没有任何主观能动性。不过数模也是有好处的，和好朋友在一起吃了好多好多顿饭。和人类的合作很愉快，和 AI 的合作不愉快。&lt;/p&gt;
&lt;p&gt;大学阶段的数模已经打完了，未来也再也不想打了。不过作为某种程度上长期研究的 miniature，数模告诉我，我讨厌自己不能完全理解或者完全掌控的东西。&lt;/p&gt;</description></item><item><title>学姐</title><link>https://cestfloraison.asia/friends/xuejie/</link><pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/friends/xuejie/</guid><description>&lt;p&gt;曹禺，矛木。不知从什么时候起，我们都叫她学姐。高一的时候有一回青马活动，和学姐两个人一前一后走回教学楼。那时留下的印象是，这个人说话像新闻联播。高二，高三，不知道是怎么认识的，或许“文艺癖”或迟或早总会变熟，渐渐地和学姐有过闲聊，送过生日礼物。高三下，学姐坚持在教室后的白板上写每日一句，印象最深的是福楼拜“我把时间给你…”云云。学姐的作文是叙事风格的哲思，很符合学姐的气质，那段时间向学姐讨教过不少作文问题。&lt;/p&gt;
&lt;p&gt;大一秋，学园有一个写信活动，提供信纸与信封，免费寄信。当时给关系很好的三个同学写了信。彼时微信上和学姐说，写这个能加二课分。后来再写信、聊天，就不需要借口了。写信成为一个传统，一段传说。杭州的电报业务结束的最后一天，学姐拍来一份电报，以作纪念。&lt;/p&gt;
&lt;p&gt;学姐有自己的公众号。身边写公众号的同学都是文艺青年，都很有才气，喜欢。&lt;/p&gt;
&lt;p&gt;入党积极分子考试那天，十一月，下午带论打完比赛正在吃饭，突然看到学姐的消息：她来港了！彼时得有一年多没见。夜晚，从蓝田走到大胡子吃夜宵，再走回来，拍了拍立得。种种契机，学姐成为最先知道，也是知道最多学妹的人。谁让她刚好是学姐呢！&lt;/p&gt;
&lt;p&gt;我将永远记得，在我心态最谷底的那天，一通电话学姐陪我聊到凌晨三点，给我做出选择的勇气。此后的重大节点，学姐从未缺席。有的人只能闲聊，但学姐是真的能解决问题的。&lt;/p&gt;
&lt;p&gt;新疆行，人生时刻。感谢学姐的精心筹划！文艺，干练，有爱，其此之谓乎！&lt;/p&gt;</description></item><item><title>ladygege</title><link>https://cestfloraison.asia/friends/ladygege/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/friends/ladygege/</guid><description>&lt;p&gt;认识 ladygege 的过程很神奇。一开始 gege 从某个群聊里加了我的微信，但彼时我并不认识 gege，中间大半年也只有些许对话。后来工高被刷，我恭喜 gege 选上了，她问要不要一起出去玩。gege 的大方和自信自从那时就给我留下了极其深刻的印象，在我认识的人里自成一类。&lt;/p&gt;
&lt;p&gt;我是 gege 公众号的忠实粉丝，基本上每周日都会刷到新鲜出炉的每周小结。内容之多，思想之活跃，让我这个懒人非常敬佩。单是把这么多字打出来就很费劲了！&lt;/p&gt;
&lt;p&gt;gege 很喜欢电影。我喜欢模仿别人的爱好，于是也跟着认识了很多电影，还认识了小宇宙的博客叫无人知晓。了解别人的爱好一直很有趣，尤其是 gege 有如此高质量的爱好。如果生活是一个小宇宙，那 gege 无疑是高质量博主。&lt;/p&gt;
&lt;p&gt;本人平时和 gege 的交集也不多。但好久不见之后，还可以一起出来吃饭，聊很久很久的天。I don&amp;rsquo;t know why，一般我会感到生分或者害羞的。或许是 gege 太有人格魅力了！&lt;/p&gt;</description></item><item><title>mryuan</title><link>https://cestfloraison.asia/friends/mryuan/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/friends/mryuan/</guid><description>&lt;p&gt;第一次见到 mryuan 是在东二走廊的长桌上，那是工高实践面小组的首次碰面。大家介绍完自己的专业后开始分锅，mryuan 说他寒假做过可视化相关的工作，并且熟悉编程语言，所以他可以做 AI 棋的那个题。听起来很靠谱。实践面的最后一天下午，我和另一个同学负责的 keil 出了神秘的编译问题，一直无法解决，mryuan 前来支援，整整 debug 了 6 个多小时，硬是 debug 成功了，令人拍案叫绝，物理意义上的猛得拍了一下桌子。后来我才知道，mryuan 的 c++ 是那几天现学的，这让我肃然起敬。&lt;/p&gt;
&lt;p&gt;实践面结束后是专家面，在此之前 mryuan 问我要不要模拟一下面试。很新奇。后来我俩双双被刷。过了几天，邱哥微信问我你认不认识 mryuan，这是他室友。世界好小！有此缘分，五月的时候我问 mryuan 要不要来打数模校赛。此后，便有了许多合作的事情。&lt;/p&gt;
&lt;p&gt;mryuan 是电脑高手，我对电脑和 AI 的启蒙全部来自 mryuan。校赛前，我直接把电脑给他，让他教我什么是 miniconda，什么是 github copilot。那时我第一次见到 github 的 agent 可以在一行命令后写出一个贪吃蛇。到了翌年一月，mryuan 帮我开通了 gemini 的 family plan。没有 mryuan，我就是一个原始人。&lt;/p&gt;
&lt;p&gt;mryuan 擅长弹吉他，搞乐队，一学期不理头发，颇有文青的气质。本人有幸上过其两次吉他私教，一次在寒假的尧坤楼琴房，一次在玉泉宿舍。吉他是好文明，但我好难坚持。会弹吉他真好。&lt;/p&gt;
&lt;p&gt;mryuan 也非常会带小孩。数模美赛时，畅神带上了二年级的妹妹雨姐。mryuan 并非对雨姐照顾有加，有时反而故意和雨姐对着干，但雨姐听他的话，不听我的。mryuan 指示道，带小孩如遛狗，要善于拿捏。持续学习中。&lt;/p&gt;</description></item><item><title>Sketch on Operational Research</title><link>https://cestfloraison.asia/blog/operational-research-notes/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/operational-research-notes/</guid><description>&lt;h2 id="intro-operational-research-optimization-and-linear-programming"&gt;Intro: Operational Research, Optimization and Linear Programming&lt;/h2&gt;
&lt;p&gt;运筹学，最优化，线性规划，三者之间的关系是什么？&lt;/p&gt;
&lt;p&gt;运筹学要解决的问题是，如何利用有限的资源，使得某些利益最大化；为了完成某个既定的目标，如何才能最小化资源消耗。最优化要解决的问题是，建立模型后如何求出最优解。运筹学片中解决实际问题，更注重建模；而最优化则侧重于对优化的理论研究。&lt;/p&gt;
&lt;p&gt;线性规划是优化领域中研究最早、应用广泛且方法成熟的一个重要分支。我们将从线性规划开始，展开对运筹学的研究。&lt;/p&gt;
&lt;h1 id="linear-programming"&gt;Linear Programming&lt;/h1&gt;
&lt;h2 id="geometry-foundation"&gt;Geometry Foundation&lt;/h2&gt;
&lt;h3 id="affine-and-convex-sets"&gt;Affine and Convex Sets&lt;/h3&gt;
&lt;p&gt;如果一个非空集合 Q 满足对任意两点 $x_1, x_2 \in Q$，其仿射组合始终属于 Q，即对于任意 $\theta \in \mathbb{R}$ 有&lt;/p&gt;
$$ \theta x_1 + (1-\theta)x_2 \in Q $$&lt;p&gt;那么称 Q 是一个仿射集。&lt;/p&gt;
&lt;p&gt;如果一个非空集合 C 满足，对任意 $x_1, x_2 \in C$，其凸组合始终属于 C，即对于任意 $0 \le \theta \le 1$ 有：&lt;/p&gt;
$$ \theta x_1 + (1-\theta)x_2 \in C $$&lt;p&gt;那么称 C 是一个凸集。&lt;/p&gt;
&lt;p&gt;线性方程组的解集构成仿射集，而任意的仿射集必定是凸集。线性规划的可行域总是表现为凸集，这一性质在分析优化问题时，保证了局部极小值即为全局极小值。&lt;/p&gt;
&lt;h3 id="polyhedron-hyperplanes-and-halfspace"&gt;Polyhedron, Hyperplanes and Halfspace&lt;/h3&gt;
&lt;p&gt;超平面是空间中满足线性等式的点集
&lt;/p&gt;
$${x : a^T x = b} $$&lt;p&gt;
其中 $a \in \mathbb{R}^n \ne 0, b \in \mathbb{R}$。
半空间是为超平面将空间划分成的两个区域之一，对应线性不等式的点集
&lt;/p&gt;
$${x : a^T x \ge b},{x : a^T x \le b}$$&lt;p&gt;多面体定义为有限个半空间和超平面的交集，即有限个线性等式和不等式的解集：&lt;/p&gt;
$$ {x : A x \le b} $$&lt;p&gt;这些概念为约束条件提供了直观的几何载体。线性规划中的每一个等式和不等式约束在几何上对应于超平面和半空间。多面体是对线性规划可行域的直观理解，说明可行域是由平直边界围成的几何体。&lt;/p&gt;
&lt;h3 id="vertex-extreme-point-and-basic-feasible-solution"&gt;Vertex, Extreme point and Basic feasible solution&lt;/h3&gt;
&lt;p&gt;对于多面体 $P = {x : A x \le b}$，若存在某个 $c \in \mathbb{R}^n$，使得对于多面体中所有其他的点 $y \ne x$ 均有：&lt;/p&gt;
$$ c^T x &lt; c^T y $$&lt;p&gt;则称 $x$ 是多面体 P 的顶点。&lt;/p&gt;
&lt;p&gt;若 $x \in Q$ 无法表示为 Q 内其它两个不同元素的凸组合，那么称 $x$ 是极限点。&lt;/p&gt;
&lt;p&gt;若 $x \in P$ 满足 $n$ 个线性无关的紧约束，则 $x$ 是一个基本可行解。&lt;/p&gt;
&lt;p&gt;可以证明对于多面体，$ \text{顶点} \Longleftrightarrow \text{极限点} \Longleftrightarrow \text{基本可行解} $&lt;/p&gt;
&lt;p&gt;上述定理建立了代数与几何的直观连接。几何上多面体最突出的角点（极点与顶点），在代数上对应方程组的特定基底解（基本可行解），这正是单纯形法寻找最优解的立足点。&lt;/p&gt;
&lt;h3 id="ray-recession-cone-and-extreme-ray"&gt;Ray, Recession Cone and Extreme Ray&lt;/h3&gt;
&lt;p&gt;给定非空集合 Q 和向量 $d$，如果对任意的 $x \in Q$ 和 $\alpha \ge 0$ 都有 $x + \alpha d \in Q$ 成立，则称 $d$ 为回收方向。Q 的所有回收方向的集合记作 $\text{rec}(Q)$。对于多面体 $P = {x : A x \le b}$，其回收锥为：&lt;/p&gt;
$$ \text{rec}(P) = {d \in \mathbb{R}^n : A d \le 0} $$&lt;p&gt;对于多面体回收锥中的非零元素（射线），如果它不能表示成多面体中其它两个线性无关的射线的正数倍组合，则该射线为极射线。&lt;/p&gt;
&lt;p&gt;回收锥和射线理论刻画了可行域的无界性。通过极射线，能够提取出无限延伸方向的基底向量，这是理解无界线性规划目标函数为何发散的几何本质。&lt;/p&gt;
&lt;h3 id="separating-hyperplane-theorem"&gt;Separating Hyperplane Theorem&lt;/h3&gt;
&lt;p&gt;设 $Q \subset \mathbb{R}^n$ 是闭的非空凸集，$x_0 \notin Q$，必存在一个非零向量 $a \in \mathbb{R}^n$ 和标量 $b \in \mathbb{R}$，使得：&lt;/p&gt;
$$ a^T x_0 &gt; b $$&lt;p&gt;并且对于任意 $x \in Q$ 都有：&lt;/p&gt;
$$ a^T x \le b $$&lt;p&gt;几何直观：如果在空间中放置了一个实心的、向外凸起的封闭物体（闭凸集），而在其外部有一个游离的点。无论这个点离物体多近，我们总能拿出一块无限大的平坦纸板（超平面），插在两者之间，使得点在纸板的一侧，而整个物体在纸板的另一侧。&lt;/p&gt;
&lt;p&gt;此定理是建立整个凸优化和对偶理论的基石，提供了一种通过构造超平面来证明多面体结构等价性质（例如 Farkas 引理与强对偶性）的强力数学工具。&lt;/p&gt;
&lt;h3 id="minkowski-weyl-theorem"&gt;Minkowski-Weyl Theorem&lt;/h3&gt;
&lt;p&gt;设 $P \subset \mathbb{R}^n$ 是一个多面体，那么必定存在有限的向量集 ${v_1, ..., v_k}$ 和 ${u_1, ..., u_l}$ 使得：&lt;/p&gt;
$$ P = \operatorname{Conv}\{v_1, \ldots, v_k\} + \operatorname{Cone}\{u_1, \ldots, u_l\} $$&lt;p&gt;即多面体可以被表示为其顶点的凸组合与极射线的锥组合的 Minkowski 和。&lt;/p&gt;
&lt;p&gt;几何直观：任何表面由平坦切面削成的具有棱角的几何空间（由半空间交集定义的外代数表示），等价于用若干个实实在在的角点和指向无穷远处的射线支架向外撑起来的几何空间（内几何表示）。&lt;/p&gt;
&lt;p&gt;这一定理证明了无限空间中的可行域也可通过有限的数据点来完全重构和表达，使得理论推导极大简化。&lt;/p&gt;
&lt;h3 id="fundamental-theorem-of-linear-programming"&gt;Fundamental Theorem of Linear Programming&lt;/h3&gt;
&lt;p&gt;考虑线性规划问题 $\max {c^T x : x \in P}$，其中 P 是一个尖多面体（不包含一条直线），则如下论述成立：如果 P 非空，那么必定存在基本可行解；若 P 非空且目标函数无上界，那么存在向量 $d$ 满足在射线上目标函数能取得任意大值；若 P 非空且目标函数有上界，那么线性规划必定在某个顶点处取得最优解。&lt;/p&gt;
&lt;p&gt;在常见的有界情形中，此定理指出线性规划的解必然在多面体的边界上，不可能在内部。它将搜索空间收缩为有限个顶点间的离散组合，为后续单纯形法提供了计算可行性保证。&lt;/p&gt;
&lt;h2 id="simplex-method"&gt;Simplex Method&lt;/h2&gt;
&lt;h3 id="standard-form-and-slack-variables"&gt;Standard Form and Slack Variables&lt;/h3&gt;
&lt;p&gt;如果线性规划问题最初包含不等式约束，通过引入非负的松弛变量 $ x_s \ge 0$，可将其转化为等式约束的标准形式：
&lt;/p&gt;
$$ A x + x_s = b $$&lt;p&gt;松弛变量度量了当前解距离不等式约束边界的距离。当某个松弛变量为零时，说明对应的约束是紧凑的，即解恰好位于该超平面的边界上。&lt;/p&gt;
&lt;p&gt;这是一种标准化的代数处理手段，使得一般形式的线性规划问题能够以矩阵方程组的形式进行计算。&lt;/p&gt;
&lt;h3 id="basic-variables-non-basic-variables-and-reduced-cost"&gt;Basic Variables, Non-basic Variables and Reduced Cost&lt;/h3&gt;
&lt;p&gt;线性规划在标准形式下往往有 $m$ 个等式约束，有 $n$ 个变量，且 $n$ 通常远大于 $m$，所以方程组有无数个解。
为了找到最优解，单纯形法采取了一种降维策略：人为挑选 $n-m$ 个变量，把它们设为 0，剩下的 $m$ 个变量就可以通过求解 $m$ 个方程唯一确定下来了。&lt;/p&gt;
&lt;p&gt;基变量：被选中参与求解方程组的那 $m$ 个变量。它们对应矩阵 A 中线性无关的 m 列，拼成了可逆的基矩阵 B。在几何上，基变量大于 0 意味着我们在多面体的内部或某些松弛边界上，当它们刚好求出来是非负数时，我们就站在了多面体的一个顶点上。&lt;/p&gt;
&lt;p&gt;非基变量：被强行设为 0 的那 $n-m$ 个变量。在几何上，一个变量等于 0 意味着当前的位置正紧贴某条特定的边界（超平面）。&lt;/p&gt;
&lt;p&gt;接下来解释检验数 (Reduced Cost)。当我们站在一个顶点时，想要知道沿着某条边走能不能让结果更好，我们就需要试探：如果把某个被打入冷宫的非基变量释放出来（让它从 0 缓慢增加），会对目标函数产生什么影响？&lt;/p&gt;
$$ \Delta_j = c_j - c_B^T B^{-1} A_j $$&lt;p&gt;这个公式可以这么理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;提取出的 $ c_j$ 是直接收益：引入这个非基变量带来的单位目标提升。&lt;/li&gt;
&lt;li&gt;提取出的 $ B^{-1} A_j$ 是资源消耗率：非基变量的增加，势必会挤占原有 $m$ 个基变量的资源，因为等式约束的总量是固定的。&lt;/li&gt;
&lt;li&gt;提取出的 $c_B^T B^{-1} A_j $ 是机会成本：为了平衡等式，原有的基变量被迫减少，从而损失的目标函数价值。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，检验数度量的就是释放该变量带来的净利润。如果在最大化问题中，所有非基变量的检验数都不大于 0，说明无论释放哪个方向，净利润都是亏损的。这就从代数上严格证明了，我们已经到达全局最优解。&lt;/p&gt;
&lt;p&gt;考虑一个 toy example：生产产品 1 和 2，利润分别为 2 和 3。
目标函数：&lt;/p&gt;
$$ \max z = 2x_1 + 3x_2 $$&lt;p&gt;约束条件（比如产量限制）：&lt;/p&gt;
$$ x_1 + x_2 \le 4 \\ 2x_1 + x_2 \le 5 \\ x_1, x_2 \ge 0 $$&lt;p&gt;第一步，加入松弛变量 $x_3, x_4 $，把不等式变成等式标准形式：&lt;/p&gt;
$$ x_1 + x_2 + x_3 = 4 — 2x_1 + x_2 + x_4 = 5 $$&lt;p&gt;此时，目标函数变为：&lt;/p&gt;
$$ \max z = 2x_1 + 3x_2 + 0x_3 + 0x_4 $$&lt;p&gt;第二步，寻找初始极限点。令 $x_1 = x_2 = 0 $，此时$x_1, x_2 $ 就是非基变量。代入方程可得：
&lt;/p&gt;
$$ x_3 = 4, x_4 = 5 $$&lt;p&gt;这两个就是当前的基变量。它们构成了初始基本可行解。&lt;/p&gt;
&lt;p&gt;第三步，计算检验数。我们现在站在原点，总利润是 0。我们想知道，如果开始生产产品 1，即让非基变量 $ x_1$ 增加 1 单位，是否划算。&lt;/p&gt;
&lt;p&gt;对于 $ x_1$，直接收益是 $ c_1 = 2$。增加 1 单位 $ x_1$，为了维持方程平衡，松弛变量 $ x_3$ 会被消耗减少 1，$ x_4$ 会被消耗减少 2。但松弛变量在目标函数中的利润系数是 0，机会成本为 0。净利润检验数 $ \Delta_1 = 2 - 0 = 2$。同理，对于 $ x_2$，直接收益是 3，机会成本是 0，检验数 $ \Delta_2 = 3$。&lt;/p&gt;
&lt;p&gt;因为 $ \Delta_2 = 3 &gt; 0$，这说明如果把 $ x_2$ 从非基变量变成基变量，也就是沿着 $x_2 $ 轴的方向离开原点，我们的目标函数会以斜率 3 稳步上升。单纯形法正是依据这个正的检验数，决定将 $ x_2$ 选入基变量，从而向着更高利润的下一个极限点进发。&lt;/p&gt;
&lt;h3 id="simplex-method-and-iterative-calculation"&gt;Simplex Method and Iterative Calculation&lt;/h3&gt;
&lt;p&gt;单纯形法的具体求解步骤如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将问题化为标准形式并提取初始基本可行解；&lt;/li&gt;
&lt;li&gt;计算所有非基变量的检验数，若均满足最优性条件则停止迭代并输出结果；&lt;/li&gt;
&lt;li&gt;若存在改进空间，则选择一个检验数大于零的非基变量作为入基变量；&lt;/li&gt;
&lt;li&gt;利用最小比值定理选取使得原基变量最先降为零的变量作为出基变量以保证下一次迭代的可行性，即计算：&lt;/li&gt;
&lt;/ul&gt;
$$ \min { (B^{-1} b)_i / (B^{-1} A_j)_i : (B^{-1} A_j)_i &gt; 0 } $$&lt;p&gt;最后，利用矩阵初等行变换更新单纯形表，完成基底矩阵的转换并重复上述步骤。&lt;/p&gt;
&lt;p&gt;几何直观：算法从多面体的一个极限点出发，沿着目标函数值增加的边，贪心地移动到下一个相邻的极限点，直至最优解。&lt;/p&gt;
&lt;p&gt;这是线性规划中最基础且极其高效的精确求解算法，它通过有限次的单纯形表代数变换，完美实现了对高维几何空间中最优解的定向搜索。&lt;/p&gt;
&lt;h3 id="big-m-method-and-two-phase-method"&gt;Big-M Method and Two-phase Method&lt;/h3&gt;
&lt;p&gt;当初始基本可行解无法通过观察直接获得时，引入人工变量 $ \overline{x} \ge 0$ 构造增广矩阵。大 M 法通过在目标函数中添加极大的惩罚项来迫使人工变量在迭代中出基：&lt;/p&gt;
$$ \max c^T x - M \sum \overline{x}_i $$&lt;p&gt;两阶段法则构造第一阶段目标函数，旨在最小化人工变量之和以寻找初始可行解：&lt;/p&gt;
$$ \min \sum \overline{x}_i $$&lt;p&gt;这两种方法相当于在原有的高维空间外构建了一个具有显式原点起点的辅助多面体，通过不断压榨辅助维度的生存空间，最终引导迭代轨迹平滑地回到到原问题的多面体顶点上。&lt;/p&gt;
&lt;p&gt;这种处理机制解决了线性规划问题在缺乏平凡初始解时无法启动单纯形法迭代的难题。&lt;/p&gt;
&lt;h3 id="degeneracy-cycling-and-resolution"&gt;Degeneracy, Cycling and Resolution&lt;/h3&gt;
&lt;p&gt;退化指的是在基本可行解中存在取值为零的基变量，这可能导致单纯形法在同一点的多个等价基之间发生死循环。Bland 规则是一种解决死循环的有效策略，即在存在多个入基或出基变量候选时，始终选择下标最小的变量：&lt;/p&gt;
$$ \min { j : \Delta_j &gt; 0 } $$&lt;p&gt;采用扰动法、字典序法或 Bland 规则打破了这种由几何对称性引发的陷阱，从代数理论上严格保证了单纯形法在最劣情况下的有限步终止性。&lt;/p&gt;
&lt;h3 id="common-pivoting-rules"&gt;Common Pivoting Rules&lt;/h3&gt;
&lt;p&gt;转轴规则决定了单纯形法在面对多个可行的上升方向时的路径选择。常见规则有最大正检验数规则以及最陡边缘规则等。最陡边缘规则要求计算单位几何距离内目标提升最大的方向：&lt;/p&gt;
$$ \max (\Delta_j) / (|| B^{-1} A_j ||) $$&lt;p&gt;几何直观：如果把多面体表面视作多面山坡，不同的转轴规则决定了搜索轨迹是仅选择代数指标最优的边，还是选择在实际欧氏几何空间中爬升绝对斜率最大的边。&lt;/p&gt;
&lt;p&gt;转轴规则的核心应用价值在于平衡单次单纯形表计算的开销与收敛所需的总迭代次数。&lt;/p&gt;
&lt;h2 id="linear-programming-duality"&gt;Linear Programming Duality&lt;/h2&gt;
&lt;h3 id="primal-and-dual-problems-and-their-correspondence"&gt;Primal and Dual Problems and Their Correspondence&lt;/h3&gt;
&lt;p&gt;对于任意一个标准的线性规划原始问题（Primal），都存在一个与其在数学结构上严格对称的对偶问题（Dual）。设原始问题为最大化形式：&lt;/p&gt;
$$ \max { c^T x : A x \le b, x \ge 0 } $$&lt;p&gt;则其对应的对偶问题为最小化形式：&lt;/p&gt;
$$ \min { b^T y : A^T y \ge c, y \ge 0 } $$&lt;p&gt;其中转换的对应关系为：原始问题的目标函数系数向量 $c$ 成为对偶问题的约束右端项；原始问题的约束右端项向量 $b$ 成为对偶问题的目标函数系数；原始问题的约束矩阵 $A$ 转置后成为对偶问题的约束矩阵；原始问题中的第 $i$ 个约束对应对偶问题中的第 $i$ 个变量，原始问题中的第 $j$ 个变量对应对偶问题中的第 $j$ 个约束。&lt;/p&gt;
&lt;p&gt;考虑一个典型的生产计划问题作为原始问题。假设一家工厂生产桌子和椅子两种产品，目标是在给定资源下最大化总利润。&lt;/p&gt;
&lt;p&gt;已知生产一张桌子的利润为 50，消耗 4 单位木材和 2 单位人工；生产一把椅子的利润为 30，消耗 3 单位木材和 1 单位人工。工厂拥有的资源上限为：木材 120 单位，人工 50 单位。设桌子产量为 $x_1$，椅子产量为 $x_2$。&lt;/p&gt;
&lt;p&gt;原始问题（厂长的视角：优化生产组合以最大化总利润）：&lt;/p&gt;
$$
\max z = 50 x_1 + 30 x_2
\\
4 x_1 + 3 x_2 \le 120
\\
2 x_1 + x_2 \le 50
\\
x_1, x_2 \ge 0
$$&lt;p&gt;现在，转换视角，考虑一个外部采购商想要直接打包收购这家工厂的全部木材和人工资源，而不让工厂自行生产。采购商需要为木材设定单价 $y_1$，为人工设定单价 $y_2$。&lt;/p&gt;
&lt;p&gt;对偶问题（采购商的视角：优化资源定价以最小化收购总成本）：&lt;/p&gt;
&lt;p&gt;首先，采购商的目标是最小化支付给工厂的资源总收购金额：&lt;/p&gt;
$$
\min w = 120 y_1 + 50 y_2
$$&lt;p&gt;其次，采购商的报价必须满足一个基本商业逻辑：让厂长愿意出售资源。厂长会进行核算，如果用 4 单位木材和 2 单位人工自己生产一张桌子，能赚取 50 的利润；那么采购商为这些资源提供的总报价，绝对不能低于 50，否则厂长宁可留下资源自己生产桌子。同理，对生产一把椅子所消耗的资源报价也不能低于 30。这就构成了对偶约束：&lt;/p&gt;
$$
4 y_1 + 2 y_2 \ge 50 \\
3 y_1 + y_2 \ge 30 \\
y_1, y_2 \ge 0
$$&lt;p&gt;通过这个代数模型与经济视角的对应，可以清晰地解释对偶转换法则的内在逻辑：&lt;/p&gt;
&lt;p&gt;原始问题的资源约束上限（120 和 50），构成了对偶问题中需要最小化的目标函数系数，因为它是采购商要收购的系统资源总量。&lt;/p&gt;
&lt;p&gt;原始问题的目标函数系数（即产品利润 50 和 30），构成了对偶问题的约束右端项，因为它是厂长出让资源所能接受的机会成本底线。&lt;/p&gt;
&lt;p&gt;原始问题的约束矩阵进行转置，是因为在原始问题中，矩阵按行表示某种资源在不同产品中的分配与消耗；而在对偶问题中，矩阵按列表示某种单一产品中所蕴含的各项资源的内部定价价值之和。&lt;/p&gt;
&lt;p&gt;在这个框架下，对偶变量 $y_1, y_2$ 在经济学上即为资源的影子价格（Shadow Price），它揭示了每一单位物理资源在最优化生产系统内部的隐含经济价值。&lt;/p&gt;
&lt;p&gt;这种对偶构造提供了一个从资源定价角度看待原始生产计划问题的全新视角，并且在原始问题变量极多而约束较少时，转而求解其对偶问题可以大幅降低计算维度和复杂度。&lt;/p&gt;
&lt;h3 id="shadow-price"&gt;Shadow Price&lt;/h3&gt;
&lt;p&gt;影子价格定义为目标函数最优值对某个约束条件右端项常数的偏导数。设 $ z^*$ 为最优目标函数值，$ b_i$ 为第 i 个约束的资源限量，则第 i 种资源的影子价格 $ y_i^*$ 为：&lt;/p&gt;
$$ y_i^* = (\partial z^*) / (\partial b_i) $$&lt;p&gt;在最优解处，对偶问题的最优解向量 $ y^*$ 的各个分量即为对应原始问题约束的影子价格。&lt;/p&gt;
&lt;p&gt;影子价格度量了在当前最优生产结构下，增加单位第 i 种资源所能带来的最大边际利润收益。如果某种资源的影子价格为正，说明该资源是限制利润进一步提升的瓶颈；如果为零，则说明该资源相对过剩。这一概念是大规模系统优化中进行灵敏度分析与资源定价的核心。&lt;/p&gt;
&lt;h3 id="weak-and-strong-duality-theorems"&gt;Weak and Strong Duality Theorems&lt;/h3&gt;
&lt;p&gt;弱对偶定理指出，对于任意的原始问题可行解 $x$ 和对偶问题可行解 $y$，原始问题的目标值永远被对偶问题的目标值所界定：&lt;/p&gt;
$$ c^T x \le b^T y $$&lt;p&gt;强对偶定理进一步指出，如果原始问题存在有限的最优解 $x^* $，那么对偶问题也必然存在有限的最优解 $ y^*$，且二者的最优目标函数值相等：&lt;/p&gt;
$$ c^T x^* = b^T y^* $$&lt;p&gt;弱对偶定理相当于宣称任何买方的最高出价都不会超过卖方的最低要价；强对偶定理则给出了一个惊人的结论，即在完美的线性系统市场中，买卖双方的底线最终一定相同。强对偶定理不仅给出了判定一个解是否为全局最优解的完美终点条件，也构成了现代内点法与对偶算法的基石。&lt;/p&gt;
&lt;h3 id="complementary-slackness"&gt;Complementary Slackness&lt;/h3&gt;
&lt;p&gt;互补松弛定理刻画了原始最优解 $x^* $ 与对偶最优解 $y^* $ 之间的正交关系。数学形式表述为：&lt;/p&gt;
$$ y_i^* (b_i - A_i x^*) = 0 $$$$ x_j^* ( (A^T)_j y^* - c_j ) = 0 $$&lt;p&gt;该定理说明，如果某个原始不等式约束在最优解处没有取到等号（即资源有剩余，松弛量大于零），那么对应的对偶变量（影子价格）必须严格为零；反之，如果对偶变量大于零，对应的原始约束必须紧约束（资源耗尽）。这在代数上将原始和对偶的最优性条件紧紧绑定，使得我们可以直接通过一个问题的最优解推导出另一个问题的最优解，大幅简化了求解过程。&lt;/p&gt;
&lt;h3 id="alternative-theorems-farkas-lemma-and-gordan-lemma"&gt;Alternative Theorems (Farkas Lemma and Gordan Lemma)&lt;/h3&gt;
&lt;p&gt;Farkas 引理是著名的择一定理，其代数表述为，以下两个线性方程或不等式系统，有且仅有一个存在解。系统一：
&lt;/p&gt;
$$ A x = b, x \ge 0 $$&lt;p&gt;系统二：
&lt;/p&gt;
$$ A^T y \ge 0, b^T y &lt; 0 $$&lt;p&gt;几何直观：给定一个由矩阵 A 的列向量张成的多面锥，以及一个目标向量 b。那么向量 b 要么完全落入这个多面锥的内部（系统一有解）；要么它游离在锥外，此时我们一定能找到一个穿过原点的超平面，把向量 b 和多面锥严格地分隔在两侧（系统二有解）。&lt;/p&gt;
&lt;p&gt;Farkas 引理是建立分离超平面理论与证明线性规划强对偶定理的最基础的纯代数工具，它将几何上的凸集分离性转化为了严格的矩阵方程可解性判据。&lt;/p&gt;
&lt;h3 id="dual-simplex-method-and-primal-dual-method"&gt;Dual Simplex Method and Primal-Dual Method&lt;/h3&gt;
&lt;p&gt;对偶单纯形法是直接在对偶空间执行搜索的算法。它要求初始单纯形表满足对偶可行性（即所有检验数均非正），但违反原始可行性（即存在负的基变量）。算法首先挑选一个取值为负的基变量出基以试图修复原始可行性，然后通过最小比值测试：&lt;/p&gt;
$$ \min { (\Delta_j) / (A_{i j}) : A_{i j} &lt; 0 } $$&lt;p&gt;选择入基变量，以确保在转轴后对偶可行性不被破坏。如此迭代直到所有基变量均非负，此时即同时达到原始可行与对偶可行，即取得全局最优解。&lt;/p&gt;
&lt;p&gt;原始-对偶方法则同时维护原始和对偶两个系统的变量。它利用当前对偶解构造一个受限原始问题（Restricted Primal），通过求解该受限问题来决定如何更新对偶解，使得对偶目标函数稳步改善。&lt;/p&gt;
&lt;p&gt;对偶单纯形法在面对增加新约束条件或者修改右端项导致原始可行性丢失的场景时极为高效，因为它不需要像大 M 法那样重新从零开始寻优，而是直接从当前的最优边界出发向内修复。原始-对偶方法则是诸多近似算法与网络流问题（如最短路径、匹配问题）的底层框架。&lt;/p&gt;
&lt;h1 id="advanced-linear-programming-and-large-scale-decomposition"&gt;Advanced Linear Programming and Large Scale Decomposition&lt;/h1&gt;
&lt;h2 id="sensitivity-analysis"&gt;Sensitivity Analysis&lt;/h2&gt;
&lt;h3 id="geometric-and-algebraic-analysis-of-objective-coefficient-changes"&gt;Geometric and Algebraic Analysis of Objective Coefficient Changes&lt;/h3&gt;
&lt;p&gt;在最优解的灵敏度分析中，设原问题的基变量为 $x_B $，非基变量为 $x_N $，最优基矩阵为 $B$。当目标函数中某个变量 $x_j $ 的利润系数 $c_j $ 发生扰动变为 $c_j + \Delta c_j $ 时，代数上的核心在于检验当前最优解的最优性条件（即检验数）是否被破坏。&lt;/p&gt;
&lt;p&gt;非基变量的系数变化，其仅仅影响自身的检验数：&lt;/p&gt;
$$ \Delta_j' = (c_j + \Delta c_j) - c_B^T B^{-1} A_j = \Delta_j + \Delta c_j $$&lt;p&gt;为保持当前最优解不变，必须有 $\Delta_j' \le 0 $，即 $ \Delta c_j \le -\Delta_j$。&lt;/p&gt;
&lt;p&gt;对于基变量 $x_k $ 的系数变化，由于其改变了基底收益向量 $c_B $，会导致所有非基变量的检验数发生连锁反应。新的基收益向量变为 $ c_B + \Delta c_k e_k$，所有非基变量必须满足：&lt;/p&gt;
$$ \Delta_j^{\prime} = c_j - \left(c_B + \Delta c_k e_k\right)^T B^{-1} A_j \le 0 $$&lt;p&gt;这会解出一个允许的扰动区间 $[\Delta c_{\min}, \Delta c_{\max}]$&lt;/p&gt;
&lt;p&gt;在几何上，目标函数系数定义了等值超平面的法向量。改变系数，等价于在多面体空间中转动目标函数等值面。只要转动的幅度没有越过与之相邻的多面体边界（即斜率变化在某两条临界棱的斜率之间），当前的最高顶点依然是最高顶点，最优生产方案 $ x^*$ 就无需更改。此分析的作用在于评估市场价格波动时，当前生产计划的鲁棒性。&lt;/p&gt;
&lt;h3 id="impact-analysis-of-right-hand-side-variations"&gt;Impact Analysis of Right-Hand Side Variations&lt;/h3&gt;
&lt;p&gt;约束条件右端项向量 $b$ 代表系统拥有的资源上限。当 $b$ 变化为 $b + \Delta b $ 时，因为目标函数系数和约束矩阵 $A$ 未变，所有非基变量的检验数 $\Delta_j $ 保持不变，即最优性（对偶可行性）天然维持。&lt;/p&gt;
&lt;p&gt;代数上的核心于是变为检验原始问题的可行性，即新的基变量取值必须保持非负：&lt;/p&gt;
$$ x_B' = B^{-1} (b + \Delta b) = B^{-1} b + B^{-1} \Delta b \ge 0 $$&lt;p&gt;通过解此不等式组，可以求出各个 $ \Delta b_i$ 的容许变化范围。&lt;/p&gt;
&lt;p&gt;在几何上，改变右端项 $b_i $ 相当于将对应的约束超平面沿着其法向量方向进行平移，这会导致整个可行域多面体的膨胀或收缩。只要平移的幅度没有使得当前最优顶点所在的一组有效超平面交点越出可行域（即退化或被完全切除），构成最优解的基变量组合就不会改变。此分析的作用在于界定影子价格的有效区间，指出增加多少资源会真正遇到其他资源的瓶颈限制。&lt;/p&gt;
&lt;h3 id="testing-and-adjustment-for-new-variables-or-constraints"&gt;Testing and Adjustment for New Variables or Constraints&lt;/h3&gt;
&lt;p&gt;在实际业务中，系统常常会引入新的产品（新变量）或受到新的政策限制（新约束），我们需要算法在不重新计算的前提下快速调整。&lt;/p&gt;
&lt;p&gt;当引入一个新的非基变量 $ x_\text{new}$，其伴随列向量为 $A_\text{new} $，利润系数为 $c_\text{new} $ 时。直接利用当前的最优基 $B$ 计算其检验数：&lt;/p&gt;
$$ \Delta_\text{new} = c_\text{new} - c_B^T B^{-1} A_\text{new} $$&lt;p&gt;如果 $ \Delta_\text{new} \le 0$，说明生产新产品无利可图，原最优解保持不变。如果 $ \Delta_\text{new} &gt; 0$，则将该变量及其对应的列 $ B^{-1} A_\text{new}$ 加入到当前的单纯形表中，将其作为入基变量，继续执行常规的单纯形法迭代，直到达到新的最优解。&lt;/p&gt;
&lt;p&gt;设新增约束为 $ a_\text{new}^T x \le b_\text{new}$。首先将当前的最优解 $ x^*$ 代入，检验其是否满足该限制。如果满足，则原解依然最优。
如果不满足，说明原顶点被新超平面切除了。此时将新约束加入单纯形表，引入一个非负松弛变量 $ x_s$，利用当前基变量的等式关系把新约束中的基变量替换掉，使其仅由非基变量表示。此时 $ x_s$ 将作为一个新的基变量，且其取值必为负数（因为原解违反约束）。此时单纯形表满足检验数全部非正（最优/对偶可行），但存在负基变量（原始不可行），算法强制使用对偶单纯形法，将 $ x_s$ 踢出基底，沿着新约束的边界滑动，修复可行性并寻找到新的最优解。&lt;/p&gt;
&lt;p&gt;下面是一个 toy example。假设我们求解完毕一个生产问题，当前最优解为生产 2 单位桌子，3 单位椅子，即 $ x_1 = 2, x_2 = 3$，其他非基变量为 0，最优利润为 10。单纯形表的检验数行均已小于等于 0。&lt;/p&gt;
&lt;p&gt;此时突发政策限制：环保要求两种产品的总产量不能超过 4，即引入新约束：&lt;/p&gt;
$$ x_1 + x_2 \le 4 $$&lt;p&gt;当前解被破坏，变为不可行。为了在表格中处理，我们加入松弛变量 $x_3 \ge 0 $ 变为等式：&lt;/p&gt;
$$ x_1 + x_2 + x_3 = 4 $$&lt;p&gt;在当前的代数系统中，我们需要把 $x_3 $ 作为新的基变量表达出来：&lt;/p&gt;
$$ x_3 = 4 - x_1 - x_2 $$&lt;p&gt;由于当前 $x_1=2, x_2=3 $，代入得到 $x_3 = -1 $。我们将这一行加入到单纯形表的底部。此时的单纯形表中，检验数依然保持最优（因为目标函数未变），但基变量 $x_3 = -1 &lt; 0 $。
这正是对偶单纯形法的标准启动条件。算法指定取值为负的 $ x_3$ 出基，然后通过最小比值定理计算所有可能使得 $ x_3$ 变大的非基变量（即方程中系数为负的变量）作为入基变量。经过一次特定的转轴操作，在不破坏利润最大化方向的前提下，将迭代点拉回 $x_1 + x_2 = 4 $ 的新边界上，从而得到受环保约束下的新最优解，而无需从原点重新用大 M 法起步。&lt;/p&gt;
&lt;h2 id="polynomial-time-algorithms-and-interior-point-methods"&gt;Polynomial-Time Algorithms and Interior-Point Methods&lt;/h2&gt;
&lt;h3 id="khachiyan-ellipsoid-method"&gt;Khachiyan Ellipsoid Method&lt;/h3&gt;
&lt;p&gt;椭球法通过构造一个包含最优化问题可行域的椭球序列 $E_k$ 进行迭代。在每一步中，算法检查当前椭球的中心点 $x_k$ 是否满足所有约束。如果中心点违背了某个约束 $a_i^T x \le b_i$，则利用穿过该中心点且平行于约束边界的超平面将椭球切半，并构造一个新的、体积更小的椭球 $E_{k+1}$ 来将其中的可行半椭球完全包围。新椭球的体积严格以小于 1 的比例常数递减。&lt;/p&gt;
&lt;p&gt;椭球法在几何上可以看作是高维多面体空间中的二分查找法。它通过不断收缩一个可以完全包裹目标区域的椭圆形容器，持续压缩搜索空间直到逼近最优解。这是历史上第一个从理论上严格证明线性规划问题可在多项式时间内求解的算法，单纯形法的复杂度是指数级。&lt;/p&gt;
&lt;h3 id="karush-kuhn-tucker-kkt-conditions"&gt;Karush-Kuhn-Tucker (KKT) Conditions&lt;/h3&gt;
&lt;p&gt;KKT 条件是判断带约束非线性优化问题解是否为最优解的一阶必要条件。考虑如下标准形式的一般优化问题：&lt;/p&gt;
$$ \min f(x) \\ \text{s.t.} g_i (x) \le 0, \quad i = 1, ..., m , h_j (x) = 0, \quad j = 1, ..., p $$&lt;p&gt;如果在局部极小值点 $x^*$ 处满足特定的约束规范（如线性独立约束规范 LICQ），则必定存在拉格朗日乘子向量 $\lambda$ 和 $\mu$，使得以下四组条件严格成立：&lt;/p&gt;
&lt;p&gt;平稳性 (Stationarity)：目标函数梯度与约束梯度的力矩平衡。
&lt;/p&gt;
$$ \nabla f(x^*) + \sum_{i=1}^m \lambda_i \nabla g_i (x^*) + \sum_{j=1}^p \mu_j \nabla h_j (x^*) = 0 $$&lt;p&gt;原始可行性 (Primal Feasibility)：解必须落在原规定的多面体或曲面边界内。
&lt;/p&gt;
$$ g_i (x^*) \le 0 \\ h_j (x^*) = 0 $$&lt;p&gt;对偶可行性 (Dual Feasibility)：不等式约束的惩罚方向必须阻碍目标值进一步下降。
&lt;/p&gt;
$$ \lambda_i \ge 0 $$&lt;p&gt;互补松弛性 (Complementary Slackness)：只有起作用的边界（紧约束）才能产生非零的支撑力。
&lt;/p&gt;
$$ \lambda_i g_i (x^*) = 0 $$&lt;p&gt;在几何上，KKT 条件刻画了一种受力平衡状态。如果你站在可行域边界的最优点上，目标函数的负梯度方向（即让你收益继续变好的下坡方向）必然指向可行域的外部。此时，这个向外的力完全被那些卡住你的边界（紧约束）所提供的法向反作用力（即约束的梯度，乘以非负的权重 $\lambda_i$）所抵消。&lt;/p&gt;
&lt;p&gt;KKT 条件将古典的拉格朗日乘子法从纯等式系统成功跨越到了不等式系统。它不仅是凸优化中判定全局最优解的充分必要条件，更是推导强对偶理论、构建支持向量机 (SVM) 分类面，以及设计所有现代原始-对偶内点法（内点法的核心即为对方程组中的互补松弛条件进行 $\mu$ 扰动）的数学基石。&lt;/p&gt;
&lt;h3 id="affine-scaling-method-and-barrier-function-method"&gt;Affine Scaling Method and Barrier Function Method&lt;/h3&gt;
&lt;p&gt;仿射缩放法：考虑标准形式线性规划 $\min c^T x$，满足约束 $A x = b$ 且 $x \ge 0$。给定严格满足 $x_k &gt; 0$ 的当前内点，构造对角缩放矩阵 $X_k = \text{diag}(x_k)$。通过变量代换 $x = X_k \tilde{x}$，将当前迭代点映射为变换空间中的全 1 向量 $\tilde{x}_k = e$。&lt;/p&gt;
&lt;p&gt;在此变换空间中，点到各个非负边界的距离被均匀拉齐，原问题等价于在等式约束 $A X_k \tilde{x} = b$ 下最小化 $(X_k c)^T \tilde{x}$。在该空间中沿着目标函数梯度的投影方向进行最速下降，投影矩阵为 $P = I - X_k A^T (A X_k^2 A^T)^{-1} A X_k$。映射回原空间后，实际的搜索方向 $d_k$ 为：&lt;/p&gt;
$$ d_k = - X_k^2 (c - A^T y) $$&lt;p&gt;其中 $y = (A X_k^2 A^T)^{-1} A X_k^2 c$ 为对偶变量的估计值。迭代更新公式为 $x_{k+1} = x_k + \alpha d_k$，其中步长 $\alpha$ 的选择需严格保证迭代点不越出边界，即 $x_{k+1} &gt; 0$。&lt;/p&gt;
&lt;p&gt;障碍函数法：通过在目标函数中引入一个当迭代点靠近可行域边界时趋于无穷大的惩罚项，将带不等式约束的优化转化为一系列仅带等式约束的子问题。对于标准形式线性规划，采用对数障碍函数，将其转化为求解如下惩罚问题：&lt;/p&gt;
$$ \min B(x, \mu) = c^T x - \mu \sum_{j=1}^n \log(x_j) \\ \text{s.t.} A x = b $$&lt;p&gt;其中 $\mu &gt; 0$ 为控制惩罚强度的障碍参数。利用拉格朗日乘子法求解该问题，其最优性条件（即 KKT 条件）可导出如下非线性方程组：&lt;/p&gt;
$$ A x = b \\ A^T y + s = c \\ X S e = \mu e $$&lt;p&gt;其中 $X = \text{diag}(x)$，$S = \text{diag}(s)$ 分别为原始变量和对偶松弛变量构成的对角矩阵，$e$ 为全 1 向量。方程组的第三式正是被扰动的互补松弛条件。随着障碍参数 $\mu$ 连续趋于 0，该方程组的解轨迹严格定义了一条悬浮于可行域内部、连接多面体解析中心与最优极点的中心路径。&lt;/p&gt;
&lt;p&gt;仿射缩放法在几何上相当于给空间进行透视变换，把当前点附近的狭窄角落重塑为宽敞的中心，使得算法可以自由地向最优解方向迈出巨大步长而不至于撞向边界。障碍函数法则像是在多面体可行域的内壁上施加了排斥力场，强制搜索轨迹始终保持在多面体安全的内部深处，避免在表面折线上指数级游走。&lt;/p&gt;
&lt;h3 id="path-following-and-central-path"&gt;Path Following and Central Path&lt;/h3&gt;
&lt;p&gt;中心路径的严谨数学定义建立在对数障碍问题的 KKT 最优性条件之上。考虑带有惩罚参数 $\mu &gt; 0$ 的原始对数障碍问题：&lt;/p&gt;
$$ \min c^T x - \mu \sum_{j=1}^n \log(x_j) $$&lt;p&gt;
&lt;/p&gt;
$$ \text{s.t.} A x = b $$&lt;p&gt;构造拉格朗日函数 $L(x, y) = c^T x - \mu \sum \log(x_j) - y^T (A x - b)$。根据一阶最优性条件，对 $x$ 求偏导并令其为零，可得：&lt;/p&gt;
$$ c - \mu X^{-1} e - A^T y = 0 $$&lt;p&gt;其中 $X = \text{diag}(x)$ 且 $e$ 为全 1 向量。若我们定义对偶松弛变量向量为 $s = \mu X^{-1} e$，将其等价变形为 $X S e = \mu e$（其中 $S = \text{diag}(s)$），那么上述条件可与原始-对偶可行性条件共同重写为如下的扰动 KKT 系统：&lt;/p&gt;
$$ A x = b , x &gt; 0 $$&lt;p&gt;
&lt;/p&gt;
$$ A^T y + s = c , s &gt; 0 $$&lt;p&gt;
&lt;/p&gt;
$$ X S e = \mu e $$&lt;p&gt;对于任意确定的障碍参数 $\mu &gt; 0$，只要原问题与对偶问题的内部非空，该非线性方程组就存在唯一确定的解 $(x^*(\mu), y^*(\mu), s^*(\mu))$。随着 $\mu$ 在 $(0, +\infty)$ 内连续变化，这些解在多面体内部勾勒出一条连续平滑的曲线，即中心路径。&lt;/p&gt;
&lt;p&gt;在中心路径上，原问题目标值与对偶问题目标值之间的对偶间隙可以通过互补松弛计算：&lt;/p&gt;
$$ c^T x - b^T y = x^T s = e^T X S e = n \mu $$&lt;p&gt;其中 $n$ 为变量的维度。这一数学性质极为关键，它表明在中心路径上，对偶间隙严格等于 $n \mu$。随着 $\mu$ 连续趋于 0，对偶间隙也以绝对线性的速率收敛于 0，严格保证了路径的极点必定是原问题的全局最优解。&lt;/p&gt;
&lt;p&gt;几何直观：多面体的中心路径是一条悬浮在可行域深处、避开所有锋利棱角的平滑流线。当 $\mu \to +\infty$ 时，目标函数的权重被无穷大的惩罚项完全掩盖，路径的起点位于多面体的解析中心（即远离所有边界的绝对几何中心）；当 $\mu \to 0$ 时，惩罚项消失，路径的终点直指最优极点。路径追踪算法的作用在于，它不再基于多面体表面的局部梯度盲目前进，而是以这条全局最优的中心路径为导航参考线，使用牛顿法不断将迭代点拉回路径附近，稳妥且极为快速地顺流直下抵达最优解。&lt;/p&gt;
&lt;h3 id="potential-function-reduction-method"&gt;Potential Function Reduction Method&lt;/h3&gt;
&lt;p&gt;势函数缩减法：构造一个综合评估目标函数下降进度与点离边界安全距离的非线性势函数 $ \Phi(x, s)$。典型的原始-对偶势函数结构为：&lt;/p&gt;
$$ q \log(x^T s) - \sum \log(x_i s_i) $$&lt;p&gt;其中 $ q &gt; n$ 为超参数。算法在每次迭代中寻找一个代数搜索方向，使得该势函数能够保证实现一个常数级别的下降量。&lt;/p&gt;
&lt;p&gt;势函数可以被视作衡量当前系统势能的综合高度。公式中的第一项敦促算法尽快降低目标值间隙以逼近最优，第二项则警告算法必须时刻拉开与边界的距离以保持中心度。此方法在代数上为内点法的多项式时间复杂度提供了严密的分析框架，且在实现中赋予了算法选择巨大自由度。&lt;/p&gt;
&lt;h3 id="newtons-method-applications"&gt;Newton’s Method Applications&lt;/h3&gt;
&lt;p&gt;原始-对偶内点法直接从线性规划的 KKT 最优性条件出发，将其中的互补松弛条件替换为参数化的中心路径条件 $ X S e = \mu e$。算法将所有约束视为一个非线性方程组，并使用牛顿法对其进行一阶泰勒展开，求解如下线性方程组以获得迭代方向 $(\Delta x, \Delta y, \Delta s) $：&lt;/p&gt;
$$ A \Delta x = 0 \\ A^T \Delta y + \Delta s = 0 \\ S \Delta x + X \Delta s = - X S e + \sigma \mu e $$&lt;p&gt;其中 $ \sigma \in [0, 1]$ 为控制向心程度的中心化因子。&lt;/p&gt;
&lt;p&gt;几何直观：在高维度的空间中精确且非线性地沿着弯曲的中心路径前进在计算上是极其困难的。牛顿法的应用在代数上将复杂的非线性寻优操作化解为求解一系列简单的线性矩阵方程组；在几何上，它不断使用二次曲面抛物面来局部拟合当前的非线性地形。通过将原始空间与对偶空间结合在一起对称地求解，该方法达成了极其惊人的迭代收敛效率，构成了当今所有大规模商业优化求解器底层的核心算法框架。&lt;/p&gt;
&lt;h2 id="large-scale-decomposition"&gt;Large Scale Decomposition&lt;/h2&gt;
&lt;h3 id="column-generation-and-cutting-stock"&gt;Column Generation and Cutting Stock&lt;/h3&gt;
&lt;p&gt;列生成技术的本质是线性规划中单纯形法在变量维度极高场景下的动态实现机制。在大规模线性规划问题中，当变量总数（即约束矩阵的列数）远大于约束行数，且完整显式构造约束矩阵在计算存储或时间上不可行时，列生成算法基于Dantzig-Wolfe分解原理，不维护完整的约束矩阵，而是从一个包含少量可行变量（列）的初始可行基出发，在每次迭代中通过计算非基变量的检验数识别能够改善目标函数的变量，仅动态生成并加入这些具有负检验数（针对最小化问题）的列，直至不存在可改善目标的非基变量为止。&lt;/p&gt;
&lt;p&gt;在经典的一维切割问题（Cutting Stock Problem）中，问题可被数学化描述为：给定长度为 $L$ 的标准原纸卷，以及 $m$ 种客户需求的短纸卷，其长度分别为 $l_1, l_2, \dots, l_m$，对应需求数量 $d_1, d_2, \dots, d_m$，目标是最小化消耗的原纸卷总数。此处，每一种合法的“切割模式”被定义为一个非负整数向量 $\mathbf{a}_j = (a_{1j}, a_{2j}, \dots, a_{m j})^T $，其中 $a_{i j}$ 表示第 $j$ 种模式下切割出的第 $i$ 种短纸卷的数量，且满足约束 $\sum_{i=1}^m a_{i j} l_i \le L$。&lt;/p&gt;
&lt;p&gt;由于潜在的切割模式数量随需求种类 $m$ 呈指数级增长，直接枚举所有模式并构造完整线性规划模型不可行，因此列生成算法仅在主问题中保留少数初始可行切割模式，将主问题求解为线性规划松弛问题后得到对偶变量 $\mathbf{y} = (y_1, y_2, \dots, y_m)^T$，进而将寻找新的、能进一步节省原材的切割模式的任务转化为一个以对偶变量 $y_i$ 为价值系数的背包问题： $ \max \sum_{i=1}^m y_i a_i \\ \text{s.t.} \sum_{i=1}^m a_i l_i \le L, a_i \in \mathbb{N} $若该背包问题的最优目标值大于1，则对应切割模式的检验数为负，需将其加入主问题继续迭代；若最优目标值不大于1，则无更优模式，迭代终止。&lt;/p&gt;
&lt;h3 id="mp-rmp-and-pricing-problem"&gt;MP, RMP and Pricing Problem&lt;/h3&gt;
&lt;p&gt;主问题 (Master Problem, MP) 是包含了所有潜在指数级变量的完整线性规划模型。由于直接求解 MP 是不可行的，算法构造了限制主问题 (Restricted Master Problem, RMP)。&lt;/p&gt;
&lt;p&gt;限制主问题仅仅包含所有潜在变量的一个极小的子集。算法首先求解 RMP，得到当前受限状态下的最优原始解以及对应的对偶变量（影子价格）向量 $y$。&lt;/p&gt;
&lt;p&gt;子问题（Pricing Problem / Oracle)，负责回答一个代数问题：在所有尚未被引入 RMP 的变量中，是否存在检验数为负（以最小化问题为例）的列？子问题的目标函数通常被设定为最小化非基变量的检验数：&lt;/p&gt;
$$ \min \Delta_j = c_j - y^T A_j $$&lt;p&gt;如果子问题求得的最优目标值 $\Delta_j &lt; 0$，说明找到了一个有利可图的新列 $A_j$，将其加入 RMP 并重新求解；如果子问题的最优目标值 $\Delta_j \ge 0$，则数学上严格证明了当前 RMP 的最优解已经是全局完整 MP 的最优解，算法终止。这套机制在几何上相当于按需动态生成多面体的高维边界。&lt;/p&gt;
&lt;h3 id="dantzig-wolfe-decomposition"&gt;Dantzig-Wolfe Decomposition&lt;/h3&gt;
&lt;p&gt;Dantzig-Wolfe 分解法专门用于处理具有块对角结构并伴有少数耦合约束的大规模线性规划。假设系统包含若干个独立的子系统（块），但它们需要共享少数几种全局资源。&lt;/p&gt;
&lt;p&gt;数学表示为：最小化 $c_1^T x_1 + c_2^T x_2$，满足全局耦合约束 $A_1 x_1 + A_2 x_2 = b$，且各个子系统满足局部约束 $x_1 \in P_1, x_2 \in P_2$。&lt;/p&gt;
&lt;p&gt;利用 Minkowski-Weyl 定理，将独立的局部多面体 $P_1, P_2$ 用其极点（和极射线）的凸组合显式表示，代入全局耦合约束中。此时，原问题被彻底转化为一个以极点的权重为变量的主问题。由于极点数量庞大，算法在此层套用列生成技术：主问题分配全局资源并给出影子价格，各个子问题（相互独立，可并行求解）利用这些价格在其局部多面体 $P_i$ 内寻找最优极点生成新列。&lt;/p&gt;
&lt;p&gt;经济直观：企业总部（主问题）并不微观干预分公司的内部运作，而是通过发布内部资源价格（对偶乘子）来引导分公司。各分公司（子问题）根据该价格制定局部最优的生产方案（极点）并上报总部，总部再根据所有上报方案调配最优的权重组合。&lt;/p&gt;
&lt;h3 id="benders-decomposition"&gt;Benders Decomposition&lt;/h3&gt;
&lt;p&gt;如果说 Dantzig-Wolfe 分解针对的是“变量多、约束独立”的场景，那么 Benders 分解则是针对“包含复杂变量（如整数变量）或具有两阶段决策结构”的场景。它通过投影法，将复杂变量（主变量 $x$）和连续变量（子变量 $y$）解耦。&lt;/p&gt;
&lt;p&gt;考虑下述问题：&lt;/p&gt;
$$ \min c^T x + d^T y \\ \text{s.t.} A x + B y \ge b \\ x \in X, y \ge 0 $$&lt;p&gt;算法将主变量 $x$ 暂时固定为 $\overline{x}$，此时关于 $y$ 的问题变成了一个简单的线性规划（子问题）。求解子问题的对偶问题，如果对偶问题有界，说明固定 $x$ 的方案是可行的，并返回一个极点乘子，为主问题生成一个最优性割 (&amp;ldquo;OPT&amp;quot;imality Cut)，迫使主问题逼近真实目标值；如果对偶问题无界，说明固定 $x$ 导致原约束矛盾，子问题返回一个极射线乘子，为主问题生成一个可行性割 (Feasibility Cut)，永远切除这个非法的 $x$。&lt;/p&gt;
&lt;p&gt;主问题在其可行域内仅考虑 $x$ 并最小化目标函数的下界，通过不断收集子问题返回的割平面，主问题的可行域逐渐收缩，目标下界不断上升，直到与子问题求得的上界汇合。&lt;/p&gt;
&lt;p&gt;Benders 分解在几何上是在主变量的低维空间中，用一组动态生成的超平面从下方“托起”整个目标函数的可行区域。它是解决混合整数规划 (MILP)、Min-max 鲁棒优化以及双层规划问题的最强大的精确算法框架之一。&lt;/p&gt;
&lt;h1 id="integer-programming-and-combinatorial-optimization"&gt;Integer Programming and Combinatorial Optimization&lt;/h1&gt;
&lt;h2 id="linear-integer-programming-basics"&gt;Linear Integer Programming Basics&lt;/h2&gt;
&lt;h3 id="ilp-and-milp"&gt;ILP and MILP&lt;/h3&gt;
&lt;p&gt;当线性规划问题中的部分决策变量被严格限制为必须取整数值时，构成混合整数规划 (MILP)。其标准代数形式为：&lt;/p&gt;
$$ \max c^T x + d^T y \\ \text{s.t.} A x + B y \le b \\ x \in \mathbb{Z}_+^n, y \in \mathbb{R}_+^p $$&lt;p&gt;若 $p=0$，即所有决策变量均被严格限制为整数时，问题退化为纯线性整数规划 (ILP)。&lt;/p&gt;
&lt;p&gt;整数约束破坏了可行域的连续性与凸性，将其变为了多面体内部离散分布的格点集合。引入整数变量使得优化模型能够精确刻画不可分割的物理量（如机器台数、人员个数）以及逻辑层面的“是与否”互斥决策（利用 0-1 变量）。&lt;/p&gt;
&lt;h3 id="relaxed-problem-and-totally-unimodular-matrix"&gt;Relaxed Problem and Totally Unimodular Matrix&lt;/h3&gt;
&lt;p&gt;通过直接去除原整数规划问题中的整数约束 $x \in \mathbb{Z}_+^n$，将其放宽为连续的实数约束 $x \in \mathbb{R}_+^n$，所得到的新线性规划问题称为原问题的连续松弛问题。&lt;/p&gt;
&lt;p&gt;全幺模矩阵 (TUM) ：如果一个矩阵 A 的任意方阵子矩阵的行列式的值必然属于 ${-1, 0, 1}$，则称矩阵 A 为全幺模矩阵。&lt;/p&gt;
&lt;p&gt;核心定理：如果约束矩阵 A 是全幺模矩阵，且右端项向量 b 的所有分量均为整数，那么多面体 $P = {x : A x \le b, x \ge 0}$ 的所有基本可行解的坐标必全是整数。&lt;/p&gt;
&lt;p&gt;松弛问题为最大化整数规划提供了一个易于计算的理论上界。对于具有 TUM 结构的问题（如二分图匹配、最大流等网络流问题），我们可以完全无视其 NP 难的整数属性，直接采用多项式时间的单纯形法求解并获得最优整数解。&lt;/p&gt;
&lt;h2 id="exact-solution-algorithm-frameworks"&gt;Exact Solution Algorithm Frameworks&lt;/h2&gt;
&lt;h3 id="branch-and-bound-and-search-strategies"&gt;Branch and Bound and Search Strategies&lt;/h3&gt;
&lt;p&gt;分支定界法是求解整数规划的隐式枚举树搜索精确算法。其步骤为：首先求解当前节点的松弛问题。如果得到的松弛最优解 $x^*$ 中某个本应为整数的变量 $x_i$ 有小数部分（设 $x^*=v$），则以该变量作为分支点。构造两个互斥的子约束加入到原问题中：&lt;/p&gt;
$$ x_i \le \lfloor v \rfloor \quad \text{与} \quad x_i \ge \lceil(v) $$&lt;p&gt;这两个子约束将原可行域一分为二，生成两个子节点。同时，算法维护一个全局的已知最好整数解作为下界（对于最大化问题）。当某个节点的松弛最优目标值小于等于该下界，或者该节点无解，又或者该节点求得了整数解时，触发定界操作，直接剪除该分支及其所有子代。&lt;/p&gt;
&lt;p&gt;分支搜索策略：深度优先搜索 (DFS) 旨在快速发现可行的整数解，从而尽早建立高质量的全局下界用于后续大规模剪枝；最佳优先搜索 (Best-First) 则总是选择当前松弛目标值最大的节点进行分支，旨在以最少的探索节点数提供全局最优性证明。&lt;/p&gt;
&lt;p&gt;分支操作相当于使用平行于坐标轴的超平面，将包含非整数最优解的连续可行域空间分成两部分，以此强调整数约束。&lt;/p&gt;
&lt;h3 id="cutting-plane-method-and-separation-oracle"&gt;Cutting Plane Method and Separation Oracle&lt;/h3&gt;
&lt;p&gt;割平面法：求解松弛问题得到最优解 $x^*$ 后，寻找一个满足所有整数分量满足、但小数分量不满足的线性不等式：&lt;/p&gt;
$$ \alpha^T x \le \beta $$&lt;p&gt;将此不等式作为割平面加入到当前的线性规划模型中并重新求解。最经典的构造方法为 Gomory 分数割，对于单纯形表中产生小数最优值的某一行 $x_i + \sum a_{i j} x_j = b_i$，其割平面被严格构造为：&lt;/p&gt;
$$ \sum (a_{i j} - \lfloor a_{i j} \rfloor) x_j \ge b_i - \lfloor b_i \rfloor $$&lt;p&gt;分离 Oracle ：给定一个小数解 $x^*$，分离 Oracle 是一个特定的黑盒算法例程，它要么证明 $x^*$ 属于所有整数可行解的凸包内部，要么显式地输出一个能够将 $x^*$ 与该凸包严格分离的有效割平面。&lt;/p&gt;
&lt;p&gt;几何直观：不同于分支定界将整个空间切开，割平面法像是用一把刻刀，把连续多面体上那些不包含任何整数点的尖角一片一片削去。随着割平面的不断加入，外围的连续多面体会不断收缩，其边界最终会完美地紧贴在内部整数点构成的最紧凑凸包表面上。&lt;/p&gt;
&lt;h3 id="dynamic-programming"&gt;Dynamic Programming&lt;/h3&gt;
&lt;p&gt;基于 Bellman 最优性原理，将多阶段决策过程转化为一系列相互重叠的子问题。定义离散时间步 $t$，系统状态变量 $s_t$，决策变量 $x_t$，以及状态转移方程 $s_{t+1} = f(s_t, x_t)$。其核心是构造状态值函数 $V_t (s_t)$，并建立向后递推的 Bellman 方程：&lt;/p&gt;
$$ V_t (s_t) = \max_{x_t} { R(s_t, x_t) + V_{t+1}(f(s_t, x_t)) } $$&lt;p&gt;其中 $R(s_t, x_t)$ 为当前阶段采取特定决策的即期回报。&lt;/p&gt;
&lt;p&gt;如果把所有可能的决策序列看作一张庞大的树状网络，动态规划通过记忆化状态值，将庞大的无向树折叠成有向无环图 (DAG),从而将原问题指数级的时间复杂度变成了多项式级，是求解背包问题、网络最短路以及各类组合优化序列问题的强力方法。&lt;/p&gt;
&lt;h2 id="greedy-strategy-and-matroid-theory"&gt;Greedy Strategy and Matroid Theory&lt;/h2&gt;
&lt;h3 id="independence-system-and-rank-function"&gt;Independence System and Rank Function&lt;/h3&gt;
&lt;p&gt;设 E 是一个有限的基础元素集合，而 $\mathcal{I}$ 是 E 的某些子集构成的族。如果二元组 $(E, \mathcal{I})$ 满足以下两个公理，则称其为一个独立系统：
第一，空集属于 $\mathcal{I}$，即 $\emptyset \in \mathcal{I}$。
第二，遗传性 (Hereditary property)，即如果 $A \in \mathcal{I}$ 并且 $B \subset A$，那么必然有 $B \in \mathcal{I}$。&lt;/p&gt;
&lt;p&gt;在独立系统中，$\mathcal{I}$ 中的元素被称为独立集。对于 E 的任意子集 A，其秩函数 $r(A)$ 的数学定义为该子集中包含的最大独立集的基数：&lt;/p&gt;
$$ r(A) = \max { |X| : X \subset A, X \in \mathcal{I} } $$&lt;p&gt;独立系统是对线性代数中线性无关向量组，以及图论中无环边集（森林）的抽象概括。它提取了“局部不相关的组合依然不相关”这一逻辑。秩函数则度量了某个集合内部所包含的最高维度的有效信息量或结构容量，为后续探讨算法的近似性能提供了核心的代数工具。&lt;/p&gt;
&lt;h3 id="matroids-and-dual-systems"&gt;Matroids and Dual Systems&lt;/h3&gt;
&lt;p&gt;拟阵：如果一个独立系统 $M = (E, \mathcal{I})$ 额外满足交换公理 (Exchange property)，则称其为一个拟阵。交换公理表述为：对于任意两个独立集 $A, B \in \mathcal{I}$，如果 $|A| &gt; |B|$，那么必定存在一个元素 $x \in A \\ B$，使得：&lt;/p&gt;
$$ B \cup {x} \in \mathcal{I} $$&lt;p&gt;等价地，拟阵的特征性质也可以通过其秩函数的次模性 (Submodularity) 来定义，即对任意子集 A 和 B：&lt;/p&gt;
$$ r(A \cup B) + r(A \cap B) \le r(A) + r(B) $$&lt;p&gt;对偶独立系统：给定拟阵 $M = (E, \mathcal{I})$，其所有的极大独立集构成基族 $\mathcal{B}$。定义一个新的系统，其基族为原系统基的补集 $\mathcal{B}^* = {E \\ B : B \in \mathcal{B}}$，由该基族向下封闭生成的独立系统 $M^*$ 称为 M 的对偶拟阵。其对偶秩函数 $r^*$ 满足：&lt;/p&gt;
$$ r^*(A) = |A| + r(E \\ A) - r(E) $$&lt;p&gt;拟阵是组合优化中极其优美的结构，它描述了那些“元素间不存在长程复杂耦合”的完美系统。次模性反映了边际效益递减的经济学原理。对偶拟阵理论的作用极大，它允许我们将一个挑选元素构造结构的优化问题，转化为一个从全集中剔除多余元素的对偶问题（例如图的生成树与割集），从而直接复用现有的算法结论。&lt;/p&gt;
&lt;h3 id="best-in-algorithm-and-approximation"&gt;Best-In Algorithm and Approximation&lt;/h3&gt;
&lt;p&gt;贪心算法：给定独立系统 $(E, \mathcal{I})$ 和非负权重函数 $w: E \to \mathbb{R}_+$。首先将 E 中的元素按权重降序排列，使得 $w(e_1) \ge w(e_2) \ge ... \ge w(e_n)$。初始化独立集 $S = \emptyset$。接着从 $i = 1$ 到 n 遍历，如果 $S \cup {e_i} \in \mathcal{I}$，则将 $e_i$ 加入 S，否则跳过。最终输出极大独立集 S。&lt;/p&gt;
&lt;p&gt;在一般的独立系统中，Best-In 算法无法保证得到绝对最优解。其近似界限由系统的秩商 (Rank Quotient) q 严格决定。秩商定义为：&lt;/p&gt;
$$ q = \min_{A \subset E} ( \min_{X} { |X| : X \text{是 A 中的极大独立集} } ) / ( \max_{Y} { |Y| : Y \text{是 A 中的极大独立集} } ) $$&lt;p&gt;可以证明，Best-In 算法求得的贪心解 $S_{\text{greedy}}$ 与全局最优解 $S_{\operatorname{OPT}}$ 的总权重始终满足：&lt;/p&gt;
$$ w(S_{\mathrm{greedy}}) \ge q\,w(S_{\mathrm{OPT}}) $$&lt;p&gt;Best-In 是最符合人类直觉的自下而上的“目光短浅”策略。在任意复杂的离散结构中，计算秩商就能直接宣判贪心算法的理论最劣性能底线。更为深刻的是，当且仅当系统是拟阵时，$q = 1$，这构成了著名的 Edmonds 定理：拟阵是使得贪心算法必定能够求得全局最大权独立集的充分必要结构。&lt;/p&gt;
&lt;h3 id="worst-out-algorithm-and-optimality"&gt;Worst-Out Algorithm and Optimality&lt;/h3&gt;
&lt;p&gt;最劣剔除算法：将基础集合 E 中的元素按权重升序排列，使得 $w(e_1) \le w(e_2) \le ... \le w(e_n)$。初始化候选集 $S = E$。从 $i = 1$ 到 $n$ 遍历，如果从 S 中剔除 $e_i$ 后，剩余集合 $S \\ {e_i}$ 的秩等于 E 的总秩（即剔除该元素不破坏系统的最大跨度），则更新 $S = S \\ {e_i}$，否则保留 $e_i$。算法最终输出一个权值最大的基。&lt;/p&gt;
&lt;p&gt;在拟阵结构中，最劣剔除算法的最优性理论分析依赖于对偶拟阵。对原拟阵 M 执行寻找最大权基的 Worst-Out 算法，在代数执行逻辑上，等价于对其对偶拟阵 $M^*$ 执行寻找最大权独立集的 Best-In 算法。&lt;/p&gt;
&lt;p&gt;由于拟阵的对偶结构依然是拟阵，Worst-Out 在拟阵上的完美等价性不仅再次证明了其能达到全局最优，更揭示了组合优化中自下而上构造与自上而下破坏的对称性。&lt;/p&gt;
&lt;h1 id="approximation-algorithm-design-and-analysis"&gt;Approximation Algorithm Design and Analysis&lt;/h1&gt;
&lt;h2 id="theoretical-foundations-and-performance-evaluation"&gt;Theoretical Foundations and Performance Evaluation&lt;/h2&gt;
&lt;h3 id="approximation-ratio-and-integrality-gap"&gt;Approximation Ratio and Integrality Gap&lt;/h3&gt;
&lt;p&gt;近似比：对于一个最优化问题，设 $I$ 为问题的任意一个输入实例，$\operatorname{OPT}(I)$ 为该实例的全局最优目标函数值，而 $A(I)$ 为多项式时间近似算法 A 求解该实例得到的目标函数值。算法 A 的近似比 $\rho$ 定义为能够约束这两个值比值的最劣上界。为了统一表达形式，通常要求 $\rho \ge 1$：&lt;/p&gt;
$$ \max { (A(I)) / (\operatorname{OPT}(I)), (\operatorname{OPT}(I)) / (A(I)) } \le \rho $$&lt;p&gt;整数间隙：设一个整数规划问题的最优目标值为 $\operatorname{OPT}_\text{IP}$，其对应的线性规划连续松弛问题的最优目标值为 $\operatorname{OPT}_\text{LP}$。整数间隙定义为在所有可能的问题实例中，这两个目标值比值的最劣极限。对于最小化问题，其定义为：&lt;/p&gt;
$$ \text{Gap} = sup_I (\operatorname{OPT}_\text{IP}(I)) / (\operatorname{OPT}_\text{LP}(I)) $$&lt;p&gt;近似比度量了在最坏情况下，近似算法给出的解距离完美的全局最优解有多远，它为启发式算法提供了理论担保。而整数间隙则刻画了离散整数多面体与其连续松弛多面体边界之间的固有几何距离。&lt;/p&gt;
&lt;h3 id="polynomial-time-approximation-schemes-ptas-eptas-fptas-apx"&gt;Polynomial-Time Approximation Schemes (PTAS, EPTAS, FPTAS, APX)&lt;/h3&gt;
&lt;p&gt;在计算复杂性理论中，根据逼近最优解的能力与时间开销的权衡，近似算法被划分为严格的代数层级框架：&lt;/p&gt;
&lt;p&gt;PTAS (Polynomial-Time Approximation Scheme，多项式时间近似方案) ：对于任意给定的误差参数 $\epsilon &gt; 0$，算法能够给出一个 $(1+\epsilon)$-近似解，并且该算法的运行时间是问题输入规模 $n$ 的多项式。其时间复杂度的指数可以依赖于误差参数，例如 $O(n^{1/\epsilon})$。&lt;/p&gt;
&lt;p&gt;EPTAS (Efficient PTAS，高效多项式时间近似方案) ：在 PTAS 的基础上，进一步要求运行时间多项式的阶数绝对不能依赖于误差参数 $\epsilon$。其时间复杂度形式被严格限制为独立的分离形式 $O(f(1/\epsilon) n^c)$，其中 c 是绝对常数。&lt;/p&gt;
&lt;p&gt;FPTAS (Fully PTAS，完全多项式时间近似方案) 的数学定义：逼近理论的最高层级，要求算法的运行时间不仅是输入规模 $n$ 的多项式，同时还必须是 $1/\epsilon$ 的多项式。其时间复杂度形式例如 $O((1/\epsilon)^2 n^3)$。&lt;/p&gt;
&lt;p&gt;APX (Approximable，可近似类) 的数学定义：指代所有存在常数近似比（即 $\rho = c &gt; 1$ 的绝对常数）的多项式时间算法的最优化问题集合。如果在 APX 中存在被称为 APX-hard 的组合优化问题，则除非 P=NP 成立，否则该问题绝对不存在 PTAS。&lt;/p&gt;
&lt;p&gt;几何直观与作用：这一分类体系建立了衡量 NP 难问题可近似程度的绝对坐标系。PTAS 意味着我们在理论上可以无限逼近多面体的最优极点；FPTAS 则是近似算法领域的圣杯，它表明我们只需付出极其轻微的代数计算代价，就能换取几何空间的任意高精度逼近。相反，APX-hard 理论则划定了一道严格的数学鸿沟，它证明了在某些复杂的组合结构（如顶点覆盖问题）中，妄图无限逼近最优边界的行为在多项式时间内是根本不可能实现的。&lt;/p&gt;
&lt;h2 id="lp-based-approximation"&gt;LP-Based Approximation&lt;/h2&gt;
&lt;h3 id="relax-solve-round-framework"&gt;Relax-Solve-Round Framework&lt;/h3&gt;
&lt;p&gt;松弛-求解-舍入框架：考虑一个最小化整数规划问题 $\min { c^T x : x \in \mathcal{X}, x \in \mathbb{Z}^n }$，其全局最优解的目标值为 $\operatorname{OPT}_\text{IP}$。首先，将其整数约束放宽为连续实数约束，构造线性规划松弛问题 $\min { c^T x : x \in \mathcal{X}, x \in \mathbb{R}^n }$。由于约束条件的放宽，松弛问题的最优目标值 $\operatorname{OPT}_\text{LP}$ 必然满足：&lt;/p&gt;
$$ \operatorname{OPT}_\text{LP} \le \operatorname{OPT}_\text{IP} $$&lt;p&gt;使用多项式时间算法求解松弛问题得到小数最优解 $x^*$ 后，设计一个算法将 $x^*$ 舍入映射为一个满足原整数约束的可行解 $x^H$。如果能严格证明对于任意实例都有 $c^T x^H \le \rho \operatorname{OPT}_\text{LP}$，那么由于 $\operatorname{OPT}_\text{LP} \le \operatorname{OPT}_\text{IP}$，该算法必然是一个近似比为 $\rho$ 的近似算法。&lt;/p&gt;
&lt;p&gt;此框架将艰难的离散组合寻优转化为了两步走战略。第一步先在连续的多面体空间中找到绝对下界（最优小数极点），第二步基于这个极点的位置信息，有策略地将其投影或就近移动到周围的有效整数格点上。它是设计高性能近似算法的标准工业流水线。&lt;/p&gt;
&lt;h3 id="knapsack-and-vertex-cover-rounding"&gt;Knapsack and Vertex Cover Rounding&lt;/h3&gt;
&lt;p&gt;设图 $G=(V, E)$，点权为 $w_v$。其 LP 松弛模型为最小化 $\sum w_v x_v$，且对于每一条边 $(u, v) \in E$，满足 $x_u + x_v \ge 1$，其中 $x_v \ge 0$。求得最优小数解 $x^*$ 后，采用如下确定性舍入规则构造整数解 $\hat{x}$：&lt;/p&gt;
$$ \hat{x}_v = 1 \quad \text{if} \quad x_v^* \ge 1/2 \quad \text{else} \quad 0 $$&lt;p&gt;由于对于任意边 $(u, v)$ 有 $x_u^* + x_v^* \ge 1$，故两者中必有一个大于等于 $1/2$，从而 $\hat{x}_u + \hat{x}_v \ge 1$，严格保证了整数解的可行性。其目标值满足：&lt;/p&gt;
$$ \sum w_v \hat{x}_v \le \sum w_v (2 x_v^*) = 2 \operatorname{OPT}_\text{LP} \le 2 \operatorname{OPT}_\text{IP} $$&lt;p&gt;背包问题的 LP 舍入则利用贪心松弛解：将物品按性价比降序填入，直到某物品无法完整装入而进行边界分割。取该分割解的纯整数部分与被分割物品本身的价值中较大的一个，即可严格证明得到一个 2-近似算法。&lt;/p&gt;
&lt;p&gt;确定性舍入相当于在多面体空间中划定了一个硬性的几何阈值超平面（如 $x = 0.5$），将小数极点强行截断至最近的整数边界。这种方法直接利用了代数不等式的放大性质，给出了极其简洁优雅的 2-近似数学证明。&lt;/p&gt;
&lt;h3 id="upms-and-pseudo-forest-analysis"&gt;UPMS and Pseudo-forest Analysis&lt;/h3&gt;
&lt;p&gt;无关平行机器调度 (UPMS) 问题：需要将 $n$ 个工件分配给 $m$ 台不相关的机器，工件 $j$ 在机器 $i$ 上的处理时间为 $p_{i j}$，目标是最小化最大完工时间 C。其 LP 松弛问题包含指派约束 $\sum_i x_{i j} = 1$ 与负载约束 $\sum_j p_{i j} x_{i j} \le C$。&lt;/p&gt;
&lt;p&gt;伪森林：在这个二分图结构的 LP 模型中，任意一个基本可行解所对应的非零变量所构成的支撑图，必然是一个伪森林 (Pseudo-forest)。即该二分图中每一个连通分支最多只包含一个环。&lt;/p&gt;
&lt;p&gt;利用这一性质，我们可以将工件分为两类：树叶节点对应只被唯一指派到一台机器上的工件，它们天然是整数，直接保留；而处于环或路径上的工件，每台机器最多只会分担一个这样的小数工件。通过特定的二分匹配将其进行舍入，可以严格证明每台机器的负载最多增加一个工件的最大处理时间，从而得到一个 2-近似算法。&lt;/p&gt;
&lt;p&gt;几何直观与作用：伪森林分析是极其强大的多面体结构剖析技术。它表明，即便我们在高维空间中进行连续松弛，极点解的结构依然极其稀疏且具有极强的图论拓扑规律。大部分变量天然就是整数，只有极少数位于环上的变量处于纠缠的小数状态，极大降低了舍入的难度与最劣误差。&lt;/p&gt;
&lt;h3 id="primal-dual-for-set-cover-and-ufl"&gt;Primal-Dual for Set Cover and UFL&lt;/h3&gt;
&lt;p&gt;原始对偶近似算法不直接求解耗时的线性规划松弛，而是同时维护原始问题的不可行整数解 $x$ 与对偶问题的可行解 $y$。利用弱对偶定理，通过不断提升对偶变量 $y$，直到某个对偶约束达到等式（变为紧约束），此时将对应的原始变量 $x$ 设为 1（如选中某个集合或开设某个设施）。&lt;/p&gt;
&lt;p&gt;在集合覆盖问题 (Set Cover) 中，提升未覆盖元素 $e$ 的对偶变量 $y_e$，直到某个集合 S 的代价 $c_S$ 被填满，即 $\sum_{e \in S} y_e = c_S$。此时选中集合 S，并将其中包含的元素标记为已覆盖。如果所有元素最多属于 $f$ 个集合，该算法给出严格的 $f$-近似。&lt;/p&gt;
&lt;p&gt;在无容量限制设施选址问题 (UFL) 中，算法将所有未连接客户端的需求作为对偶变量同时均匀提升。当一个客户端累积的对偶资金足以支付到某设施的连接成本时，便将多余资金贡献给该设施的开设成本；当某设施累积的贡献足以完全覆盖其开设成本时，将其开设。著名的 Jain-Vazirani 算法基于此机制结合特定的时序清洗步骤，给出了严格的 3-近似算法。&lt;/p&gt;
&lt;p&gt;作用：原始对偶方法在经济学上相当于通过市场竞价机制自底向上地构建最优解。对偶变量就是客户的出价，约束的边界就是商品的成本天花板。它完全不需要在多面体内部进行任何浮点矩阵求解，而是纯粹在组合图论空间中模拟资金积累与支付的过程。这使得它比基于单纯形法或内点法的解法快上几个数量级，是组合优化中最深刻的纯组合近似技术。&lt;/p&gt;
&lt;h2 id="graph-and-tree-based-approximation-strategies"&gt;Graph and Tree-Based Approximation Strategies&lt;/h2&gt;
&lt;h3 id="steiner-tree-problem-and-metric-steiner-tree"&gt;Steiner Tree Problem and Metric Steiner Tree&lt;/h3&gt;
&lt;p&gt;斯坦纳树问题：给定一个无向连通图 $G=(V, E)$，边权函数 $w: E \to \mathbb{R}_+$，以及一个必须被连通的终端节点子集 $T \subset V$。目标是寻找到一个包含所有终端节点 $T$ 的最小权重连通子图（必然是树）。集合 $V \\ T$ 中的节点被称为斯坦纳点，算法可以选择性地包含它们以降低总连通代价。&lt;/p&gt;
&lt;p&gt;度量斯坦纳树：如果图 G 是完全图，且其边权严格满足三角不等式：对于任意节点 $u, v, k$，都有 $w(u, v) \le w(u, k) + w(k, v)$，则称该问题为度量斯坦纳树问题。&lt;/p&gt;
&lt;p&gt;在几何上，这相当于用最便宜的造价把几个孤立的城市连入同一个公路网。如果直接连接城市太贵，我们可以在荒野中建立枢纽交汇点（斯坦纳点）来抄近路。度量化是一种极其强大的理论归约工具，通过计算图的最短路闭包，我们可以将任何一般的斯坦纳树问题转化为度量斯坦纳树，从而将研究重点聚焦于度量空间的纯几何性质上。&lt;/p&gt;
&lt;h3 id="metric-tsp-and-shortest-hamiltonian-path"&gt;Metric TSP and Shortest Hamiltonian Path&lt;/h3&gt;
&lt;p&gt;度量旅行商问题 (Metric TSP)：在一个满足三角不等式的完全加权图中，寻找一条总权重最小的、且恰好访问每个顶点一次并最终回到起点的回路（即最小权 Hamilton 圈）。&lt;/p&gt;
&lt;p&gt;最短 Hamilton 路问题：与 TSP 类似，但不要求最后从终点返回起点，即寻找一条具有最小权重的生成路径。&lt;/p&gt;
&lt;p&gt;一般图的 TSP 问题在计算复杂性理论中是不可近似的（除非 P=NP）。但度量性质赋予了空间一个最基本的物理学法则：“绕路永远不会比直达更近”。这一几何属性构成了所有基于树的路由近似算法的绝对理论基石，使得我们可以利用最小生成树 (MST) 来严格界定最优巡回路线的理论下界。&lt;/p&gt;
&lt;h3 id="mst-based-short-cutting-strategy"&gt;MST-based Short-cutting Strategy&lt;/h3&gt;
&lt;p&gt;基于 MST 的截短/跳跃策略：设图的最小生成树为 T，最优 TSP 巡回路线为 OPT。首先，由于去掉 OPT 中的一条边即可得到一棵生成树，故必定有 $w(T) \le w(\operatorname{OPT})$。算法将 T 中的每一条边复制一份，构造出一个所有顶点度数均为偶数的多重图。在该多重图上寻找一条欧拉回路，随后沿着该回路遍历。当遇到曾经访问过的节点时，直接跳过该节点，沿着原图的边直达下一个未访问的节点，直至完成巡回。&lt;/p&gt;
&lt;p&gt;想象你正沿着一棵树的树干和树枝边缘行走，当你走到尽头准备原路折返时，你发现旁边有另一根未探索的树枝。由于三角不等式的存在，你直接“凌空跳跃”过去（截短）的代价，绝对小于你老老实实原路退回再走过去的代价。因为复制整棵树的总权重为 $2 w(T)$，跳跃又只会使得路径变短，从而给出了一个极其优雅且严格的 2-近似算法。&lt;/p&gt;
&lt;h3 id="eulerian-circuit-construction-and-fleurys-algorithm"&gt;Eulerian Circuit Construction and Fleury&amp;rsquo;s Algorithm&lt;/h3&gt;
&lt;p&gt;欧拉回路：一条包含图中所有边且每条边恰好出现一次的闭合游走。图存在欧拉回路的充分必要条件是图连通且所有顶点的度数均为偶数。&lt;/p&gt;
&lt;p&gt;Fleury 算法：从任意顶点出发，每次贪心地选择一条与当前顶点相连的边进行遍历，并将其从图中删除。其强制规则是：除非别无选择，否则绝不走割边。&lt;/p&gt;
&lt;h3 id="christofides-algorithm"&gt;Christofides Algorithm&lt;/h3&gt;
&lt;p&gt;Christofides 算法（1.5-近似）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第一步，计算原图的最小生成树 T。&lt;/li&gt;
&lt;li&gt;第二步，提取 T 中所有度数为奇数的顶点集合 O。由图论握手定理可知，集合 O 的基数 $|O|$ 必然是偶数。&lt;/li&gt;
&lt;li&gt;第三步，在由 O 导出的度量子图中，寻找一个最小权完美匹配 M。&lt;/li&gt;
&lt;li&gt;第四步，将生成树 T 的边集与匹配 M 的边集进行多重图合并 $T \cup M$。此时图中所有顶点的度数均被强行修正为偶数。&lt;/li&gt;
&lt;li&gt;第五步，提取欧拉回路并执行截短跳跃策略得到最终的 Hamilton 圈。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因为最优圈 $\operatorname{OPT}$ 在 O 上也构成了一条包含所有奇数点的路径，取其交替边即可将 $\operatorname{OPT}$ 拆分为两个完美匹配，故最小权完美匹配 M 的权重严格受界于 $w(M) \le 0.5 w(\operatorname{OPT})$。结合生成树的下界，算法总权重界定为：&lt;/p&gt;
$$ w(T \cup M) \le w(T) + w(M) \le 1.0 w(\operatorname{OPT}) + 0.5 w(\operatorname{OPT}) = 1.5 w(\operatorname{OPT}) $$&lt;p&gt;相比于简单粗暴地复制整棵树（耗资 1.0 OPT），Christofides 算法表现出了极高的精准度。它只针对那些奇数度节进行完美匹配。这一算法打破了长久以来的 2-近似屏障，其 1.5 的近似比在度量 TSP 领域保持了近半个世纪的最佳理论记录。&lt;/p&gt;
&lt;h3 id="fixed-endpoint-enumeration-and-matching-adjustment-strategy"&gt;Fixed-endpoint Enumeration and Matching Adjustment Strategy&lt;/h3&gt;
&lt;p&gt;固定端点的匹配调整策略：考虑带有明确起点 s 和终点 t 的最短 Hamilton 路问题。一条合法的 s-t 路径要求 s 和 t 的度数必须为奇数，而所有内部节点的度数必须为偶数。若从最小生成树 T 出发，设 T 中的奇数度节点集为 O。为满足端点奇偶性约束，构造全新的目标匹配点集 $O'$，其为 O 与端点集的对称差：&lt;/p&gt;
$$ O' = O \Delta {s, t} = (O \cup {s, t}) \\ (O \cap {s, t}) $$&lt;p&gt;随后在 $O'$ 上寻找最小权完美匹配 M，并合并 $T \cup M$ 以修正全局奇偶性。&lt;/p&gt;
&lt;p&gt;几何直观：如果将 TSP 回路视作一个闭合的橡胶圈，那么固定端点的路径就是一根两端暴露的绳子。匹配调整策略的代数对称差操作在拓扑结构上完美实现了这一目标：它故意避开或翻转两端点的修复逻辑，确保系统的内部节点全部被密封（偶数度），而两个指定的端点始终保持开放（奇数度）。这展示了 Christofides 框架在面对复杂拓扑边界条件时极强的代数拓展能力。&lt;/p&gt;
&lt;h2 id="bin-packing-approximation-theory"&gt;Bin Packing Approximation Theory&lt;/h2&gt;
&lt;h3 id="absolute-and-asymptotic-approximation-ratio"&gt;Absolute and Asymptotic Approximation Ratio&lt;/h3&gt;
&lt;p&gt;装箱问题是一个经典 NP-hard 问题。其目标是将一组大小给定的物品分配到数量不限、容量相同的箱子中，要求每个箱子内物品的总大小不超过箱子的容量，并且最小化所使用的箱子总数。&lt;/p&gt;
&lt;p&gt;绝对近似比 (Absolute Approximation Ratio)：对于所有的输入实例 I，算法 A 使用的箱子数 $A(I)$ 与最优解 $\operatorname{OPT}(I)$ 严格满足：&lt;/p&gt;
$$ A(I) \le \rho \operatorname{OPT}(I) $$&lt;p&gt;渐近近似比 (Asymptotic Approximation Ratio) 的数学定义：对于装箱问题，由于离散碎片的组合特性，绝对界限往往过于苛刻。渐近近似比关注的是当最优箱子数趋于无穷大时的算法性能。如果在存在某个常数 c 的情况下满足：&lt;/p&gt;
$$ A(I) \le \rho^{\infty} \operatorname{OPT}(I) + c $$&lt;p&gt;则称 $\rho^{\infty}$ 为渐近近似比。&lt;/p&gt;
&lt;p&gt;在装箱问题中，由于物理空间的不可分割性，即使是最完美的算法在边缘处理时也难免会浪费 1 到 2 个箱子的常数级空间。渐近近似比过滤掉了这些微小的常数加性扰动，真实且公允地刻画了算法在大规模工业实例（如集装箱装载、云计算资源分配）中的压缩效率。&lt;/p&gt;
&lt;h3 id="simple-heuristics-nf-ff-bf-wf-ffd"&gt;Simple Heuristics (NF, FF, BF, WF, FFD)&lt;/h3&gt;
&lt;p&gt;简单在线与离线启发式算法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Next Fit (NF)：仅维护一个当前打开的箱子。遍历物品，若能放入则放入；若不能，则永久关闭该箱子并开启一个新箱子。其渐近近似比为 2。&lt;/li&gt;
&lt;li&gt;First Fit (FF)：维护所有已打开的箱子序列。遍历物品，将其放入第一个能容纳它的箱子中。仅当所有箱子都装不下时才开新箱。渐近近似比为 1.7。&lt;/li&gt;
&lt;li&gt;Best Fit (BF)：遍历所有箱子，将物品放入能够容纳它且剩余空间最小的箱子中（即最紧密拟合）。渐近近似比为 1.7。&lt;/li&gt;
&lt;li&gt;Worst Fit (WF)：将物品放入当前剩余空间最大的箱子中，旨在平衡负载，但在装箱最小化目标下表现通常最劣。&lt;/li&gt;
&lt;li&gt;First Fit Decreasing (FFD)：一种离线算法。首先将所有物品按体积大小降序排列，随后执行 FF 算法。其渐近近似比为 11/9（约 1.22）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="amortization-and-weight-function-proof-techniques"&gt;Amortization and Weight Function Proof Techniques&lt;/h3&gt;
&lt;p&gt;均摊分析与权重函数：在证明装箱算法（如 FFD）的近似比时，单纯基于体积的界定是极度松弛的（例如，5 个体积为 0.51 的物品由于冲突必须占用 5 个箱子，但其真实总体积仅为 2.55）。
权重函数技术通过构造一个非线性的映射函数 $W(x)$，对体积为 $x$ 的物品进行重新“经济定价”。证明的核心在于两步：首先，证明算法 A 开启的箱子数受限于总权重，即 $A(I) \le \sum W(x_i)$；其次，证明在任何合法的单箱最优装载配置中，其内部物品的总权重永远有一个硬性上界 $\alpha$，从而推出 $\sum W(x_i) \le \alpha \operatorname{OPT}(I)$。&lt;/p&gt;
&lt;p&gt;权重函数相当于在代数上向那些“极其难装的尴尬尺寸”（例如大于 0.5 但略小于 1 的物品）征收了高昂的“空间惩罚税”。它量化了不同尺寸物品在组合几何空间中的相互排斥效应，是突破体积下界瓶颈、完成严密最劣性能分析的核心证明工具。&lt;/p&gt;
&lt;h3 id="harmonic-grouping-and-aptas"&gt;Harmonic Grouping and APTAS&lt;/h3&gt;
&lt;p&gt;由 Fernandez de la Vega 和 Lueker 提出的 APTAS 框架：对于任意给定的误差参数 $\epsilon &gt; 0$，首先将体积小于 $\epsilon$ 的物品归为“小物品”暂不考虑。
调和分组技术：将剩余的“大物品”按大小排序，并均分为 K 组。对于每一组内的物品，将其体积强制向上舍入为其所在组的最大体积。此时，连续的物品体积被离散化为了仅有 K 种常数个不同尺寸的代理物品。
由于尺寸种类是常数，代理实例可以通过整数规划或动态规划在多项式时间内求得绝对最优解。最后，将小物品通过贪心策略填入剩余缝隙中。&lt;/p&gt;
&lt;p&gt;其近似界限被严格证明为：
&lt;/p&gt;
$$ A(I) \le (1 + \epsilon) \operatorname{OPT}(I) + O(1/\epsilon^2) $$&lt;p&gt;连续的几何尺寸是导致组合爆炸的罪魁祸首。调和分组相当于对物品进行了一次略显悲观但极度降维的“阶梯化”截断。通过轻微牺牲常数级的箱子空间（即公式中的加性常数），算法将 NP 难的无限状态空间直接坍缩为了可精确计算的有限状态空间，在理论上实现了对最优解的任意精度逼近。&lt;/p&gt;
&lt;h3 id="configuration-lp-and-karmarkar-karp-algorithm"&gt;Configuration LP and Karmarkar-Karp Algorithm&lt;/h3&gt;
&lt;p&gt;构型线性规划的数学模型：由 Gilmore 和 Gomory 提出。设 $T$ 为所有合法的单箱装载构型集合（即每种构型 $t$ 描述了一个箱子内部可以同时容纳各种不同尺寸物品的具体数量向量）。设决策变量 $x_t \ge 0$ 表示采用构型 $t$ 的箱子数量。
LP 松弛模型为：最小化 $\sum_{t \in T} x_t$，约束条件为所有构型提供的物品数量必须覆盖原始需求。&lt;/p&gt;
&lt;p&gt;Karmarkar-Karp 算法：由于构型数量 T 呈指数级，算法采用延迟列生成技术 (Column Generation)，将寻找负检验数构型的子问题转化为一个背包问题，从而在多项式时间内解出 Configuration LP 的小数最优解。随后，结合一种极其精密的残差舍入技术，其最终使用的箱子数被证明为：&lt;/p&gt;
$$ A(I) \le \operatorname{OPT}(I) + O(\log^2 (\operatorname{OPT})) $$&lt;p&gt;Configuration LP 颠覆了“将物品分配给箱子”的传统视角，而是切换到了“为系统挑选预制模板”的宏观视角。这一公式中惊人的多项式对数级加性误差揭示了一个深邃的几何事实：装箱问题的构型多面体，其连续小数边界与离散整数顶点之间的缝隙（整数间隙 Integrality Gap）是极其微小的。Karmarkar-Karp 算法是装箱领域理论天花板级别的算法。&lt;/p&gt;
&lt;h1 id="online-algorithms"&gt;Online Algorithms&lt;/h1&gt;
&lt;h2 id="models--strategies"&gt;Models &amp;amp; Strategies&lt;/h2&gt;
&lt;h3 id="competitive-ratio"&gt;Competitive Ratio&lt;/h3&gt;
&lt;p&gt;在线算法的性能评估主要通过与离线最优解（OPT）比较来进行。假设 $A$ 是一个在线算法，对于任意输入序列 $\sigma$，记 $A(\sigma)$ 为算法 $A$ 产生的代价，$\operatorname{OPT}(\sigma)$ 为离线最优算法在知晓全局信息下的代价。如果存在常数 $c \ge 1$ 和 $\alpha$，使得对所有可能的输入序列 $\sigma$ 都满足：
&lt;/p&gt;
$$ A(\sigma) \le c \cdot \operatorname{OPT}(\sigma) + \alpha $$&lt;p&gt;
则称算法 $A$ 是 $c$-竞争的（$c$-competitive）。当 $\alpha = 0$ 时，称为严格 $c$-竞争。竞争比 $c$ 衡量了信息不完备对算法造成的理论最坏惩罚。&lt;/p&gt;
&lt;h3 id="online-vs-offline"&gt;Online vs Offline&lt;/h3&gt;
&lt;p&gt;离线问题的本质是在已知完整输入序列 $\sigma = (r_1, r_2, ..., r_n)$ 的前提下，寻找全局最优策略 $x^*$ 以最小化目标函数 $\min_{x \in X} f(x, \sigma)$。
而在在线问题中，决策变量 $x_t$ 必须在仅知晓局部历史信息 $(r_1, r_2, ..., r_t)$ 的时刻 $t$ 立即、不可撤销地做出。目标转变为在不确定的演化过程中控制累积代价：
&lt;/p&gt;
$$ \min \sum_{t=1}^n f_t (x_t, r_t) $$&lt;p&gt;
这种时间维度上的信息不对称性，构成了在线算法竞争比的理论下界。&lt;/p&gt;
&lt;h3 id="doubling--bidding"&gt;Doubling &amp;amp; Bidding&lt;/h3&gt;
&lt;p&gt;在面对未知目标值 $U$ 的在线搜索或竞拍问题时，倍增策略（Doubling Strategy）是控制最坏情况代价的核心数学工具。假设算法以序列 $B_i = 2^i$ $(i=0, 1, 2, ...)$ 递增搜索或竞拍阈值。当某次探测满足 $B_k \ge U$ 时算法停止。
该策略的累积代价为几何级数求和：
&lt;/p&gt;
$$ \sum_{i=0}^k 2^i = 2^{k+1} - 1 $$&lt;p&gt;
由于停止的前一步未能覆盖目标，必有 $2^{k-1} &lt; U$，从而可推导出 $2^{k+1} &lt; 4U$。因此，倍增策略在对 $U$ 毫无先验知识的情况下，将总代价严格界定在最优代价的 4 倍以内。&lt;/p&gt;
&lt;h3 id="ski-rental"&gt;Ski Rental&lt;/h3&gt;
&lt;p&gt;滑雪板租赁问题是在线决策中止损机制的经典数学模型。设每日租赁费为 $r=1$，一次性购买费为 $B$。令滑雪总天数为未知的 $d$。
离线最优（OPT）代价：若 $d \ge B$，则第 1 天购买，代价为 $B$；若 $d &lt; B$，则全程租赁，代价为 $d$。
在线算法的平衡策略设定为：前 $B-1$ 天选择租赁，若第 $B$ 天仍需滑雪则果断购买。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当 $d &lt; B$ 时，在线代价为 $d$，最优代价为 $d$，比值为 1。&lt;/li&gt;
&lt;li&gt;当 $d \ge B$ 时，在线代价为 $(B-1) + B = 2B - 1$，最优代价为 $B$。
因此，该策略在最坏情况下的竞争比严格收敛于：
$$ \lim_{B \to \infty} (2B - 1) / B = 2 $$&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="classic-problems"&gt;Classic Problems&lt;/h2&gt;
&lt;h3 id="paging--caching"&gt;Paging &amp;amp; Caching&lt;/h3&gt;
&lt;p&gt;分页或缓存替换问题探讨在多级存储体系中如何高效管理有限的存储资源。假设系统拥有一个容量为 $k$ 的快速缓存（Cache），以及一个包含 $N$ 个页面的慢速主存，其中 $|N| &gt; k$。系统面临一个未知的页面请求序列 $\sigma = (r_1, r_2, ..., r_n)$。
当请求的页面 $r_t$ 在缓存中时（命中，Cache Hit），代价为 0；当 $r_t$ 不在缓存中时（缺失，Page Fault），系统必须从主存将其调入缓存，代价为 1。如果此时缓存已满，在线算法必须在不可预知未来请求的前提下，选择一个缓存中的页面进行驱逐（Eviction）。问题的目标是最小化处理整个序列的总页面缺失次数。&lt;/p&gt;
&lt;p&gt;对于任何确定性缓存算法（如先进先出 FIFO、最近最少使用 LRU），其竞争比严格为 $k$。理论上的下界定理证明，对于任意给定的确定性在线缓存算法，恶意对抗者（Adversary）始终可以构造出一个请求序列，使得在线算法每次请求都发生缺失，而离线最优策略（如 Belady 的 MIN 算法）每 $k$ 次请求才缺失一次，从而形成 $k$ 的理论惩罚下界。&lt;/p&gt;
&lt;p&gt;为了突破这一确定性瓶颈，理论界引入了随机化机制。标记算法（Marking Algorithms）将请求序列划分为多个阶段，并在阶段初将所有页面标记为“未标记”。当发生缺失时，算法从“未标记”的页面中均匀随机地选择一个进行驱逐，并将新请求的页面设为“已标记”。通过势函数分析，标记算法的期望竞争比被证明为第 $k$ 个调和数：
&lt;/p&gt;
$$ H_k = \sum_{i=1}^k 1 / i \approx \ln k $$&lt;p&gt;
这一从线性 $O(k)$ 到对数级 $O(\log k)$ 的性能飞跃，展示了随机化在对抗恶劣输入模式时打破确定性下界的数学优势。&lt;/p&gt;
&lt;h3 id="k-server-problem"&gt;k-Server Problem&lt;/h3&gt;
&lt;p&gt;k-server 问题是在线度量空间调度领域的基石模型。设 $(M, d)$ 为一个度量空间，其中 $d(x, y)$ 为满足非负性、对称性和三角不等式的距离函数。系统中有 $k$ 个移动服务节点（Servers）初始分布在 $M$ 的某些点上。
给定一个随时间逐渐揭示的请求序列 $\sigma = (r_1, r_2, ..., r_n)$，其中每个请求 $r_t \in M$。对于每个请求，系统必须不可撤销地调度至少一个服务器移动到点 $r_t$ 进行响应。问题的优化目标是最小化所有 $k$ 个服务器移动的总距离之和。该模型可以广泛映射并泛化到磁盘调度、物流配送等高维动态决策场景。&lt;/p&gt;
&lt;p&gt;工作函数算法（Work Function Algorithm, WFA）是解决该问题的核心理论框架，其基于深度的动态规划思想。设构型 $C$ 为 $k$ 个服务器在度量空间中的一个多重集位置分布。定义工作函数 $W_t(C)$ 为：处理完前 $t$ 个请求后，使这 $k$ 个服务器最终停留在构型 $C$ 所需的离线最优总距离代价。&lt;/p&gt;
&lt;p&gt;在时刻 $t$，假设上一步的系统构型为 $C_{t-1}$，WFA 选择移动到一个必须包含请求位置 $r_t$ 的新构型 $C_t$，其决策准则是最小化以下复合目标式：
&lt;/p&gt;
$$ W_t (C_t) + d(C_{t-1}, C_t) $$&lt;p&gt;
该公式蕴含了深刻的平衡机制：$W_t (C_t)$ 项倾向于将系统拉向历史上的离线最优状态，而 $d(C_{t-1}, C_t)$ 项则作为贪心惩罚，限制了服务器为了追求历史最优而产生过度的盲目移动代价。&lt;/p&gt;
&lt;p&gt;经过严密推导，WFA 被证明在任何度量空间中都具有 $(2k-1)$ 的严格竞争比。然而，该领域著名的 k-server 猜想（k-server conjecture）提出，对于任何度量空间，都必然存在竞争比严格为 $k$ 的确定性在线算法。这一猜想至今仍然是理论计算机科学中的核心开放性问题。&lt;/p&gt;
&lt;h3 id="online-bin-packing"&gt;Online Bin Packing&lt;/h3&gt;
&lt;p&gt;设有序列物品体积 $w_t \in (0, 1]$ 逐一到达，目标是用最少的单位容量箱子将其完全装载。经典的 First Fit (FF) 算法具有 1.7 的渐近竞争比界限。
调和算法（Harmonic Algorithm）通过对体积进行离散化区间映射来优化性能。将区间 $(0, 1]$ 划分为 $M$ 个子区间 $I_j = (1/(j+1), 1/j]$，并为不同区间的物品分配专属的箱子类型，每个该类型的箱子固定装载 $j$ 个物品。当 $M \to \infty$ 时，其极限竞争比 $T_\infty$ 由以下级数给出：
&lt;/p&gt;
$$ T_\infty = \sum_{i=1}^\infty 1 / (t_i - 1) \approx 1.691 $$&lt;p&gt;
其中序列 $t_i$ 由非线性递推式 $t_1=2, t_{i+1} = t_i (t_i - 1) + 1$ 定义，为在线装箱问题提供了重要的理论上界。&lt;/p&gt;
&lt;h1 id="game-theory--mechanism-design"&gt;Game Theory &amp;amp; Mechanism Design&lt;/h1&gt;
&lt;h2 id="strategic-games--equilibrium"&gt;Strategic Games &amp;amp; Equilibrium&lt;/h2&gt;
&lt;h3 id="nash-equilibrium"&gt;Nash Equilibrium&lt;/h3&gt;
&lt;p&gt;策略型博弈可以形式化地表示为一个元组 $\Gamma = (N, (S_i)_{i \in N}, (u_i)_{i \in N})$，其中 $N = {1, 2, ..., n}$ 为参与者集合，$S_i$ 为参与者 $i$ 的纯策略空间，$u_i: S_1 \times ... \times S_n \to \mathbb{R}$ 为其效用函数。
在策略组合 $s = (s_1, ..., s_n)$ 中，若对任意参与者 $i$ 及其任意可选策略 $s_i' \in S_i$，均满足：
&lt;/p&gt;
$$ u_i (s_i^*, s_{-i}^*) \ge u_i (s_i', s_{-i}^*) $$&lt;p&gt;
则称策略组合 $s^*$ 为纯策略纳什均衡 (Pure Strategy Nash Equilibrium)。该公式严谨地表明，在给定其他参与者策略 $s_{-i}^*$ 不变的条件下，没有任何单方能够通过单方面偏离当前策略来提升自身效用。&lt;/p&gt;
&lt;h3 id="poa--pos"&gt;PoA &amp;amp; PoS&lt;/h3&gt;
&lt;p&gt;为了量化自私行为对系统全局效率的损害，理论计算机科学引入了无政府代价 (Price of Anarchy, PoA) 与稳定代价 (Price of Stability, PoS)。设 $E$ 为所有纳什均衡点的集合，$C(s)$ 为策略组合 $s$ 下的系统总社会成本，$\operatorname{OPT} = \min_{s} C(s)$ 为理想状态下的社会最优成本。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;无政府代价 (PoA)： 衡量最坏情况下的均衡效率，定义为：
$$ \text{PoA} = (\max_{s \in E} C(s)) / \operatorname{OPT} $$
经典的布雷斯悖论 (Braess&amp;rsquo;s Paradox) 在交通流分配模型中证明了增加一条零成本道路反而可能导致 PoA 大于 1，从而增加所有人的通行时间。&lt;/li&gt;
&lt;li&gt;稳定代价 (PoS)： 衡量最好情况下的均衡效率，定义为：
$$ \text{PoS} = (\min_{s \in E} C(s)) / \operatorname{OPT} $$
它代表了存在一个中心化机构进行初步引导时，系统能维持稳定所需的最低效率损耗。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="location--packing-games"&gt;Location &amp;amp; Packing Games&lt;/h3&gt;
&lt;p&gt;在设施选址博弈 (Facility Location Game) 中，参与者选择设施的位置以最小化自身到设施的距离代价。而在装箱博弈 (Bin Packing Game) 中，物品作为理性的参与者，自主选择进入哪个箱子，其目标通常是最小化分摊到的箱子成本。
假设箱子 $j$ 的成本为 $c_j$，放入其中的物品集合为 $B_j$，若采用均摊成本共享机制，则物品 $i \in B_j$ 的个体成本为 $(c_j) / (|B_j|)$。这类博弈模型深刻揭示了分布式系统中局部自私决策与全局资源优化之间的数学张力。&lt;/p&gt;
&lt;h2 id="mechanism-design--fair-division"&gt;Mechanism Design &amp;amp; Fair Division&lt;/h2&gt;
&lt;h3 id="vickrey-auction"&gt;Vickrey Auction&lt;/h3&gt;
&lt;p&gt;机制设计被誉为“逆向博弈论”。二价拍卖 (Vickrey 拍卖) 是解决单物品拍卖中信息不对称问题的理论基石。假设参与者 $i$ 对物品的真实估值为 $v_i$，其提交的报价为 $b_i$。
规则设定为：报价最高者 $i^* = \text{argmax}_i b_i$ 赢得物品，但只需支付第二高的报价 $p = \max_{j \ne i^*} b_j$。
在此机制下，参与者 $i$ 的准线性效用为：
$ u_i = \begin{cases}
v_i - p &amp;\text{若} i = i^*,
0 &amp;\text{否则}
\end{cases}$
通过数学分类讨论可以严格证明，无论其他人的报价如何，诚实报价 ($b_i = v_i$) 始终是每个参与者的占优策略 (Dominant Strategy)，这一性质被称为占优策略激励相容 (DSIC)。&lt;/p&gt;
&lt;h3 id="stable-matching"&gt;Stable Matching&lt;/h3&gt;
&lt;p&gt;稳定匹配问题探讨如何在两个不相交的集合（如学生与学校、求职者与公司）之间建立一一映射。设两集合为 $M$ 和 $W$，每个人对另一集合的成员有严格的偏好排序 $\succ$。
如果存在匹配 $\mu$，使得存在对 $(m, w) \notin \mu$，满足 $w \succ_m \mu(m)$ 且 $m \succ_w \mu(w)$，则称 $(m, w)$ 为一个阻断对 (Blocking Pair)。不存在阻断对的匹配即为稳定匹配。
Gale-Shapley 延迟接受算法通过迭代的“提议-拒绝”机制，在 $O(n^2)$ 步内必然收敛到一个稳定匹配。理论进一步证明，该算法产生的匹配对提议方集合始终是理论上最优的。&lt;/p&gt;
&lt;h3 id="cake-cutting"&gt;Cake Cutting&lt;/h3&gt;
&lt;p&gt;切蛋糕问题是研究异质可分资源公平分配的连续模型。设资源为区间 $X = [0, 1]$，参与者 $i$ 的估值测度为 $V_i$，满足 $V_i(X) = 1$ 且具备可加性。两个核心的公平性数学标准为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;比例公平 (Proportionality)： $V_i(A_i) \ge 1/n$，即每个人认为自己至少获得了总价值的 $1/n$。Fink 协议通过递归的“切分与选择”在有限步内实现此标准。&lt;/li&gt;
&lt;li&gt;无嫉妒性 (Envy-Freeness, EF)： 对于任意 $i, j$，满足：
$$ V_i (A_i) \ge V_i (A_j) $$
即没有任何人认为别人的份额比自己的好。经典的 Selfridge-Conway 算法通过引入“修剪”操作，给出了 $n=3$ 时无嫉妒分配的有限步代数解法。&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="reference"&gt;Reference&lt;/h1&gt;
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Sushidesu</title><link>https://cestfloraison.asia/friends/sushidesu/</link><pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/friends/sushidesu/</guid><description>&lt;p&gt;刚上大学军训的时候就认识 sushi 了，因为 sushi 的室友是我的高中好朋友。他们宿舍的关系特别好，是模范宿舍，所以我和他们宿舍的四个人都挺熟，和我自己宿舍的人不熟。&lt;/p&gt;
&lt;p&gt;sushi 很高，而且小帅。托模范宿舍的福，一起过过畅神的生日，一起去毕至居做过火锅。sushi 超算拿到奖金后还请我们吃了烤匠，非常好吃的烤鱼，值得再吃一次。&lt;/p&gt;
&lt;p&gt;本来报 HPC 短学期的时候还拉了另一个同学，结果他莫名其妙被刷了。幸运的是，sushi 是助教。从 sushi 那里寻得不少 HPC 的提示，问了许多问题，正经 cs 对各个基模的使用体验对我们这种非科班大有脾益。HPC 是大学以来数一数二的好课。&lt;/p&gt;
&lt;p&gt;等我有点基础，要向 sushi 老师进修吉他。&lt;/p&gt;</description></item><item><title>ZJU HPC 2026：实验个人解答</title><link>https://cestfloraison.asia/projects/zju-hpc-2026/</link><pubDate>Thu, 27 Aug 2026 12:00:00 +0800</pubDate><guid>https://cestfloraison.asia/projects/zju-hpc-2026/</guid><description>&lt;p&gt;好一场 Agent 大战！&lt;/p&gt;
&lt;p&gt;以下按 Lab 顺序记录每个实验的主要任务、原理与解法（实验原文档见
）。&lt;/p&gt;
&lt;h2 id="lab-1简单集群搭建"&gt;Lab 1：简单集群搭建&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：在 WSL2 中用 Docker 模拟 node01–node04 四节点 MiniCluster，从源码配置 OpenMPI、BLAS、HPL 软件栈，部署 NFS 共享文件系统与 Slurm 作业调度，最后用 HPL 基准测试评估集群浮点性能。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：本实验的核心是把一个分布式内存系统拆成四个相互协作的层次。MPI 负责进程间消息传递，NFS 提供统一的程序与数据路径，MUNGE 为 Slurm 节点认证，Slurm 则负责把作业分配给可用节点。HPL 最终求解稠密线性方程组&lt;/p&gt;
$$
A X = B,
$$&lt;p&gt;其中 \(A \in \mathbb{R}^{N \times N}\)。其主要计算是带部分选主元的 LU 分解，浮点操作量近似为&lt;/p&gt;
$$
F(N) \approx \frac{2}{3}N^3,
\qquad
\mathrm{GFLOPS}=\frac{F(N)}{T\times 10^9}.
$$&lt;p&gt;HPL 将矩阵按二维 block-cyclic 方式分布到 \(P\times Q\) 的 MPI 进程网格；\(P Q\) 必须等于 MPI rank 总数。面板分解、行交换和广播构成通信与同步开销，因此增加 rank 后加速不会线性增长。块大小 \(NB\) 同时影响 BLAS Level-3 矩阵乘的缓存复用和面板通信频率：过小会增加通信，过大则可能降低局部缓存效率。&lt;/p&gt;
&lt;p&gt;NFS 的作用不是参与数值计算，而是让所有节点看到相同的 &lt;code&gt;/cluster/shared&lt;/code&gt; 路径；Slurm 分配资源后由 &lt;code&gt;srun&lt;/code&gt; 启动 MPI rank，rank 再通过 OpenMPI 协作完成 HPL。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;源码编译 OpenMPI 4.1.6、参考 BLAS/CBLAS 与 HPL 2.3，静态链接进 &lt;code&gt;xhpl&lt;/code&gt;；&lt;code&gt;/etc/hosts&lt;/code&gt; 静态解析加 SSH 免密；&lt;/li&gt;
&lt;li&gt;node01 导出 &lt;code&gt;/cluster/shared&lt;/code&gt;，计算节点以 &lt;code&gt;nolock&lt;/code&gt; 挂载 NFS，跨节点读写一致；&lt;/li&gt;
&lt;li&gt;全节点统一 &lt;code&gt;munge.key&lt;/code&gt;，&lt;code&gt;slurm.conf&lt;/code&gt; 定义 debug 分区，&lt;code&gt;sbatch&lt;/code&gt; 加 &lt;code&gt;srun --mpi=pmix&lt;/code&gt; 启动 HPL；&lt;/li&gt;
&lt;li&gt;参数扫描：N=4000、NB=64、P×Q=4×2、8 rank 加 hwthread 绑定，22.03 GFLOPS；&lt;/li&gt;
&lt;li&gt;Bonus：更换 BLIS 数学库快 2.88x（59.05 GFLOPS）；另部署 CephFS 与 K3s 验证分布式存储与容器编排。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lab-2moe-的向量化计算"&gt;Lab 2：MoE 的向量化计算&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：在 Xeon Gold 5418Y 上实现并优化一个 DeepSeek-V3 风格的量化 MoE 层前向计算。并在 RISC-V 平台上实现 MoE 算子。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：对 token \(x_t\)，Router 先计算专家亲和度并选择 Top-\(K\) 专家：&lt;/p&gt;
$$
z_{t,e}=r_e^\top x_t,
\qquad
s_{t,e}=\sigma(z_{t,e})=\frac{1}{1+e^{-z_{t,e}}}.
$$&lt;p&gt;Top-\(K\) 的选择可以使用带专家偏置的 \(s_{t,e}+b_e\)，但最终混合权重仍由未加偏置的亲和度归一化：&lt;/p&gt;
$$
g_{t,e}=\frac{s_{t,e}}{\sum_{j\in\mathcal{S}_t}s_{t,j}},
\qquad |\mathcal{S}_t|=K.
$$&lt;p&gt;每个路由专家是一个 SwiGLU 前馈网络：&lt;/p&gt;
$$
\mathrm{FFN}_e(x)=W_d^{(e)}\left(\mathrm{SiLU}(W_g^{(e)}x)\odot W_u^{(e)}x\right),
$$&lt;p&gt;因此带共享专家的最终输出为&lt;/p&gt;
$$
y_t=x_t+\mathrm{FFN}_{\mathrm{shared}}(x_t)+
\sum_{e\in\mathcal{S}_t}g_{t,e}\mathrm{FFN}_e(x_t).
$$&lt;p&gt;W8A8 中，激活按 token 求尺度并量化为 INT8：&lt;/p&gt;
$$
s_{x,t}=\frac{\max_i|x_{t,i}|}{127},
\qquad
x_{q,t}=\operatorname{round}(x_t/s_{x,t}).
$$&lt;p&gt;整数点积在 INT32 中累加，再乘 \(s_Ws_{x,t}\) 反量化；SwiGLU 得到的 hidden 还要重新求 scale，才能执行 down 投影。Baseline 以 token 为外层循环，同一专家权重会被不同 token 重复读取，使矩阵乘退化为矩阵向量乘。以 S3 为例，专家权重总量约为 \(3DH\)，参考实现的权重流量和 MAC 数近似为&lt;/p&gt;
$$
B_{\mathrm{base}}=N(K+1)\cdot 3DH,
\qquad
C_{\mathrm{base}}=N(K+1)\cdot 3DH,
$$&lt;p&gt;算术强度约为 \(1\ \mathrm{MAC/byte}\)。按 expert 分组后，每个专家权重只需加载一次：&lt;/p&gt;
$$
B_{\mathrm{group}}=(E+1)\cdot 3DH,
\qquad
I_{\mathrm{group}}=\frac{C_{\mathrm{base}}}{B_{\mathrm{group}}}
\approx 37.65\ \mathrm{MAC/byte}.
$$&lt;p&gt;这解释了为什么 counting sort 和按专家处理 token 能显著加速多 token 场景：它们不改变数学结果，却把权重访问从反复穿过 LLC/L2 变成同一专家在缓存中的复用。单 token 场景则缺乏这种复用，更适合使用 VNNI；分组后的 token 小批次再交给 AMX-INT8 矩阵乘。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单 token 路径：AVX-512 VNNI &lt;code&gt;vpdpbusd&lt;/code&gt;，激活平移 +128 转无符号、预计算权重行和修正，OB=4 让工作集驻留 L1；&lt;/li&gt;
&lt;li&gt;多 token 路径：先完成 Router、Top-K 与量化，再 counting sort 按专家分组，同专家权重进 L2 复用（S3 即 2.68x）；&lt;/li&gt;
&lt;li&gt;分组后接 AMX-INT8 批量矩阵乘：&lt;code&gt;preprocess&lt;/code&gt; 预打包 VNNI 交错布局，按专家组 token 数 M 分派（M≤4 走 VNNI，M≥5 走 AMX）；&lt;/li&gt;
&lt;li&gt;端到端：Router 按 8 token 分块复用、一次扫描维护 Top-K、持久工作区免 malloc、量化与累加全部 AVX-512 化；&lt;/li&gt;
&lt;li&gt;线程自适应（S3 4 线程、S4 8 线程），AMX tile 配置按线程局部化；&lt;/li&gt;
&lt;li&gt;Bonus：迁移 RISC-V，RVV FMA 加速 Router，SpaceMiT IME tile 做专家矩阵乘；&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lab-3gdn-prefill-前向优化"&gt;Lab 3：GDN Prefill 前向优化&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：用 TileLang 在 H800 MIG 上实现 GDN（Gated DeltaNet）的 prefill 前向 kernel。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：GDN 将门控遗忘与 delta update 合并到状态矩阵 \(S_t\) 的递推中。单 token 形式为&lt;/p&gt;
$$
\bar S_t=\alpha_tS_{t-1},
\qquad
S_t=\bar S_t+\beta_t k_t^\top(v_t-k_t\bar S_t),
\qquad
o_t=q_tS_t.
$$&lt;p&gt;这种递推沿时间维存在依赖链，直接逐 token 执行会限制 GPU 并行度；若一次性计算 \(QK^\top\)，又会产生 \(O(L^2)\) 的中间矩阵。Chunk-wise 方法把序列切成 \(C=64\) 的块，在块内用矩阵乘，在块之间只传递状态。令 \(B=\operatorname{Diag}(\beta)\)、\(\Gamma=\operatorname{Diag}(\gamma)\)，其中门控前缀和在对数域计算，\(\gamma_{c,r}=\exp(g^{\mathrm{cumsum}}_{c,r})\)。对第 \(c\) 个 chunk，预计算的下三角逆矩阵 \(A\) 与中间量为&lt;/p&gt;
$$
A=\left(I+\operatorname{StrictLower}(B\Gamma KK^\top\Gamma^{-1})\right)^{-1},
$$$$
U=ABV,
\qquad
W=AB\Gamma K,
$$$$
S_{c+1}=\gamma_cS_c+\gamma_cK^\top\Gamma^{-1}(U-WS_c),
$$$$
O_c=\frac{1}{\sqrt{d_k}}
\left[\Gamma QS_c+\Gamma\operatorname{Lower}(QK^\top)\Gamma^{-1}(U-WS_c)\right].
$$&lt;p&gt;输出必须使用更新前的 \(S_c\)，所以实现时要先保存状态副本，再写入 \(S_{c+1}\)。原始 TileLang baseline 将 \(W\)、\(U\)、\(V_{\mathrm{new}}=U-WS_c\) 和 chunk 内 scores 分别写入 FP32 全局内存，并用五个 kernel 串行完成；主要代价不是理论 FLOP，而是中间张量的全局读写、kernel launch 和 scores 的标量点积。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;等价数学变换：\(V_{new} = AB(V − ΓKS_c)\)，结合律省一次矩阵乘，再按 A 的下三角结构裁剪无效乘加&lt;/li&gt;
&lt;li&gt;Kernel 融合：全序列 raw \(QK^T\) 一次加每 chunk fused kernel，state 驻留 shared memory&lt;/li&gt;
&lt;li&gt;Persistent kernel：一个 CTA 处理全部 chunk，launch 数从 5N 降到 2，A 用 cp.async 双缓冲预取&lt;/li&gt;
&lt;li&gt;Tensor Core：五次标量归约改为 &lt;code&gt;T.gemm&lt;/code&gt;（几何平均 14.89x），\(QK^T\) 融合进 persistent kernel、K 只加载一次&lt;/li&gt;
&lt;li&gt;无条件加载去掉 if 分支使编译器向量化（excessive sectors 47%→14%），Q/K 用 async_copy 做异步流水线&lt;/li&gt;
&lt;li&gt;VALUE_TILE 从 16 增大到 64/128/32 自适应派发，并去掉 FP32 中间缓冲（合计 2.02x）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lab-35昇腾算子开发与优化"&gt;Lab 3.5：昇腾算子开发与优化&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：在昇腾 910B4 NPU 上用 Ascend C 实现并优化 FusedAddRmsNorm 融合算子。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：FusedAddRmsNorm 对每个 batch 行 \(b\) 先做残差相加，再计算 RMS 归一化：&lt;/p&gt;
$$
R_b=x_b+\mathrm{residual}_b,
\qquad
\mathrm{rms}_b=\sqrt{\frac{1}{H}\sum_{i=0}^{H-1}R_{b,i}^2+\varepsilon},
$$$$
y_b=\frac{R_b}{\mathrm{rms}_b}\odot w,
\qquad
\mathrm{residual\_out}_b=R_b,
\qquad \varepsilon=10^{-6}.
$$&lt;p&gt;该算子同时读写四个 \(B\times H\) 张量，FP16 评测形状下每个元素大约需要 5 次基础浮点操作；以 \(B=1,H=1024\) 为例，读写量约 2 MiB、计算量约 1.31 MFLOP，算术强度约为&lt;/p&gt;
$$
I\approx\frac{1.31\ \mathrm{MFLOP}}{2\ \mathrm{MiB}}
\approx0.63\ \mathrm{FLOP/byte},
$$&lt;p&gt;因此它更接近访存与指令发射受限的逐元素算子，而不是矩阵计算受限。昇腾 910B 的 AIV 负责向量与元素级运算，MTE2 负责 GM→UB、MTE3 负责 UB→GM，Vector 单元只能处理 UB 中的数据。三条流水线本可重叠，但 baseline 在每行搬入、计算和搬出之间使用 &lt;code&gt;PIPE_ALL&lt;/code&gt;，把本可并行的 MTE2/V/MTE3 强制串行化；优化的关键就是扩大 chunk、减少队列 API 与全局同步，并用事件语义保留必要的数据依赖。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;去掉 CopyIn/Out 的 PIPE_ALL，交给 TQue 队列事件自动同步（快 34%）；&lt;/li&gt;
&lt;li&gt;批量 chunk 路径：多块 DataCopy 一次搬入、R 留在 UB、整个 chunk 只做一次 V→S 同步；&lt;/li&gt;
&lt;li&gt;rstd 标量化移出向量链；weight 拷贝移出关键路径；raw TBuf 加显式 SetFlag/WaitFlag 替代队列簿记；&lt;/li&gt;
&lt;li&gt;tiling：blockDim=32、rowsPerChunk=8 均衡负载，逐行向量操作合并为 chunk 宽发射。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lab-4amss-ncku-数值相对论程序优化"&gt;Lab 4：AMSS-NCKU 数值相对论程序优化&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：优化裁剪版 AMSS-NCKU 数值相对论程序（以引力波事件 GW250118 为背景的双黑洞并合模拟）的端到端运行时间。任务一在华为鲲鹏 920B（ARM）上优化 &lt;code&gt;TwoPunctureABE + ABE&lt;/code&gt;（30 个 MPI rank、演化 40 步），任务二在单卡 A100 &lt;code&gt;1g.10gb&lt;/code&gt; MIG 实例上优化 &lt;code&gt;TwoPunctureABE + ABEGPU&lt;/code&gt;（演化 100 步）；两条路径共享 TwoPuncture 初值阶段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：程序以 BSSN 形式改写爱因斯坦场方程，四阶中心差分做空间离散、四阶 Runge-Kutta 做时间推进，并在黑洞附近用 Patch 结构、cell-centered 布局的 AMR 逐层加密网格。设第 \(i\) 个匹配时刻、第 \(j\) 个坐标分量的参考值为 \(r^{\mathrm{ref}}_{i,j}\)、输出为 \(r^{\mathrm{out}}_{i,j}\)，令 \(d_{i,j}=\max\left(|r^{\mathrm{ref}}_{i,j}|,\ |r^{\mathrm{out}}_{i,j}|\right)\)，忽略过小项后剩余比较项集合为 \(\Omega\)，则&lt;/p&gt;
$$
\mathrm{RMS}=\sqrt{\frac{1}{|\Omega|}\sum_{(i,j)\in\Omega}\left(\frac{r^{\mathrm{out}}_{i,j}-r^{\mathrm{ref}}_{i,j}}{d_{i,j}}\right)^2}\le 0.1\%,
$$&lt;p&gt;同时 &lt;code&gt;bssn_constraint.dat&lt;/code&gt; 中 Grid Level 0 的约束量需满足&lt;/p&gt;
$$
\max_{t,\ c\in\{H,P_x,P_y,P_z\}}\left|C^{(0)}_c(t)\right|\le 2.0.
$$&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TwoPuncture 共享阶段：profiling 定位热点在 &lt;code&gt;relax&lt;/code&gt; 的矩阵装配、批量三对角求解与 &lt;code&gt;chebft_Zeros&lt;/code&gt; 的重复余弦变换；预打包 JFD 与列索引消除热循环间接访存、缓存 Chebyshev 余弦表、对相互独立的线做红黑 OpenMP 并行，基线约 290 s 一路降到约 27.8 s（Intel 16 线程，数据来自不同平台与迭代阶段，不能拼成单一加速比）；&lt;/li&gt;
&lt;li&gt;GPU 初值路径修正：&lt;code&gt;J_times_dv&lt;/code&gt; 的 GPU 分支直接 return，跳过了 CPU 路径的 &lt;code&gt;Derivatives_AB3&lt;/code&gt;，谱导数全为零，BiCGStab 残余从 1e-1 爆到 1e+107；补上一行调用后 34.4 s 与 CPU 相当，正式构建仍走验证过的 CPU OpenMP 路径，GPU 资源留给 BSSN 演化；&lt;/li&gt;
&lt;li&gt;任务一（鲲鹏 30 rank）：逐 rank profiling 发现“通信慢”实为 &lt;code&gt;global_interp&lt;/code&gt; 让少数 rank 成为 straggler；&lt;code&gt;DIST_INTERP&lt;/code&gt; 把插值点跨 rank 分片汇总、&lt;code&gt;LOADBAL&lt;/code&gt; 按 patch 点数重新分配，叠加 packed collective、余弦表与编译 flag（&lt;code&gt;-fno-tree-loop-distribute-patterns&lt;/code&gt;、&lt;code&gt;-ftree-loop-im&lt;/code&gt;），端到端 909.42 s 降到 408.915 s；&lt;/li&gt;
&lt;li&gt;任务一 &lt;code&gt;compute_rhs_bssn_&lt;/code&gt; 重写：whole-array 语句每次物化约 80 个三维中间数组（约 6.6 MB）反复进出 L1/L2；把 21 个 &lt;code&gt;fderivs&lt;/code&gt; 内联为 k 切片滚动窗口的平面子程序，42 个导数数组不再全量落盘，工作集压进 L2；gfortran 对显式循环与 whole-array 生成相同求和序，40 步全量 bit-exact，约 9.35 s/步降到 6.98 s/步，端到端 300.943 s（120 分满分）；&lt;/li&gt;
&lt;li&gt;任务二（A100 MIG）：stencil helper 移入 header 加 &lt;code&gt;__forceinline__&lt;/code&gt;（约 1266→1052 s）、&lt;code&gt;fh&lt;/code&gt; 反射系数保留 early return 的 branchless 化（→1007 s）；RHS 拆 interior/boundary 路径压寄存器压力、插值变量批处理、Sommerfeld 紧凑发射、prolong3 tap reuse 与 fused-z 插值（536.76 s）；interior 再改 staged path、六阶插值改固定节点 Lagrange 直接评价，最终 OJ 351.96 s、102.03 分，100 个轨迹点 RMS=0、Level-0 约束全部通过；&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lab-45int8-张量核模拟-fp64-gemm"&gt;Lab 4.5：INT8 张量核模拟 FP64 GEMM&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：在 H800 MIG 上用 INT8 Tensor Core 模拟 FP64 矩阵乘（4096³ 与 8192³），在 L2 相对误差达标的前提下优化端到端吞吐。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：FP64 有 53 位有效尾数，而单个 INT8 分量只能表示有限范围，因此把每个元素 \(x\) 按残差逐级分解为 \(S\) 个 INT8 分量。令 \(r_0=x\)，则&lt;/p&gt;
$$
s_0=\frac{X_{\max}}{127},
\qquad
q_i=\operatorname{round}(r_i/s_i),
\qquad
r_{i+1}=r_i-q_is_i,
\qquad
s_{i+1}=\frac{s_i}{254}.
$$&lt;p&gt;于是&lt;/p&gt;
$$
x\approx\sum_{i=0}^{S-1}q_is_i,
\qquad q_i\in[-127,127]\cap\mathbb{Z}.
$$&lt;p&gt;比例尺缩小 254 倍，是为了覆盖上一层舍入后留下的残差，同时避免 INT8 溢出。若 \(A,B\) 分别被分解为 \(A_q^{(i)}、B_q^{(j)}\)，则矩阵乘结果为&lt;/p&gt;
$$
\widetilde C=
\sum_{i=0}^{S-1}\sum_{j=0}^{S-1}
s_i^As_j^B\left(A_q^{(i)}B_q^{(j)}\right).
$$&lt;p&gt;括号内使用 INT8×INT8→INT32 Tensor Core GEMM，外层缩放和累加回到 FP64。朴素实现需要 \(S^2\) 个分量对，并且还要承担逐级量化、workspace 写回和 FP64 重组开销；因此 &lt;code&gt;splits&lt;/code&gt; 增大时会快速退化。实验后续把 mantissa bits 映射到 cuBLAS fixed-point emulation，由库内部融合量化、INT8 GEMM 和 FP64 重组，以减少 kernel launch 与中间结果搬运。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手写 &lt;code&gt;mma.sync&lt;/code&gt; 路径：逐级量化融合为单 kernel、共享内存转置、批量 FP64 重组、CUDA Graph、按反对角线裁剪低贡献 pair；&lt;/li&gt;
&lt;li&gt;量化与重组向量化（double4、int4）、重组首批直写免清零、批次扩容，非 GEMM 开销减半；&lt;/li&gt;
&lt;li&gt;最终改用 cuBLAS 13 fixed-point emulation：把 splits 映射为 mantissa bits，量化、GEMM、重组全部在库内完成。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lab-5gemma4-端到端推理优化"&gt;Lab 5：Gemma4 端到端推理优化&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;任务&lt;/strong&gt;：在 1/7 张 H800（10 GiB 显存）上基于 &lt;code&gt;hpc101_infer&lt;/code&gt; 框架优化 Gemma4-12B 推理：任务一用 GPTQ 把 BF16 权重量化到 INT4（ΔNLL &amp;lt; 0.16），任务二最大化端到端吞吐。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;原理&lt;/strong&gt;：Gemma4-12B 是 decoder-only Transformer，包含 48 个 layer、隐藏维度 \(D=3840\)、词表大小 \(V=262144\)。大多数层使用窗口 \(w=1024\) 的滑动注意力，少数层使用全局注意力；KV 头数少于 Query 头数，因此可以用分组查询注意力降低 KV Cache。W4A16 下，一个形状为 \(d_{out}\times d_{in}\) 的 Linear 主要占用&lt;/p&gt;
$$
M_{\mathrm{linear}}=\frac{d_{out}d_{in}}{2}
+2d_{out}\left\lceil\frac{d_{in}}{128}\right\rceil
\quad\mathrm{bytes},
$$&lt;p&gt;其中第一项是两个 INT4 code 打包进一个 byte，第二项是每 128 个输入通道保存的 FP16 scale。328 个量化 Linear 约占 5.24 GiB，tied BF16 embedding/output weight 占&lt;/p&gt;
$$
M_{\mathrm{embed}}=VD\times2
=2013265920\ \mathrm{bytes}\approx1.875\ \mathrm{GiB}.
$$&lt;p&gt;KV Cache 还会随 batch \(B\) 和序列长度 \(S\) 增长。若所有层都按 dense 上限分配，理论容量为&lt;/p&gt;
$$
M_{\mathrm{kv,dense}}=344064BS\quad\mathrm{bytes}.
$$&lt;p&gt;但 40 个滑窗层只需保存最近 \(w=1024\) 个 token，使用 ring buffer 后变为&lt;/p&gt;
$$
M_{\mathrm{kv,window}}=2\times2B\left[
40\times8\times256\times\min(S,1024)
+8\times1\times512\times S\right].
$$&lt;p&gt;任务一的 GPTQ 不是独立地对每个权重做 Round-to-Nearest，而是利用校准激活 \(X\in\mathbb{R}^{N\times d_{in}}\)，线性层重构误差的 Hessian 近似为&lt;/p&gt;
$$
H=\frac{2}{N}X^\top X.
$$&lt;p&gt;加入阻尼后令 \(H^{-1}=U^\top U\)，其中 \(U\) 是上三角 Cholesky 因子。量化第 \(j\) 列时，先计算归一化误差，再把误差传播到后续列：&lt;/p&gt;
$$
e_j=\frac{w_j-q_j}{U_{j,j}},
\qquad
W_{:,j+1:}\leftarrow W_{:,j+1:}-e_jU_{j,j+1:}.
$$&lt;p&gt;这使量化误差尽量抵消校准分布上的输出误差，而不只是最小化权重 MSE。任务二的 decode 则受另一个瓶颈支配：每一步要经过 328 个 Linear，参考实现先解包 INT4、反量化并物化 BF16 权重，再调用 &lt;code&gt;F.linear&lt;/code&gt;，真正的 GEMM 不足 CUDA 时间的 10%。因此优化重点依次转向 GEMV/dot 双路径、权重驻留 GPU、连续的 qweight 布局和显存安全的 KV 管理。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;解法&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPTQ：两次 Cholesky 得上三角因子 U，128 列 block 内即时传播误差、block 间用矩阵乘批量传播；dead column 保住权重，ΔNLL = 0.093；&lt;/li&gt;
&lt;li&gt;修 OOM：&lt;code&gt;.to()&lt;/code&gt; 守卫阻止权重回流 GPU；sliding 层 KV 只开 1024 ring buffer（省约 48%）；滑窗 prefill 只写尾部窗口；&lt;/li&gt;
&lt;li&gt;decode Triton 双路径：M≤8 走 GEMV（合并加载加 FP32 归约），M&amp;gt;8 走 &lt;code&gt;tl.dot&lt;/code&gt; Tensor Core；&lt;/li&gt;
&lt;li&gt;固化 autotune 胜者配置，冷启动编译从 104 个 kernel 降到 7 个（749.8s → 94.5s）；&lt;/li&gt;
&lt;li&gt;权重整体驻留 GPU 消除每步 H2D；qweight 转置成 K 连续布局后合并加载加 coalesced MMA，占用率 12.5%→31%。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Stanford CS234：Reinforcement Learning 课程简介与笔记</title><link>https://cestfloraison.asia/blog/stanford-cs234/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/stanford-cs234/</guid><description>&lt;p&gt;和西湖大学赵世钰老师的《强化学习的数学原理》相比，Stanford CS234 覆盖的内容更广。课程不仅涉及 PPO、DPO 等比较先进的 RL 算法，还介绍了 multi-armed bandit 这个 problem setting 下的一系列算法，涉及不少理论分析。本人没有看过课程录像，仅根据 Winter 2026 的 slides 过了一遍。slides 中每介绍完一块新内容，就会列出几个问题以供自查理解，这点不错。课程整体的质量也符合 Stanford 的招牌，包含必要的古典内容和前沿进展。&lt;/p&gt;
&lt;p&gt;用四个词概括 RL，或许是：&lt;strong&gt;Generalization&lt;/strong&gt;, &lt;strong&gt;Optimization&lt;/strong&gt;, &lt;strong&gt;Delayed outcome&lt;/strong&gt;, &lt;strong&gt;Exploration&lt;/strong&gt;。以下是笔者不成体系的一己之见，碍于水平比较零散。&lt;/p&gt;
&lt;h2 id="making-sequences-of-good-decisions-given-a-model-of-the-world"&gt;Making Sequences of Good Decisions Given a Model of the World&lt;/h2&gt;
&lt;p&gt;强化学习通过和环境交互进行训练。交互过程可建模为 &lt;strong&gt;Markov Process&lt;/strong&gt;：一个 entity 处在某个 state，依据某个 policy 做出某个 action，得到某个 reward。如果 model 已知（即我们知道这个世界的 dynamics 和 reward），在有限的 action space 和 state space 中，通过 &lt;strong&gt;Bellman Equation&lt;/strong&gt;，我们可以使用 &lt;strong&gt;policy iteration&lt;/strong&gt; 或 &lt;strong&gt;value iteration&lt;/strong&gt; 求出最优 policy。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Policy evaluation without known dynamics &amp;amp; reward models&lt;/strong&gt; 我们可以通过 empirical 的方法了解世界，即通过 Monte Carlo 采样 rollout 来构建 model。利用数据的不同方式可以导出 first-visit MC、every-visit MC 和 incremental MC。Temporal difference 是另一个伟大的发明，它重新定义了 value function 更新的目标 TD target，通过 bootstrap 和 sample 获得比 MC 更低的方差。由此又有 on-policy 和 off-policy 两种范式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluation of the quality of a policy estimation approach&lt;/strong&gt; 可以考虑 consistency、computational complexity、memory requirements、statistical efficiency 和 empirical accuracy。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Policy improvement&lt;/strong&gt; 为了平衡 exploration 和 exploitation，可以强行引入随机性，即 epsilon-greedy（和 P2P 中的 opportunistic sharing 机制很像）。这种简单的数学结构可以方便地分析理论性质。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;From tabular settings to function approximation&lt;/strong&gt; 有限的状态和行为可以列举，但当空间过大时，memory 和 efficiency 都会成为问题。既然要拟合某个未知的东西，那就引入神经网络来表示 policy 和 value，甚至 reward。于是可以引入优化领域的一系列操作，比如 policy gradient、Q-learning、EMA 等。其中有很多工程 trick，比如 baseline、experience replay 和 fixed target，用来提高训练的稳定性。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Advanced policy gradient methods&lt;/strong&gt; 梯度下降在参数空间中做，但值域空间中的变化是否剧烈，我们不得而知。PPO 引入 gradient clip，限制每一次变化的幅度，减少 performance collapse。也可以加入 adaptive KL penalty 来限制变化幅度。除此之外，还有一个 trick 叫做 GAE，可以在获取更多新数据之前做好几步 gradient steps，提高 data efficiency。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="imitation-learning"&gt;Imitation Learning&lt;/h2&gt;
&lt;p&gt;Input：without reward function。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Behavior cloning、Inverse RL、Apprenticeship learning via Inverse RL&lt;/strong&gt; 能否直接使用监督学习学到专家的 policy？能否自己构建出 reward？能否用 reward 生成一个好的 policy？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compounding errors&lt;/strong&gt; BC 的问题是 compounding errors，因为 model 只见过好数据，不知道怎么挽救失败的情形。DAGGER 的做法是记录下失败的情形，并问 teacher 应该怎么办，不过 teacher 也不一定知道。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Feature-based reward function&lt;/strong&gt; 要学习一个 reward function，那 reward 应该具有怎样的形式和性质呢？人们往往用 feature 的线性组合表示 reward，并在多个可能的 reward function 中选择熵最大的，因为这个 reward 对特定 demonstration 的 additional preference 最小。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Learning from human preference&lt;/strong&gt; human effort 处在 demonstrations only 和 constant teaching 之间。人们直接评价的噪声较大，但比较的噪声较小。我们可以采用 Bradley-Terry 先验，建模人们认为 option i &amp;gt; option j 的概率，以此做 preference learning。另一种方法是 direct preference optimization（DPO），用到一些恒等变换。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="multi-armed-bandits"&gt;Multi-Armed Bandits&lt;/h2&gt;
&lt;p&gt;已知 m 个 actions（arms），reward 是未知的概率分布。在每个时间 t，agent 选择动作 (a_t)，环境返回 (r_t)，目标是最大化 reward 的总和。和 Markov process 的区别是，没有状态转移，状态不影响未来状态，是单步反馈而不是序贯决策。考虑到问题本身具有复杂性，我们往往考虑 regret 而非 reward 本身。Bandits are a simpler place to see the ideas, but these ideas will extend to MDPs。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Epsilon-greedy methods&lt;/strong&gt; 会得到 linear regret。实际上，explore forever 和 explore never 都会得到 linear total regret，能否进一步得到 sublinear regret 呢？Regret 的 lower bound 分为 problem-independent 和 problem-dependent，后者往往和 gap Δ_a 以及不同 arm 的 distribution 的 KL 散度有关。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimism under uncertainty&lt;/strong&gt; 选择那些可能具有高价值的动作，不仅考虑当前动作的价值，还考虑这个动作的潜力。这样做的结果是，要么得到 high reward，要么 learn something，不会两头落空。Upper confidence bound（UCB）对 sub-Gaussian 随机变量给出潜力的乐观上界，然后采取 greedy 策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bayesian regret&lt;/strong&gt; 给 reward 一个先验（prior over the unknown parameters），然后通过观测更新先验分布的参数。比如对于 Bernoulli 分布，可以假设其先验为 Beta 分布。融入到 RL 中，有 PSRL（NeurIPS 2013，ICML 2018）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probability matching / Thompson sampling&lt;/strong&gt; 根据某个动作是最优动作的概率来选取动作。Thompson sampling 是 probability matching 的经典实现：先根据已有数据构造未知参数或价值函数的后验分布，然后从后验中采样一个可能的模型或参数，再选择在这个采样模型下最优的动作。这种方式在 contextual multi-armed bandits 问题中表现得很好。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probably approximately correct（PAC）&lt;/strong&gt; 以至少 (1-delta) 的概率选择一个 (epsilon)-optimal action，界是关于问题超参数的多项式。第一次听到还是在 Stat-ML 里。经典的算法比如 MBIE-EB。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="monte-carlo-tree-search"&gt;Monte Carlo Tree Search&lt;/h2&gt;
&lt;p&gt;MCTS 的核心思想是：不必先求出整个 state space 上的最优 policy，而是在当前真实状态下，用额外的局部计算来做一个更好的当前动作选择。它从当前状态作为 root 建立搜索树，通过多次模拟、扩展和回传，不断改进对当前动作的价值估计，最后选择搜索树中最有希望的动作。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Simple Monte Carlo search&lt;/strong&gt; 对每个候选 action，从当前状态出发模拟很多条 trajectory，然后用平均 return 估计这个 action 的好坏，最后选择平均 return 最高的 action。它可以看成只对当前状态做一步 policy improvement；缺点是 simulation policy 通常固定，而且没有充分复用不同模拟之间的树结构信息。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expectimax tree&lt;/strong&gt; 如果有完整的 MDP model，可以从当前状态向前展开搜索树，系统地考虑 action 和随机 next state，从而更精确地评估当前动作。但是 expectimax tree 的规模会随 horizon 指数增长，所以在大状态空间、长 horizon 或复杂游戏中很快不可行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monte Carlo tree search&lt;/strong&gt; 用 sampling 替代完整展开。它不是穷举所有可能分支，而是反复从 root 出发进行模拟，每次只访问搜索树中的一部分路径，然后根据模拟结果更新树上的统计量。这样可以把计算资源集中在更有希望的分支上，是一种 selective best-first search。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;基本流程&lt;/strong&gt; 包括 selection、expansion、simulation/evaluation 和 backup，分别负责选择路径、加入新节点、估计新节点价值，以及反向更新祖先节点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upper Confidence Tree（UCT）search&lt;/strong&gt; UCT 是 MCTS 的经典版本，借用 multi-armed bandit 中的 UCB 思想，把搜索树中每一个需要选择动作的节点都看成一个 bandit problem。它同时考虑当前平均表现和探索不足程度，从而平衡 &lt;strong&gt;exploitation&lt;/strong&gt; 和 &lt;strong&gt;exploration&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;适用场景&lt;/strong&gt; 通常是状态空间很大、动作空间相对较小、horizon 较长的问题。它适合在当前状态附近做高质量局部规划；如果动作空间特别大，branching factor 仍然会成为瓶颈。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="alphago--alphazero-and-neural-network-guided-mcts"&gt;AlphaGo / AlphaZero and Neural-Network-Guided MCTS&lt;/h2&gt;
&lt;p&gt;AlphaGo / AlphaZero 的核心思想是把 neural network 的泛化能力和 MCTS 的局部搜索能力结合起来。围棋这样的游戏规则明确，但状态空间和搜索空间巨大，传统 brute-force game-tree search 很难成功。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Policy-value neural network&lt;/strong&gt; 给搜索提供 prior 和 value estimate。对一个棋盘状态，它同时输出 policy prior（网络认为哪些动作更可能好）和 value estimate（网络估计当前局面对当前玩家有多有利）；前者指导搜索优先探索哪些动作，后者评估叶子节点，避免每次都必须模拟到终局。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PUCT selection&lt;/strong&gt; AlphaZero 的搜索受到 UCT 启发，使用 PUCT。它同时考虑搜索树中已有的平均价值、神经网络给出的动作先验，以及该动作目前被访问的次数，因此会优先探索表现好或有潜力但搜索次数还不够多的动作。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repeat many times&lt;/strong&gt; 对同一个当前局面，AlphaZero 会重复很多次 selection、expansion/evaluation 和 backup。重复次数越多，根节点下各个动作的访问次数越能反映搜索后的偏好；最后实际落子时，根据 MCTS 搜索后的根节点访问次数形成最终策略。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Self-play&lt;/strong&gt; AlphaZero 通过 self-play 生成训练数据。每一步都先运行 MCTS 得到更强的 root policy，然后根据这个 policy 选择动作，直到游戏结束并得到胜负结果。这样一局棋可以产生很多训练样本，而且对手总是和自己水平接近，训练过程自然形成一种 curriculum learning。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关键 components&lt;/strong&gt; self-play、strategic computation、selective best-first search、power of averaging、local computation，以及不断学习和更新 heuristics。&lt;/li&gt;
&lt;li&gt;它不是纯 model-free RL，也不是纯 tree search，而是把 learned heuristics 和 online planning 合在一起。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>朋辈辅学这一年</title><link>https://cestfloraison.asia/jottings/peer-tutoring-this-year/</link><pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/jottings/peer-tutoring-this-year/</guid><description>&lt;p&gt;一年级的时候，因为几门数学基础课学得早，加之我很享受帮助他人，于是帮校学生会里认识的许多同学义务答疑了许多题目。彼时我基本不管课内在教什么。为了应付考试，我就靠别人问我的问题来判断现在上课上到哪里了，通过答疑复习，顺便认识新朋友。到了二年级初，我看到云峰学园发了招募朋辈辅学教练的通知，心动。一则，朋辈辅学这件事对我来说是享受，选择微积分也是因为微积分备课最方便，几乎不用动脑子，想偷点懒。二则，有丰厚的志愿者小时数报酬。我还想在二年级冲一个标兵，左想右想还是志愿服务标兵最有可能拿。于是我便报了名，但过了好久都没有收到通过的短信，我还有点懊恼，以为自己被筛了。后来收到了通过的短信，很高兴。&lt;/p&gt;
&lt;p&gt;秋冬学期的第一节课来了二十几个同学。该怎么上课呢？我懒得做 slides，也坚持认为数学这门课需要板书展示思考过程，所以就拿了平板投屏。本人字还不错，所以笔记写出来挺美观。那个时候，我会抄几个题目在平板上，课前发到群里，但我并不做这些题，而是临场现挂，毕竟现挂的时候最真实，做不出来的时候是怎么想的，为什么想到，都有迹可循。不过后来挂了一次黑板后有点尴尬，于是在课前我会先瞄一眼解答，还是水平不足导致的。一开始的时候，上课的难度和速度都挺难把握，来听课的人也越来越少，其实有一点点失落。不过期中前学园要求办一个模拟冲刺的直播，我记得那一次我讲满了两个小时，有一百多个同学看过回放，甚至还有人钉钉私戳问我平时线下什么时候开课。谢谢这位同学的正反馈！我感觉受到了认可。后来上课的同学逐渐收敛，但每次都来的几个同学都很认真，这鼓励我认真对待朋辈辅学这件事。随着期末的临近，我自己的课业也越来越繁忙，找题目又是一件需要花时间的事情，坦白说越到后面越敷衍，有一点对不起这些认真的同学们。&lt;/p&gt;
&lt;p&gt;上课来，下课走，大家互相之间也不认识。不过有一回北教被占用，约教室的同学约了东六的教室，但是没有预约成功。当时现场聚集了好些同学堵在走廊上，后来协调，有的班找到了教室，但我的班没有。有四个同学来了还没走，我想来都来了要不聊会儿天，刚好彼时接近选课，于是就推荐了一些好课，并借此机会加了几个同学的微信。后来我惊喜的发现，其中竟然有云峰十佳大学生，还不止一个，让我赚到了。我始终觉得 personal bond 特别重要，是良好的沟通，合作，辅学的前提，而且只需要付出一点真心就可以建立一段不错的关系，很划算。这些可爱的小朋友们也让我体会到我的付出没有白费，没有他们我或许坚持不下来周周辅学。&lt;/p&gt;
&lt;p&gt;到了期末，秋冬 35 学分火烧眉毛所以结束的有点潦草。其中最有趣的是批模拟卷。一共七十多份卷子，一个人批需要花好些时间，我觉得批卷子是一个娱乐活动，于是拉了两个好朋友一起来批卷子。在凛冽的寒风里，我们三个人上午去迎新跑，然后去听了小提琴艺术之门的汇报演出。下午去参加趣味运动会，顺便在西操的凳子上把卷子排开流水线批卷子，直到六点钟才批完，刚好去看新年狂欢夜。&lt;/p&gt;
&lt;p&gt;到了春夏，我继续报名朋辈辅学。没想到这次没有人报名教练，但是有一百多个人报了微积分的朋辈辅学。回想秋冬的时候，期末卷还是 6 个人一起组的卷，到了春夏竟如此肃杀。组织的同学问我，要不要一个人开两个班，好叭只能同意，一周上四个小时确实有点地狱，不过好处是可以拿双倍的志愿者小时数。第一次课来了好多好多人，每个时段都来了几十个人，好壮观。到了春夏，我打算改变方式，采用板书。可惜每次借的教室只有一个小小的白板，而不是像东教大教室那样的大黑板。或许是因为这个学期选了数院的专业课，老师写满四个大黑板非常美丽，所以自己也想尝试。此外，我把课程要讲的题目和解答都事先抄在纸上，不敢像上个学期那样现挂了。不过随着时间推移，准备得也越来越不充分，来上课的人也越来越少，最终每个时段只有十几个人。虽然如此，但加起来不还有三十个人吗，比秋冬的时候多好多，所以我挺知足。周六晚上和周日早上讲同样的内容，所以周日早上讲得总是比周六晚上要好，可怜我们周六的同学了。&lt;/p&gt;
&lt;p&gt;和秋冬一样，留下来认真听的其实只有个位数的同学，但他们的正反馈实在给予我莫大的动力。有一天下了超级大的雨，我都不想出门了，最后到教室的时候浑身湿透，但还是来了好几个同学，让我颇感动。在老师的位置上，看到下面的人都在看电脑或者看手机，确实很心寒，需要一定的承受能力才能不崩溃。我的选择是我一般不看下面的同学在干什么，我管自己把想讲的东西讲好便是。其实这也是对有良心的老师的考验，如何让自己讲的东西吸引人，不拖沓，让同学们来听你讲课。体验过老师的角色后，对教学这个活动确实会多一些理解。&lt;/p&gt;
&lt;p&gt;要求一个人周末的某两个时段总是有空非常困难，像我这样不打竞赛的大闲人，也有一次因为想去看 crush 的演出所以没法上课，于是恳求好朋友代一次课。不过后来的剧情走向十分诡异：好朋友说她忘记什么是曲线积分曲面积分了，于是好朋友又摇来了她的男朋友来上课，哈哈。以及，期中和期末的模拟卷都是我组织出的。我想给同学分一点志愿者小时数，于是我和好朋友说我们分工组卷，平分志愿者小时数叭。期中仿照去年的卷子出了一份很相似的。期末的时候，组织的同学和我说最好不要和历年卷太相似。难不成是说我期中出简单了，我心想。刚好那一周受到重创，所以我花了一节自控课出了一份颇有水平的卷子，难度比较高。发给同学看，同学说这卷子有人能走出两个大题算炸单。后来不知道今年云峰的期末模拟做的怎么样，感觉组织者有点虎头蛇尾。春夏的期末，夏七周因为六级冲掉了，夏八周最终也没有开课，所以夏六周反而是最后一节课，彼时我并不知道。最后期末结束的潦草，本来还想加几个同学的微信来着。&lt;/p&gt;
&lt;p&gt;考试周中途听说微积分出得很难，看了卷子果然不简单。其实我挺反对数理基础课出得难，尤其是玩技巧。会计算积分，知道概念不就好了吗。我理想中的微积分应该是具有工程导向的，把后续会用到的一些东西，比如凸优化，梯度下降，矩阵求导，融合到课程内容中，一方面让同学们在学到这个知识的时候明白这些东西将来会如何被使用，另一方面给同学们开拓眼界。我有做这方面的尝试，讲过凸分析，数值积分，还在小测里介绍过自己研究的 meanflow，实际上就是多元函数求导，但是碍于时间和水平，做得远远不够。或许这样的尝试也有点科研导向，不适合想要速通课程的大家。&lt;/p&gt;
&lt;p&gt;坐在同一个教室里，大家的诉求各有不同。有的人想要扎扎实实学会这门课，有的人想速通补天，多快好省的拿到好绩点，有的人想拓宽眼界。通过课上讲的这么几个题目，能起到多大的作用呢？我逐渐发现，真想要提升成绩，需要你对他的情况有足够的了解，需要你知道他哪里不会，哪里没想通。换言之，只有在一个人身上花很多的心思，才有可能真正帮助到她。我一个人又能帮到几个人呢？我只能尽力，对于我觉得有礼貌的上进的同学，我就力所能及的帮一些。对于我喜欢的，欣赏的同学，一两个，我花很多的时间和心思在他们身上。或许能起到一些作用叭！&lt;/p&gt;
&lt;p&gt;回顾这一年，朋辈辅学这件事，大部分时候自己还是有一点敷衍。在这个时代，知识的讲授或许已经不那么重要，重要的是什么呢？品味，眼界，视野？别想那么多，认识到新朋友们，享受帮助别人的快乐，感受年轻人的活力。就这样叭！&lt;/p&gt;</description></item><item><title>工科向点集拓扑习题整理</title><link>https://cestfloraison.asia/blog/point-set-topology-exercises/</link><pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/point-set-topology-exercises/</guid><description>
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;高帆叔叔是神！！！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;选点集拓扑当跨专业！北大强基面试时，白发苍苍的老爷爷问我你对什么方向感兴趣。当时什么都不懂的我说对拓扑感兴趣。老师问，那你学过吗，我说暂时没有，然后老师推荐了一本俄罗斯人写的拓扑讲义。后来阴差阳错来浙读了工科，直到二年级才终于学上了拓扑，也算是完成了高中的夙愿！&lt;/p&gt;
&lt;p&gt;完整详尽的知识梳理已有前辈给出：
。&lt;/p&gt;
&lt;p&gt;工学的特点是重视经验，不重证明。前辈们说每周至少要额外花四个小时学习点集拓扑，笔者囿于各种杂事，在完成回家作业之外就没有额外花过时间，导致期中考试时只能意会证明的大体思路但很难用严谨的语言书写过程。复习后，点集拓扑的概念笔者已然大致清晰，但在做题时仍常常没有思路。因此，从做题的角度出发，笔者分模块&lt;strong&gt;重新整理了课后习题、上课笔记和期中试题&lt;/strong&gt;，对有难度的题目给出了比较详细的证明。哪里不清楚，就写一写证明，目的是理解所谓的 main idea 和证明的动机。&lt;/p&gt;
&lt;p&gt;模块如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Problems with product topology&lt;/strong&gt;：固定某个参考点，构造 finitely many 集合是一种很常见的手法；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Problems with Separation Axiom&lt;/strong&gt;：明白 T0、T1、T2、T3、T4、regular、normal 之间的关系，以及它们各自针对的对象；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Problems with countable, separable, compact&lt;/strong&gt;：理解 1st/2nd countable、separable、Lindelöf、sequential compact、closed and bounded 之间的关系；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Problems with connectivity and continuous mapping&lt;/strong&gt;：通过构造连续映射说明 countable、open、closed 之间的联系；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;杂题&lt;/strong&gt;：考验人类智慧！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;时间实在有限。Munkres 教材上的第 13、16、17、18、19、20、23、24、25、26、27、28、29、30、31、32 章的一些章后习题全部放在杂题中，没有再进行分类整理。&lt;/p&gt;
&lt;p&gt;点集拓扑给我的感觉是，**要么根据层层叠叠的定义在 open 和 closed 之间来回推导，要么尝试构造 countable 的对象，要么利用连续映射建立不同拓扑之间的联系。**所以，基本功就是熟悉各个概念，以及有自信能独立推导出概念之间的简单关系。需要巧思的部分（比如 sequential compact ⇒ compact、Urysohn lemma）本人力有所不逮。在此基础上，熟悉一些常用的引理可以培养一些直觉，虽然在拓扑中最好不要直接相信直觉。上课讲过很多引理，很多我也无法独立复写。兵临城下，还是回归基础叭。&lt;/p&gt;
&lt;h2 id="product-topology"&gt;Product Topology&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Product topology exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-1_hu_b41344d3f1cf79b5.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-1_hu_a083167a2b6670d5.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-1_hu_db59eeb21cb67940.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-1_hu_b41344d3f1cf79b5.webp"
width="760"
height="331"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Product topology exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-2_hu_b1a4836894f02279.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-2_hu_b3aaa1250fb6123e.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-2_hu_23ff107e83bf76b.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-2_hu_b1a4836894f02279.webp"
width="760"
height="401"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Product topology exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-3_hu_3139eee58ead151d.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-3_hu_8cc635b907bd6eaf.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-3_hu_1bd0e21c6bdc78b.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-3_hu_3139eee58ead151d.webp"
width="760"
height="249"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Product topology exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-4_hu_72c82fce0abda0ed.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-4_hu_d6cc1f01983fcd76.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-4_hu_5d168d4c289d01f0.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-4_hu_72c82fce0abda0ed.webp"
width="760"
height="277"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Product topology exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-5_hu_6d987d8bea60300e.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-5_hu_ed61a8f96da98d37.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-5_hu_96fad47baf159128.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/product-topology-5_hu_6d987d8bea60300e.webp"
width="760"
height="341"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="separation-axiom"&gt;Separation Axiom&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Separation axiom exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-1_hu_42489ab2a17d8256.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-1_hu_8a77b12391edba96.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-1_hu_9bcdb15a7b85dc9e.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-1_hu_42489ab2a17d8256.webp"
width="760"
height="430"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Separation axiom exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-2_hu_b7182a4cdff164aa.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-2_hu_ccbac95d6d5eaf23.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-2_hu_611912adfe54a72c.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-2_hu_b7182a4cdff164aa.webp"
width="760"
height="431"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Separation axiom exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-3_hu_b9addff0c9044b62.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-3_hu_24d502707ac635fe.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-3_hu_88bd6ac661da4596.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-3_hu_b9addff0c9044b62.webp"
width="760"
height="95"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Separation axiom exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-4_hu_d9b4f29af1869213.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-4_hu_a720652fceb5300b.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-4_hu_6e7860924addcd9c.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/separation-axiom-4_hu_d9b4f29af1869213.webp"
width="760"
height="216"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="countable-separable-compact"&gt;Countable, Separable, Compact&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Countability and compactness exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-1_hu_a8641251c068b8d.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-1_hu_3ab8e30d757781c8.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-1_hu_80b5d02f7e03a392.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-1_hu_a8641251c068b8d.webp"
width="760"
height="430"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Countability and compactness exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-2_hu_ae86587674e10a1b.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-2_hu_7081dada7df405be.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-2_hu_c40639596860e6b2.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-2_hu_ae86587674e10a1b.webp"
width="760"
height="429"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Countability and compactness exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-3_hu_ebd056b7b08a72bf.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-3_hu_4c8bea288aa004e7.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-3_hu_2c7406ebae186e47.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-3_hu_ebd056b7b08a72bf.webp"
width="760"
height="216"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Countability and compactness exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-4_hu_3b5e1e2201561331.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-4_hu_578977d89880244b.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-4_hu_5898586048ab3229.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-4_hu_3b5e1e2201561331.webp"
width="760"
height="399"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Countability and compactness exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-5_hu_3bb4a6b542073a86.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-5_hu_523adf371b66c346.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-5_hu_47d4fdcedc8ba244.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/countable-compact-5_hu_3bb4a6b542073a86.webp"
width="760"
height="217"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="connectivity-and-continuous-mapping"&gt;Connectivity and Continuous Mapping&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Connectivity and continuous mapping exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-1_hu_83f599a67207d225.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-1_hu_6190dbd8d47dad2a.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-1_hu_4cfb8c931d5a44f5.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-1_hu_83f599a67207d225.webp"
width="760"
height="431"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Connectivity and continuous mapping exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-2_hu_17acfabe7f20169f.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-2_hu_a205623a23142e8f.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-2_hu_13e2fa4395635ca9.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/connectivity-2_hu_17acfabe7f20169f.webp"
width="760"
height="401"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="杂题"&gt;杂题&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Miscellaneous exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-1_hu_7869103f9304272f.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-1_hu_df2d838f74ef0da2.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-1_hu_7f42e0e473b02105.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-1_hu_7869103f9304272f.webp"
width="760"
height="469"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Miscellaneous exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-2_hu_4c8193de10b1939a.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-2_hu_40f5999844949b2d.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-2_hu_56016fddf31e093c.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-2_hu_4c8193de10b1939a.webp"
width="760"
height="458"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Miscellaneous exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-3_hu_f5269954cb46924d.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-3_hu_756cc7adf1bd6616.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-3_hu_fe464a23ff805bc3.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-3_hu_f5269954cb46924d.webp"
width="760"
height="461"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Miscellaneous exercises"
srcset="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-4_hu_5e94d5ad58e297ea.webp 320w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-4_hu_f38c258e99517204.webp 480w, https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-4_hu_3eccef74df576c9a.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/point-set-topology-exercises/miscellaneous-4_hu_5e94d5ad58e297ea.webp"
width="760"
height="309"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>【数理逻辑】课程笔记与体验</title><link>https://cestfloraison.asia/blog/mathematical-logic-course-notes/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/mathematical-logic-course-notes/</guid><description>&lt;p&gt;本来数理逻辑由计算机学院和哲学学院双聘教授廖备水老师授课（很神秘的头衔），但25-26夏廖老师太忙，于是实际授课老师为洪峥怡老师。本学期没有任何课前测，洪老师看起来很年轻的样子，对点到也比较宽容，相信年轻老师给分也会宽宽容容的。&lt;/p&gt;
&lt;p&gt;数理逻辑是一门系统性很强的课程，具有不低的本质难度，但比浮躁繁杂的工科课程学起来舒服。配套教材为 Michael L. O&amp;rsquo;Leary - A First Course in Mathematical Logic and Set Theory，就算上课完全听不懂，也可以参照这本教材自学。课程主要内容为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;命题逻辑&lt;/strong&gt;：证明规则，证明方法，可靠性，完备性；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;一阶逻辑&lt;/strong&gt;：证明规则，一阶逻辑元理论（结构，模型，解释，可靠性，完备性等）；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;模态逻辑&lt;/strong&gt;：作为补充，不作为考试内容；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;笔者以为，元理论之外的内容，首要是厘清&lt;strong&gt;语义&lt;/strong&gt;（semantics）和&lt;strong&gt;语法&lt;/strong&gt;（syntax）两条主线。关于元理论，最终目标是&lt;strong&gt;可靠性&lt;/strong&gt;（soundness）和&lt;strong&gt;完备性&lt;/strong&gt;（completeness），则可以反复多次阅读理解证明的 main idea，适当放过技术性的细节，最终可以读懂。恰好笔者这个学期还修读点集拓扑，这两门的研究对象隐隐有一些共通之处，神奇而有趣。&lt;/p&gt;
&lt;p&gt;考试形式为8个选择题，3个简答题考察概念，4个形式证明题，3个综合题。&lt;/p&gt;
&lt;p&gt;以往关于数理逻辑的资源较少。笔者先提供个人的笔记，如若有空还会补充一些习题。&lt;strong&gt;希望以后对逻辑感兴趣的同学可以放心大胆地选这门课&lt;/strong&gt;！&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="数理逻辑课程笔记配图 1"
srcset="https://cestfloraison.asia/blog/mathematical-logic-course-notes/yqpy1fzz_hu_f4f4c532f1408f69.webp 320w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/yqpy1fzz_hu_b5cc1197874ef0d0.webp 480w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/yqpy1fzz_hu_f88206a15c525d4b.webp 593w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/mathematical-logic-course-notes/yqpy1fzz_hu_f4f4c532f1408f69.webp"
width="593"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="数理逻辑课程笔记配图 2"
srcset="https://cestfloraison.asia/blog/mathematical-logic-course-notes/qmmkhhut_hu_6f729df311a9e0b.webp 320w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/qmmkhhut_hu_d202b844c15a98a6.webp 480w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/qmmkhhut_hu_2647a7a22cfd0eb6.webp 604w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/mathematical-logic-course-notes/qmmkhhut_hu_6f729df311a9e0b.webp"
width="604"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="数理逻辑课程笔记配图 3"
srcset="https://cestfloraison.asia/blog/mathematical-logic-course-notes/lqj2burz_hu_286a2ed1ab65337c.webp 320w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/lqj2burz_hu_b955a6b5695a4978.webp 480w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/lqj2burz_hu_f21834e212bfac5c.webp 671w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/mathematical-logic-course-notes/lqj2burz_hu_286a2ed1ab65337c.webp"
width="671"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="数理逻辑课程笔记配图 4"
srcset="https://cestfloraison.asia/blog/mathematical-logic-course-notes/al0vsr2n_hu_a9e3d23d06626b5d.webp 320w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/al0vsr2n_hu_167afc1182ddbc56.webp 480w, https://cestfloraison.asia/blog/mathematical-logic-course-notes/al0vsr2n_hu_fcf5822bcd22a6f2.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://cestfloraison.asia/blog/mathematical-logic-course-notes/al0vsr2n_hu_a9e3d23d06626b5d.webp"
width="760"
height="521"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Communication Compelxity and its Application in Estimation</title><link>https://cestfloraison.asia/blog/communication-complexity-estimation/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/communication-complexity-estimation/</guid><description>&lt;div style="width: 100%; margin: 2rem 0;"&gt;
&lt;iframe src="https://cestfloraison.asia/pdfs/communication-complexity-estimation.pdf" title="Communication Compelxity and its Application in Estimation" style="display: block; width: 100%; height: 80vh; min-height: 720px; border: 1px solid rgba(100, 116, 139, 0.25); border-radius: 0.75rem; background: #f8fafc;" loading="lazy"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Minimax lower bounds: Le Cam and Fano</title><link>https://cestfloraison.asia/blog/minimax-lower-bounds/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://cestfloraison.asia/blog/minimax-lower-bounds/</guid><description>&lt;div style="width: 100%; margin: 2rem 0;"&gt;
&lt;iframe src="https://cestfloraison.asia/pdfs/minimax-lower-bounds-le-cam-fano.pdf" title="Minimax lower bounds: Le Cam and Fano" style="display: block; width: 100%; height: 80vh; min-height: 720px; border: 1px solid rgba(100, 116, 139, 0.25); border-radius: 0.75rem; background: #f8fafc;" loading="lazy"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item></channel></rss>