ML

Machine Learning笔记(10)

Factor Analysis Model

Posted by PCA and ICA on October 7, 2018

Principal Components Analysis

已有数据 $S = \{x^1, \ldots, x^m\}$, $x \in R^n$, 其中数据的某些维度可能强相关 预处理数据使得其各个维度的均值是0,方差为1

  1. 令 $\mu = \frac{1}{m}\sum_{i=1}^m x^i$
  2. 把 $x^i$ 用 $x^i - \mu$代替
  3. 计算 $\sigma_j^2 = \frac{1}{m}\sum_{i=1}^m (x_j^i)^2$
  4. 令 $x_j^i = \frac{x_j^i}{\sigma_j}$

如果 $\lVert u \rVert = 1$, $x$在 $u$ 方向上的投影为 $x^Tu$
最大化方差:
投影到1维


u是 $\Sigma$ 的特征向量, $\lambda$是对应的特征根
扩展到k维,选取前k大特征根对应的特征向量

最小化误差

Application of PCA
  1. 压缩
  2. 可视化
  3. 降维学习减少过拟合
  4. 异常检测
  5. 计算距离来避免噪音影响

Latent Semantic Indexing(LSI)
假设有d个文档 $D = \{x^1, \ldots, x^d\}$, $x \in R^n$, $x_j^i = 1$代表词表第i个词在文档j出现过,这种文本数据直接跳过预处理阶段
$sim(x^i,x^j) = \frac{\sum_{k}x_k^i x_k^j}{\lVert x^i \rVert \lVert x^j \rVert}$
用来处理learn和study之间相关性

矩阵奇异值分解(SVD)

比如上面的文本数据矩阵非常大,直接求特征值比较困难
把 $A \in R^{m \times n}$分解为 $A = UDV^T$,其中 $U \in R^{m \times n}$, $D \in R^{n \times n}$, $V \in R^{n \times n}$,D是对角矩阵,那么D的对角线就是A的特征值
U的列是 $AA^T$的特征向量
V的列是 $A^TA$的特征向量

Independent Components Analysis

n个人同时说话,被m个不同位置的麦克风记录,每个麦克风记录是n个人发声的不同的组合,我们怎么从中恢复出n个人说话的信号呢?
形式化地讲,假设n个独立数据源组成s,我们观察到

A被叫做混合矩阵, $S = \{x^i\; ; i = 1,\ldots,m\}$, 我们的目标是恢复出来生成数据的$s$,也就是求 $W = A^{-1}$
ICA的不确定性:

  • 独立成分的顺序,显然只要A相应调换顺序那么观察到的x相同,也就是分离出来的声音并不能对应到具体的人
  • 独立成分的能量or方差,显然如果把s缩小一定倍数,那么A扩大相应倍数观察到的x相同,也就是分离出来的声音大小不一定是等于真实声音大小
  • 要求s是独立的 ( $p(s) = \prod_{i=1}^n p_s(s^i)$)
  • 要求s是非高斯分布
    假设 $s \sim N(0, I)$, 那么 $x \sim N(0, AA^T)$, 因为
    现在令R为满足 $R^TR = RR^T = I$的矩阵,令 $A’ = AR$, $x’ = A’s$, 那么

    也就是说 $x’ \sim N(0, AA^T)$,我们无法区分A和A’

假设s服从概率分别 $p_s$,那么

其中 $s_i = w_i ^T x$,我们选择 $p_s(s_i) = F_s’(s^i) = g’(s_i) = (\frac{1}{1 + e^{-s_i}})’$

因为

随机梯度下降

Compare