<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Optimization on Echo的技术博客</title><link>https://cybersecurityerial.github.io/echo_blog/tags/optimization/</link><description>Recent content in Optimization on Echo的技术博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://cybersecurityerial.github.io/echo_blog/tags/optimization/index.xml" rel="self" type="application/rss+xml"/><item><title>LLM Theory 杂谈：我也不知道主题是什么，一些零碎的insight</title><link>https://cybersecurityerial.github.io/echo_blog/posts/llm-theory-notes-probability-and-weighting/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0800</pubDate><guid>https://cybersecurityerial.github.io/echo_blog/posts/llm-theory-notes-probability-and-weighting/</guid><description>&lt;h2 id="softmax"&gt;softmax&lt;/h2&gt;
&lt;p&gt;softmax的好处：平滑，稳定，和为1可以保证output的范数有界。如果和小于1就会让norm趋向0，因为自迭代系统会跌入局部吸引子（一个动力系统的insight）。&lt;/p&gt;
&lt;p&gt;softmax本身就是sigmod的高维版本。soft本身就是改良sig在传统多分类的问题，然后导出的向量级别sig，本质上就是sig pro，sigmod本身假设多标签分类结果非唯一。&lt;/p&gt;
&lt;p&gt;这就是标量化的坏处啊，看不到上下文，所以要向量化。向量化看不到上下文就要矩阵化，矩阵化看不到上下文就要张量化，然后并行计算就又要退回到向量化，那么就要用向量化逼近矩阵化。&lt;/p&gt;
&lt;p&gt;模型表达能力在不断提高上下文阶数；系统实现又必须把高阶上下文拆成可并行的低阶块。优秀算法的本质，就是在这两者之间做近似、重排、分块和融合。&lt;/p&gt;
&lt;p&gt;为什么一开始要叫softmax，它一开始被命名成这个是因为人们发现它可以让任何一个数稍微大一点就几乎接近1，所谓softmax，就是可微的max。&lt;/p&gt;
&lt;p&gt;它的数学性质是，把差值相等转化成比例相等。&lt;/p&gt;
&lt;p&gt;具体说说为什么soft是sig的扩展，因为sig是二分类，soft生成一个多分类的概率条，让他们自己进行博弈。&lt;/p&gt;</description></item><item><title>LLM Theory: SMD 01 - 权重更新的拆解</title><link>https://cybersecurityerial.github.io/echo_blog/posts/llm-theory-smd-01-weight-update-decomposition/</link><pubDate>Sun, 17 May 2026 10:15:54 +0800</pubDate><guid>https://cybersecurityerial.github.io/echo_blog/posts/llm-theory-smd-01-weight-update-decomposition/</guid><description>&lt;blockquote&gt;
&lt;p&gt;本文是 LLM Theory 下 SMD 专题的第一篇，是关于 Spherical Motion Dynamics（SMD）的学习笔记，主要参考 Wan et al. 的
&lt;a href="https://arxiv.org/abs/2006.08419"&gt;Spherical Motion Dynamics: Learning Dynamics of Neural Network with Normalization, Weight Decay, and SGD&lt;/a&gt;
以及 NeurIPS 2021 版本
&lt;a href="https://proceedings.neurips.cc/paper/2021/hash/326a8c055c0d04f5b06544665d8bb3ea-Abstract.html"&gt;Spherical Motion Dynamics: Learning Dynamics of Normalized Neural Network using SGD and Weight Decay&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="朴素的描述模型更新"&gt;朴素的描述模型更新&lt;/h2&gt;
&lt;p&gt;对于本科一二年级时候的笔者而言，如果想要描述模型的更新量，那么只会考虑这个非常直接的东西：$\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$。
这确实是很直白的，相当于计算了模型权重的欧氏距离。是什么让我们必须放弃这种非常直观的欧氏距离呢？源于常用的归一化。
加上归一化之后，对于模型的输出，$y = \operatorname{BN}(x, k\boldsymbol{W}) = \operatorname{BN}(x, \boldsymbol{W})$，看不出模型尺度对 $y$ 的影响。但是却会从 $\lVert k\boldsymbol{W}_{t+1} - k\boldsymbol{W}_{t} \rVert$ 这一度量手段上产生 $k$ 倍的差距。
这就发现一个很显然的问题了：我们是希望通过观测类似于 $\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$ 这样的东西来控制模型的训练，而不是直接看最后的 $y$。因为只通过看 $y$ 的变化，并基于这种变化的规律，去指导如何进行训练前的设置，这件事并不容易。我们是希望找到一个更可以写出明确表达式，更容易观测，意义更明确的指标去观测，而这个指标恰好还要有一些规律和 $y$ 的规律“趋同”，这样我们就得到了一个 $y$ 的近似物，而且这个近似物比 $y$ 更好分析。所以我们会很直接的想到 $\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$。但是现在，当我们给模型加上BN（为什么加BN不赘述了）以后发现的问题是 $\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$ 会随着模型尺度产生成倍的差距，而 $y$ 却不会被尺度影响。这说明 $\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$ 不是一个好的指标，因为它错误地预测了 $y$ 随着尺度变化的行为规律。
当然，原则上，我们其实可以发现，上面的地方有一个逻辑漏洞：为什么权重变化一定能预测 $y$ 的变化，这是错误的呀，权重变了 $y$ 不一定变。所以 $\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$ 这个东西失效是情理之中的，不能先入为主的认为 $\lVert \boldsymbol{W}_{t+1} - \boldsymbol{W}_{t} \rVert$ 的规律能和 $y$ 趋同，那么出现上面的问题十分合理。我们一个理想中的目标是通过权重变化去预测 $y$ 的变化，这样我们就可以通过设计一套权重变化的方案去精确得到想要的 $y$。理想是很远大的，现实会比较难做，但是可以在最朴素的方案上向前不断推进预测的细化程度。SMD就是这样一种东西。&lt;/p&gt;</description></item><item><title>LLM Theory: SMD 02 - Angular Update 才更接近真实改变量</title><link>https://cybersecurityerial.github.io/echo_blog/posts/llm-theory-smd-02-angular-update/</link><pubDate>Sun, 17 May 2026 17:56:11 +0800</pubDate><guid>https://cybersecurityerial.github.io/echo_blog/posts/llm-theory-smd-02-angular-update/</guid><description>&lt;blockquote&gt;
&lt;p&gt;本文是 LLM Theory 下 SMD 专题的第二篇。上一篇主要把 SGD、SGD + weight decay、Adam、AdamW 的径向/切向更新拆开了；这一篇继续沿着这个拆法，讨论几个笔者读 SMD 时觉得更关键的 insight。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="insight-1为什么只看-effective-learning-rate-不够"&gt;Insight 1：为什么只看 Effective Learning Rate 不够&lt;/h2&gt;
&lt;p&gt;在讨论 normalization 和 weight decay 的联合作用时，有一句非常关键的话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;对于 scale-invariant weight，任务梯度 $\partial L / \partial \boldsymbol{w}$ 总是与权重 $\boldsymbol{w}$ 垂直。因此，梯度分量总是倾向于增大权重范数，而 weight decay 提供的分量总是倾向于减小权重范数。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这句话其实就是 SMD 的基本物理图像：&lt;/p&gt;
&lt;div class="math-display"&gt;
\[
\text{任务梯度}
\Rightarrow
\text{切向更新，改变方向，同时二阶增大范数}
\]
&lt;/div&gt;
&lt;div class="math-display"&gt;
\[
\text{Weight Decay}
\Rightarrow
\text{径向更新，缩小范数}
\]
&lt;/div&gt;
&lt;p&gt;也就是说，在带 normalization 的网络中，SGD 梯度并不是在普通欧氏空间里随便走，而是在球面的切线方向上推动权重转动；weight decay 则像一个向心力，把权重往原点拉。两者共同作用，最终可能让 weight norm 进入一个稳定状态。&lt;/p&gt;
&lt;p&gt;但是这里有一个很容易被忽略的问题：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Weight decay 可以对冲掉梯度更新导致的 weight norm 增长，但这并不意味着 gradient norm 本身也被稳定住了。&lt;/p&gt;</description></item></channel></rss>