<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://ssssmark.github.io//feed.xml" rel="self" type="application/atom+xml" /><link href="https://ssssmark.github.io//" rel="alternate" type="text/html" /><updated>2026-02-13T13:12:49+00:00</updated><id>https://ssssmark.github.io//feed.xml</id><title type="html">Homepage</title><subtitle>Your Name&apos;s academic portfolio</subtitle><author><name>Boyang Liu</name><email>boyangliu25@m.fudan.edu.cn</email></author><entry><title type="html">RL-Note(2)-马尔可夫决策过程</title><link href="https://ssssmark.github.io//blog-posts/2025/02/2026-2-13-RL-Note(2)-%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B" rel="alternate" type="text/html" title="RL-Note(2)-马尔可夫决策过程" /><published>2026-02-13T00:00:00+00:00</published><updated>2026-02-13T00:00:00+00:00</updated><id>https://ssssmark.github.io//blog-posts/2025/02/RL-Note(2)-%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B</id><content type="html" xml:base="https://ssssmark.github.io//blog-posts/2025/02/2026-2-13-RL-Note(2)-%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E5%86%B3%E7%AD%96%E8%BF%87%E7%A8%8B"><![CDATA[<!--more-->
<h2 id="马尔可夫过程">马尔可夫过程</h2>
<h3 id="马尔可夫性质">马尔可夫性质</h3>
<p>在随机过程中，马尔可夫性质（Markov property）是指一个随机过程在给定现在状态及所有过去状态情况下，其未来状态的条件概率分布仅依赖于当前状态。以离散随机过程为例，假设随机变量 $X_0,X_1,\cdots,X_T$构成一个随机过程。这些随机变量的所有可能取值的集合被称为状态空间（state space）。如果 $X_{t+1}$ 对于过去状态的条件概率分布仅是 $X_t$ 的一个函数，则
\(p\left(X_{t+1}=x_{t+1} \mid X_{0:t}=x_{0: t}\right)=p\left(X_{t+1}=x_{t+1} \mid X_{t}=x_{t}\right)\)
其中，$X_{0:t}$ 表示变量集合 $X_{0}, X_{1}, \cdots, X_{t}$，$x_{0: t}$ 为在状态空间中的状态序列 $x_{0}, x_{1}, \cdots, x_{t}$。马尔可夫性质也可以描述为给定当前状态时，将来的状态与过去状态是条件独立的。如果某一个过程满足马尔可夫性质，那么未来的转移与过去的是独立的，它只取决于现在。马尔可夫性质是所有马尔可夫过程的基础。</p>
<h3 id="马尔可夫链">马尔可夫链</h3>
<p>马尔可夫过程是一组具有马尔可夫性质的随机变量序列 $s_1,\cdots,s_t$，其中下一个时刻的状态$s_{t+1}$只取决于当前状态 $s_t$。我们设状态的历史为 $h_{t} = \left[s_{1}, s_{2}, s_{3}, \dots, s_{t} \right]$（$h_t$ 包含了之前的所有状态），则马尔可夫过程满足条件：</p>

\[p\left(s_{t+1} \mid s_{t}\right) =p\left(s_{t+1} \mid h_{t}\right)\]

<p>从当前 $s_t$ 转移到 $s_{t+1}$，它是直接就等于它之前所有的状态转移到 $s_{t+1}$。
离散时间的马尔可夫过程也称为<strong>马尔可夫链（Markov chain）</strong>。马尔可夫链是最简单的马尔可夫过程，其状态是有限的。</p>

<h3 id="马尔可夫奖励过程markov-reward-process-mrp"><strong>马尔可夫奖励过程</strong>（Markov reward process, MRP）</h3>
<p>马尔可夫奖励过程实际上是马尔可夫链加上奖励函数
在[[RL-Note(1)- RL基础]]我们定义回报return为从当前状态到终止状态的累计奖励，加入折扣因子，衡量随着时间步的奖励折损。
\(G_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k} = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \dots\)
有了return，就可以定义状态的价值了，就是<strong>状态价值函数（state-value function）</strong>。对于马尔可夫奖励过程，状态价值函数被定义成回报的期望，即</p>

\[\begin{aligned}
    V^{t}(s) &amp;=\mathbb{E}\left[G_{t} \mid s_{t}=s\right] \\
    &amp;=\mathbb{E}\left[r_{t+1}+\gamma r_{t+2}+\gamma^{2} r_{t+3}+\ldots+\gamma^{T-t-1} r_{T} \mid s_{t}=s\right]
\end{aligned}\]

