<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://sakur7a.github.io/Blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://sakur7a.github.io/Blog/" rel="alternate" type="text/html" hreflang="zh-CN" /><updated>2026-05-19T19:52:54+08:00</updated><id>https://sakur7a.github.io/Blog/feed.xml</id><title type="html">Sakura</title><subtitle>记录技术、生活和一些长期有效的小想法</subtitle><author><name>Your Name</name><email>sakur7a@outlook.com</email></author><entry><title type="html">CreatiParser：Generative Image Parsing of Raster Graphic Designs into Editable Layers</title><link href="https://sakur7a.github.io/Blog/2026-05-19/creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers.html" rel="alternate" type="text/html" title="CreatiParser：Generative Image Parsing of Raster Graphic Designs into Editable Layers" /><published>2026-05-19T19:41:34+08:00</published><updated>2026-05-19T19:41:34+08:00</updated><id>https://sakur7a.github.io/Blog/2026-05-19/creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers</id><content type="html" xml:base="https://sakur7a.github.io/Blog/2026-05-19/creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers.html"><![CDATA[<h1 id="一信息">一、信息</h1>
<ol>
  <li>title：CreatiParser: Generative Image Parsing of Raster Graphic Designs into Editable Layers</li>
  <li><a href="https://arxiv.org/abs/2604.19632v1">[2604.19632v1] CreatiParser: Generative Image Parsing of Raster Graphic Designs into Editable Layers</a></li>
  <li>机构：中科大</li>
  <li>文本单独处理，用 Qwen3-VL 学习（GRPO 增强）从图片输出文字协议（json文件），然后渲染出来。主体 diffusion 用 SDXL，三条轨迹，LTA 在同一个空间位置上，让三个分支互相 attention，通过可学习的门控残差加回原 token。</li>
</ol>

<hr />
<h1 id="二方法">二、方法</h1>

<h2 id="21-任务定义">2.1 任务定义</h2>

<p>输入：RGB 图
输出：三类可编辑图层：</p>

\[L = \{L_{text}, L_{sticker}, L_{background}\}\]

<table>
  <thead>
    <tr>
      <th>输出层</th>
      <th>类型</th>
      <th>作用</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>$L_{\text{text}}$</td>
      <td>可编辑文字层</td>
      <td>包含所有 typographic elements</td>
    </tr>
    <tr>
      <td>$L_{\text{sticker}}$</td>
      <td>RGBA 图像</td>
      <td>非文字前景元素，例如线条、图标、几何形状、装饰元素</td>
    </tr>
    <tr>
      <td>$L_{\text{background}}$</td>
      <td>RGB 图像</td>
      <td>全局背景、纹理、底色、摄影图像等</td>
    </tr>
  </tbody>
</table>

<p><img src="/Blog/assets/images/posts/2026-05-19-creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers/Pasted%20image%2020260518225912.png" alt="" />
<img src="/Blog/assets/images/posts/2026-05-19-creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers/Pasted%20image%2020260518234110.png" alt="" /></p>

<hr />
<h2 id="22-pipeline">2.2 pipeline</h2>

<p><img src="/Blog/assets/images/posts/2026-05-19-creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers/Pasted%20image%2020260518225954.png" alt="" /></p>

<ol>
  <li>VLM-based Text Layer Parsing：用 Qwen3-VL + LoRA 从图像预测文本渲染协议 JSON，再用渲染引擎生成文字层。</li>
  <li>Multi-branch Diffusion for Background and Sticker：用三分支 SDXL U-Net 生成背景和贴纸，支持 RGBA 透明图层。</li>
  <li>ParserReward-guided GRPO：只优化 QwenLM 的 LoRA 参数，用奖励函数让文字协议预测更符合像素、位置和语义一致性。</li>
</ol>

\[\text{Raster Design Image } I \rightarrow \begin{cases} \text{VLM Text Parser} \rightarrow \text{Text Rendering Protocol} \rightarrow L_{\text{text}} \\ \text{Multi-branch Diffusion} \rightarrow L_{\text{background}},\, L_{\text{sticker}} \end{cases} \rightarrow \bigl(L_{\text{text}},\, L_{\text{sticker}},\, L_{\text{background}}\bigr)\]

<hr />

<h3 id="221-文字部分">2.2.1 文字部分</h3>

<p>论文把文字层表示为 <strong>Text Rendering Protocol</strong>：</p>

\[P_{text} = \{c, {\ell_i}_{i=1}^{N}\}\]

<p>其中：</p>
<ul>
  <li>$c=(W,H)$：画布尺寸；</li>
  <li>$\ell_i$：第 (i) 个文本实例。</li>
</ul>

<p>每个文本实例：$\ell_i = (g_i, s_i, a_i, r_i)$ 包括四类属性：</p>

<table>
  <thead>
    <tr>
      <th>属性组</th>
      <th>内容</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Geometry $g_i$</td>
      <td>位置 $(x,y)$、宽高 $(w,h)$、旋转角 $\theta$、弯曲参数</td>
    </tr>
    <tr>
      <td>Semantics $s_i$</td>
      <td>Unicode 文本字符串、阅读方向</td>
    </tr>
    <tr>
      <td>Appearance $a_i$</td>
      <td>字体 ID、字号、颜色、描边、阴影、行高、字距、粗体、斜体、下划线等</td>
    </tr>
    <tr>
      <td>Relation $r_i$</td>
      <td>对齐方式、z-order 层级</td>
    </tr>
  </tbody>
</table>

<p>对于弯曲文字，作者用三次 Bézier 曲线表示路径，并用 $τ$ 表示文字是否沿曲线排列。最后，Qwen3-VL 直接从输入图像预测这个 JSON 协议，再由渲染引擎生成文字层。同时用 GRPO  优化<strong>Qwen3-VL 文本协议预测</strong>。</p>

<hr />
<h4 id="2211-grpo-refinement">2.2.1.1 GRPO refinement</h4>
<p>给定输入图 $I$，从 Qwen3-VL 采样 $K$ 个候选协议 ${P^{(k)}}_{k=1}^{K}$，论文默认：K=16，采样使用 temperature sampling，$\tau=0.8$。</p>

<p>每个候选协议都会经过 render engine：</p>

\[L_{text}^{(k)} = \text{Render}(P^{(k)})\]

<p>这一步很重要。奖励不是直接看 JSON 文本，而是看 JSON 渲染之后的视觉结果。</p>

<p>每个候选文字层有三个 reward：</p>
<ol>
  <li>Pixel reward：衡量渲染后的文字层和原图文字区域像素是否接近。</li>
</ol>

\[R_{pix} = \exp\left(-\frac{|M_{text}\odot I - L_{text}|_1}{|M_{text}|_1+\epsilon}\right)\]

<ol>
  <li>Localization reward:  衡量文字 mask 位置是否对齐。</li>
</ol>

\[R_{loc} = \text{IoU}(M_{text},M^*_{text})\]

<ol>
  <li>Semantic reward ：基于 Levenshtein 编辑距离的文本相似度</li>
</ol>

\[R_{sem} = \text{Sim}_{edit}(T_{protocol},T^*)\]

<p>其中：</p>

\[\text{Sim}_{edit}(a,b) = 1 - \frac{\text{Lev}(a,b)}{\max(|a|,|b|)}\]

<p>总奖励：</p>

\[R_{text} = \lambda_{pix}R_{pix} + \lambda_{loc}R_{loc} + \lambda_{sem}R_{sem}\]

<p>组内归一化 advantage ：对同一张图的 $K$ 个候选协议，计算 reward 后做 group normalization：</p>

\[A^{(k)} = \frac{r^{(k)} - \mu_r}{\sigma_r + \epsilon}\]

<p>GRPO 的核心： 不是训练一个 value model，而是在同一组候选里比较谁更好。</p>

<p>用 clipped objective 更新 LoRA 更新目标类似 PPO：</p>

\[\mathcal{L}_G = -\mathbb{E}\sum_{k=1}^{K} \min\left( \rho^{(k)}A^{(k)}, \ \text{clip}(\rho^{(k)},1-\epsilon_c,1+\epsilon_c)A^{(k)} \right)\]

<p>其中：</p>

\[\rho^{(k)} = \frac{\pi_\theta(P^{(k)}|I)}{\pi_{\theta_{old}}(P^{(k)}|I)}\]

<p>加 KL 正则：</p>

\[\mathcal{L}_{total} = \mathcal{L}_G + \beta \cdot D_{KL}(\pi_\theta \parallel \pi_{ref})\]

<p>论文中 $\epsilon_c=0.2$，$\beta=0.01$，学习率 $10^{-4}$，训练 2000 steps</p>

<hr />
<h3 id="222-diffusion">2.2.2 diffusion</h3>

<p>作者以 SDXL 为 backbone，构建三个 U-Net 分支：</p>

<table>
  <thead>
    <tr>
      <th>分支</th>
      <th>输入</th>
      <th>核心作用</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Condition 分支</td>
      <td>原始设计图 VAE latent</td>
      <td>给另外两个分支提供输入图信息</td>
    </tr>
    <tr>
      <td>Background 分支</td>
      <td>背景层 noisy latent</td>
      <td>生成全局 RGB 背景层</td>
    </tr>
    <tr>
      <td>Sticker 分支</td>
      <td>贴纸层 noisy latent</td>
      <td>生成 RGBA 前景层</td>
    </tr>
  </tbody>
</table>

<p>三个分支拓扑相同，但条件输入不同。每个分支都有独立 LoRA，原始 SDXL 参数冻结，只训练 LoRA。 RGBA latent 用 LayerDiffuse。</p>

<hr />
<h4 id="2221-ltalayer-token-attention">2.2.2.1 LTA(Layer Token Attention)</h4>
<p><img src="/Blog/assets/images/posts/2026-05-19-creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers/Pasted%20image%2020260518233418.png" alt="" />
假设三个分支在同一空间位置都有 token：</p>

\[T^{(c)},T^{(b)},T^{(s)} \in \mathbb{R}^{N\times d}\]

<p>作者不是把所有 3N 个 token 全部混合做全局 attention，而是在每个空间位置 n 上，把三个分支的 token 堆起来：</p>

\[S_n = \left[T_n^{(c)}; \; T_n^{(b)}; \; T_n^{(s)}\right] \in \mathbb{R}^{3\times d}\]

<p>然后只在这三个分支 token 之间做 attention。也就是说，每个位置只和同一位置的其他分支交流，而不是和全图所有位置交流。最后通过可学习门控融合回原分支。</p>

<hr />

<h2 id="23-数据集和评估">2.3 数据集和评估</h2>

<h3 id="231-数据集设置">2.3.1 数据集设置</h3>

