[CS131] Lecture 13 Face Recognition and LDA

根据 Stanford CS131 课程写的笔记(大部分为 note 翻译),英语水平一般,如有错误请评论指正

Lecture 13 Face Recognition and LDA

Introduction to Facial Recognition

Applications

  • 数字摄影:聚焦人脸
  • 监视器
  • 组织相册:将相同的人放在同一相册
  • 人物追踪
  • 动作和表情:构建基于心情互动的智能设备
  • 安全和战争:检测特殊人物、敌军
  • 电话会议:提供正在视频的人的信息

A Key Distinction: Detection vs. Recognition

Face Detection: 检测照片是否包含人脸和照片上人脸的位置

Face Recognition: 检测照片包含的脸

Space of Faces

如果我们考虑一张大小为 m×n m × n 灰度图,这张图可以用一个在高维空间 Rmn R m n 上的点表示。一张图不止包含脸,所以脸只占了相对小的子空间。我们的任务就是对脸的子空间建模。

我们计算出 K 维子空间,这样数据点在子空间的投影在所有子空间中都有最大的方差。这个低维子空间捕捉了脸部关键样貌特点。

The Eigenfaces Algorithm

Key Ideas and Assumptions

  • 假设大多数脸部图像都位于低维子空间,由最大方差的前 k k 个方向决定
  • 用 PCA 检测旋转子空间的向量或特征面
  • 将所有数据集中的脸部图像表现为特征面的线性组合,特征面被定义为 SVD 分解的主成份

What are eigenfaces?

特征面是最大方差方向的特征向量的视觉呈现。

