目录

Hron K, Menafoglio A, Templ M, et al. Simplicial principal component analysis for density functions in Bayes spaces[J]. Computational Statistics & Data Analysis, 2016: 330-350.

问题

我们知道一般的PCA,其数据是\(x \in \mathbb{R}^n\)的,事实上,已经有很多关于函数类数据的PCA了.

一般的函数型PCA是定义在\(L^2\)空间上的. 假设\(x_1, x_2, \ldots, x_N \in L^2(I)\), 并假设是中心化的. 我们希望找到一个\(\xi\)最大化:

\[\frac{1}{N} \sum_{i=1}^N \langle x_i, \xi \rangle_2^2, \mathrm{s.t.} \: \|\xi\|_2=1.
\]

其中\(\langle x, y \rangle=\int_I xy \: \mathrm{d}t\).

假设:

\[\xi = \sum_{i=1}^N v_i x_i.
\]

并记:

\[M \in \mathbb{R}^{N \times N}, M_{i,j}=\langle x_i, y_j \rangle_2
\]

则最初的式子可以表示为:

\[\frac{1}{N} v^TM^TMv, \quad \mathrm{s.t.} \: \|Xv\|_2=1.
\]

可以证明,KKT条件为:

\[M^2v=\lambda Mv
\]

显然,\(v\)是\(M\)的首特征向量(当然\(\|v\|=1\)不一定成立).

类似的,其它的载荷向量也是如此求得. 上面有一点存疑的地方是:

\[\xi = \sum_{i=1}^N v_i x_i.
\]

在\(\mathbb{R}^n\)中是绝对没问题的是,问题是在\(L^2\),是否可以分解一个元素呢? 可以的,绝对是可以的.

作者是将一般的函数的PCA,限定在密度函数的PCA,我们知道,密度函数\(f\)满足:

\[f \ge 0, \\
\int_If\mathrm{d}t=1.
\]

显然\(\xi = \sum_{i=1}^N v_i x_i\)并不一定能够满足上面的性质,为此,作者引入了一个新的贝叶斯空间\(\mathcal{B}^2(I)\).

\(\mathcal{B}^2(I)\)

假设\(I=[a,b]\),我们的工作是构造一个空间,使得上面的元素其线性运算能够保持密度函数的性质.

首先说明,\(\mathcal{B}^2(I)\)里的元素为\(\{f|\int_I f(t) \mathrm{d}t=1, f\ge 0, t\in I\}\).

记\(\eta=b-a\),后续我们会发现,\(1/\eta\)是这个空间的零元素.

首先定义加法和数乘法,使其称为一个向量空间.

\[(f \oplus g) (t)=\frac{f(t)g(t)}{\int_If(s)g(s) \mathrm{d}s}, \quad t \in I,
\]

可以发现\(\oplus\)是保持密度函数的性质的(只要\(f,g\)在\(I\)上满足).

\[(\alpha \odot f)(t)=\frac{f(t)^{\alpha}}{\int_I f(s)^{\alpha} \mathrm{d}s}, \quad t \in I,
\]

显然也是保持的.

并且,容易证明(利用类似核方法的思想):

\[f \oplus g = g \oplus f, \\
f \oplus g \oplus h=f \oplus (g \oplus h), \\
\alpha \odot (f \oplus g) = (\alpha \odot f) \oplus (\alpha \odot g), \\
(\alpha \cdot \beta) \odot f= \alpha \odot (\beta \odot f), \\
(\alpha + \beta) \odot f= (\alpha \odot f) \oplus (\beta \odot f).
\]

注意到:

令\(g(t)=1/\eta, t\in I\)

\[f \oplus g=f, \quad 0 \odot f = \frac{1}{\eta}
\]

所以\(1/\eta\)是零元素,那么可以如此定义差:

\[f \ominus g= f \oplus [(-1) \odot g],
\]

易得:

\[f \ominus f= 1 /\eta.
\]

再定义内积,使其成为一个内积空间:

\[\langle f, g \rangle_{\mathcal{B}} = \frac{1}{2\eta} \int_I \int_I \ln \frac{f(t)}{f(s)} \ln \frac{g(t)}{g(s)} \mathrm{d}t \mathrm{d}s, \quad, f, g \in \mathcal{B}^2(I).
\]

则,我们可以定义其上的范数为:

\[\|f\|_{\mathcal{B}} = [\frac{1}{2\eta} \int_I \int_I \ln^2 \frac{f(t)}{f(s)} \mathrm{d}{t} \mathrm{d}s]^{1/2}.
\]

下证其为一范数:

非负性是显然的, 首先证明其是正定的,即,零元素的大小为0:

\[\|1/\eta\|_{\mathcal{B}} = [\frac{1}{2\eta} \int_I \int_I \ln^2 1 \mathrm{d}{t} \mathrm{d}s]^{1/2}=0.
\]