<table>
  <thead>
    <tr>
      <th>数据集</th>
      <th>用途</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Parser-40K</td>
      <td>训练与测试</td>
      <td>作者自建，来源于专业设计平台和授权 stock design libraries，原始 PSD 提供 native layer decomposition</td>
    </tr>
    <tr>
      <td>Crello</td>
      <td>zero-shot 测试</td>
      <td>训练时不用，直接测试跨风格泛化</td>
    </tr>
  </tbody>
</table>

<hr />
<h3 id="232-评估指标">2.3.2 评估指标</h3>
<p>评估指标分三类：</p>
<ol>
  <li>Layer Reconstruction Accuracy：Text IoU 和 Sticker IoU。</li>
  <li>Text Editability：Font Accuracy 和 Attribute Accuracy。Font 是字体 ID exact match；Attr 是其他外观和关系字段的平均准确率。</li>
  <li>Pixel-Level Reconstruction：分别计算 text、sticker、background 的 RGB L1，以及平均值。
<img src="/Blog/assets/images/posts/2026-05-19-creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers/Pasted%20image%2020260518234127.png" alt="" /></li>
</ol>

<hr />
<h3 id="233-对比方法">2.3.3 对比方法</h3>
<ul>
  <li>Baseline：Grounded-SAM-2 做 text/sticker segmentation，LaMa 做 background inpainting。</li>
  <li>LayerD：matting-first，再做 background completion。</li>
  <li>由于不同方法和 Crello 的图层 taxonomy 不一致，作者用 GPT-4V 做自动层类别归一化，并用 200 个样本人工验证，报告总体分类准确率 94.5%。</li>
</ul>

<p><img src="/Blog/assets/images/posts/2026-05-19-creatiparser-generative-image-parsing-of-raster-graphic-designs-into-editable-layers/Pasted%20image%2020260518234141.png" alt="" /></p>]]></content><author><name>Your Name</name><email>sakur7a@outlook.com</email></author><category term="学习" /><category term="多图层" /><category term="diffusion" /><category term="RL" /><summary type="html"><![CDATA[一、信息 title：CreatiParser: Generative Image Parsing of Raster Graphic Designs into Editable Layers [2604.19632v1] CreatiParser: Generative Image Parsing of Raster Graphic Designs into Editable Layers 机构：中科大 文本单独处理，用 Qwen3-VL 学习（GRPO 增强）从图片输出文字协议（json文件），然后渲染出来。主体 diffusion 用 SDXL，三条轨迹，LTA 在同一个空间位置上，让三个分支互相 attention，通过可学习的门控残差加回原 token。]]></summary></entry><entry><title type="html">A Unified and Controllable Framework for Layered Image Generation with Visual Effects</title><link href="https://sakur7a.github.io/Blog/2026-05-14/a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects.html" rel="alternate" type="text/html" title="A Unified and Controllable Framework for Layered Image Generation with Visual Effects" /><published>2026-05-14T23:20:11+08:00</published><updated>2026-05-14T23:20:11+08:00</updated><id>https://sakur7a.github.io/Blog/2026-05-14/a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects</id><content type="html" xml:base="https://sakur7a.github.io/Blog/2026-05-14/a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects.html"><![CDATA[<h1 id="一信息">一、信息</h1>

<ol>
  <li>A Unified and Controllable Framework for Layered Image Generation with Visual Effects</li>
  <li>UC Santa Cruz，Adobe Research</li>
  <li><a href="https://arxiv.org/abs/2601.15507v2">[2601.15507v2] A Unified and Controllable Framework for Layered Image Generation with Visual Effects</a></li>
  <li>以前的方法，只分解 RGBA 的前景层。把前景层视为物体+阴影。支持三种生成模式：给定前景生成背景、给定背景生成前景和t2l。同时提出了一个 dataset：LASAGNA-48K，包含超过 48K 图像三元组的数据集：composite image、clean background、foreground layer with visual effects。
<img src="/Blog/assets/images/posts/2026-05-14-a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects/Pasted%20image%2020260514221417.png" alt="" /></li>
</ol>

<hr />
<h1 id="二方法">二、方法</h1>

<h2 id="21-数据">2.1 数据</h2>
<p>普通 layered dataset 没有“带 visual effects 的前景层”。Lasagna-48K：数据来自 <strong>MULAN、COCO 2017、SOBA</strong>，最终包括 8K MULAN、39K COCO 和 1K SOBA 样本。</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Public datasets
    ↓
Step 1: Non-occluded mask selection
    ↓
Step 2: LayerDecomp decomposition
    ↓
Step 3: VLM-based data filtering / artifact removal
    ↓
Step 4: Joint captioning
    ↓
Lasagna-48K triplets:
    composite image
    clean BG
    FG layer with visual effects
    captions
</code></pre></div></div>

<p><img src="/Blog/assets/images/posts/2026-05-14-a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects/Pasted%20image%2020260514211922.png" alt="" /></p>

<hr />
<h2 id="22-pipeline">2.2 pipeline</h2>
<p><img src="/Blog/assets/images/posts/2026-05-14-a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects/Pasted%20image%2020260514211900.png" alt="" /></p>

<p>mask、fg 和 bg 当成上下文，和 noisy token 拼接在一起。四类 embedding 注入：
<img src="/Blog/assets/images/posts/2026-05-14-a-unified-and-controllable-framework-for-layered-image-generation-with-visual-effects/Pasted%20image%2020260514222026.png" alt="" /></p>

\[\mathbf{m}_{f,i} = \mathrm{Norm} \left( \mathbf{e}^{\mathrm{time}}(t) + \mathbf{e}^{\mathrm{type}}_{f,i} + \mathbf{e}^{\mathrm{io}}_{f,i} \right)\]

<p>位置编码是3D-RoPE。</p>

<p>具体架构：</p>
<ul>
  <li>base architecture / backbone：<strong>Diffusion Transformer, DiT</strong></li>
  <li>initialization：<strong>2B pre-trained DiT model</strong></li>
  <li>text encoder：<strong>T5</strong></li>
  <li>image latent：<strong>RGBA-VAE，fine-tuned from DiT VAE</strong></li>
  <li>training objective：<strong>flow matching</strong></li>
</ul>]]></content><author><name>Your Name</name><email>sakur7a@outlook.com</email></author><category term="学习" /><category term="Diffusion" /><category term="多图层" /><summary type="html"><![CDATA[一、信息]]></summary></entry><entry><title type="html">ML</title><link href="https://sakur7a.github.io/Blog/2026-05-07/ml.html" rel="alternate" type="text/html" title="ML" /><published>2026-05-07T16:54:18+08:00</published><updated>2026-05-07T16:54:18+08:00</updated><id>https://sakur7a.github.io/Blog/2026-05-07/ml</id><content type="html" xml:base="https://sakur7a.github.io/Blog/2026-05-07/ml.html"><![CDATA[<h1 id="一pca类算法">一、PCA类算法</h1>

<h2 id="11-pca-的核心目的">1.1 PCA 的核心目的</h2>
<p>PCA，全称 <strong>Principal Component Analysis，主成分分析</strong>。</p>

<p>它的目标是：</p>

\[\boxed{\text{找几个方向，让数据投影过去以后，保留最多变化信息}}\]

<p>这里的“变化信息”通常用 <strong>方差</strong> 衡量。方差越大，说明数据在这个方向上越分散，这个方向越能表达数据差异。</p>

<p>在文献中，PCA 被描述为经典的无监督线性降维方法，目标是得到高维数据的紧凑表示，并常用于特征提取和模式识别。</p>

<hr />
<h2 id="12-pca-推导主线">1.2 PCA 推导主线</h2>
<p>假设有 $n$ 个样本：</p>

\[x_1,x_2,\dots,x_n\]

<p>每个样本是 $d$ 维列向量：</p>

\[x_i\in\mathbb{R}^{d\times 1}\]

<p>比如一张图片拉平成向量后，每个像素就是一个维度。</p>

<h3 id="1-求均值">1. 求均值</h3>
<p>先求所有样本的平均值：</p>

\[\mu=\frac{1}{n}\sum_{i=1}^{n}x_i\]

<p>这个 $\mu$ 也是一个 $d\times 1$ 的列向量。
它表示所有样本的“中心位置”。</p>

<h3 id="2-中心化">2. 中心化</h3>
<p>把每个样本减去均值：</p>

\[\tilde{x}_i=x_i-\mu\]

<p>中心化后的样本 $\tilde{x}_i$ 表示：</p>

\[\boxed{\text{第 }i\text{ 个样本相对于平均样本的差异}}\]

<p>如果把所有中心化样本按列拼起来：</p>

\[\tilde{X}=
[\tilde{x}_1,\tilde{x}_2,\dots,\tilde{x}_n]
\in\mathbb{R}^{d\times n}\]

<h3 id="3-构造散度矩阵--协方差矩阵">3. 构造散度矩阵 / 协方差矩阵</h3>
<p>定义：</p>

\[S=\sum_{i=1}^{n}\tilde{x}_i\tilde{x}_i^T\]

<p>也可以写成：</p>

\[S=\tilde{X}\tilde{X}^T\]

<p>形状是：</p>

\[S\in\mathbb{R}^{d\times d}\]

<p>这个 $S$ 叫 <strong>散度矩阵</strong> 或 <strong>协方差矩阵</strong>。
它描述的是：</p>

\[\boxed{\text{数据在各个维度上怎么一起变化}}\]

<p>教程材料中也把</p>

\[S=\sum_i(x_i-\mu)(x_i-\mu)^T\]

<p>称为 covariance matrix 或 scatter matrix，并说明若数据已中心化，则可写成 $S=XX^T$。</p>

<h3 id="4-投影到一个方向">4. 投影到一个方向</h3>
<p>假设我们找一个方向：</p>

\[u\in\mathbb{R}^{d\times 1}\]

<p>并要求它是单位向量：</p>

\[u^Tu=1\]

<p>一个样本投影到这个方向上：</p>

\[z_i=u^T\tilde{x}_i\]

<p>形状是：</p>

\[(1\times d)(d\times 1)=1\times 1\]

<p>所以 $z_i$ 是一个数字。
它表示：</p>

\[\boxed{\tilde{x}_i\text{ 在方向 }u\text{ 上的坐标}}\]

<h3 id="5-投影后的总方差">5. 投影后的总方差</h3>
<p>PCA 要让投影后的数据尽量分散，所以看：</p>

\[\sum_{i=1}^{n}z_i^2\]

<p>代入 $z_i=u^T\tilde{x}_i$ 得到：</p>

\[\sum_{i=1}^{n}(u^T\tilde{x}_i)^2\]

<p>展开：</p>

\[(u^T\tilde{x}_i)^2 = u^T\tilde{x}_i\tilde{x}_i^Tu\]

<p>所以：</p>

