Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

Math——范数和谱范数


范数的定义

  • 在数学中,范数 (Norm) 是一个函数,它将向量空间中的每个非零向量映射为一个正实数 ,直观上可以理解为向量的“长度”或“大小”
    • 注:常规聊的范数都是针对向量空间的,谱范数(Spectral Norm) 是针对矩阵空间的
  • 对于零向量,范数映射为零
  • 范数需要满足以下三个性质:
    • 1)非负性 (Non-negativity) :对于所有向量 \( x \),有\(|x| \ge 0\),且当且仅当 \(x = 0\) 时,\(|x| = 0\)
    • 2)齐次性 (Homogeneity) :对于所有标量 \( \alpha \) 和向量 \( x \),有 \(|\alpha x| = |\alpha| |x|\)
    • 3)三角不等式 (Triangle Inequality) :对于所有向量 \( x \) 和 \(y\),有 \(|x + y| \le |x| + |y|\)

常见的范数——\(L_p\) 范数

  • \(L_p\) 范数,也称为 Minkowski 范数,定义为:
    $$|x|_p = \left( \sum_{i=1}^n |x_i|^p \right)^{\frac{1}{p} }$$
    • \(x = [x_1, x_2, \dots, x_n]^T\) 是一个 \(n\) 维向量
    • \(p \ge 1\) 是一个实数

\(L_1\) 范数 (Manhattan Norm / Taxicab Norm)

  • 当 \(p=1\) 时,称为 \(L_1\) 范数,表示向量中所有元素的绝对值之和
  • \(L_1\) 范数衡量的是向量元素到原点的曼哈顿距离
    $$|x|_1 = \sum_{i=1}^n |x_i|$$
  • 在机器学习中,常用于稀疏表示和特征选择(如 Lasso 回归),因为它倾向于产生稀疏解

\(L_2\) 范数 (Euclidean Norm)

  • 当 \(p=2\) 时,称为 \(L_2\) 范数,表示向量的欧几里得长度,即从原点到向量的欧几里得距离
    $$|x|_2 = \sqrt{\sum_{i=1}^n |x_i|^2}$$
  • \(L_2\) 范数是最常见的范数,广泛应用于各种领域,如机器学习中的岭回归 (Ridge Regression)、深度学习中的权重衰减 (Weight Decay) 以及距离计算

\(L_\infty\) 范数 (Maximum Norm / Chebyshev Norm)

  • 当 \(p \to \infty\) 时,称为 \(L_\infty\) 范数,表示向量中所有元素的绝对值的最大值
    $$|x|_\infty = \max_{i} |x_i|$$
  • 在一些优化问题中,当需要限制向量中最大分量的大小时会使用到

矩阵范数

  • 矩阵范数是定义在矩阵空间上的范数,除了满足向量范数的三个性质外,对于矩阵乘法还需满足:
    $$
    |AB| \leq |A| |B|
    $$

诱导范数(算子范数)

  • 对于矩阵 \( A \in \mathbb{C}^{m \times n} \),由向量范数 \( |\cdot|_p \) 诱导的矩阵范数定义为:
    $$
    |A|_p = \sup_{x \neq 0} \frac{|Ax|_p}{|x|_p} = \sup_{|x|_p=1} |Ax|_p
    $$
  • 特殊情况下,有以下范数:
    • 1)列和范数(诱导自 \(L_1\) 范数) :
      $$
      |A|_1 = \max_{1 \leq j \leq n} \sum_{i=1}^m |a_{ij}|
      $$
      • 按列求和,再取最大者
    • 2)谱范数(诱导自 \(L_2\) 范数) :
      $$
      |A|_2 = \sqrt{\lambda_{\max}(A^* A)}
      $$
      • 其中 \( \lambda_{\max} \) 表示最大特征值,\( A^* \) 是 \( A \) 的共轭转置
    • 3)行和范数(诱导自 \(L_\infty\) 范数) :
      $$
      |A|_\infty = \max_{1 \leq i \leq m} \sum_{j=1}^n |a_{ij}|
      $$
      • 按行求和,再取最大者