<p>其中，$G_t$ 是之前定义的<strong>折扣回报（discounted return）</strong>。我们对$G_t$取了一个期望，期望就是从这个状态开始，我们可能获得多大的价值。所以期望也可以看成未来可能获得奖励的当前价值的表现，就是当我们进入某一个状态后，我们现在有多大的价值。</p>

<h3 id="马尔可夫决策过程markov-decision-processmdp"><strong>马尔可夫决策过程</strong>（Markov decision process，MDP）</h3>
<p>马尔可夫决策过程是描述随机动态系统的一般框架，其并不仅仅局限于强化学习。马尔可夫决策过程的涉及以下关键要素：</p>

<ol>
  <li>集合:
    <ul>
      <li>状态空间:状态的结合，记为$\mathcal{S}$。</li>
      <li>行动空间:行动的集合，记为$\mathcal{A}(s)$，其中$s \in \mathcal{S}$。</li>
      <li>奖励集合:与每个状态-行动对$(s,a)$相关联的奖励集合，用$\mathcal{R}(s，a)$表示。</li>
    </ul>
  </li>
  <li>模型:
    <ul>
      <li>状态转移概率: 在状态$s$采取行动$a$时，智能体转变为状态$s’$的概率为$p(s’ \mid s,a)$。对于任意$(s,a)$有$\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime}\mid s,a)=1$。</li>
      <li>奖励概率: 在状态$s$下，当采取行动$a$时，智能体获得奖励$r$的概率为$p(r \mid s,a)$。对于任意$(s,a)$有$\sum_{r\in\mathcal{R}(s,a)}p(r \mid s,a)=1$</li>
    </ul>
  </li>
  <li>
    <p>策略: 在状态$s$，智能体采取行动$a$的概率为$\pi(a \mid s).$对于任意$s\in\mathcal{S}$有$\sum_{a\in\mathcal{A}(s)}p(a\mid s)=1$。</p>
  </li>
  <li>马尔可夫性质: <strong>马尔可夫性质</strong> (Markov property)是指随机过程的无记忆性质。在数学上表示为：</li>
</ol>

\[p(s_{t+1} \mid s_t,a_t,s_{t-1},a_{t-1},\ldots,s_0,a_0)=p(s_{t+1} \mid s_t,a_t),\]

\[p(r_{t+1} \mid s_t,a_t,s_{t-1},a_{t-1},\ldots,s_0,a_0)=p(r_{t+1} \mid s_t,a_t),\tag{1.4}\]

<p>其中$t$代表当前时刻，$t+1$代表下一个时刻。式子(1.4)表明下一个状态和奖励仅依赖于当前时刻的状态和行动，而与之前的状态和行动无关。马尔可夫特性对于推导MDP的贝尔曼方程非常重要，在下章我们会详细讨论。</p>

<p>在马尔科夫决策过程中，$p(s’ \mid s,a)$和$p(r \mid s,a)$被称为<strong>模型</strong> (model)或<strong>动态</strong> (dynamics)。模型可以是<strong>平稳的</strong> (stationary)，也可以是<strong>非平稳的</strong> (nonstationary)：平稳模型不会随时间变化；而非平稳模型会随时间变化。例如，在网格世界的例子中，如果一个禁区时而出现时而消失，那么所对应的状态转移或者奖励就会随时间而变化，此时系统是非平稳的，本书只考虑平稳的情况。</p>

<p>“马尔可夫决策过程”和“马尔可夫过程”有什么区别呢？答案是：一旦在马尔可夫决策过程中的策略被确定下来了，马尔可夫决策过程就退化成了一个马尔可夫过程</p>

<p>强化学习涉及智能体与环境的交互。智能体之外的一切都被视为环境。第一，智能体可以理解并感知当前的状态。第二，智能体可以了解在什么状态应该采取什么行动。第三，智能体能够执行策略所指示的动作，从而改变状态获得奖励。</p>]]></content><author><name>Boyang Liu</name><email>boyangliu25@m.fudan.edu.cn</email></author><category term="RL学习笔记" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">RL-Note(1)-RL基础</title><link href="https://ssssmark.github.io//blog-posts/2025/02/RL-Note(1)-RL%E5%9F%BA%E7%A1%80" rel="alternate" type="text/html" title="RL-Note(1)-RL基础" /><published>2026-02-10T00:00:00+00:00</published><updated>2026-02-10T00:00:00+00:00</updated><id>https://ssssmark.github.io//blog-posts/2025/02/RL-Note(1)</id><content type="html" xml:base="https://ssssmark.github.io//blog-posts/2025/02/RL-Note(1)-RL%E5%9F%BA%E7%A1%80"><![CDATA[<!--more-->
<p>强化学习（reinforcement learning，RL）讨论的问题是智能体（agent）怎么在复杂、不确定的环境（environment）中最大化它能获得的奖励。如图 1.1 所示，强化学习由两部分组成：智能体和环境。在强化学习过程中，智能体与环境一直在交互。智能体在环境中获取某个状态后，它会利用该状态输出一个动作 （action），这个动作也称为决策（decision）。然后这个动作会在环境中被执行，环境会根据智能体采取的动作，输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励</p>