\[\sum_{i=1}^{n}(u^T\tilde{x}_i)^2
=
\sum_{i=1}^{n}u^T\tilde{x}_i\tilde{x}_i^Tu\]

<p>把 $u$ 提出来：</p>

\[u^T
\left(
\sum_{i=1}^{n}\tilde{x}_i\tilde{x}_i^T
\right)
u\]

<p>而括号里就是 $S$，所以：</p>

\[\sum_{i=1}^{n}z_i^2 = u^TSu\]

<p>于是 PCA 的一维目标变成：</p>

\[\boxed{\max_u u^TSu}\]

<p>并且要求：</p>

\[\boxed{u^Tu=1}\]

<p>教程材料中也说明，$u^TSu$ 可以理解为投影后的方差，也可以理解为中心化数据投影重构后的平方长度。</p>

<h3 id="6-用拉格朗日乘子求解">6. 用拉格朗日乘子求解</h3>
<p>现在要解：</p>

\[\max_u u^TSu
\quad
\text{s.t.}
\quad
u^Tu=1\]

<p>构造拉格朗日函数：</p>

\[\mathcal{L}(u,\lambda)
=
u^TSu-\lambda(u^Tu-1)\]

<p>对 $u$ 求导：</p>

\[\frac{\partial \mathcal{L}}{\partial u}
=
2Su-2\lambda u\]

<p>令导数为 0：</p>

\[2Su-2\lambda u=0\]

<p>得到：</p>

\[Su=\lambda u\]

<p>这就是 <strong>特征值问题</strong>。</p>

<h3 id="7-pca-的核心结论">7. PCA 的核心结论</h3>

\[\boxed{Su=\lambda u}\]

<p>这里：</p>
<ul>
  <li>$S$：协方差矩阵 / 散度矩阵；</li>
  <li>$u$：特征向量；</li>
  <li>$\lambda$：特征值。</li>
</ul>

<p>对于单位特征向量 $u$，有：</p>

\[u^TSu
=
u^T(\lambda u)
=
\lambda u^Tu
=
\lambda\]

<p>所以：</p>

\[\boxed{\text{特征值 } \lambda \text{ 就是该方向上保留的方差大小}}\]

<p>因此 PCA 选择：</p>

\[\boxed{S\text{ 最大特征值对应的特征向量}}\]

<p>作为第一主成分方向。</p>

<hr />

<h2 id="13-多个主成分的形式">1.3 多个主成分的形式</h2>
<p>如果不只要一个方向，而是要 $k$ 个方向：</p>

\[u_1,u_2,\dots,u_k\]

<p>把它们按列拼成矩阵：</p>

\[U=[u_1,u_2,\dots,u_k]
\in\mathbb{R}^{d\times k}\]

<p>要求这些方向两两正交、每个长度为 1：</p>

\[U^TU=I\]

<p>投影：</p>

\[Y=U^T\tilde{X}\]

<p>形状：</p>

\[(k\times d)(d\times n)=k\times n\]

<p>也就是：</p>

\[\boxed{d\text{ 维数据 } \rightarrow k\text{ 维数据}}\]

<p>多个方向上的总方差是：</p>

\[\operatorname{tr}(U^TSU)\]

<p>于是多维 PCA 目标是：</p>

\[\boxed{\max_U \operatorname{tr}(U^TSU),\quad U^TU=I}\]

<p>最优解是：</p>

\[\boxed{U=[q_1,q_2,\dots,q_k]}\]

<p>其中 $q_1,\dots,q_k$ 是 $S$ 最大的 $k$ 个特征值对应的特征向量。</p>

<hr />

<h2 id="14-pca-的另一种理解最小重构误差">1.4 PCA 的另一种理解：最小重构误差</h2>
<p>PCA 也可以从“重构”角度理解。</p>

<p>一个样本投影到低维空间：</p>

\[y_i=U^T\tilde{x}_i\]

<p>再重构回原空间：</p>

\[\hat{x}_i=Uy_i = UU^T\tilde{x}_i\]

<p>也就是说：</p>

\[\tilde{x}_i \approx UU^T\tilde{x}_i\]

<p>PCA 选择的 $U$，既能让投影方差最大，也等价于让重构误差尽量小。</p>

<p>文献中也把 PCA 描述为在最小二乘重构误差意义下获得高维数据的紧凑表示。</p>

<hr />

<h2 id="15-pca-怎么用于人脸识别eigenfaces">1.5 PCA 怎么用于人脸识别：Eigenfaces</h2>
<p>Eigenfaces 可以理解为：</p>

\[\boxed{\text{Eigenfaces = PCA 用在人脸图像上}}\]

<p>它把每张人脸图像看成一个高维向量，然后用 PCA 找出人脸图像中最主要的变化方向。</p>

<p>2DPCA 文献中提到，Sirovich 和 Kirby 首先用 PCA 表示人脸图像，认为任意人脸可以近似表示为平均脸加少量 eigenimages 的加权和；Turk 和 Pentland 随后提出了著名的 Eigenfaces 人脸识别方法。</p>

<h3 id="1-图像向量化">1. 图像向量化</h3>
<p>假设一张灰度人脸图像大小是：</p>

\[h\times w\]

<p>像素总数：</p>

\[N=h w\]

<p>把图像拉直成列向量：</p>

\[\Gamma_i\in\mathbb{R}^{N\times 1}\]

<p>比如 $100\times 100$ 的图像：</p>

\[N=10000\]

<p>拉直后：</p>

\[\Gamma_i\in\mathbb{R}^{10000\times 1}\]

<h3 id="2-求平均脸">2. 求平均脸</h3>
<p>有 $M$ 张训练人脸：</p>

\[\Gamma_1,\Gamma_2,\dots,\Gamma_M\]

<p>平均脸：</p>

\[\Psi=\frac{1}{M}\sum_{i=1}^{M}\Gamma_i\]

<p>这里 $\Psi$ 也是一张脸，只不过是平均后的脸。</p>

<h3 id="3-减去平均脸">3. 减去平均脸</h3>
<p>每张脸中心化：</p>

\[\Phi_i=\Gamma_i-\Psi\]

<p>$\Phi_i$ 表示：</p>

\[\boxed{\text{第 }i\text{ 张脸相对于平均脸的差异}}\]

<h3 id="4-组成训练矩阵">4. 组成训练矩阵</h3>
<p>把所有中心化人脸按列拼起来：</p>

\[A=[\Phi_1,\Phi_2,\dots,\Phi_M]\]

<p>形状：</p>

\[A\in\mathbb{R}^{N\times M}\]

<p>其中：</p>
<ul>
  <li>$N$：每张图像的像素数；</li>
  <li>$M$：训练图像数量。</li>
</ul>

<p>通常：</p>

\[N\gg M\]

<p>比如：</p>

\[N=10000,\quad M=100\]

<h3 id="5-正常-pca-要求协方差矩阵">5. 正常 PCA 要求协方差矩阵</h3>
<p>理论上要构造：</p>

\[C=AA^T\]

<p>形状：</p>

\[AA^T = (N\times M)(M\times N) = N\times N\]

<p>如果 $N=10000$，那么：</p>

\[C\in\mathbb{R}^{10000\times 10000}\]

<p>太大。</p>

<p>文献也指出，PCA 人脸识别需要先把二维人脸矩阵变成一维图像向量，这会导致很高维的向量空间；由于协方差矩阵大且训练样本相对少，准确估计协方差矩阵会很困难。</p>

<hr />

<h2 id="16-eigenfaces-的小矩阵技巧">1.6 Eigenfaces 的小矩阵技巧</h2>
<p>真正想求的是：</p>

\[AA^Tu=\lambda u\]

<p>其中：</p>

\[u\in\mathbb{R}^{N\times 1}\]

<p>这个 $u$ 可以 reshape 回一张图像，所以叫 <strong>eigenface，特征脸</strong>。</p>

<p>但 $AA^T$ 太大，于是改求小矩阵：</p>

\[A^TA\]

<p>形状：</p>

\[A^TA = (M\times N)(N\times M) = M\times M\]

<p>如果 $M=100$，那么只需要分解 $100\times 100$ 的小矩阵。</p>

<h3 id="关键推导">关键推导</h3>
<p>先求：</p>

\[A^TA v=\lambda v\]

<p>其中：</p>

\[v\in\mathbb{R}^{M\times 1}\]

<p>两边左乘 $A$：</p>

\[A(A^TA v)=A(\lambda v)\]

<p>左边变成：</p>

\[AA^T(Av)\]

<p>右边变成：</p>

\[\lambda(Av)\]

<p>所以：</p>

\[AA^T(Av)=\lambda(Av)\]

<p>因此：</p>

\[\boxed{u=Av}\]

<p>就是大矩阵 $AA^T$ 的特征向量。</p>

<p>这就是 Eigenfaces 最重要的计算技巧：</p>

\[\boxed{A^TAv=\lambda v \Rightarrow AA^T(Av)=\lambda(Av)}\]

<p>文献中也提到，Eigenfaces 的特征向量可以通过 SVD 等技术高效计算，从而避免直接生成巨大协方差矩阵。</p>

<hr />

<h2 id="17-人脸如何用-eigenfaces-表示">1.7 人脸如何用 Eigenfaces 表示？</h2>
<p>取前 $K$ 个特征脸：</p>

\[u_1,u_2,\dots,u_K\]

<p>把它们组成：</p>

\[U=[u_1,u_2,\dots,u_K]
\in\mathbb{R}^{N\times K}\]

<p>对一张新脸 $\Gamma$，先减平均脸：</p>

\[\Phi=\Gamma-\Psi\]

<p>再投影：</p>

\[\Omega=U^T\Phi\]

<p>形状：</p>

\[(K\times N)(N\times 1)=K\times 1\]

<p>所以：</p>

\[\Omega=
\begin{bmatrix}
\omega_1\\
\omega_2\\
\vdots\\
\omega_K
\end{bmatrix}\]

<p>这就是这张脸的低维表示。
原来一张脸需要 $N$ 个像素表示，现在只需要 $K$ 个权重表示。</p>

<hr />

<h2 id="18-人脸重构公式">1.8 人脸重构公式</h2>
<p>因为：</p>

\[\Omega=U^T\Phi\]

<p>所以可以近似重构：</p>

\[\Phi\approx U\Omega\]

<p>加回平均脸：</p>

\[\boxed{\Gamma\approx \Psi+U\Omega}\]

<p>展开写：</p>

\[\boxed{\Gamma\approx \Psi+ \sum_{k=1}^{K}\omega_k u_k}\]

<p>这句话是 Eigenfaces 的核心直观解释：</p>

\[\boxed{\text{一张人脸 } \approx \text{平均脸} + \text{若干特征脸的加权组合}}\]

<p>2DPCA 论文也指出，在 Eigenfaces 方法中，主成分和特征向量可以组合起来重构人脸图像。</p>

<hr />