常用的矩阵范数——谱范数

  • 谱范数(Spectral Norm) 是矩阵范数的一种,它通常特指矩阵的 \(L_2\) 范数,即诱导 \(L_2\) 范数
  • 谱范数是矩阵分析中最重要的范数之一,具有许多优良性质

谱范数定义

  • 对于矩阵 \( A \in \mathbb{C}^{m \times n} \),其谱范数定义为:
    $$
    |A|_2 = \sup_{x \neq 0} \frac{|Ax|_2}{|x|_2} = \sigma_{\max}(A)
    $$
    • 其中 \( \sigma_{\max}(A) \) 是 \( A \) 的最大奇异值
  • 谱范数的更容易理解的另一个形式为:
    $$|A|_2 = \max_{x \ne 0} \frac{|Ax|_2}{|x|_2}$$
    • 这个定义表明,谱范数是矩阵 \(A\) 对向量 \(x\) 进行线性变换后 ,最大可能的“放大倍数”
    • 换句话说,它衡量了矩阵 \(A\) 在将单位向量 \(x\) 映射到 \(Ax\) 时,所能达到的最大长度

谱范数计算方法

  • 1) 计算 \( A^* A \)(实矩阵时计算 \( A^T A \) 即可)
    • 注:\( A^* \) 是共轭转置 ,对于实矩阵为普通转置 \( A^T\)
  • 2) 求 \( A^* A \) 的最大特征值 \( \lambda_{\max} \)
  • 3) 谱范数为 \( \sqrt{\lambda_{\max} } \)

谱范数性质

  • 1) 次乘性 :\( |AB|_2 \leq |A|_2 |B|_2 \)
  • 2) 酉不变性 :对于任意酉矩阵 \( U \) 和 \( V \),有 \( |UAV|_2 = |A|_2 \)
    • 注:酉矩阵(Unitary Matrix)的共轭转置(即 Hermitian 转置)等于其逆矩阵:
      $$ U^*U = UU^* = I$$
  • 3) 与Frobenius范数的关系 :\( |A|_2 \leq |A|_F \leq \sqrt{\operatorname{rank}(A)} |A|_2 \)
  • 4) 与特征值的关系 :对于正规矩阵,谱范数等于谱半径 \( \rho(A) = \max |\lambda_i| \)

谱范数的应用

  • 矩阵近似 :在低秩近似中,谱范数度量了近似误差

附录:谱范数与奇异值

  • 谱范数有一个非常重要的性质,它等于矩阵 \(A\) 的最大奇异值
  • 矩阵 \(A\) 的奇异值是其正定半定矩阵 \(A^T A\)(或 \(A A^T\))的特征值的平方根
  • 令 \(\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r > 0\) 为矩阵 \(A\) 的非零奇异值,其中 \(r = \text{rank}(A)\)。那么,谱范数可以表示为:
    $$|A|_2 = \sigma_{\max}(A) = \sqrt{\lambda_{\max}(A^T A)}$$
    • \(\sigma_{\max}(A)\) 表示矩阵 \(A\) 的最大奇异值
    • \(\lambda_{\max}(A^T A)\) 表示矩阵 \(A^T A\) 的最大特征值
  • 推导简述 :
    • 考虑 \(A^T A\) 是一个对称半正定矩阵,它的特征值都是非负的
    • 对于任意非零向量 \(x\),我们有:
      $$\frac{|Ax|_2^2}{|x|_2^2} = \frac{(Ax)^T (Ax)}{x^T x} = \frac{x^T A^T A x}{x^T x}$$
    • 根据瑞利商 (Rayleigh Quotient) 的性质,\(\max_{x \ne 0} \frac{x^T M x}{x^T x} = \lambda_{\max}(M)\),其中 \(M\) 是对称矩阵
    • 因此:
      $$\max_{x \ne 0} \frac{|Ax|_2^2}{|x|_2^2} = \lambda_{\max}(A^T A)$$
    • 取平方根后即可得到 \(|A|_2 = \sqrt{\lambda_{\max}(A^T A)} = \sigma_{\max}(A)\)
  • 谱范数用于正则化 :在机器学习中,谱范数可以用于限制模型的复杂度,例如在深度学习中,限制神经网络层的权重矩阵的谱范数可以帮助防止过拟合