其次,证明其是其次的,即\(\|\alpha \odot f\|_{\mathcal{B}}=|\alpha|\|f\|_{\mathcal{B}}\):

\[\|\alpha \odot f\|_{\mathcal{B}} = [\frac{1}{2\eta} \int_I \int_I \ln^2 \frac{f^{\alpha}(t)}{f^{\alpha}(s)} \mathrm{d}{t} \mathrm{d}s]^{1/2} = |\alpha|[\frac{1}{2\eta} \int_I \int_I \ln^2 \frac{f(t)}{f(s)} \mathrm{d}{t} \mathrm{d}s]^{1/2} = |\alpha|\|f\|_{\mathcal{B}}.
\]

最后证其满足三角不等式:

\[\begin{array}{ll}
\|f \oplus g\|_{\mathcal{B}}&=[\frac{1}{2 \eta}\int_I \int_I \ln^2 \frac{f(t)g(t)}{f(s)g(s)}\mathrm{d}t \mathrm{d}s]^{1/2} = [\frac{1}{2 \eta}\int_I \int_I \ln^2 \frac{f(t)g(t)}{f(s)g(s)}\mathrm{d}t \mathrm{d}s]^{1/2}\\
&= [\frac{1}{2 \eta}\int_I \int_I \ln^2 \frac{f(t)}{f(s)}\mathrm{d}t \mathrm{d}s + \frac{1}{2 \eta}\int_I \int_I \ln^2 \frac{g(t)}{g(s)}\mathrm{d}t \mathrm{d}s]^{1/2} \\
& \le [\frac{1}{2 \eta}\int_I \int_I \ln^2 \frac{f(t)}{f(s)}\mathrm{d}t \mathrm{d}s]^{1/2} + [\frac{1}{2 \eta}\int_I \int_I \ln^2 \frac{g(t)}{g(s)}\mathrm{d}t \mathrm{d}s]^{1/2} \\
&= \|f\|_{\mathcal{B}}+\|g\|_{\mathcal{B}}.
\end{array}
\]

证毕.

定义一个\(\mathcal{B}^2(I) \rightarrow L^2(I)\)上的函数:

\[\mathrm{clr} (f)(t) = f_c(t) = \ln f(t) - \frac{1}{\eta} \int_I \ln f(s) \mathrm{d}s.
\]

为什么要定义一个这样的函数等等再讲,先来看看它的性质——不仅仅是等距映射.

\[\mathrm{clr} (f \oplus g)(t)=f_c(t)+g_c(t), \quad \mathrm{clr} (\alpha \odot f)(t) =\alpha \cdot f_c(t), \quad \langle f, g \rangle_{\mathcal{B}}=\langle f_c, g_c \rangle_2=\int_I f_c(t) g_c(t) \mathrm{d}t.
\]

这些性质的证明是容易的.

还需要注意的一个性质,不应该称之为限制条件才对:

\[\int_I f_c \mathrm{d}t=\int_I \ln f(t) \mathrm{d}t - \int_I \ln f(s) \mathrm{d}s=0.
\]

这就意味着,只有\(L^2(I)\)中满足积分为0的函数才能在\(\mathcal{B}^2(I)\)中有原像.

接下来解释为什么要弄这样一个映射. 因为一般情况下,我们首先面对的都是一些离散的数据,然后利用某些方法进行拟合,比如论文中提到的\(B-\)样条,但是拟合出来的函数往往并不是密度函数,所以便有了\(\mathrm{clr}\)变化,这个变化可以帮助我们有效利用已有的函数,利用已有函数的积分等性质来应对\(\mathcal{B}^2(I)\)中的一些计算.

当然这也给函数逼近增加了难度,就是在区间\(I\)上积分和需要为1,这个问题在另一篇文章中进行了详细的讨论.

\(\mathcal{B}^2(I)\)上的PCA

假设\(x_i, i=1,2,\ldots, N\in \mathcal{B}^2(I)\), 那么令:

\[\xi = \sum_{i=1}^N v_i \odot x_i = (v_1 \odot x_1) \oplus (v_2 \odot x_2) \oplus \cdots \oplus (v_N \odot x_N).
\]

令矩阵\(M\)其元素\(M_{ij}=\langle x_i, x_j \rangle_{\mathcal{B}}= \langle \mathrm{clr}(x_i), \mathrm{clr}(x_J) \rangle_2\). 则有类似的公式:

\[M^2v = \lambda Mv, \|Xv\|_{\mathcal{B}}=1.
\]

转化为\(L^2(I)\)上的PCA是类似的:

\[\mathrm{clr}(\xi) = \sum_i^N v_i\mathrm{clr}(x_i),
\]
\[M^2v = \lambda Mv, \|\mathrm{clr}(\xi)\|_2=1.
\]

