CS229 Lecture 15
Laten Semitic Indexing(LSI)
Singular Value Decomposition(SVD)
Independent Component Analysis(ICA)
回顾PCA步骤:
- 将数据标准化(Normalize)保证均值为零,方差为一。
- Σ = 1 m ∑ 1 m x ( i ) x ( i ) T \Sigma=\frac{1}{m}\sum_1^{m}x^{(i)}x^{(i)T} Σ=m1∑1mx(i)x(i)T
- 找到 Σ \Sigma Σ前 k k k个最主要的特征向量
如果图片的大小是 100 × 100 100\times100 100×100那么一个图片样本的大小就是10000维,那么 Σ \Sigma Σ的大小是 10000 × 10000 10000\times10000 10000×10000,矩阵过大,实际计难度以及计算量都很大
潜在语义索引(LSI)
一封邮件的内容如下表示,其中每个维度与一个单词对应,1表示邮件中存在该单词,否则为0。
[ 0 1 ⋮ 0 ] a a n d ⋮ z \left[\begin{array}{c}0\\1\\\vdots\\0\end{array}\right]\begin{array}{c}a\\and\\\vdots\\z\end{array} ⎣⎢⎢⎢⎡01⋮0⎦⎥⎥⎥⎤aand⋮z
当对文本应用PCA时产生了另一种算法 L S I LSI LSI,在 L S I LSI LSI中一般会跳过预处理的步骤,即不需要使得均值为零,方差为一。(ng的解释是如果使得方差为1,可能会加大不常出现单词的权重)。
一般给两个文本 x ( i ) x^{(i)} x(i)和 x ( j ) x^{(j)} x(j)来比较两者的相似性,这也是新闻分类常见的操作。
对于 x ( i ) x^{(i)} x(i)和 x ( j ) x^{(j)} x(j),两个向量的相似性可以通过向量间的夹角来判断,即: S i m ( x ( i ) , x ( j ) ) = c o s θ = x ( i ) x ( j ) T ∥ x ( i ) ∥ ∥ x ( j ) ∥ Sim(x^{(i)},x^{(j)})=cos\theta=\frac{x^{(i)}x^{(j)T}}{\|x^{(i)}\|\|x^{(j)}\|} Sim(x(i),x(j))=cosθ=∥x(i)∥∥x(j)∥x(i)x(j)T。由于邮件文本的单词集合很大,即 x x x的维度很高,容易有噪声,不易探究数据的本质。通过PCA对数据进行降维力求减少数据中的噪声更好的计算数据间的相似性。
相似性式子的分子
x ( i ) x ( j ) T = ∑ k x k ( i ) x k ( j ) = ∑ k 1 { 文 件 i 和 j 是 否 都 包 含 单 词 k } x^{(i)}x^{(j)T}=\sum_kx_k^{(i)}x_k^{(j)}=\sum_k1\{文件i和j是否都包含单词k\} x(i)x(j)T=k∑xk(i)xk(j)=k∑1{文件i和j是否都包含单词k}
如果文本
i
i
i中包含"study"文本
j
j
j中包含
l
e
a
r
n
learn
learn,如果如上单纯计算两个词之间毫无关联。但这与实际并不相符。
上图中虽然两个词在原始空间毫无关联,但是投影到子空间,其之间的就可以存在联系,模型就可以学会两者之间的关联。
SVD
A = U D V T A = UDV^T A=UDVT这个公式就是SVD,如果 A A A是 n × n n\times n n×n那么 U D V U\,D\,V UDV三个矩阵均为 n × n n\times n n×n,且 D = [ σ 1 σ 2 ⋱ σ n − 1 σ n ] D=\left[\begin{array}{ccccc}\sigma_1&&&&\\&\sigma_2&&&\\&&\ddots&&\\&&&\sigma_{n-1}&\\&&&&\sigma_n\end{array}\right] D=⎣⎢⎢⎢⎢⎡σ1σ2⋱σn−1σn⎦⎥⎥⎥⎥⎤是对角阵。其中 σ i \sigma_i σi是矩阵 A A A的奇异值。 U U U的列向量是 A A T AA^T AAT的特征向量,而矩阵 V V V的列向量是 A T A A^TA ATA的特征向量。
在前面定义的 Σ = ∑ i = 1 m x ( i ) x ( i ) T \Sigma=\sum_{i=1}^{m}x^{(i)}x^{(i)T} Σ=∑i=1mx(i)x(i)T,可以写为 Σ = X T X \Sigma=X^TX Σ=XTX。这里的 X = [ − − x 1 − − − − x 2 − − ⋮ − − x m − − ] X=\left[\begin{array}{ccc} --&x_1&--\\ --&x_2&--\\ &\vdots&\\ --&x_m&--\\ \end{array}\right] X=⎣⎢⎢⎢⎡−−−−−−x1x2⋮xm−−−−−−⎦⎥⎥⎥⎤
X = U D V T X=UDV^T X=UDVT其中矩阵 V V V的前 k k k列实际上是 Σ = X T X \Sigma=X^TX Σ=XTX的前 k k k个特征向量。
关于无监督学习的使用
model p(x) | not probabilty | |
---|---|---|
subspace | Factor Analysis | PCA |
clumps/group | mixture of Guassian | K-means |
CDF(accumulative distribution function)
CDF累积分布函数被定义为:如果随机变量 s s s服从分布 P ( s ) P(s) P(s),那么 F ( s ) = P ( S ≤ s ) F(s)=P(S\leq s) F(s)=P(S≤s)就叫累积函数。
上图中
s
s
s服从高斯分布,其
F
(
0.8
)
F(0.8)
F(0.8)等于高斯分布中小于0.8的概率密度的积分。即
F
(
s
)
=
∫
−
∞
s
P
s
(
t
)
d
t
F(s)=\int_{-\infty}^{s}P_s(t)dt
F(s)=∫−∞sPs(t)dt。我们知道概率密度函数的积分上限就是1.
ICA
鸡尾酒会问题,在酒会上有 n n n个演讲者,同时有 n n n个麦克风记录这些声音。 s ∈ R n s\in R^n s∈Rn其中 s j ( i ) s_j^{(i)} sj(i)表示第 j j j位演讲者在时刻 i i i发出的声音信号。
我们观察到 x ( i ) = A s ( i ) x ( i ) ∈ R n x^{(i)}=As^{(i)}\,\,x^{(i)}\in R^n x(i)=As(i)x(i)∈Rn,其中 x x x是 n n n个话筒收集到的信号。
例如 x j ( i ) = ∑ k A j k s k ( i ) x_j^{(i)}=\sum_k A_{jk}s_k^{(i)} xj(i)=∑kAjksk(i)
我们的目标是通过叠加的信号还原出各个演讲者的声音。即找到 W = A − 1 W=A^{-1} W=A−1以至于 s ( i ) = W x ( i ) s^{(i)}=Wx^{(i)} s(i)=Wx(i)。 W = [ − − w 1 T − − − − w 2 T − − ⋮ − − w n T − − ] W=\left[\begin{array}{ccc} --&w_1^T&--\\ --&w_2^T&--\\ &\vdots&\\ --&w_n^T&--\\ \end{array}\right] W=⎣⎢⎢⎢⎡−−−−−−w1Tw2T⋮wnT−−−−−−⎦⎥⎥⎥⎤,这其中每一行实际上是对应了一个演讲者的角色,根据对各个话筒信号的线性组合,还原出演讲者 i i i的声音信号。
在ICA存在不确定性(Ambiguities):
- 顺序不确定:还原出来的声音我们并不知道那个声音是那个演讲者的。
- 声音信号不确定:由于 W W W和 s s s都是未知的,因此我们想推测出 s s s那么必然 s s s的大小范围存在不确定性,只有 W W W和 s s s同步变化既可以保证 s = W x s=Wx s=Wx。因此无法确定信号的符号与大小。
并且如果 x x x的概率分布是高斯分布,也不适合用ICA来进行处理。
源信号 s ∈ R n s\in R^n s∈Rn, s s s的密度函数为 p s ( S ) p_s(S) ps(S),由于 x = A s = W − 1 s x=As=W^{-1}s x=As=W−1s而 s = W x s=Wx s=Wx,有 p x ( X ) = p s ( w x ) ∣ W ∣ p_x(X)=p_s(wx)|W| px(X)=ps(wx)∣W∣。
例如:
p
s
(
S
)
=
1
{
0
≤
x
≤
1
}
p_s(S)=1\,\,\,\,\,\{0\leq x \leq 1\}
ps(S)=1{0≤x≤1}即
S
S
S服从0到1的均匀分布,让
x
=
2
s
x=2s
x=2s,即这里
A
=
2
A=2
A=2,
W
=
1
2
W=\frac{1}{2}
W=21,那么
P
x
(
x
)
=
1
2
{
0
≤
x
≤
2
}
P_x(x)=\frac{1}{2} \,\,\,\,\,\{0\leq x\leq 2\}
Px(x)=21{0≤x≤2}
ICA model
p ( S ) = ∏ i = 1 m p s ( s i ) p(S)=\prod_{i=1}^{m}p_s(s_i) p(S)=∏i=1mps(si),其中s是独立的
p ( x ) = [ ∏ i = 1 m p ( w i T x ) ] ∣ W ∣ p(x)=[\prod_{i=1}^{m}p(w_i^Tx)]|W| p(x)=[∏i=1mp(wiTx)]∣W∣
如何选择 p x ( S ) p_x(S) px(S)? 一般选择其累积分布函数为 F ( s ) = 1 1 + e − s F(s)=\frac{1}{1+e^{-s}} F(s)=1+e−s1,自然 p s ( s ) = F ′ ( s ) p_s(s)=F^{'}(s) ps(s)=F′(s),同样 p ( s ) = 1 2 e − ∣ s ∣ p(s)=\frac{1}{2}e^{-|s|} p(s)=21e−∣s∣这种拉普拉斯公式也较为常用,但是此处不能用高斯分布的密度函数。
给定样本 { x ( 1 ) , x ( 2 ) , ⋯ x ( m ) } \{x^{(1)},x^{(2)},\cdots x^{(m)}\} {x(1),x(2),⋯x(m)},其最大似然函数为:
L ( W ) = ∑ i = 1 l o g ( ∏ j = 1 p s ( w j T x ( i ) ) ) ∣ W ∣ L(W)=\sum_{i=1}log(\prod_{j=1}p_s(w_j^Tx^{(i)}))|W| L(W)=i=1∑log(j=1∏ps(wjTx(i)))∣W∣
使用随机梯度下降对 W W W求导可以得到:
▽ W ( W ) = [ 1 − 2 g ( w 1 T x ) 1 − 2 g ( w 2 T x ) ⋮ 1 − 2 g ( w n T x ) ] + ( W T ) − 1 \bigtriangledown_W(W)=\left[\begin{array}{c} 1-2g(w_1^Tx)\\ 1-2g(w_2^Tx)\\ \vdots\\ 1-2g(w_n^Tx)\\ \end{array}\right]+(W^T)^{-1} ▽W(W)=⎣⎢⎢⎢⎡1−2g(w1Tx)1−2g(w2Tx)⋮1−2g(wnTx)⎦⎥⎥⎥⎤+(WT)−1
W W W的更新公式为:
W : = W + α ( [ 1 − 2 g ( w 1 T x ) 1 − 2 g ( w 2 T x ) ⋮ 1 − 2 g ( w n T x ) ] + ( W T ) − 1 ) W:=W+\alpha\begin{pmatrix}\left[\begin{array}{c} 1-2g(w_1^Tx)\\ 1-2g(w_2^Tx)\\ \vdots\\ 1-2g(w_n^Tx)\\ \end{array}\right]+(W^T)^{-1}\end{pmatrix} W:=W+α⎝⎜⎜⎜⎛⎣⎢⎢⎢⎡1−2g(w1Tx)1−2g(w2Tx)⋮1−2g(wnTx)⎦⎥⎥⎥⎤+(WT)−1⎠⎟⎟⎟⎞
s ( i ) = W ( i ) x i s^{(i)}=W^{(i)}x_i s(i)=W(i)xi