8 Feb

MoE环游记:1、从几何意义出发

前两年福至心灵之下,开了一个“Transformer升级之路”系列,陆续分享了主流Transformer架构的一些改进工作和个人思考,得到了部份读者的认可。这篇文章开始,我们沿着同样的风格,介绍当前另一个主流架构MoE(Mixture of Experts)。

MoE的流行自不必多说,近来火出圈的DeepSeek-V3便是MoE架构,传言GPT-4也是MoE架构,国内最近出的一些模型也有不少用上了MoE。然而,虽然MoE的研究由来已久,但其应用长时间内都不愠不火,大致上是从去年初的《Mixtral of Experts》开始,MoE才逐渐吸引大家的注意力,其显著优点是参数量大,但训练和推理成本都显著低。

但同时MoE也有一些难题,如训练不稳定、负载不均衡、效果不够好等,这也是它早年没有流行起来的主要原因。不过随着这两年关注度的提升,这些问题在很大程度上已经得到解决,我们在接下来的介绍中会逐一谈到这些内容。

点击阅读全文...

28 Jan

三个球的交点坐标(三球交会定位)

前几天笔者在思考一个问题时,联想到了三球交点问题,即给定三个球的球心坐标和半径,求这三个球的交点坐标。按理说这是一个定义清晰且简明的问题,并且具有鲜明的应用背景(比如卫星定位),应该早已有人给出“标准答案”才对。但笔者搜了一圈,发现不管是英文资料还是中文资料,都没有找到标准的求解流程。

当然,这并不是说这个问题有多难以至于没人能求解出来,事实上这是个早已被人解决的经典问题,笔者只是意外于似乎没有人以一种可读性比较好的方式将求解过程写到网上,所以本文试图补充这一点。

特殊情形

首先,设三个球的方程分别是
\begin{align}
&\text{球1:}\quad (\boldsymbol{x} - \boldsymbol{o}_1)^2 = r_1^2 \label{eq:s1} \\
&\text{球2:}\quad (\boldsymbol{x} - \boldsymbol{o}_2)^2 = r_2^2 \label{eq:s2} \\
&\text{球3:}\quad (\boldsymbol{x} - \boldsymbol{o}_3)^2 = r_3^2 \label{eq:s3} \\
\end{align}

点击阅读全文...

16 Jan

从几何视角来理解模型参数的初始化策略

对于复杂模型来说,参数的初始化显得尤为重要。糟糕的初始化,很多时候已经不单是模型效果变差的问题了,还更有可能是模型根本训练不动或者不收敛。在深度学习中常见的自适应初始化策略是Xavier初始化,它是从正态分布$\mathcal{N}\left(0,\frac{2}{fan_{in} + fan_{out}}\right)$中随机采样而构成的初始权重,其中$fan_{in}$是输入的维度而$fan_{out}$是输出的维度。其他初始化策略基本上也类似,只不过假设有所不同,导致最终形式略有差别。

标准的初始化策略的推导是基于概率统计的,大概的思路是假设输入数据的均值为0、方差为1,然后期望输出数据也保持均值为0、方差为1,然后推导出初始变换应该满足的均值和方差条件。这个过程理论上没啥问题,但在笔者看来依然不够直观,而且推导过程的假设有点多。本文则希望能从几何视角来理解模型的初始化方法,给出一个更直观的推导过程。

信手拈来的正交

前者时间笔者写了《n维空间下两个随机向量的夹角分布》,其中的一个推论是

推论1: 高维空间中的任意两个随机向量几乎都是垂直的。

点击阅读全文...

1 Dec

级联抑制:提升GAN表现的一种简单有效的方法

昨天刷arxiv时发现了一篇来自星星韩国的论文,名字很直白,就叫做《A Simple yet Effective Way for Improving the Performance of GANs》。打开一看,发现内容也很简练,就是提出了一种加强GAN的判别器的方法,能让GAN的生成指标有一定的提升。

作者把这个方法叫做Cascading Rejection,我不知道咋翻译,扔到百度翻译里边显示“级联抑制”,想想看好像是有这么点味道,就暂时这样叫着了。介绍这个方法倒不是因为它有多强大,而是觉得它的几何意义很有趣,而且似乎有一定的启发性。

正交分解

GAN的判别器一般是经过多层卷积后,通过flatten或pool得到一个固定长度的向量$\boldsymbol{v}$,然后再与一个权重向量$\boldsymbol{w}$做内积,得到一个标量打分(先不考虑偏置项和激活函数等末节):
\begin{equation}D(\boldsymbol{x})=\langle \boldsymbol{v},\boldsymbol{w}\rangle\end{equation}
也就是说,用$\boldsymbol{v}$作为输入图片的表征,然后通过$\boldsymbol{v}$和$\boldsymbol{w}$的内积大小来判断出这个图片的“真”的程度。

点击阅读全文...

11 Nov

JoSE:球面上的词向量和句向量

这篇文章介绍一个发表在NeurIPS 2019的做词向量和句向量的模型JoSE(Joint Spherical Embedding),论文名字是《Spherical Text Embedding》。JoSE模型思想上和方法上传承自Doc2Vec,评测结果更加漂亮,但写作有点故弄玄虚之感。不过笔者决定写这篇文章,是因为觉得里边的某些分析过程有点意思,可能会对一般的优化问题都有些参考价值。

优化目标