附录:共轭转置

  • 共轭转置(Conjugate Transpose),也称为Hermitian转置 ,是线性代数中对矩阵的一种操作,记作 \( A^* \)、\( A^H \) 或 \( A^\dagger \)
  • 共轭转置 对矩阵 \( A \) 进行以下两步运算:
    • 1) 共轭 :将矩阵 \( A \) 的每个元素取复共轭(即实部不变,虚部取反)
    • 2) 转置 :将矩阵的行列互换(即第 \( i \) 行第 \( j \) 列元素变为第 \( j \) 行第 \( i \) 列)

与普通转置对比

  • 普通转置(\( A^T \)) :仅行列互换,不取共轭
  • 实矩阵的共轭转置 :退化为普通转置(因虚部为零)

附录:Schatten-\( p \) 范数是什么?

  • Schatten-\( p \) 范数(Schatten-\( p \) norm)是矩阵空间中一类重要的范数,常用于描述矩阵的“大小”或“强度”
  • Schatten-\( p \) 范数 基于矩阵的奇异值(singular values)定义,适用于更广泛的矩阵分析场景(如紧算子、核范数等)

Schatten-\( p \) 范数的定义

  • 设矩阵 \( A \in \mathbb{C}^{m \times n} \) 的奇异值为 \( \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0 \)(其中 \( r = \min(m, n) \)),则其 Schatten-\( p \) 范数定义为:
    $$
    |A|_{S_p} = \left( \sum_{i=1}^r \sigma_i^p \right)^{1/p}, \quad p \in [1, \infty).
    $$

Schatten-\( p \) 范数的特例

  • 1) \( p = 1 \)(核范数,Nuclear norm)
    $$ |A|_{S_1} = \sum_{i=1}^r \sigma_i $$
    • 用于矩阵低秩恢复、压缩感知等
  • 2) \( p = 2 \)(Frobenius 范数,也称 F 范数)
    $$ |A|_{S_2} = \left( \sum_{i=1}^r \sigma_i^2 \right)^{1/2} = \sqrt{\text{tr}(A^* A)} $$
    • 即矩阵元素的平方和开根号
  • 3) \( p = \infty \)(谱范数,Spectral norm)
    $$ |A|_{S_\infty} = \sigma_1 $$
    • 等于矩阵的最大奇异值,也是算子范数的一种

附录:Frobenius 范数的更多说明

  • Frobenius范数(F 范数)是矩阵的一种常用范数,用于衡量矩阵的“大小”
  • 它将矩阵视为一个向量,计算其所有元素的平方和的平方根
  • 对于一个 \( m \times n \) 的矩阵 \( A = (a_{ij}) \),其Frobenius范数定义为:
    $$
    |A|_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^2}
    $$
    • 等价于矩阵所有元素的平方和再开平方
    • 在 PyTorch 中的实现为 A.norm()

RL——AlphaGo系列算法


AlphaGo整体说明

  • AlphaGo是强化学习的阶段性集大成者,其核心思想值得细细推敲

AlphaGo棋局介绍

  • AlphaGo 的目标是解决围棋对弈问题 ,即在标准的 19×19 围棋棋盘上(共381维),通过观察棋盘情况选择最优的落子动作,击败对手
  • 输入 :当前棋盘状态(包括棋子分布和历史信息)
  • 输出 :下一步落子的最优位置(或概率分布)
  • 挑战 :
    • 围棋的状态空间复杂度高达 \(3^{361}\)(约\(10^{172}\)量级),无法暴力搜索
    • 围棋的决策步长约100+步,决策需要结合长期策略收益
    • 围棋的评估函数难以设计(难以量化当前局面是否有“局面优势”)