<h2 id="19-人脸识别流程">1.9 人脸识别流程</h2>
<p><strong>训练阶段</strong>：</p>
<ol>
  <li>把每张训练人脸拉成向量 $\Gamma_i$；</li>
  <li>求平均脸 $\Psi$；</li>
  <li>得到中心化人脸 $\Phi_i=\Gamma_i-\Psi$；</li>
  <li>组成矩阵 $A=[\Phi_1,\dots,\Phi_M]$；</li>
  <li>求小矩阵 $A^TA$ 的特征向量 $v_k$；</li>
  <li>得到真正特征脸：</li>
</ol>

\[u_k=Av_k\]

<ol>
  <li>取前 $K$ 个特征脸；</li>
  <li>每张训练脸投影成权重向量：</li>
</ol>

\[\Omega_i=U^T\Phi_i\]

<p><strong>测试阶段</strong>：</p>
<ol>
  <li>新脸 $\Gamma_{\text{test}}$ 减平均脸：</li>
</ol>

\[\Phi_{\text{test}}=\Gamma_{\text{test}}-\Psi\]

<ol>
  <li>投影成权重：</li>
</ol>

\[\Omega_{\text{test}}=U^T\Phi_{\text{test}}\]

<ol>
  <li>和训练集中每个人脸的权重向量比较距离：</li>
</ol>

\[\|\Omega_{\text{test}}-\Omega_i\|\]

<ol>
  <li>找最近的那个训练样本，作为识别结果。</li>
</ol>

<p>这就是最近邻分类：</p>

\[\boxed{\text{在低维特征脸空间中找最像的脸}}\]

<p>2DPCA 文献在比较 PCA/Eigenfaces 和 2DPCA 时也说明，PCA/Eigenfaces 使用普通欧氏距离进行最近邻分类。</p>

<hr />
<h2 id="110-延伸">1.10 延伸</h2>
<h3 id="1101-2dpca">1.10.1 2DPCA</h3>

\[\boxed{\text{PCA 拉直图像；2DPCA 不拉直图像}}\]

\[A\in\mathbb{R}^{m\times n},\quad X\in\mathbb{R}^{n\times 1}\]

\[Y=AX\in\mathbb{R}^{m\times 1}\]

\[G_t=\frac{1}{M}\sum_j(A_j-\bar{A})^T(A_j-\bar{A})\]

\[J(X)=X^TG_tX\]

\[G_tX=\lambda X\]

<hr />
<h3 id="1102-glram">1.10.2 GLRAM</h3>

\[\boxed{\text{2DPCA 只右乘；GLRAM 左右都乘}}\]

\[A_i\approx LM_iR^T\]

\[M_i=L^TA_iR\]

\[\min\sum_i\|A_i-LM_iR^T\|_F^2\]

<p>等价于：</p>

\[\max\sum_i\|L^TA_iR\|_F^2\]

<hr />
<h3 id="1103--fda">1.10.3  FDA</h3>

\[\boxed{\text{PCA 看方差；FDA 看类别}}\]

\[S_B=\text{类间散度}\]

\[S_W=\text{类内散度}\]

\[\max_u
\frac{u^TS_Bu}{u^TS_Wu}\]

\[S_Bu=\lambda S_Wu\]

<hr />
<h3 id="1104--kfda">1.10.4  KFDA</h3>

\[\boxed{\text{KFDA = 在高维核空间里做 FDA}}\]

\[u\rightarrow \Phi(X)\theta\]

\[\frac{u^TS_Bu}{u^TS_Wu}
\rightarrow
\frac{\theta^TM\theta}{\theta^TN\theta}\]

\[M\theta=\lambda N\theta\]

<hr />

<h1 id="二线性降维">二、线性降维</h1>

<p>从 PCA/Eigenfaces → LDA/Fisherfaces → MMC → NLDA/OLDA → LPP/MFA → RI $(L_{2,1})$ 鲁棒版本
核心问题都是：</p>

\[x\in \mathbb{R}^m \quad \xrightarrow[]{y=U^T x}\quad y\in \mathbb{R}^d,\quad d\ll m\]

<p>目标是在低维空间里保留对分类有用的信息，去掉光照、表情、姿态、噪声、异常值等无关变化。</p>

<h2 id="21-总体知识结构">2.1 总体知识结构</h2>
<p>四篇文献可以这样串起来：</p>

<table>
  <thead>
    <tr>
      <th>方法</th>
      <th>是否用类别标签</th>
      <th>优化目标</th>
      <th>典型问题</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>PCA / Eigenfaces</td>
      <td>否</td>
      <td>最大化总体方差</td>
      <td>保留光照等无关变化</td>
    </tr>
    <tr>
      <td>LDA / Fisherfaces</td>
      <td>是</td>
      <td>类间散度大、类内散度小</td>
      <td>小样本时 $S_W$ 奇异</td>
    </tr>
    <tr>
      <td>MMC</td>
      <td>是</td>
      <td>最大化平均类间 margin</td>
      <td>避免直接求 $S_W^{-1}$</td>
    </tr>
    <tr>
      <td>NLDA / OLDA</td>
      <td>是</td>
      <td>在零空间或正交空间做判别</td>
      <td>解决欠采样奇异性</td>
    </tr>
    <tr>
      <td>LPP / MFA</td>
      <td>LPP 无监督，MFA 有监督</td>
      <td>保持局部流形/边缘结构</td>
      <td>对异常值敏感</td>
    </tr>
    <tr>
      <td>RI-PCA/LDA/LPP/MFA</td>
      <td>视方法而定</td>
      <td>用 $L_{2,1}$ 替代 $L_2$ 度量</td>
      <td>提高鲁棒性</td>
    </tr>
  </tbody>
</table>

<p>Eigenfaces vs Fisherfaces 论文的核心观点是：PCA 最大化总散度，但这些散度可能主要来自光照和表情，而不是身份差异；Fisherfaces 使用类别信息，试图保留身份差异并压制类内变化。论文还指出，同一人脸在固定姿态、不同光照下，理想 Lambertian 情况会落在 3D 线性子空间中，但真实人脸会受阴影、镜面反射、表情影响而偏离该子空间。</p>

<hr />
<h2 id="22-统一符号">2.2 统一符号</h2>
<p>设训练样本为</p>

\[X=\{x_1,x_2,\dots,x_N\},\quad x_i\in\mathbb{R}^m\]

<p>共有 $c$ 个类别，第 $i$ 类为 $X_i$，样本数为 $N_i$。</p>

<p>全局均值：</p>

\[\mu=\frac{1}{N}\sum_{k=1}^{N}x_k\]

<p>第 $i$ 类均值：</p>

\[\mu_i=\frac{1}{N_i}\sum_{x_k\in X_i}x_k\]

<p>低维投影：</p>

\[y_k=U^T x_k,\quad U\in \mathbb{R}^{m\times d}\]

<hr />
<h2 id="23pca--eigenfaces">2.3PCA / Eigenfaces</h2>
<h3 id="231-pca-的直观目标">2.3.1 PCA 的直观目标</h3>
<p>PCA 不使用类别标签，只关心所有样本整体的变化方向。它希望找到投影矩阵 $U$，使投影后样本方差最大。</p>

<p>总散度矩阵：</p>

\[S_T=\sum_{k=1}^{N}(x_k-\mu)(x_k-\mu)^T\]

<p>投影后总散度为：</p>

\[U^T S_T U\]

<p>PCA 目标：</p>

\[U_{\text{PCA}} = \arg\max_U |U^T S_T U|\]

<p>若只取一个方向 $u$，问题变成：</p>

\[\max_{u} u^T S_T u \quad \text{s.t.}\quad u^T u=1\]

<hr />
<h3 id="232-pca-公式推导">2.3.2 PCA 公式推导</h3>
<p>构造拉格朗日函数：</p>

\[\mathcal{L}(u,\lambda) = u^T S_T u-\lambda(u^Tu-1)\]

<p>对 $u$ 求导：</p>

\[\frac{\partial \mathcal{L}}{\partial u} = 2S_Tu-2\lambda u=0\]

<p>得到：</p>

\[S_Tu=\lambda u\]

<p>所以 PCA 的投影方向就是 $S_T$ 的特征向量，取最大特征值对应的前 $d$ 个方向。</p>

<p>在 Eigenfaces 中，每张人脸图像被看作一个高维向量，PCA 得到的特征向量仍然具有图像维度，因此可视化后称为 eigenfaces。论文中也指出，若 PCA 维度取到训练样本数附近，Eigenface 方法会接近直接相关匹配。</p>

<hr />
<h4 id="33-pca-的局限">3.3 PCA 的局限</h4>
<p>PCA 最大化的是总散度：</p>

\[S_T=S_B+S_W\]

<p>其中：</p>
<ul>
  <li>$S_B$：类间散度，有利于分类；</li>
  <li>$S_W$：类内散度，通常是不希望保留的变化。</li>
</ul>

<p>问题在于 PCA 不区分这两者。光照、表情、姿态变化可能导致很大的类内散度，因此 PCA 可能优先保留这些方向，而不是保留身份判别方向。Eigenfaces 论文明确指出，PCA 对重构是最优的，但不一定对判别最优。</p>

<hr />
<h2 id="24-lda--fisherfaces">2.4 LDA / Fisherfaces</h2>
<h3 id="241-lda-的目标">2.4.1 LDA 的目标</h3>
<p>LDA 使用类别标签。它希望：</p>

\[\text{类间距离大，类内距离小}\]

<p>定义类间散度：</p>

\[S_B=\sum_{i=1}^{c}N_i(\mu_i-\mu)(\mu_i-\mu)^T\]

<p>定义类内散度：</p>

\[S_W=\sum_{i=1}^{c}\sum_{x_k\in X_i}(x_k-\mu_i)(x_k-\mu_i)^T\]

<p>LDA 的经典目标是 Fisher 准则：</p>

\[J(U)=\frac{|U^T S_B U|}{|U^T S_W U|}\]

<p>对于单个投影方向 $u$：</p>

\[J(u)=\frac{u^T S_B u}{u^T S_W u}\]

<p>Eigenfaces vs Fisherfaces 论文中正是用这个准则来构造 Fisherfaces，并指出最大可得判别维数不超过 $c-1$。</p>

<hr />
<h3 id="242-lda-单方向推导">2.4.2 LDA 单方向推导</h3>
<p>令：</p>

\[J(u)=\frac{u^T S_B u}{u^T S_W u}\]

<p>等价于约束优化：</p>

\[\max_u u^T S_B u \quad \text{s.t.}\quad u^T S_W u=1\]

<p>构造拉格朗日函数：</p>

\[\mathcal{L}(u,\lambda) = u^T S_B u-\lambda(u^T S_W u-1)\]

<p>对 $u$ 求导：</p>