在实际情况中\(\mathrm{clr}(x_i)\)是通过函数逼近得到的,假设为:

\[\mathrm{clr}(x_i)=\Phi c_i, \Phi=[\phi_1, \ldots, \phi_K].
\]

\[\mathrm{clr}(X)=\Phi C,
\]

假设\(M'_{ij} = \langle \phi_i, \phi_j \rangle_2\), 则:

\[M = C^TM'C
\]

\[\mathrm{clr}(\xi) = \Phi Cv
\]

令\(b = Cv\), 可得:

\[Mv = C^T\Phi^T \Phi Cv = C^T\Phi^T \Phi b = \lambda v,
\]

两边同乘以\(C\)可得:

\[CC^T \Phi^T \Phi b = \lambda b
\]

解得\(b\), 可知:

\[\mathrm{clr}(\xi) = \Phi b \Rightarrow \xi = \mathrm{clr}^{-1}(\Phi b).
\]

注意: \(\int_I \mathrm{clr}(x_i) \mathrm{d}t=0.\)

Simplicial principal component analysis for density functions in Bayes spaces的更多相关文章

  1. Principal Component Analysis(PCA) algorithm summary

    Principal Component Analysis(PCA) algorithm summary mean normalization(ensure every feature has sero ...

  2. Robust Principal Component Analysis?(PCP)

    目录 引 一些微弱的假设: 问题的解决 理论 去随机 Dual Certificates(对偶保证?) Golfing Scheme 数值实验 代码 Candes E J, Li X, Ma Y, e ...

  3. Sparse Principal Component Analysis via Rotation and Truncation

    目录 对以往一些SPCA算法复杂度的总结 Notation 论文概述 原始问题 问题的变种 算法 固定\(X\),计算\(R\) 固定\(R\),求解\(X\) (\(Z =VR^{\mathrm{T ...

  4. 《principal component analysis based cataract grading and classification》学习笔记

    Abstract A cataract is lens opacification caused by protein denaturation which leads to a decrease i ...

  5. PCA(Principal Component Analysis)主成分分析

    PCA的数学原理(非常值得阅读)!!!!   PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可 ...

  6. Principal Component Analysis(PCA)

    Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, \[x_j - \bar x_j\] 归一化(标 ...

  7. (4)主成分分析Principal Component Analysis——PCA

    主成分分析Principal Component Analysis 降维除了便于计算,另一个作用就是便于可视化. 主成分分析-->降维--> 方差:描述样本整体分布的疏密,方差越大-> ...

  8. Principal Component Analysis ---- PRML读书笔记

    To summarize, principal component analysis involves evaluating the mean x and the covariance matrix ...

  9. 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理

    0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...

随机推荐

  1. 日常Java 2021/10/5

    java 异常处理 Throwable中包括Error 和Exception,Exception包括IOException和RuntimeException 抛出异常 1.异常运算条件 Arithme ...

  2. SELECT的语法

    我们先回顾下正则表达式.下图: 描述像xy, xxy (B上转一圈), xyy, xxyy这样的字符串.然后可以进行字符串匹配.设计芯片都用Verilog语言而不是画门电路了.像x+y+这样的叫做re ...

  3. 【leetcode】986. Interval List Intersections (双指针)

    You are given two lists of closed intervals, firstList and secondList, where firstList[i] = [starti, ...

  4. my39_InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析

    MySQL InnoDB支持三种行锁定方式: 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. 间隙锁(Gap Lock): 锁定索引记录间隙,确保索引记录的间隙不变.间隙锁是 ...

  5. Linux:sqlplus

    [oracle@hb shell_test]$ cat echo_time #!/bin/sh 一.最简单的调用sqlplus sqlplus -S "sys/unimas as sysdb ...

  6. java使用在线api实例

    字符串 strUrl为访问地址和参数 public String loadAddrsApi() { StringBuffer sb; String strUrl = "https://api ...

  7. [手写系列] Spirit带你实现防抖函数和节流函数

    前言 防抖函数和节流函数,无论是写业务的时候还是面试的时候,想必大家已经听过很多次了吧.但是大家在用到的时候,有了解过他们之间的区别嘛,他们是如何实现的呢?还是说只是简单的调用下像lodash和und ...

  8. React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!

    路由传值的三种方式(v5.x) params参数 //路由链接(携带参数): <Link to='/demo/test/tom/18'}>详情</Link> //或 <L ...

  9. CF1108A Two distinct points 题解

    Content 有 \(q\) 次询问,每次询问给定四个数 \(l_1,r_1,l_2,r_2\).对于每次询问,找到两个数 \(a,b\),使得 \(l_1\leqslant a\leqslant ...

  10. java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】

    Java的标准输入输出分别通过System.in和System.out来代表的,在默认情况下它分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入 当程序试图通过 S ...