<h2 id="强化学习-vs-监督学习">强化学习 vs 监督学习</h2>
<p>RL 旨在让智能体（Agent）从某个状态（State）映射到某个行为（Action），以最大化某个奖励信号（Reward Signal）。这种学习方式与监督学习（Supervised Learning）有显著区别。 监督学习假设：</p>
<ol>
  <li><strong>输入数据是独立的</strong>：监督学习假设样本之间没有关联性，否则难以有效学习。</li>
  <li><strong>提供正确标签</strong>：每个样本都有明确的正确答案，学习器依赖这些标签来优化预测。</li>
</ol>

<p>然而，RL</p>
<ol>
  <li>输入的并不是独立的样本数据，而是有关联的序列数据，当前的动作会影响未来的状态和奖励</li>
  <li>并不是通过严格的标签来优化，而是通过自己探索和尝试不同的action来得到最大化的奖励信号，优化得到一个policy</li>
  <li>奖励信号是延迟的，强化学习智能体会从环境里面获得延迟的奖励，即环境可能会在很久以后告诉我们之前我们采取的动作到底是不是有效的</li>
</ol>

<h2 id="序列决策">序列决策</h2>
<p>序列决策（Sequential Decision Making）是强化学习的核心思想之一。智能体通过与环境的连续交互，基于状态、动作及奖励的反馈，逐步优化决策策略，以最大化累计奖励。</p>

<p>这是强化学习（Reinforcement Learning, RL）中最核心概念的数学形式化表达。我将按照你提供的结构，使用标准的数学符号将其转化为公式。</p>

<p>通常设定时间步为 $t$，当前时刻为 $t$。</p>

<h3 id="核心要素">核心要素</h3>

<ul>
  <li><strong>状态 (State) $s$</strong>: 属于状态空间 $\mathcal{S}$。智能体从环境中感知到的状态信息，用于决策。
\(s_t \in \mathcal{S}\)</li>
  <li><strong>动作 (Action) $a$</strong>: 属于动作空间 $\mathcal{A}$。智能体基于当前状态选择的输出，直接影响后续状态转移（State Transition）。
\(a_t \in \mathcal{A}\)</li>
  <li><strong>奖励 (Reward) $r$</strong>: 依赖于当前状态和动作，通常记作奖励函数 $R$：
\(r_t = R(s_t, a_t)\)</li>
  <li>
    <p><strong>策略（policy）$\pi$ ：将状态映射到动作的规则，定义了智能体在每个状态下的动作。</strong></p>
  </li>
  <li>
    <p><strong>轨迹 (Trajectory) $\tau$</strong>:
也被称为 Episode 或 Rollout，是一个状态、动作、奖励的序列。
智能体与环境交互所经历的状态、动作和奖励序列：
\(\tau = (s_0, a_0, r_0, s_1, a_1, r_1, \dots, s_T, a_T, r_T)\)
其中 $T$ 是终止时刻。
回合（Episode）/ 尝试（Trail）：从初始状态到终止状态（terminal state）的一次完整交互。
预演（Rollout）：模拟智能体在策略  下与环境交互，生成轨迹以评估策略效果。</p>
  </li>
  <li>
    <p><strong>轨迹的概率 (Probability of a Trajectory)</strong>
如果环境的状态转移概率为 $P(s_{t+1}|s_t, a_t)$，初始状态分布为 $\rho(s_0)$，则一条轨迹发生的概率为：
\(P(\tau|\pi) = \rho(s_0) \prod_{t=0}^{T-1} \pi(a_t|s_t) P(s_{t+1}|s_t, a_t)\)</p>
  </li>
  <li><strong>回报 (Return) $G$</strong>