\[2S_Bu-2\lambda S_Wu=0\]

<p>得到广义特征值问题：</p>

\[S_Bu=\lambda S_Wu\]

<p>若 $S_W$ 可逆，则：</p>

\[S_W^{-1}S_Bu=\lambda u\]

<p>所以 LDA 取 $S_W^{-1}S_B$ 最大特征值对应的方向。</p>

<hr />
<h3 id="243-多维-lda">2.4.3 多维 LDA</h3>
<p>对多个方向 $U=[u_1,\dots,u_d]$，目标为：</p>

\[U_{\text{LDA}} = \arg\max_U \frac{|U^T S_B U|}{|U^T S_W U|}\]

<p>解仍来自广义特征值问题：</p>

\[S_B u_i=\lambda_i S_W u_i\]

<p>取最大的 $d$ 个广义特征值对应的特征向量。</p>

<p>由于</p>

\[\operatorname{rank}(S_B)\le c-1\]

<p>所以 LDA 最多只能得到 $c-1$ 个有效判别方向。</p>

<hr />
<h3 id="244-fisherfacespca--lda">2.4.4 Fisherfaces：PCA + LDA</h3>
<p>在人脸识别中，经常有：</p>

\[m \gg N\]

<p>也就是图像维度远大于训练样本数。此时：</p>

\[\operatorname{rank}(S_W)\le N-c\]

<p>因此 $S_W$ 奇异，无法直接求 $S_W^{-1}$。</p>

<p>Fisherfaces 的解决方法是：</p>
<ol>
  <li>先用 PCA 降到 $N-c$ 维；</li>
  <li>再在该子空间中做 LDA，降到 $c-1$ 维。</li>
</ol>

<p>公式为：</p>

\[U_{\text{opt}}^T = U_{\text{LDA}}^T U_{\text{PCA}}^T\]

<p>更具体地：</p>

\[U_{\text{PCA}} = \arg\max_U |U^T S_T U|\]

\[U_{\text{LDA}} = \arg\max_U \frac{|U^T U_{\text{PCA}}^T S_B U_{\text{PCA}} U|}{|U^T U_{\text{PCA}}^T S_W U_{\text{PCA}} U|}\]

<p>Fisherfaces 论文指出，这样做的目的就是先把维度降到 $N-c$，使之后的类内散度矩阵不再奇异，再执行标准 LDA。</p>

<hr />
<h2 id="25-lambertian-线性子空间模型">2.5 Lambertian 线性子空间模型</h2>
<p>这部分解释为什么人脸光照变化可以被线性子空间近似。</p>

<p>对 Lambertian 表面上一点 $p$，图像强度为：</p>

\[E(p)=a(p)n(p)^T s\]

<p>其中：</p>
<ul>
  <li>$a(p)$：反照率；</li>
  <li>$n(p)\in\mathbb{R}^3$：表面法向量；</li>
  <li>$s\in\mathbb{R}^3$：光照方向与强度。</li>
</ul>

<p>因为 $E(p)$ 对 $s$ 是线性的，所以整张图像也可以写成：</p>

\[I = B s\]

<p>其中 $B$ 由表面法向和反照率决定。因此固定姿态下，同一张脸在不同光照下的图像理论上位于一个 3D 线性子空间中。Eigenfaces vs Fisherfaces 论文正是基于这一观察来解释线性子空间方法和 Fisherfaces 的动机。</p>

<p>但真实情况有阴影、表情、镜面反射，因此实际图像不会完全落在 3D 子空间中。Fisherfaces 的思想是学习一个投影，使这些类内变化被压制，同时保留身份差异。</p>

<hr />
<h2 id="26-mmcmaximum-margin-criterion">2.6 MMC：Maximum Margin Criterion</h2>
<h3 id="261-mmc-的基本思想">2.6.1 MMC 的基本思想</h3>
<p>MMC 的动机是：LDA 需要处理</p>

\[S_W^{-1}S_B\]

<p>当 $S_W$ 奇异时不稳定。MMC 改用「差值型」准则：</p>

\[S_B-S_W\]

<p>避免直接求 $S_W^{-1}$。</p>

<p>MMC 论文指出，MMC 几何上最大化的是类间平均 margin，并且相比 PCA 更能表示类别可分性；它还可以通过不同约束与 LDA 建立联系。</p>

<hr />
<h4 id="62-mmc-的-margin-推导">6.2 MMC 的 margin 推导</h4>
<p>设第 $i$ 类均值为 $m_i$，类内散布度为 $s_i$。两个类别之间的 margin 定义为：</p>

\[d_{ij} = |m_i-m_j|^2-s_i-s_j\]

<p>含义：</p>
<ul>
  <li>
    <table>
      <tbody>
        <tr>
          <td>$</td>
          <td>m_i-m_j</td>
          <td>^2$：类中心距离，越大越好；</td>
        </tr>
      </tbody>
    </table>
  </li>
  <li>$s_i+s_j$：两个类自身扩散程度，越小越好。</li>
</ul>

<p>总体 MMC 是所有类别对 margin 的加权和：</p>

\[J = \sum_{i}\sum_{j}p_i p_j d_{ij}\]

<p>展开：</p>

\[J = \sum_i\sum_j p_i p_j |m_i-m_j|^2 - \sum_i\sum_j p_i p_j(s_i+s_j)\]

<p>第一项可以化为类间散度：</p>

\[\sum_i\sum_j p_i p_j |m_i-m_j|^2 \propto \operatorname{tr}(S_B)\]

<p>第二项可以化为类内散度：</p>

\[\sum_i\sum_j p_i p_j(s_i+s_j) \propto \operatorname{tr}(S_W)\]

<p>所以：</p>

\[J = \operatorname{tr}(S_B)-\operatorname{tr}(S_W) = \operatorname{tr}(S_B-S_W)\]

<p>投影后：</p>

\[J(U) = \operatorname{tr}\left(U^T(S_B-S_W)U\right)\]

<hr />
<h3 id="263-mmc-的特征值推导">2.6.3 MMC 的特征值推导</h3>
<p>约束：</p>

\[U^T U=I\]

<p>单方向时：</p>

\[\max_u u^T(S_B-S_W)u \quad \text{s.t.}\quad u^Tu=1\]

<p>拉格朗日函数：</p>

\[\mathcal{L}(u,\lambda) = u^T(S_B-S_W)u-\lambda(u^Tu-1)\]

<p>求导：</p>

\[2(S_B-S_W)u-2\lambda u=0\]

<p>得到：</p>

\[(S_B-S_W)u=\lambda u\]

<p>所以 MMC 取 $S_B-S_W$ 的较大特征值对应的特征向量。通常只保留正特征值方向，因为：</p>

\[\lambda&gt;0\]

<p>表示该方向上类间分离大于类内扩散。</p>

<p>MMC 论文指出，这种方法不需要计算 $S_W^{-1}$，因此可避开小样本问题；并且在线性特征提取部分，最优解由 $S_B-S_W$ 的特征向量给出。</p>

<hr />
<h3 id="264-mmc-与-lda-的关系">2.6.4 MMC 与 LDA 的关系</h3>
<p>LDA 是比值型：</p>

\[J_{\text{LDA}}(U) = \frac{|U^T S_B U|}{|U^T S_W U|}\]

<p>MMC 是差值型：</p>

\[J_{\text{MMC}}(U) = \operatorname{tr}\left(U^T(S_B-S_W)U\right)\]

<p>二者目标相似：都是希望 $S_B$ 大、$S_W$ 小。</p>

<p>区别是：</p>
<ul>
  <li>LDA 需要处理 $S_W^{-1}$，小样本时不稳定；</li>
  <li>MMC 不需要求逆，直接做普通特征分解；</li>
  <li>MMC 可以丢弃负特征值方向，因此可能得到更低维但仍有判别力的子空间。</li>
</ul>

<hr />
<h2 id="27-nldanull-space-lda">2.7 NLDA：Null Space LDA</h2>
<h3 id="271-为什么需要-nlda">2.7.1 为什么需要 NLDA</h3>
<p>当 $S_W$ 奇异时，存在一些方向 $u$ 使得：</p>

\[u^T S_W u=0\]

<p>这表示在这些方向上，同一类样本被压缩到一起，即类内散度为 0。若同时：</p>

\[u^T S_B u&gt;0\]

<p>则这些方向对分类非常有用。</p>

<p>NLDA 的目标：</p>

\[G = \arg\max_{G^T S_W G=0} \operatorname{tr}(G^T S_B G)\]

<p>也就是在 $S_W$ 的零空间中最大化类间散度。JMLR 论文指出，NLDA 正是通过在类内散度矩阵的零空间中最大化类间距离来隐式避免奇异性。</p>

<hr />
<h3 id="272-nlda-推导流程">2.7.2 NLDA 推导流程</h3>
<p>由于直接求 $S_W$ 的零空间可能很大，常先去掉 $S_T$ 的零空间。</p>

<p>定义：</p>

\[S_T=S_B+S_W\]

<p>做 SVD：</p>

\[H_T=U\Sigma V^T\]

<p>于是：</p>

\[S_T=H_T H_T^T=U\Sigma\Sigma^T U^T\]

<p>设 $U_1$ 对应非零奇异值，则投影到 $U_1$ 空间：</p>

\[\widetilde{S}_B=U_1^T S_B U_1\]

\[\widetilde{S}_W=U_1^T S_W U_1\]

<p>然后找：</p>

\[W\in \operatorname{Null}(\widetilde{S}_W)\]

<p>即：</p>

\[W^T \widetilde{S}_W W=0\]

<p>再在这个零空间中最大化：</p>

\[\max_M \operatorname{tr}(M^T W^T\widetilde{S}_B W M)\]

<p>最终：</p>

\[G=U_1 W M\]

<p>JMLR 论文中给出了 NLDA 算法：先对 $H_T$ 做 reduced SVD，形成 $\widetilde{S}_B,\widetilde{S}_W$，再计算 $\widetilde{S}_W$ 的零空间，最后在该零空间中取 $W^T\widetilde{S}_B W$ 的主特征向量。</p>

<hr />
<h2 id="28-oldaorthogonal-lda">2.8. OLDA：Orthogonal LDA</h2>
<h3 id="281-olda-的目标">2.8.1 OLDA 的目标</h3>
<p>OLDA 希望得到正交判别向量：</p>

\[G^T G=I\]

<p>它的优化形式为：</p>

\[G = \arg\max_{G^TG=I} \operatorname{tr}\left((G^T S_T G)^+G^T S_B G\right)\]

<p>其中 $(\cdot)^+$ 是 Moore–Penrose 伪逆。</p>

<p>OLDA 的思想是通过同时对角化 $S_B,S_W,S_T$，在避免奇异问题的同时获得正交投影方向。JMLR 论文说明，OLDA 可以分解为三步：去掉 $S_T$ 零空间、执行 classical ULDA、再做正交化。</p>