在思想上,这篇文章基本上跟Doc2Vec是一致的:为了训练句向量,把句子用一个id表示,然后把它也当作一个词,跟句内所有的词都共现,最后训练一个Skip Gram模型,训练的方式都是基于负采样的。跟Doc2Vec不一样的是,JoSE将全体向量的模长都归一化了(也就是只考虑单位球面上的向量),然后训练目标没有用交叉熵,而是用hinge loss:
\begin{equation}\max(0, m - \cos(\boldsymbol{u}, \boldsymbol{v}) - \cos(\boldsymbol{u}, \boldsymbol{d}) + \cos(\boldsymbol{u}', \boldsymbol{v}) + \cos(\boldsymbol{u}', \boldsymbol{d})\label{eq:loss}\end{equation}

点击阅读全文...

7 Nov

【外微分浅谈】6. 微分几何

终于开始谈到重点了,就是这部分内容促使我学习外微分的。用外微分可以方便地推导微分几何的一些内容,有时候还能方便计算。其主要根源在于:外微分本身在形式上是微分的推广,因此微分几何的东西能够使用外微分来描述并不出奇;然后,最重要的原因是,外微分把$dx^{\mu}$看成一组基,因此相当于在几何中引入了两组基,一组是本身的向量基(用张量的语言,就是逆变向量的基),这组基可以做对称的内积,另外一组基就是$dx^{\mu}$,这组基可以做反对称的外积。因此,当外微分引入几何时,微分几何就拥有了微分、积分、对称积、反对称积等各种“理想装备”,这就是外微分能够加速微分几何推导的主要原因。

标架的运动

前面已经得到
$$\begin{aligned}&\omega^{\mu}=h_{\alpha}^{\mu}dx^{\alpha}\\
&d\boldsymbol{r}=\hat{\boldsymbol{e}}_{\mu} \omega^{\mu}\\
&ds^2 = \eta_{\mu\nu} \omega^{\mu}\omega^{\nu}\\
&\langle \hat{\boldsymbol{e}}_{\mu}, \hat{\boldsymbol{e}}_{\nu}\rangle = \eta_{\mu\nu}\end{aligned} \tag{45} $$

点击阅读全文...

6 Nov

【外微分浅谈】5. 几何意义

对于前面所述的外微分,包括后面还略微涉及到的微分形式的积分,都是纯粹代数定义的内容,本身不具有任何的几何意义。但是,我们可以将某些公式或者定义,与一些几何内容对应起来,使我们更深刻地理解它,并且更灵活运用它。但是,它仅仅是一种对应,而且取决于我们的诠释。比如,我们说外微分公式
$$\int_{\partial D} Pdx+Qdy = \int_{D} \left(\frac{\partial Q}{\partial x}-\frac{\partial P}{\partial y}\right)dx\land dy \tag{32} $$
对应于格林公式
$$\int_{\partial D} Pdx+Qdy = \int_{D} \left(\frac{\partial Q}{\partial x}-\frac{\partial P}{\partial y}\right)dxdy \tag{33} $$
。这是没问题的,但它们并不等价,它们仅仅是形式上刚好一样。因为格林公式是描述闭合曲线的积分跟面积分的联系,而外微分的公式是一种纯粹的代数运算。因为你完全可以将$dx\land dy$对应于$-dxdy$而不是$dxdy$,这样就得到另外一种几何的对应。

更深刻的问题是:为什么恰好有这个对应?也就是说,为什么经过一些调整和诠释后,就能够得到与积分公式的对应?首先要明确的是外积与普通的数的乘积,除了反对称性之外,是没有任何区别的,因此不少性质得以保留;其次,还应该要回到反对称本身来考虑,矩阵的行列式代表着矩阵所对应的向量组张成的$n$维立体的体积,然而行列式是反对称的,这就意味着反对称运算跟体积、积分等有着先天的联系。当然,更细致的认识,笔者也还没做到。

此外,我们说寻求微分形式的几何意义,通常只是针对不超过3维的空间来讨论的,更高维的几何图像我们很难想象出来,尤其是高维的曲面积分,一般只是类比,但类比是否成立,有时还需要进一步商榷。因此,这种情况下,倒不如干脆点,说微分形式描述的东西就是几何,而不再去寻找所谓的几何意义了。也就是说,反过来,将微分形式和外微分作为公理式的第一性原理来定义几何。

甚至,你可以只将外微分当作是一种记忆各种微分、积分公式的有效途径,比如现在我要大家默写三维空间中的斯托克斯公式,大家估计会乱,因为不一定记得是哪个减哪个。但是在外微分框架下,可以很快地将它推导一遍。好比式$(11)$,如果非要寻求几何解释,那就是开普勒第二定律:单位时间内扫过的面积相等;然而没有几何解释,你依旧可以把方程解下去。

点击阅读全文...

2 Nov

【理解黎曼几何】8. 处处皆几何 (力学几何化)

黎曼几何在广义相对论中的体现和应用,虽然不能说家喻户晓,但想必大部分读者都有所听闻。一谈到黎曼几何在物理学中的应用,估计大家的第一反应就是广义相对论。常见的观点是,广义相对论的发现大大推动了黎曼几何的发展。诚然,这是事实,然而,大多数人不知道的事,哪怕经典的牛顿力学中,也有黎曼几何的身影。

本文要谈及的内容,就是如何将力学几何化,从而使用黎曼几何的概念来描述它们。整个过程事实上是提供了一种框架,它可以将不少其他领域的理论纳入到黎曼几何体系中。

黎曼几何的出发点就是黎曼度量,通过黎曼度量可以通过变分得到测地线。从这个意义上来看,黎曼度量提供了一个变分原理。那反过来,一个变分原理,能不能提供一个黎曼度量呢?众所周知,不少学科的基础原理都可以归结为一个极值原理,而有了极值原理就不难导出变分原理(泛函极值),如物理中就有最小作用量原理、最小势能原理,概率论中有最大熵原理,等等。如果有一个将变分原理导出黎曼度量的方法,那么就可以用几何的方式来描述它。幸运的是,对于二次型的变分原理,是可以做到的。

点击阅读全文...