从当前状态到终止状态的累计奖励。
\(G_t = \sum_{k=0}^{T-t} r_{t+k} = r_t + r_{t+1} + \dots + r_T\)</li>
  <li>折扣回报（Discounted Return）：考虑折扣因子  的回报，越遥远的奖励越少，避免回报发散。
引入折扣因子 $\gamma \in [0, 1]$，通常用于无限视界（Infinite Horizon）。
\(G_t = \sum_{k=0}^{\infty} \gamma^k r_{t+k} = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \dots\)</li>
</ul>

<h2 id="强化学习智能体的组成">强化学习智能体的组成</h2>
<p>对于一个强化学习智能体，它可能有一个或多个如下的组成成分</p>

<ul>
  <li>
    <p><strong>策略（policy）</strong>。智能体会用策略来选取下一步的动作。</p>
  </li>
  <li>
    <p><strong>价值函数（value function）</strong>。我们用价值函数来对当前状态进行评估。价值函数用于评估智能体进 入某个状态后，可以对后面的奖励带来多大的影响。价值函数值越大，说明智能体进入这个状态越有利。</p>
  </li>
  <li>
    <p><strong>模型（model）</strong>。模型表示智能体对环境的状态进行理解，它决定了环境中世界的运行方式。 下面我们深入了解这 3 个组成部分的细节。</p>
  </li>
</ul>

<h3 id="策略">策略</h3>
<p>策略是智能体的动作模型，它决定了智能体的动作。它其实是一个函数，用于把输入的状态变成动作。策略可分为两种：随机性策略和确定性策略。</p>

<p><strong>随机性策略（stochastic policy）</strong>就是 $\pi$ 函数，即$\pi(a | s)=p\left(a_{t}=a | s_{t}=s\right)$。输入一个状态 $s$，输出一个概率。 
这个概率是智能体所有动作的概率，然后对这个概率分布进行采样，可得到智能体将采取的动作。比如可能是有 0.7 的概率往左，0.3 的概率往右，那么通过采样就可以得到智能体将采取的动作。</p>

<p><strong>确定性策略（deterministic policy）</strong>就是智能体直接采取最有可能的动作，即 $a^{*}=\underset{a}{\arg \max} \pi(a \mid s)$。</p>
<h3 id="价值函数">价值函数</h3>
<p>价值函数的值是对未来奖励的预测，我们用它来评估状态的好坏。
\(V_{\pi}(s) \doteq \mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s\right]=\mathbb{E}_{\pi}\left[\sum_{k=0}^{\infty} \gamma^{k} r_{t+k+1} \mid s_{t}=s\right], \text{for all } s \in S\)
期望 $\mathbb{E}_{\pi}$ 的下标是 $\pi$ 函数，$\pi$ 函数的值可反映在我们使用策略 $\pi$ 的时候，到底可以得到多少奖励
我们还有一种价值函数：Q 函数。Q 函数里面包含两个变量：状态和动作。其定义为
\(Q_{\pi}(s, a) \doteq \mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s, a_{t}=a\right]=\mathbb{E}_{\pi}\left[\sum_{k=0}^{\infty} \gamma^{k} r_{t+k+1} \mid s_{t}=s, a_{t}=a\right]\)</p>

<p>所以我们未来可以获得奖励的期望取决于当前的状态和当前的动作。Q 函数是强化学习算法里面要学习的一个函数。因为当我们得到 Q 函数后，进入某个状态要采取的最优动作可以通过 Q 函数得到</p>

<h3 id="模型">模型</h3>
<p>模型决定了下一步的状态。下一步的状态取决于当前的状态以及当前采取的动作。它由状态转移概率和奖励函数两个部分组成。状态转移概率即
\(p_{s s^{\prime}}^{a}=p\left(s_{t+1}=s^{\prime} \mid s_{t}=s, a_{t}=a\right)\)</p>

<p>奖励函数是指我们在当前状态采取了某个动作，可以得到多大的奖励，即
\(R(s,a)=\mathbb{E}\left[r_{t+1} \mid s_{t}=s, a_{t}=a\right]\)</p>