<hr />
<h3 id="282-olda-推导流程">2.8.2 OLDA 推导流程</h3>
<p>仍从：</p>

\[H_T=U\Sigma V^T\]

<p>得到 $U_1,\Sigma_T$。</p>

<p>构造：</p>

\[B=\Sigma_T^{-1}U_1^T H_B\]

<p>对 $B$ 做 SVD：</p>

\[B=P\widetilde{\Sigma}Q^T\]

<p>构造：</p>

\[X_q=U_1\Sigma_T^{-1}P_q\]

<p>其中 $q=\operatorname{rank}(S_B)$。</p>

<p>然后做 QR 分解：</p>

\[X_q=QR\]

<p>最终：</p>

\[G=Q\]

<p>即 $Q$ 是 OLDA 的正交判别投影矩阵。JMLR 论文中 Algorithm 2 正是这个流程。</p>

<hr />
<h3 id="283-nlda-与-olda-的等价条件">2.8.3 NLDA 与 OLDA 的等价条件</h3>
<p>论文给出条件：</p>

\[C1:\quad \operatorname{rank}(S_T) = \operatorname{rank}(S_B) + \operatorname{rank}(S_W)\]

<p>在该条件成立时：</p>

\[\text{NLDA} \equiv \text{OLDA}\]

<p>也就是说，虽然 NLDA 从 $S_W$ 零空间角度出发，OLDA 从正交化和同时对角化角度出发，但在高维小样本数据中，它们常得到等价的判别子空间。JMLR 论文的主结论就是在该温和条件下 NLDA 与 OLDA 等价，并据此提出更高效的 iNLDA。</p>

<hr />
<h2 id="29-lpp-与-mfa从全局结构到局部结构">2.9 LPP 与 MFA：从全局结构到局部结构</h2>
<h4 id="91-pcalda-的不足">9.1 PCA/LDA 的不足</h4>
<p>PCA 和 LDA 都偏全局：</p>
<ul>
  <li>PCA 保留全局方差；</li>
  <li>LDA 保留全局类间/类内散度。</li>
</ul>

<p>但很多图像数据在高维空间里具有局部流形结构。LPP 和 MFA 的思想是用图来描述局部邻域关系。</p>

<hr />
<h3 id="292-图嵌入统一框架">2.9.2 图嵌入统一框架</h3>
<p>定义图权重矩阵：</p>

\[W\]

<p>度矩阵：</p>

\[D_{ii}=\sum_j W_{ij}\]

<p>图拉普拉斯矩阵：</p>

\[L=D-W\]

<p>经典图嵌入目标：</p>

\[\min_U \operatorname{tr}(U^T X L_w X^T U)\]

<p>约束：</p>

\[\operatorname{tr}(U^T X L_b X^T U)=\text{const}\]

<p>对应广义特征值问题：</p>

\[XL_wX^T U = \lambda XL_bX^T U\]

<p>RI 维度约简论文指出，PCA、LDA、LPP、MFA 都可以放入图嵌入框架，但该框架通常使用 $L_2$ 或 Frobenius 范数，因此容易受异常值和图像变化影响。</p>

<hr />
<h3 id="293-lpp">2.9.3 LPP</h3>
<p>LPP 目标是保持近邻点在低维空间中仍然接近：</p>

\[\min_U \sum_{i,j}|U^Tx_i-U^Tx_j|^2 W_{ij}\]

<p>展开：</p>

\[\sum_{i,j}|U^T(x_i-x_j)|^2W_{ij} = 2\operatorname{tr}(U^T X L X^T U)\]

<p>约束常写为：</p>

\[U^T X D X^T U=I\]

<p>因此得到：</p>

\[XLX^TU=\lambda XDX^TU\]

<hr />
<h3 id="294-mfa">2.9.4 MFA</h3>
<p>MFA 同时构建两类图：</p>
<ol>
  <li>类内 compactness graph：同类近邻应靠近；</li>
  <li>类间 penalty graph：不同类边界邻居应远离。</li>
</ol>

<p>目标可写为：</p>

\[\min_U \frac{\operatorname{tr}(U^T X L_c X^T U)}{\operatorname{tr}(U^T X L_p X^T U)}\]

<p>其中：</p>
<ul>
  <li>$L_c$：类内紧致图；</li>
  <li>$L_p$：类间惩罚图。</li>
</ul>

<p>对应广义特征值问题：</p>

\[XL_cX^TU=\lambda XL_pX^TU\]

<hr />
<h2 id="210ri-l_21-鲁棒降维">2.10RI $(L_{2,1})$ 鲁棒降维</h2>
<h3 id="2101-为什么引入-l_21-范数">2.10.1 为什么引入 $L_{2,1}$ 范数</h3>
<p>传统 PCA/LDA/LPP/MFA 多用 Frobenius 范数：</p>

\[\|A\|_F = \sqrt{\sum_i\sum_j a_{ij}^2}\]

<p>平方项会放大异常值。</p>

<p>RI 论文定义 $L_{2,1}$ 范数为：</p>

\[\|A\|_{2,1} = \sum_i \|A_i\|_2\]

<p>其中 $A_i$ 是第 $i$ 行。该范数没有整体平方放大，并满足旋转不变性：</p>

\[\|AR\|_{2,1}=\|A\|_{2,1}\]

<p>其中 $R$ 为旋转矩阵。论文指出，$L_{2,1}$ 的鲁棒性来自其没有平方操作，并据此提出 RI-PCA、RI-LDA、RI-LPP、RI-MFA。</p>

<hr />
<h3 id="2102-l_21-到加权二次型的推导">2.10.2 $L_{2,1}$ 到加权二次型的推导</h3>
<p>考虑：</p>

\[\|X^T U\|_{2,1} = \sum_i \|x_i^T U\|_2\]

<p>为了便于求解，使用迭代加权形式。对每一项：</p>

\[\|x_i^T U\|_2 \approx \frac{\|x_i^TU\|_2^2}{2\|x_i^T U^{(t)}\|_2}+\text{const}\]

<p>因此定义权重：</p>

\[D_{ii}^{(t)} = \frac{1}{2\|x_i^TU^{(t)}\|_2}\]

<p>于是：</p>

\[\sum_i \|x_i^T U\|_2 \approx \operatorname{tr}(U^T X D^{(t)} X^T U)\]

<p>这就是 RI 系列方法的核心：把非光滑的 $L_{2,1}$ 优化转化为一系列加权二次型特征值问题。</p>

<hr />
<h3 id="2103-ri-pca">2.10.3 RI-PCA</h3>
<p>RI-PCA 用 $L_{2,1}$ 度量总体散度：</p>

\[\sum_{i=1}^{N} \|(x_i-\bar{x})^T U\|_2 = \|X_{Rt}^T U\|_{2,1}\]

<p>其中：</p>

\[X_{Rt}=[x_1-\bar{x},\dots,x_N-\bar{x}]\]

<p>加权矩阵：</p>

\[D_{Rt,ii} = \frac{1}{2\|(x_i-\bar{x})^T U\|_2}\]

<p>于是 RI 总散度：</p>

\[S_{Rt}=X_{Rt}D_{Rt}X_{Rt}^T\]

<p>RI-PCA 求：</p>

\[\min_U \operatorname{tr}(U^TS_{Rt}U) \quad \text{s.t.}\quad U^TU=I\]

<p>对应：</p>

\[X_{Rt}D_{Rt}X_{Rt}^TU=\lambda U\]

<p>由于 $D_{Rt}$ 依赖于 $U$，所以需要迭代更新。RI 论文中给出了 RI-PCA 的目标、对应特征方程和迭代求解方式。</p>

<hr />
<h3 id="2104-ri-lda">2.10.4 RI-LDA</h3>
<p>RI-LDA 定义 RI 类间散度：</p>

\[S_{Rb}=X_{Rb}D_{Rb}X_{Rb}^T\]

<p>其中：</p>

\[X_{Rb}=[N_1(\bar{x}_1-\bar{x}),\dots,N_c(\bar{x}_c-\bar{x})]\]

<p>权重：</p>

\[D_{Rb,ii} = \frac{1}{2\|N_i(\bar{x}_i-\bar{x})^TU\|_2}\]

<p>RI 类内散度：</p>

\[S_{Rw}=X_{Rw}D_{Rw}X_{Rw}^T\]

<p>目标：</p>

\[\min_{U^TU=I} \frac{\operatorname{tr}(U^T S_{Rw}U)}{\operatorname{tr}(U^T S_{Rb}U)}\]

<p>对应特征值问题：</p>

\[S_{Rb}^{-1}S_{Rw}U=\lambda U\]

<p>取较小特征值对应方向。RI 论文中明确给出 RILDA 的类间、类内 $L_{2,1}$ 散度定义，以及由此得到的特征值求解形式。</p>

<hr />
<h3 id="2105-ri-lpp-与-ri-mfa">2.10.5 RI-LPP 与 RI-MFA</h3>
<p>RI-LPP 把 LPP 中的平方距离：</p>

\[\sum_{i,j}\|U^T(x_i-x_j)\|_2^2 W_{ij}\]

<p>替换为：</p>

\[\sum_{i,j}\|U^T(x_i-x_j)\|_2 W_{ij}\]

<p>然后转化为加权二次型：</p>

\[\operatorname{tr}(U^T X_R G_{Rl}D_{Rl}G_{Rl}X_R^T U)\]

<p>目标：</p>

\[\min_{U^TU=I} \frac{\operatorname{tr}(U^T S_{Rl}U)}{\operatorname{tr}(U^T S_{Rd}U)}\]

<p>对应：</p>

\[S_{Rd}^{-1}S_{Rl}U=\lambda U\]

<p>RI-MFA 类似，只是把图换成：</p>
<ul>
  <li>类内 compactness 图；</li>
  <li>类间 penalty 图。</li>
</ul>

<p>目标：</p>

\[\min_{U^TU=I} \frac{\operatorname{tr}(U^T S_{Rc}U)}{\operatorname{tr}(U^T S_{Rp}U)}\]

<p>对应：</p>

\[S_{Rp}^{-1}S_{Rc}U=\lambda U\]

<p>RI 论文把 RIPCA、RILDA、RILPP、RIMFA 统一成一个 RI 子空间学习框架，并指出这些方法本质上是对应传统方法的重加权版本。</p>

<hr />
<h2 id="211-一个统一视角">2.11 一个统一视角</h2>
<p>这些方法可以统一理解为：</p>

\[\min_U \frac{\text{不希望保留的变化}}{\text{希望保留的变化}}\]

<p>或：</p>

\[\max_U \frac{\text{希望保留的变化}}{\text{不希望保留的变化}}\]

<p>对应关系：</p>

