<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Transformer on 二三事</title><link>https://iharee.github.io/tags/transformer/</link><description>Recent content in Transformer on 二三事</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 22 Mar 2026 22:55:00 +0000</lastBuildDate><atom:link href="https://iharee.github.io/tags/transformer/index.xml" rel="self" type="application/rss+xml"/><item><title>经典注意力与经典 Transformer 的数学原理</title><link>https://iharee.github.io/algorithms/attention_and_transformer/</link><pubDate>Sun, 22 Mar 2026 22:55:00 +0000</pubDate><guid>https://iharee.github.io/algorithms/attention_and_transformer/</guid><description>&lt;p&gt;* 本文的部分示意图使用了 AI 辅助创作，其余有明确标注的示意图则引用自参考文献。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;若无特别说明，本文中的单个向量默认视为列向量。比如，在 RNN、BPTT 与 Bahdanau Attention 部分，$\boldsymbol{x}_t,\boldsymbol{h}_t,\boldsymbol{s}_t,\boldsymbol{a}_t$ 等单个向量都按列向量书写。&lt;/p&gt;
&lt;p&gt;而在 attention 与 Transformer 章节的矩阵记号中，为便于书写整段序列的矩阵乘法，序列矩阵统一按行堆叠：若第 $i$ 个 token 的表示向量为列向量 $\boldsymbol{x}_i$，则矩阵 $\boldsymbol{X}$ 的第 $i$ 行为 $\boldsymbol{x}_i^T$。相应地，$\boldsymbol{Q},\boldsymbol{K},\boldsymbol{V}$ 的第 $i$ 行分别记为 $\boldsymbol{q}_i^T,\boldsymbol{k}_i^T,\boldsymbol{v}_i^T$。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Token 指模型处理数据的最小单位。在 CV（Computer Vision，计算机视觉）中常指图像切分后的 patch，在音频中指离散化的特征片段，而在 NLP（Natural Language Processing，自然语言处理）中则是指文本分词（字、词或子词）。本文后续所指的 token 均可以被理解为 NLP 范畴下的文本单元，token embedding 则是通过嵌入层将 token ID 映射至连续向量空间中的稠密语义表示。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="rnn"&gt;RNN&lt;/h1&gt;
&lt;h2 id="背景引入"&gt;背景引入&lt;/h2&gt;
&lt;p&gt;在前文 &lt;a href="https://iharee.github.io/2024/12/08/computational_graphs_and_mlp" style="color:#7799bb; font-weight: bold; &amp;:active{color:#0066cc;} &amp;:focus{color:#0066cc;}"&gt;MLP 与 BP 算法的数学原理&lt;/a&gt; 中，我们从数学上推导了普通 FFN（Feed-Forward Network，前馈神经网络）的误差反向传播算法，并最终编码实现了一个能够训练并完成分类任务的 MLP。&lt;/p&gt;
&lt;p&gt;MLP（Multi-Layer Perceptron，多层感知机）是最经典、最基础的一种前馈神经网络，它只接受固定维度的张量 $\boldsymbol{x}$，并在经过内部若干层全连接层的非线性变换 $f(\boldsymbol{x})=\varphi(\boldsymbol{Wx}+\boldsymbol{b})$ 后，最终输出固定维度的张量 $\boldsymbol{y}$。对于能够确定输入与输出张量维度的任务，例如图像识别、缺陷检测等，输入输出张量维度固定是能够接受的。但是，对于序列数据，特别是那些具有强时间相关性的序列数据，譬如股票指数的时间序列、自然语言等，MLP 便显得力不从心了，主要体现在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入维度固定，意味着无法处理可变长序列；&lt;/li&gt;
&lt;li&gt;固定维度与无记忆性的假设，使得模型更难捕捉到序列元素间的依赖关系。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个简单的改进就是 RNN（Recurrent Neural Network，循环神经网络）。RNN 是一种基本的序列模型，下面介绍 RNN，并做简要的数学推导。&lt;/p&gt;</description></item></channel></rss>