ALphaGo问题建模

  • 状态空间:\(19 \times 19 \times N\),这里的N在不同版本不一样,比如17=16+1时,16是用于记录最近 8 步的状态(相当于记录了窗口),1则表示该哪一方下棋,其他还有一些需要理解围棋规则才能解释
  • 动作空间:离散动作空间,362个动作可选(361位置 + 1 Pass)
  • 奖励函数:对局结束时,胜利方奖励+1,失败方-1,平局为0(围棋通常无平局)

AlphaGo 训练过程(分三个阶段)

第一阶段:行为克隆(监督学习模仿人类专家)

  • 基于 KGS 围棋平台上的 3000 万局人类对弈棋谱,学习人类专家的落子的模式
  • 通过监督学习训练一个策略网络(Policy Network) ,输入棋盘状态,输出人类选手的落子概率分布
    • 网络结构:13 层卷积神经网络(CNN)
    • 准确率:57%(预测人类下一步动作)

第二阶段:强化学习(自我对弈优化,策略梯度优化)

  • 通过策略梯度法,进一步优化策略网络,超越人类水平
    • 自我对弈 :使用初始策略网络生成大量自我对局数据
    • 策略梯度 :通过胜负结果优化策略网络(即强化学习策略网络),使其更倾向于获胜的走法
    • 回报函数 :对局结束时获胜方获得 +1 奖励,失败方获得 -1

第三阶段:价值网络学习(局面评估)

  • 价值网络学习阶段的目标是训练一个价值网络(Value Network) ,预测当前局面的胜率(替代蒙特卡洛rollout的耗时评估)
  • 通过自我对弈生成 3000 万组棋盘状态及最终胜负结果,学习一个标量值(-1 到 +1),表示当前玩家获胜的概率

AlphaGo 决策过程

  • AlphaGo 的实时决策基于蒙特卡洛树搜索(MCTS) ,结合神经网络的输出:
  • 选择(Selection) :从根节点(当前棋盘状态)出发,通过树策略(如UCT算法)选择子节点,平衡探索与利用,使用策略网络优先选择高概率的落子分支
  • 扩展(Expansion) :当遇到未探索的节点时,用策略网络生成可能的落子概率,扩展树结构
  • Evaluation 对价值网络评估胜率,和策略网络模拟rollout到终局得到的奖励两者做加权结合
  • 回溯(Backup) :将叶子节点的评估结果反向传播更新路径上的节点统计量(访问次数、平均胜率)
  • 最终决策(Decision) :搜索结束后,选择访问次数最多的节点对应的落子动作

AlphaGo 相关思考

  • 以模仿学习作为强化学习策略的冷启动是个不错的想法
  • 使用MCTS来决策有助于提升模型决策能力,在MCTS下,随着围棋的进行,搜索空间变小,AlphaGo相对人类的优势会越来越明显

附录:AlphaGo 的迭代版本

版本 发版时间 训练数据 核心算法 计算需求 棋力提升
AlphaGo Fan 2015年10月 人类棋谱(监督学习) SL + MCTS 中等(分布式计算) 首次击败职业棋手(樊麾)
AlphaGo Lee 2016年3月 人类棋谱 + 自我对弈 SL + RL + MCTS + 价值网络 高(1202 CPU + 176 GPU) 超越人类顶尖(李世石)
AlphaGo Master 2017年1月(Master)
2017年5月(正式对战柯洁)
纯自我对弈 纯RL + 深度网络 低(单机) 完胜人类第一柯洁
AlphaGo Zero 2017年10月 从零开始自我对弈 纯RL + ResNet + MCTS 极低(4 TPU) 100:0击败AlphaGo Lee
AlphaZero 2017年12月 多棋类自我对弈 通用RL + 高效搜索 低(单机) 8小时超越AlphaGo Zero
1…147148149…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4