<p>当我们有了策略、价值函数和模型3个组成部分后，就形成了一个**马尔可夫决策过程（Markov decision process）</p>]]></content><author><name>Boyang Liu</name><email>boyangliu25@m.fudan.edu.cn</email></author><category term="RL学习笔记" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">矩阵的低秩近似方法（一）</title><link href="https://ssssmark.github.io//blog-posts/2024/09/%E7%9F%A9%E9%98%B5%E7%9A%84%E4%BD%8E%E7%A7%A9%E8%BF%91%E4%BC%BC%E6%96%B9%E6%B3%95%EF%BC%88%E4%B8%80%EF%BC%89" rel="alternate" type="text/html" title="矩阵的低秩近似方法（一）" /><published>2024-09-22T00:00:00+00:00</published><updated>2024-09-22T00:00:00+00:00</updated><id>https://ssssmark.github.io//blog-posts/2024/09/%E7%9F%A9%E9%98%B5%E7%9A%84%E4%BD%8E%E7%A7%A9%E8%BF%91%E4%BC%BC%E6%96%B9%E6%B3%95%EF%BC%88%E4%B8%80%EF%BC%89</id><content type="html" xml:base="https://ssssmark.github.io//blog-posts/2024/09/%E7%9F%A9%E9%98%B5%E7%9A%84%E4%BD%8E%E7%A7%A9%E8%BF%91%E4%BC%BC%E6%96%B9%E6%B3%95%EF%BC%88%E4%B8%80%EF%BC%89"><![CDATA[<p>从奇异值分解、矩阵范数到低秩逼近的原理及证明</p>

<p><!--more--></p>
<h2 id="奇异值分解">奇异值分解</h2>
<h3 id="方阵情况">方阵情况：</h3>
<p>\(Ax=λx\)
A是一个n×n的实对称矩阵，x是一个nn维向量，则我们说λ是矩阵A的一个特征值，而x是矩阵A的特征值λ所对应的特征向量.可以将矩阵A特征分解
\(A=W\Sigma W^{-1}\)
其中W是这n个特征向量所张成的n×n维矩阵，而Σ为这n个特征值为主对角线的n×n维矩阵，把特征向量标准化，则这n个特征向量为标准正交基，满足$W^TW=I$
这样我们的特征分解表达式可以写成
\(A=W\Sigma W^T\)</p>
<h3 id="非方阵情况">非方阵情况</h3>
<p>任何实矩阵A∈Rm×n都可以分解为
\(\mathbf{A}=\mathbf{U}\Sigma\mathbf{V}^T\)
其中U和V都是酉矩阵，满足
\(\mathbf{U}^T\mathbf{U}=\mathbf{I}\text,\mathbf{V}^T\mathbf{V}=\mathbf{I}，(\Sigma)_{ii}=\sigma_i\),且其它位置的元素均为0,\(\sigma_i&gt;0\)
为奇异值，
<img src="/images/lowrank/svd.png" alt="alt text" /></p>

<p>如何求SVD分解后的U,Σ,V这三个矩阵?
m×m方阵\(AA^T\)的所有特征向量张成U矩阵，n×n方阵$A^TA$的所有特征向量张成V矩阵
<strong>证明：</strong>
\(A=U\Sigma V^T\Rightarrow A^T=V\Sigma^TU^T\Rightarrow A^TA=V\Sigma^TU^TU\Sigma V^T=V\Sigma^2V^T\)
特征值和奇异值满足如下关系
\(\sigma_i=\sqrt{\lambda_i}\)</p>

<h2 id="范数">范数</h2>
<h3 id="p范数">p范数</h3>
<p>对于\(x=(x_1,x_2,\cdots,x_m)\),p范数定义为
\(\|x\|_p=\sqrt[p] { \sum_{ i=1 }^mx_i^p }\)
而p-范数中，最常见的就是p=2的情形，它就是我们经常说的向量模长，也叫“欧几里得范数”，如果省略范数的下标只写‖x‖，那么基本上就是默认p=2。</p>
<h3 id="矩阵的f范数">矩阵的F范数</h3>
<p>直接将矩阵展平为向量来计算：
\(\|M\|_F=\|\operatorname{vec}(M)\|_2=\sqrt{\sum_{i=1}^n\sum_{j=1}^mM_{i,j}^2}\)</p>
<h3 id="矩阵的谱范数2-范数定义">矩阵的谱范数（2-范数）定义</h3>
<p>\(\|A\|_2=\max_{\|x\|_2=1}\|Ax\|_2\)
矩阵的谱范数是其最大的奇异值</p>
<h2 id="伪逆">伪逆</h2>
<p>是“逆矩阵”的概念对于不可逆矩阵的推广。
对于AB=M，如果想求得\(B=A^{-1}M\),需要A可逆，如果A不可逆或A不为方阵，需要转化为优化问题：
\(\underset{B}{\operatorname*{argmin}}\|AB-M\|_F^2\)
F范数（Frobenius Norm），用来衡量矩阵AB−M与全零矩阵的距离，定义为
\(\|M\|_F=\sqrt{\sum_{i=1}^n\sum_{j=1}^mM_{i,j}^2}\)
从求精确的逆矩阵改为最小化AB与M的平方误差</p>

