预备知识1 – Operator
如果
V
代表某个内积空间,
注:关于向量空间,线性映射, 内积空间,基,以及线性映射和矩阵的关系,请参考[1].
预备知识2 – Adjoint
假设
T
是内积空间
Adjoint概念实际上和复数空间的共轭对应:
考虑
T
和
有两类比较重要的Operator, 它们的Adjoint具有特殊的性质:
- Normal operator, 满足对于任意
v
属于内积空间
V , ‖Tv‖=‖T∗v‖ - Self-Adjoint, 满足 T∗=T
预备知识3 – 对角矩阵
对于一个Operator, 它的最完美的矩阵形式应该是对角矩阵, 这样的形式 能极大地简化线性空间上的运算. 但是,并不是所有的Operator都具有这样一组基, 能将其矩阵形式, 表现为对角阵, 那么, 怎么样的Operator, 它的矩阵形式, 一定能化成对角阵呢?
在复数域,即 V=Cn , 当且仅当如果一个operator是normal operator, 能找到一组的基,将其矩阵形式转换成对角阵.
而在实数域 V=Rn ,条件更为苛刻,当且仅当一个operator是Self-Adjoint时,才能找到这样的一组基, 将其矩阵形式转化为对角阵.
预备知识4 – Isometry(同构)
一个operator被称为isometry, 那么它满足: ‖Tv‖=‖v‖
预备知识5 – Positive Operator (Semidefinite Operator,半正定映射/矩阵)
一个operator被称为Positive Operator, 首先,它需要是一个Self-Adjoint Operator, 其次,它需要满足:对于任意
v
,
如果 T 是Positive Operator, 那么它具有如下的重要的性质 (SVD分解需要利用这些性质):
T 是Self-Adjoint, 且T的特征值非负。-
T
有一个Positive Square Root, 即
T=SS , S 是Positive Operator, 可以把S 写成 S=T−−√ SVD分解的本质
可以证明,对于任意一个Operator T ,
T∗T (T的adjoint乘以T) 是一个Positive Operator.
且 T 可以写成如下的形式(证明过程参考[1], ch7, Polar and Singular-Value Decompositions).T=ST∗T−−−−√,S是一个isometry 由于 T∗T 是positive, T∗T−−−−√ 也是positive, 同时也是Self-Adjoint, 于是我们可以找到一组基
(e1,e2,….,en)
使得 T∗T−−−−√ 的矩阵可以表示成一个对角阵, 对角线上是 T∗T−−−−√ 的特征值(非负)。
这些特征值被称为 T的奇异值:假设为 s1,s2,s3,…,sn , 同时有:T∗T−−−−√v=s1⟨e1,v⟩e1+s2⟨e2,v⟩e2+…+sn⟨en,v⟩en
(至于为什么可以写成这个形式,请参考[1]).我们取 f1=Se1,f2=Se2,…fn=Sen
可以证明, 由于 S 是一个Isometry,
(f1,f2,…fn) 也是 V 上的一组基(通过证明其线性独立), 于是Tv=ST∗T−−−−√v=s1⟨e1,v⟩f1+s2⟨e2,v⟩f2+…+sn⟨en,v⟩fn 上面的公式说明: 通过奇异值分解, 我们可以找到两组基 e 和
f , 通过 T 将空间Span(e1,e2,….,en) 映射到空间 Span(f1,f2,…fn) , 这个映射可以表示成一个对角阵, 它对角线上的值就是T的奇异值( T∗T−−−−√ 的特征值)。Span(f1,f2,…fn) : 对 (f1,f2,…fn) 进行线性组合, 产生的所有向量v组成的线性空间
注意,我们不再把 T 看成一个Operator, 而是将其作为一个普通的线性映射, 从空间
Span(e1,e2,….,en) 映射到空间 Span(f1,f2,…fn) . 而我们选择的两组基,恰好可以将这个映射的矩阵形式,表示成对角阵.应用SVD分解 – PCA 用于Linear/Logistic Regression
在Linear Regression中,假设参数向量为: θ=[α0,α1,α2…αn]T
输入特征为X=⎡⎣⎢⎢⎢⎢−−−xT1−−−−−−xT2−−−...−−−xTM−−−⎤⎦⎥⎥⎥⎥那么训练样本的预测输出为: Hθ(X)=Xθ
我们把训练样本 X 矩阵作为一个Operator, 生成预测值的过程就是将向量 θ进行了一次映射, 用的基是一组标准基
(1,0,…,0),(0,1,0,…,0)….(0,0,0,…1)=(a1,a2,….,an) 注意:下面的文字不区分X和X在标准基下的矩阵形式,根据上下文推断。
因为使用的标准基(单位正交), 所以 X 的Adjoint即
X 的共轭转置, 在实际应用中, X 的数据都是实数,所以X 的Adjoint即 X 的转置.然后我们对
X 进行奇异值分解,首先求 XTX 的特征值, 计算出奇异值 s1,s2,s3,…,sn 以及两组新的基 (e1,e2,….,en) 和 (f1,f2,…fn)然后将 Hθ(X) 转换成如下的形式:
Hθ(X)=Xθ=U∑Pθ=U∑θ′其中 ∑ 就是通过奇异值分解得到的对角阵。
矩阵
P 定义了 从基 (a1,a2,….,an) 到基 (e1,e2,….,en) 的坐标转换。
矩阵 U 定义了 从基(f1,f2,….,fn) 到基 (a1,a2,….,an) 的坐标转换。同时,PCA通过选择最大的若干特征值, 对 (e1,e2,….,en),(f1,f2,….,fn) 进行裁剪,降维后对新的参数向量 θ' 进行训练.
Matlab中的svd函数
实际操作中, 如果使用Matlab的svd函数,通过选择 U 的前
K 列, 转置后乘以某个样本 x , 即将x 投影到 (f1,f2,….,fK) 定义的子空间. (由于 U 是一个isometric, 在单位正交基下,其转置等同于求逆)。 然后直接在该子空间中训练新的参数, 因此,并不需要P 矩阵。Reference
[1] Linear Algebra Done Right, Sheldon Axler, Springer, 2nd edition
-
T
有一个Positive Square Root, 即