<table>
  <thead>
    <tr>
      <th>方法</th>
      <th>希望保留</th>
      <th>希望压制</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>PCA</td>
      <td>总方差</td>
      <td>无</td>
    </tr>
    <tr>
      <td>LDA</td>
      <td>类间散度 $S_B$</td>
      <td>类内散度 $S_W$</td>
    </tr>
    <tr>
      <td>MMC</td>
      <td>$S_B-S_W$ 为正的方向</td>
      <td>$S_B-S_W$ 为负的方向</td>
    </tr>
    <tr>
      <td>NLDA</td>
      <td>零类内散度方向上的类间散度</td>
      <td>类内散度</td>
    </tr>
    <tr>
      <td>OLDA</td>
      <td>正交判别方向</td>
      <td>冗余/奇异性</td>
    </tr>
    <tr>
      <td>LPP</td>
      <td>局部邻域结构</td>
      <td>局部结构破坏</td>
    </tr>
    <tr>
      <td>MFA</td>
      <td>类间边界分离</td>
      <td>类内邻域分散</td>
    </tr>
    <tr>
      <td>RI 方法</td>
      <td>鲁棒散度</td>
      <td>异常值、图像变化</td>
    </tr>
  </tbody>
</table>

<hr />
<h2 id="212-建议掌握的推导重点">2.12 建议掌握的推导重点</h2>
<p>按重要性排序：</p>

<h3 id="1-pca-推导">1. PCA 推导</h3>

\[\max u^TS_Tu,\ u^Tu=1 \Rightarrow S_Tu=\lambda u\]

<h3 id="2-lda-推导">2. LDA 推导</h3>

\[\max \frac{u^TS_Bu}{u^TS_Wu} \Rightarrow S_Bu=\lambda S_Wu\]

<h3 id="3-fisherfaces-小样本处理">3. Fisherfaces 小样本处理</h3>

\[U_{\text{opt}}^T=U_{\text{LDA}}^TU_{\text{PCA}}^T\]

<h3 id="4-mmc-推导">4. MMC 推导</h3>

\[\text{margin} = \text{类间距离} - \text{类内扩散} \Rightarrow J(U)=\operatorname{tr}(U^T(S_B-S_W)U)\]

<h3 id="5-nlda-推导">5. NLDA 推导</h3>

\[\max_{G^TS_WG=0}\operatorname{tr}(G^TS_BG)\]

<h3 id="6-olda-推导">6. OLDA 推导</h3>

\[\max_{G^TG=I}\operatorname{tr}((G^TS_TG)^+G^TS_BG)\]

<h3 id="7-ri-l_21-推导">7. RI $L_{2,1}$ 推导</h3>

\[\|X^TU\|_{2,1} = \sum_i\|x_i^TU\|_2 \approx \operatorname{tr}(U^TXDX^TU)\]

<hr />
<h3 id="213-一句话总结">2.13 一句话总结</h3>
<p>这组文献的主线是：<strong>PCA 从无监督最大方差开始，但不够判别；LDA/Fisherfaces 引入类别散度，但遇到小样本奇异；MMC、NLDA、OLDA分别从差值准则、零空间、正交约束解决奇异性；LPP/MFA进一步引入局部图结构；RI 系列再用 $L_{2,1}$ 范数把这些方法鲁棒化。</strong></p>

<hr />

<h1 id="三回归">三、回归</h1>

<h2 id="0-总体框架">0. 总体框架</h2>
<p>这几篇论文可以分成三类：</p>

<table>
  <thead>
    <tr>
      <th>主题</th>
      <th>对应论文</th>
      <th>核心思想</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>线性回归分类</td>
      <td>Linear Regression for Face Recognition</td>
      <td>每一类样本张成一个子空间，测试样本用每个类的训练样本重构，残差最小者为类别</td>
    </tr>
    <tr>
      <td>稀疏/鲁棒特征选择</td>
      <td>Efficient and Robust Feature Selection via Joint $\ell_{2,1}$-Norms Minimization</td>
      <td>用 $\ell_{2,1}$ 损失增强抗异常点能力，用 $\ell_{2,1}$ 正则产生行稀疏，从而选特征</td>
    </tr>
    <tr>
      <td>无监督判别特征选择</td>
      <td>$\ell_{2,1}$-Norm Regularized Discriminative Feature Selection for Unsupervised Learning</td>
      <td>无标签时假设伪标签可由线性分类器预测，结合局部判别信息与 $\ell_{2,1}$ 正则</td>
    </tr>
    <tr>
      <td>谱回归/稀疏子空间学习</td>
      <td>Spectral Regression: A Unified Approach for Sparse Subspace Learning</td>
      <td>先做图嵌入求响应 $y$，再用回归求投影方向 $a$，可自然加入 Lasso/Elastic Net 稀疏正则</td>
    </tr>
  </tbody>
</table>

<p>LRC 论文明确把人脸识别建模为线性回归分类，并用最小重构误差决策；谱回归论文则把 LDA、LPP、NPE 等谱方法统一成<strong>先谱嵌入、后回归</strong>的两步框架；两篇 $\ell_{2,1}$ 论文进一步把回归目标加上行稀疏正则，用于特征选择。</p>

<hr />

<h2 id="31-线性回归分类-lrc从最小二乘到最近子空间">3.1 线性回归分类 LRC：从最小二乘到最近子空间</h2>
<h3 id="311-基本假设">3.1.1 基本假设</h3>
<p>第 $i$ 类有 $p_i$ 张训练图像，每张图像拉直为 $q$ 维向量：</p>

\[w_i^{(m)} \in \mathbb{R}^{q},\quad m=1,\dots,p_i\]

<p>第 $i$ 类训练样本按列堆叠：</p>

\[X_i = [w_i^{(1)}, w_i^{(2)}, \dots, w_i^{(p_i)}] \in \mathbb{R}^{q \times p_i}\]

<p>LRC 核心假设：<strong>同一类样本近似落在同一个线性子空间</strong>，若测试样本 $y$ 属于第 $i$ 类，则：</p>

\[y \approx X_i \alpha_i\]

<p>$\alpha_i \in \mathbb{R}^{p_i}$ 为回归系数，本质是最近子空间分类。</p>

<hr />
<h3 id="312-最小二乘推导">3.1.2 最小二乘推导</h3>
<p>对第 $i$ 类求解：</p>

\[\hat{\alpha}_i = \arg\min_{\alpha_i} \|y - X_i\alpha_i\|_2^2\]

<p>目标函数展开：</p>

\[J(\alpha_i) = (y - X_i\alpha_i)^T(y - X_i\alpha_i) = y^T y - 2\alpha_i^T X_i^T y + \alpha_i^T X_i^T X_i \alpha_i\]

<p>对 $\alpha_i$ 求导：</p>

\[\frac{\partial J}{\partial \alpha_i} = -2X_i^T y + 2X_i^T X_i \alpha_i\]

<p>令导数为 0：</p>

\[X_i^T X_i \alpha_i = X_i^T y\]

<p>若 $X_i^T X_i$ 可逆：</p>

\[\hat{\alpha}_i = (X_i^T X_i)^{-1}X_i^T y\]

<hr />
<h3 id="313-投影矩阵与重构误差">3.1.3 投影矩阵与重构误差</h3>
<p>第 $i$ 类重构样本：</p>

\[\hat{y}_i = X_i \hat{\alpha}_i\]

<p>代入最小二乘解：</p>

\[\hat{y}_i = X_i(X_i^T X_i)^{-1}X_i^T y\]

<p>定义帽子矩阵：</p>

\[H_i = X_i(X_i^T X_i)^{-1}X_i^T\]

<p>则</p>

\[\hat{y}_i = H_i y\]

<p>分类残差：</p>

\[d_i(y) = \|y - \hat{y}_i\|_2\]

<p>决策规则：</p>

\[\hat{c} = \arg\min_i d_i(y)\]

<hr />
<h3 id="314-模块化-lrc-与遮挡处理">3.1.4 模块化 LRC 与遮挡处理</h3>
<p>图像分 $M$ 个局部块，第 $n$ 块第 $i$ 类子空间：</p>

\[U_i^{(n)} = \big[w_i^{(1)}(n), w_i^{(2)}(n), \dots, w_i^{(p_i)}(n)\big]\]

<p>测试图像第 $n$ 块：$y^{(n)}$，最小二乘解：</p>

\[\hat{\alpha}_i^{(n)} = \big((U_i^{(n)})^T U_i^{(n)}\big)^{-1}(U_i^{(n)})^T y^{(n)}\]

<p>局部重构与残差：</p>

\[\hat{y}_i^{(n)} = U_i^{(n)}\hat{\alpha}_i^{(n)},\quad d_i(y^{(n)}) = \|y^{(n)} - \hat{y}_i^{(n)}\|_2\]

<p>局部块决策：</p>

\[j^{(n)} = \arg\min_i d_i(y^{(n)})\]

<hr />

<h2 id="32-ell_21-范数为什么能做特征选择">3.2 $\ell_{2,1}$-范数：为什么能做特征选择？</h2>
<h3 id="321-定义">3.2.1 定义</h3>
<p>矩阵 $M \in \mathbb{R}^{n \times m}$，第 $i$ 行 $m_i$：</p>

\[\|M\|_{2,1} = \sum_{i=1}^{n} \|m_i\|_2 = \sum_{i=1}^{n} \sqrt{\sum_{j=1}^{m} M_{ij}^2}\]

<p>结构特点：</p>
<ol>
  <li>行内 $\ell_2$：整行视作整体；</li>
  <li>行间 $\ell_1$：诱导<strong>行稀疏</strong>。</li>
</ol>

<p>若 $W \in \mathbb{R}^{d \times c}$，每行对应一个原始特征：</p>

\[\|W\|_{2,1} = \sum_{j=1}^{d} \|w_j\|_2\]

<p>行范数趋近 0 则对应特征可剔除。</p>

<hr />

<h2 id="33-rfs联合-ell_21-最小化的鲁棒特征选择">3.3 RFS：联合 $\ell_{2,1}$ 最小化的鲁棒特征选择</h2>
<h3 id="331-从普通最小二乘开始">3.3.1 从普通最小二乘开始</h3>

\[X = [x_1, x_2, \dots, x_n] \in \mathbb{R}^{d \times n},\quad Y = [y_1, y_2, \dots, y_n]^T \in \mathbb{R}^{n \times c}\]

<p>线性预测：</p>

\[\hat{Y} = X^T W\]

<p>普通最小二乘：</p>

\[\min_W \|X^T W - Y\|_F^2 = \sum_{i=1}^{n} \|W^T x_i - y_i\|_2^2\]

<h3 id="332-鲁棒损失残差不平方">3.3.2 鲁棒损失：残差不平方</h3>
<p>RFS 改用样本残差 $\ell_2$ 求和：</p>