Training Algorithm

  1. 排列训练图像:x1,...,xn

  2. 计算平均脸:

    μ=1Nxi μ = 1 N ∑ x i

  3. 计算协方差矩阵:

    Σ=1NXcXTc Σ = 1 N X c X c T

  4. 用 PCA 计算协方差矩阵 Σ Σ 的特征向量

  5. 计算每个训练图像 xi x i 的投影

    xi(xciϕ1,xciϕ2,...,xciϕk)(a1,a2,...,ak) x i → ( x i c · ϕ 1 , x i c · ϕ 2 , . . . , x i c · ϕ k ) ≡ ( a 1 , a 2 , . . . , a k )

    其中 ϕi ϕ i 是第 i i 个特征向量。

  6. 重构的脸xiμ+a1·ϕ1+...+ak·ϕk

  7. Why can we do this?

    因为特征值(特征向量的方差)随着主成份数目的增加迅速下降

    Reconstruction and Error

    我们只需要前 k k 个特征面用于减少维度。特征面越少损失越多,脸部越不明显。

    Testing Algorithm

    1. 取查询图像t

    2. 映射至特征向量:

      t((tμ)ϕ1,(tμ)ϕ2,...,(tμ)ϕk)(w1,w2,..,wk) t → ( ( t − μ ) · ϕ 1 , ( t − μ ) · ϕ 2 , . . . , ( t − μ ) · ϕ k ) ≡ ( w 1 , w 2 , . . , w k )

    3. 比较投影 w w 和所有N个训练投影。用欧几里德距离和 KNN 算法输出标签。

    4. Advantages and Disadvantages

      Advantages

      • 这个方法不需要预先知道脸部、表情信息
      • 快速、全局最优

      Disadvantages

      • 要求小心控制的数据
        1. 所有脸部必须集中在框架。否则结果噪音大
        2. 图像必须大小相同
        3. 对脸的角度敏感
      • 方法不需要预先知识
        1. 脸的类别之间没有差别
        2. PCA 不考虑与脸相关的标签。因此它可能将不同的脸对应到相同的子空间,使得分类器难以区别这些脸。
      • PCA 投影在从低维重构上可能是最优的,但在在辨别方面不是最优的。

      Beyond Facial Recognition: Expressions and Emotions

      这项技术也可以用于检测表达和情绪,且算法不改变。

      高兴↓

      厌恶↓

      Linear Discriminant Analysis (LDA)

      PCA vs. LDA

      PCA 与 LDA 都能减少样本的维度。但是,PCA 偏重于重建物体,LDA 偏重于分类。LDA 会将不同的类相互远离。

      • PCA 保持最大方差
      • LDA 找到能够在类之间最大化散射和在类中最小化散射的投影。

      如图,PCA 保持了最大方差,并将所有类的点都映射在正斜率方向上,因此难以判别类别。但是,LDA 将点映射到负斜率,导致点被映射到接近同类点,与非同类点相反的位置。

      General Idea

      LDA 用两个值运行:类间散度、类内散度。类间散度指不同类之间的距离,类内散度指类内点之间的距离。LDA 最大化类间散度,最小化类内散度。

      Mathematical Formulation of LDA with 2 Variables

      我们想要找到一个投影 w w xRn空间中映射出 0 和 1 的点到一个新的空间 zRm z ∈ R m ,例如 z=wTx z = w T x 。其中, m<n m < n ,且投影必须最大化以下公式:

      J(w)=SB when projected onto wSW when projected onto w J ( w ) = S B   w h e n   p r o j e c t e d   o n t o   w S W   w h e n   p r o j e c t e d   o n t o   w

      公式中, SB S B 代表类间散度, SW S W 代表类内散度。接下来定义一个代表类内点的平均的变量 μi μ i
      μi=EX|Y[X|Y=i] μ i = E X | Y [ X | Y = i ]

      定义变量 Σi Σ i 代表类的协方差矩阵:
      Σi=EX|Y[(Xμi)(Xμi)T|Y=i] Σ i = E X | Y [ ( X − μ i ) ( X − μ i ) T | Y = i ]

      用以上变量,可以定义 SB S B SW S W
      SB=(μ1μ0)2=(μ1μ0)(μ1μ0)TSW=(Σ1+Σ0) S B = ( μ 1 − μ 0 ) 2 = ( μ 1 − μ 0 ) ( μ 1 − μ 0 ) T S W = ( Σ 1 + Σ 0 )

      将变量放回原式 J(w) J ( w ) 可得:
      J(w)=wT(μ1μ0)(μ1μ0)TwwT(Σ1+Σ0)w J ( w ) = w T ( μ 1 − μ 0 ) ( μ 1 − μ 0 ) T w w T ( Σ 1 + Σ 0 ) w

      我们要最大化 J(w) J ( w ) ,即最大化分子,保持分母为常数:
      maxwT(Σ1+Σ0)w=KwT(μ1μ0)(μ1μ0)Tw max w T ( Σ 1 + Σ 0 ) w = K w T ( μ 1 − μ 0 ) ( μ 1 − μ 0 ) T w

      用拉格朗日乘数法,我们定义拉格朗日算子为:
      L=wTSBwλ(wTSWwK)=wT(SBλSW)w+K L = w T S B w − λ ( w T S W w − K ) = w T ( S B − λ S W ) w + K

      我们必须最大化 L L λ w w 的值。我们可以通过用其关于w的梯度和找到关键点的位置:
      wL=2(SBλSW)w=0 ∇ w L = 2 ( S B − λ S W ) w = 0

      用这个公式,我们可以得到关键点位置:
      SBw=λSWw S B w = λ S W w

      这是一个广义的特征向量问题。在 S1W=(Σ1+Σ0)1 S W − 1 = ( Σ 1 + Σ 0 ) − 1 存在的情况下,我们得到:
      S1WSBw=λw S W − 1 S B w = λ w

      代入 SB S B 得:
      S1W(μ1μ0)=λαw S W − 1 ( μ 1 − μ 0 ) = λ α w

      w w 的大小并不重要,所以我们可以得到映射w
      w=S1W(μ1μ0)=(Σ1Σ0)1(μ1μ0) w ∗ = S W − 1 ( μ 1 − μ 0 ) = ( Σ 1 − Σ 0 ) − 1 ( μ 1 − μ 0 )

      LDA with N Variables and C Classes

      Preliminaries

      Variables:

      • N 个样本: {x1,...,xN} { x 1 , . . . , x N }

      • C 个类: {Y1,Y2,...,YC} { Y 1 , Y 2 , . . . , Y C } 。每一类都有 N 个样本。

      • 每个类的平均:类 i i 的平均为

        μi=1NixkYixk

      • 所有数据的平均:

        μ=1Nk=1Nxk μ = 1 N ∑ k = 1 N x k

      Scatter Matrices:

      • i i 散度:Si=xkYi(xkμi)(xkμi)T
      • 类内散度: Sw=ci=1Si S w = ∑ i = 1 c S i
      • 类间散度: Sb=ci=1Ni(μiμ)(μiμ)T S b = ∑ i = 1 c N i ( μ i − μ ) ( μ i − μ ) T
      Mathematical Formulation

      我们需要一个将所有点从 xRm x ∈ R m 映射到 zRn z ∈ R n 的投影:

      z=wTx,xRm,zRn z = w T x , x ∈ R m , z ∈ R n

      Results: Eigenface(PCA) vs. Fisherface(LDA)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值