<h2 id="低秩逼近">低秩逼近</h2>
<p>问题就是我们希望用一个秩不超过r的矩阵D^去逼近原始矩阵D,使得他们俩之间的F范数最小
矩阵的奇异值分解为
\(D=U \Sigma V^{\top} \in \mathbb{R}^{m \times n}, \quad m \leq n \\\)
根据已知的秩的约束，我们可以将对应的矩阵分为两部分
\(U=:\left[\begin{array}{ll} U_1 &amp; U_2 \end{array}\right],  \Sigma=:\left[\begin{array}{cc} \Sigma_1 &amp; 0 \\ 0 &amp; \Sigma_2 \end{array}\right], V=:\left[\begin{array}{ll} V_1 &amp; V_2 \end{array}\right]\\\)
其中\(U_1\in\mathbb{R}^{m\times r},\Sigma_1\in\mathbb{R}^{r\times r},V_1\in\mathbb{R}^{r\times n}\)
即由前面的分块矩阵相乘得到的秩为r的部分为
\(\widehat{D}^*=U_1 \Sigma_1 V_1^{\top} \\\)
则$\widehat{D}^{*}$就是上述问题的最优解
\(\left\|D-\widehat{D}^*\right\|_{\mathrm{F}}=\min _{\operatorname{rank}(\widehat{D}) \leq r}\|D-\widehat{D}\|_{\mathrm{F}}=\sqrt{\sigma_1^2+\cdots+\sigma_r^2} \\\)</p>

<h3 id="证明从2范式角度">证明：从2范式角度</h3>
<p>在分好块的基础上：
\(D=U\Sigma V^T=\left[\begin{array}{ll} U_1 &amp; U_2 \end{array}\right]\left[\begin{array}{cc} \Sigma_1 &amp; 0 \\ 0 &amp; \Sigma_2 \end{array}\right]\left[\begin{array}{cc} V_1^T  \\  V_2^T \end{array}\right]\\\)
\(=\left[\begin{array}{ll} U_1\Sigma_1 &amp; U_2\Sigma_2 \end{array}\right]\left[\begin{array}{cc} V_1^T  \\  V_2^T \end{array}\right] \\\)
\(=U_1\Sigma_1 V_1^T+U_2\Sigma_2 V_2^T  \\\)
\(=\sum_{i=1}^{\color{red}r} \sigma_i u_i v_i^{\top}+\sum_{i={\color{red}r+1}}^n \sigma_i u_i v_i^{\top} \\\)
假设第一部分为\(D_r\),则需要证明对任意秩小于等于r的m×n矩阵$B_r$,都有
\(\|D-D_r\|_2\leq \|D-B_r\|_2 \\\)
而
\(\|D-D_r\|_2=\|\sum_{i={\color{red}r+1}}^n \sigma_i u_i v_i^{\top}\|_2=\sigma_{r+1} \\\)（最大的奇异值）
所以只需要证明右边大于等于原矩阵D的第r+1个奇异值即可</p>

<p><strong>满秩分解</strong>
对于m×n的矩阵A，若其秩为k，若存在秩同样为k的两个矩阵\(F_{m\times k}\)(列满秩)和\(G_{n\times k}\)(列满秩)，使得\(A=FG^T\)，则称其为矩阵A的满秩分解。</p>
<ul>
  <li>任何非零矩阵一定存在满秩分解</li>
  <li>满秩分解不唯一</li>
</ul>

<p>我们先对任意秩小于等于r的矩阵Br做一个关于维数r的分解$B_r=XY^T$其中\(X\in\mathbb{R}^{m\times r},Y^T\in\mathbb{R}^{r\times n}\)
如果Br的秩刚好为r,直接用它的满秩分解即可，若秩小于r，则在它对应的满秩分解后补0凑够r列即可。</p>