\[\sum_{i=1}^{n} \|W^T x_i - y_i\|_2 = \|X^T W - Y\|_{2,1}\]

<h3 id="333-加入行稀疏正则">3.3.3 加入行稀疏正则</h3>
<p>最终目标：</p>

\[\min_W J(W) = \|X^T W - Y\|_{2,1} + \gamma \|W\|_{2,1}\]

<h4 id="334-约束形式推导">3.3.4 约束形式推导</h4>
<p>令误差矩阵 $E$：</p>

\[E = \frac{Y - X^T W}{\gamma} \;\Rightarrow\; X^T W + \gamma E = Y\]

<p>等价优化：</p>

\[\min_{W,E} \|W\|_{2,1} + \|E\|_{2,1} \quad \text{s.t.} \quad X^T W + \gamma E = Y\]

<p>拼接变量与系数矩阵：</p>

\[U = \begin{bmatrix} W \\ E \end{bmatrix},\quad A = [X^T,\ \gamma I]\]

<p>约束化为 $AU=Y$，目标：</p>

\[\min_U \|U\|_{2,1} \quad \text{s.t.} \quad AU = Y\]

<h3 id="335-迭代重加权解法推导">3.3.5 迭代重加权解法推导</h3>
<p>拉格朗日函数：</p>

\[\mathcal{L}(U) = \|U\|_{2,1} + \operatorname{Tr}\big[\Lambda^T(AU - Y)\big]\]

<p>$\ell_{2,1}$ 范数梯度：</p>

\[\frac{\partial \|U\|_{2,1}}{\partial U} = 2DU\]

<p>$D$ 为对角阵：</p>

\[D_{ii} = \frac{1}{2\|u_i\|_2}\]

<p>极值条件：</p>

\[2DU - A^T\Lambda = 0 \;\Rightarrow\; U = \frac{1}{2}D^{-1}A^T\Lambda\]

<p>代入约束 $AU=Y$：</p>

\[\Lambda = 2(AD^{-1}A^T)^{-1}Y\]

<p>回代得闭式：</p>

\[U = D^{-1}A^T(AD^{-1}A^T)^{-1}Y\]

<p>迭代更新：</p>

\[U_{t+1} = D_t^{-1}A^T(AD_t^{-1}A^T)^{-1}Y,\quad (D_{t+1})_{ii} = \frac{1}{2\|(u_{t+1})_i\|_2}\]

<hr />

<h2 id="34-udfs无监督场景下的判别特征选择">3.4 UDFS：无监督场景下的判别特征选择</h2>
<h3 id="341-局部判别思想">3.4.1 局部判别思想</h3>
<p>样本局部邻域 $N_k(x_i)$，局部数据矩阵：</p>

\[X_i = [x_i, x_{i1}, \dots, x_{ik}]\]

<p>局部中心化矩阵：</p>

\[H_{k+1} = I - \frac{1}{k+1}\mathbf{1}\mathbf{1}^T\]

<p>中心化数据：</p>

\[\tilde{X}_i = X_i H_{k+1}\]

<p>局部散度：</p>

\[S_t^{(i)} = \tilde{X}_i \tilde{X}_i^T,\quad S_b^{(i)} = \tilde{X}_i G_{(i)}G_{(i)}^T \tilde{X}_i^T\]

<p>无监督伪标签：</p>

\[G = X^T W,\quad G_{(i)} = S_i^T X^T W\]

<h3 id="342-局部判别分数推导">3.4.2 局部判别分数推导</h3>

\[DS_i = \operatorname{Tr}\Big[(S_t^{(i)} + \lambda I)^{-1}S_b^{(i)}\Big]\]

<p>代入散度与伪标签，利用迹循环性质化简得：</p>

\[DS_i = \operatorname{Tr}\Big[ W^T X S_i \tilde{X}_i^T (\tilde{X}_i\tilde{X}_i^T+\lambda I)^{-1} \tilde{X}_i S_i^T X^T W \Big]\]

<h3 id="343-udfs-目标函数推导">3.4.3 UDFS 目标函数推导</h3>
<p>最小化形式：</p>

\[\min_{W^T W=I} \sum_{i=1}^{n} \operatorname{Tr}\big(W^T X S_i H_{k+1}S_i^T X^T W\big) - DS_i + \gamma \|W\|_{2,1}\]

<p>化简为统一矩阵形式：</p>

\[\min_{W^T W=I} \operatorname{Tr}(W^T M W) + \gamma \|W\|_{2,1}\]

<p>其中</p>

\[M = X\left[ \sum_{i=1}^{n} S_iH_{k+1} (\tilde{X}_i^T\tilde{X}_i+\lambda I)^{-1} H_{k+1}S_i^T \right]X^T\]

<h3 id="344-udfs-的优化">3.4.4 UDFS 的优化</h3>
<p>$\ell_{2,1}$ 重加权近似：</p>

\[\|W\|_{2,1} \approx \operatorname{Tr}(W^T D W),\quad D_{jj} = \frac{1}{2\|w_j\|_2}\]

<p>每轮优化：</p>

\[\min_{W^T W=I} \operatorname{Tr}\big[W^T(M+\gamma D)W\big]\]

<p>迭代步骤：</p>

\[P_t = M + \gamma D_t,\quad W_t = \text{eig}_{\min\,c}(P_t),\quad (D_{t+1})_{jj} = \frac{1}{2\|(w_t)_j\|_2}\]

<hr />

<h2 id="35-谱回归-srussl把谱嵌入转化为回归">3.5 谱回归 SR/USSL：把谱嵌入转化为回归</h2>
<h3 id="351-图嵌入目标">3.5.1 图嵌入目标</h3>
<p>图权重 $W$、度矩阵 $D_{ii}=\sum_j W_{ij}$、拉普拉斯 $L=D-W$。
一维嵌入 $y$：</p>

\[\min_y \sum_{i,j}(y_i-y_j)^2 W_{ij} = \min_y 2y^T L y\]

<p>约束：</p>

\[\min_y y^T L y \quad \text{s.t.} \quad y^T D y = 1\]

<p>等价广义特征值：</p>

\[Wy = \lambda Dy\]

<h3 id="352-线性外推从-y-到投影方向-a">3.5.2 线性外推：从 $y$ 到投影方向 $a$</h3>
<p>线性映射：$y_i = a^T x_i$，整体</p>

\[y = X^T a\]

<p>代入得高维广义特征问题：</p>

\[X W X^T a = \lambda X D X^T a\]

<h3 id="353-谱回归核心定理">3.5.3 谱回归核心定理</h3>
<p>两步分解：</p>
<ol>
  <li>谱求解：$\boldsymbol{Wy = \lambda Dy}$</li>
  <li>回归拟合：</li>
</ol>

\[a = \arg\min_a \sum_{i=1}^{m}(a^T x_i - y_i)^2\]

<h3 id="354-加入稀疏正则">3.5.4 加入稀疏正则</h3>
<p>普通回归：</p>

\[a = \arg\min_a \sum_{i=1}^{m}(a^T x_i - y_i)^2\]

<p>Ridge：</p>

\[a = \arg\min_a \sum_{i=1}^{m}(a^T x_i - y_i)^2 + \alpha \sum_{j=1}^{n}a_j^2\]

<p>Lasso：</p>

\[a = \arg\min_a \sum_{i=1}^{m}(a^T x_i - y_i)^2 + \beta \sum_{j=1}^{n}|a_j|\]

<p>Elastic Net：</p>

\[a = \arg\min_a \sum_{i=1}^{m}(a^T x_i - y_i)^2 + \alpha \|a\|_2^2 + \beta \|a\|_1\]

<hr />
<h2 id="36-四篇论文之间的关系">3.6 四篇论文之间的关系</h2>
<p>主线逻辑：</p>

\[\text{子空间/图结构} \Rightarrow \text{回归形式} \Rightarrow \text{正则化} \Rightarrow \text{分类/特征选择}\]

<ol>
  <li><strong>LRC</strong>：$y \approx X_i\alpha_i$，靠重构残差分类；</li>
  <li><strong>Spectral Regression</strong>：$X^T a \approx y$，谱嵌入+回归统一谱方法；</li>
  <li><strong>RFS</strong>：$X^T W \approx Y$，$\ell_{2,1}$ 损失抗噪、$\ell_{2,1}$ 正则选特征；</li>
  <li><strong>UDFS</strong>：$G = X^T W$，无监督构造伪标签，结合局部判别与 $\ell_{2,1}$ 稀疏选特征。</li>
</ol>

<hr />

<h2 id="37-核心公式汇总">3.7 核心公式汇总</h2>
<h5 id="lrc">LRC</h5>

\[\hat{\alpha}_i = (X_i^T X_i)^{-1}X_i^T y,\quad \hat{y}_i = X_i\hat{\alpha}_i,\quad d_i(y)=\|y-\hat{y}_i\|_2,\quad \hat{c}=\arg\min_i d_i(y)\]

<h5 id="ell_21-范数">$\ell_{2,1}$-范数</h5>

\[\|W\|_{2,1} = \sum_{j=1}^{d}\|w_j\|_2\]

<h5 id="rfs">RFS</h5>

\[\min_W \|X^T W - Y\|_{2,1} + \gamma\|W\|_{2,1},\quad \min_U \|U\|_{2,1}\;\text{s.t.}\;AU=Y\]

\[U_{t+1} = D_t^{-1}A^T(AD_t^{-1}A^T)^{-1}Y,\quad (D_{t+1})_{ii} = \frac{1}{2\|u_{t+1,i}\|_2}\]

<h5 id="udfs">UDFS</h5>

\[DS_i = \operatorname{Tr}\big[(S_t^{(i)}+\lambda I)^{-1}S_b^{(i)}\big],\quad G = X^T W\]

\[\min_{W^T W=I} \operatorname{Tr}(W^TMW) + \gamma\|W\|_{2,1}\]

<h5 id="spectral-regression">Spectral Regression</h5>

\[Wy=\lambda Dy,\quad y=X^T a,\quad XWX^T a = \lambda XDX^T a\]

\[a=\arg\min_a\sum_i(a^T x_i-y_i)^2\]

<hr />

<h2 id="38-一句话总结">3.8 一句话总结</h2>
<p>把高维模式识别问题统一建模为<strong>线性回归/谱回归</strong>；分类依托子空间重构残差，特征选择依靠 $\ell_{2,1}/\ell_1$ 正则诱导稀疏置零无用特征；无监督场景借助图结构与局部判别构造可回归的伪标签，全程以<strong>回归+残差+稀疏正则+谱图结构</strong>为统一框架。</p>

<hr />]]></content><author><name>Your Name</name><email>sakur7a@outlook.com</email></author><category term="学习" /><category term="机器学习" /><category term="降维" /><summary type="html"><![CDATA[一、PCA类算法]]></summary></entry></feed>