<p>对于\(Y^T w=0\)这个线性方程组，由于这里至多只有r个线性无关的向量，很容易在正交矩阵V∈Rn×n中找到r+1个线性无关的向量使得
\(w=\gamma_1 v_1+\cdots+\gamma_{r+1}v_{r+1} \\\)使得\(Y^Tw=0\)
并且我们可以对w的系数做一个规范化，使得
\(\|w\|_2=\gamma_1^2+\cdots+\gamma_{r+1}^2=1 \\\)
由Cauchy-Schwarz不等式的向量形式<br />
\(|\mathbf{a}\cdot\mathbf{b}|\leq\|\mathbf{a}\|\|\mathbf{b}\|\)
\(1\cdot \|D-B_r\|^2_2=\|w\|_2^2\|D-B_r\|^2_2\geq \|(D-B_r)w\|^2_2 \\\)
而
\(B_rw=X(Y^Tw)=X\mathbf{0}=\mathbf{0} \\\)
 所以右边只剩下
 \(\|Dw-\mathbf{0}\|^2_2 \\\)
\(V_{n\times n}=\left[\begin{array}{ll} v_1,\cdots,v_{r+1}\bigg|\cdots,v_{n} \end{array}\right]\\\)
\(V_{n\times n}^T=\left[\begin{array}{ll} v_1^T\\ \vdots\\v_{r+1}^T\\  \hline \vdots\\ v_{n}^T \end{array}\right]\\\)
\(\boldsymbol{\gamma}=\left[\begin{array}{ll} \gamma_1,\cdots,\gamma_{r+1} \end{array}\right]^T\in\mathbb{R}^{(r+1)\times 1}\)
那么由前面所找到的向量组，
\(w_{n\times 1}=V_{n\times (r+1)}^{\#}\boldsymbol{\gamma}_{(r+1)\times 1}=\left[\begin{array}{ll} v_1,\cdots,v_{r+1} \end{array}\right]\left[\begin{array}{ll} \gamma_1\\\vdots\\\gamma_{r+1} \end{array}\right]\\\)
\(Dw=U\Sigma V^T V^{\#}\boldsymbol{\gamma} \\\)
根据结合律，先计算
\(V^T V^{\#}\)
,由于V为正交矩阵，结果可以写成如下的分块矩阵：
\(V^T_{n\times n} V^{\#}_{n\times (r+1)}=\left[\begin{array}{ll} v_1^T\\ \vdots\\v_{r+1}^T\\  \hline \vdots\\ v_{n}^T \end{array}\right]\left[\begin{array}{ll} v_1,\cdots,v_{r+1} \end{array}\right]=\left[\begin{array}{ll} \boldsymbol{I}_{r+1}\\ \boldsymbol{0}_{(n-r-1)\times (r+1)} \end{array}\right]_{n\times (r+1)}\\\)
\(\left[\begin{array}{ll} \boldsymbol{I}_{r+1}\\ \boldsymbol{0}_{(n-r-1)\times (r+1)} \end{array}\right]_{n\times (r+1)}\left[\begin{array}{ll} \gamma_1\\\vdots\\\gamma_{r+1} \end{array}\right]_{(r+1)\times 1}=\left[\begin{array}{lll} \gamma_1 \\ \vdots\\ \gamma_{r+1} \\ \boldsymbol{0} \end{array}\right]_{n \times 1}\)
再计算前面的
\(\Sigma_{m\times n}\left[\begin{array}{lll} \gamma_1 \\ \vdots\\ \gamma_{r+1} \\ \boldsymbol{0} \end{array}\right]_{n \times 1}=\left[\begin{array}{lll} \sigma_1 \\ &amp;\ddots\\ &amp;&amp;\sigma_{r+1}&amp; &amp;&amp;\boldsymbol{0}\\ &amp;&amp;&amp;\ddots\\ &amp;&amp;&amp;&amp;\sigma_{rank(D)} \\ \qquad\boldsymbol{0} \end{array}\right]_{m \times n}\left[\begin{array}{lll} \gamma_1 \\ \vdots\\ \gamma_{r+1} \\ \boldsymbol{0} \end{array}\right]_{n \times 1}=\left[\begin{array}{lll} \sigma_1\gamma_1 \\ \vdots\\ \sigma_{r+1}\gamma_{r+1} \\ \boldsymbol{0} \end{array}\right]_{m \times 1}\\\)
可以得到 
\(Dw=U_{m \times m}\left[\begin{array}{lll} \sigma_1\gamma_1 \\ \vdots\\ \sigma_{r+1}\gamma_{r+1} \\ \boldsymbol{0} \end{array}\right]_{m \times 1}\\\)
U是酉矩阵，列向量互相垂直且模长为1
\(Dw=\left[\begin{array}{lll} u_1 \cdots u_m \end{array}\right]_{m \times m}\left[\begin{array}{lll} \sigma_1\gamma_1 \\ \vdots\\ \sigma_{r+1}\gamma_{r+1} \\ \boldsymbol{0} \end{array}\right]_{m \times 1}=\sigma_1\gamma_1 \boldsymbol{u_1}+\cdots+\sigma_{r+1}\gamma_{r+1} \boldsymbol{u_{r+1}}\\\)
这里求得是向量的2范数，所以直接为所有元素的平方和
\(\|Dw\|_2^2=\sigma_1^2\gamma_1^2 +\cdots+\sigma_{r+1}^2\gamma_{r+1}^2  \\\)
由于\(\gamma_1^2 +\cdots+\gamma_{r+1}^2=1\)且 \(\sigma_1\geq\sigma_2\geq\cdots\geq\sigma_{r+1}\)
所以\(\sigma_1^2\gamma_1^2 +\cdots+\sigma_{r+1}^2\gamma_{r+1}^2\geq \sigma_{r+1}^2 \\\)
\(\|D-D_r\|_2^2={\color{blue}\sigma_{r+1}^2\leq \sigma_1^2\gamma_1^2 +\cdots+\sigma_{r+1}^2\gamma_{r+1}^2}=\|D-B_r\|_2^2 \\\)
证毕</p>

<h3 id="证明从f范式角度">证明：从F范式角度</h3>
<p>思路一样，先计算
\(\|D-D_{r}\|_F^2=\|\sum_{i={\color{red}r+1}}^n \sigma_i u_i v_i^{\top}\|_F^2 \\\)
因为后半部分矩阵的奇异值就是\(\sigma_{r+1}\cdots\sigma_{n}\),F范数平方的等价定义是奇异值的平方的和，所以上式就直接等于\(\sum_{i=r+1}^n \sigma_{i}^2\)
只需要证明对任意秩不超过r的矩阵Br
\(\|D-B_{r}\|_F^2\geq \sum_{i=r+1}^n \sigma_{i}^2=\|D-D_{r}\|_F^2 \\\)
左边的展开式为
\(\|D-B_{r}\|_F^2=\sum_{i=1}^{n}\sigma_i^2(D-B_{r})\\\)  （等于矩阵所有奇异值的平方和）</p>

<p>借助Weyl定理的奇异值版本，对任意的m×n的矩阵A，B，有下式成立
\(\sigma_{i+j-1}(A+B)\leq \sigma_i(A)+\sigma_j(A) \\\)
借用这个结论，我们可以令\(A=D-B_r,B=B_r\)
\(\sigma_{\color{blue}i+j-1}(D)\leq \sigma_{\color{blue}i}(D-B_r)+\sigma_{\color{blue}j}(B_r) \\\)
取\(i=1,j=r+1\)
\(\sigma_{r+1}(D)\leq \sigma_1(D-B_r)+\sigma_{r+1}(B_r) \\\)
由于Br的秩不超过r，所以 \(\sigma_{r+1}(B_r)=0\),所以有\(\sigma_{r+1}(D)\leq \sigma_1(D-B_r) \)
同样地再取\(i=2,\cdots,(n-r-2);j=r+1\),把各项平方再相加，我们就证明了
\(\|D-B_{r}\|_F^2={\color{blue}\sum_{i=1}^{n}\sigma_i^2(D-B_{r})\geq \sum_{i=r+1}^n \sigma_{i}^2}=\|D-D_{r}\|_F^2 \\\)</p>

<p>相当于D先做了一个奇异值分解，然后取前r个奇异值，取完之后用奇异值分解的公式还原回D<em>，D</em>就可以作为近似矩阵 SVD分解后的秩r截断是原优化问题的最优解，可以用来做低秩逼近。</p>

<p>参考：</p>
<ul>
  <li>https://en.wikipedia.org/wiki/Low-rank_approximation</li>
  <li>https://xixuhu.github.io/_posts/2023-02-15-svd</li>
  <li>https://zh.wikipedia.org/wiki/%E7%9F%A9%E9%99%A3%E7%AF%84%E6%95%B8</li>
  <li>https://spaces.ac.cn/archives/10366</li>
</ul>]]></content><author><name>Boyang Liu</name><email>boyangliu25@m.fudan.edu.cn</email></author><category term="数学" /><category term="低秩" /><category term="线性代数" /><summary type="html"><![CDATA[从奇异值分解、矩阵范数到低秩逼近的原理及证明]]></summary></entry></feed>