0%

Unsupervised Learning-Linear Methods

Unsupervised Learning-Linear Methods

  • Clustering & Dimension Reduction — 化繁为简(不同的input,相同的抽象output)只有输入数据
  • Generation — 无中生有(不同input,不同output)只有输出数据

Clustering

  • K-means(需要先知道聚类数)

    1. 初始化聚类中心(随机K个)
    2. 对所有数据,计算到它距离最近的聚类中心
    3. 更新聚类中心(做平均)
    4. 重复2-3步
  • Hierarchical Agglomerative Clustering(HAC - 层次聚类,不用事先决定聚类数)

    1. 建树。找相似度最近的两组数据取平均得到一个新的数据

    2. 选阈值。划分cluster

      1617198401704

  • Distributed Representation

    用一个vector来表示对象,每一维都表示某种特征(attribute)的占比;而不是只划分为某个cluster,这样会丢掉一些有用信息

  • Dimension Reduction

    通过Distributed Representation把高维信息(例如图像)变到低维空间

    • Feature Selection

    • Principle Component Analysis(PCA 主成分分析)

      PCA是一种常用的降维方法,输入数据 $\boldsymbol{x}$ ,输出数据 $\boldsymbol{z}$ ,后者的维度比前者小,且满足 $\boldsymbol{z}=\boldsymbol{W}\boldsymbol{x}$ 。目的就是为了找到这个W。以一维数据为例(即取向量z的第一个数据)W的第一行,显然有:

      假设 $||\boldsymbol{w}^1||_2=1$ ,内积 $z_1$ 的几何意义是 $\boldsymbol{x}$ 在 $\boldsymbol{w}^1$ 上的投影长度。PCA要做的事就是将所有数据点 x 投影到 $\boldsymbol{w}^1$ 上,得到一个 $z_1$ 的集合,并且这个集合元素的方差(variance)越大越好(最大限度保留数据点的区别度):

      以上是投影到一维平面,如果投影到二维平面,则同样还有:

      在保证 Var 越大越好的情况下(拉格朗日),还要保证 $\boldsymbol{w}^1\cdot\boldsymbol{w}^2=0$ ,即两个向量垂直

      同样的方法处理K维。因此找出来的矩阵W是个orthogonal matrix。根据 $(a\cdot b)^2=(a\cdot b)(b\cdot a)=a^Tbb^Ta$ 对(2)作化简:

      问题转化成:

      找到一个 $\boldsymbol{w}^1$ 满足 $||\boldsymbol{w}^1||_2=(\boldsymbol{w}^1)^T\boldsymbol{w}^1=1$ ,使得 $(\boldsymbol{w}^1)^T S \boldsymbol{w}^1$ 最大。

      由于$S=Cov(x)$ ,所以它是一个半正定(所有特征值非负)的对称矩阵。

      结论:这个 $\boldsymbol{w}^1$ 是协方差矩阵 $S$ 最大特征值所对应的特征向量(证明方法:拉格朗日乘数法)

      对 $\boldsymbol{w}^1$ 的每一项 $w^1_i$ 求偏微分将会得到:

      带入目标函数:

      结论显然

      找到一个 $\boldsymbol{w}^2$ 满足 $||\boldsymbol{w}^2||_2=(\boldsymbol{w}^2)^T\boldsymbol{w}^2=1$ 且 $(\boldsymbol{w}^2)^T\boldsymbol{w}^1=0$ ,使得 $(\boldsymbol{w}^2)^T S \boldsymbol{w}^2$ 最大。

      结论:这个 $\boldsymbol{w}^2$ 是协方差矩阵 $S$ 第二大特征值所对应的特征向量(证明方法:拉格朗日乘数法,证明略)

      PCA去关联后的数据$z$的均方差矩阵是个对角阵 —— z 是一种新的特征,给其他模型用的时候,就可以直接假设不同维度间相关系数为0,从而大大减少参数量,从而避免过拟合情况

      • 从另外的角度看PCA

      用若干component来描述一张image:

      但这些component是未知的,现在需要找出这K个component,使得左边最接近右边,即最小化Reconstruction Error:

      事实上,由上面PCA求解出的 $w^i$ 其实就是上式的解(SVD分解)

      如何确定系数 $c_i$ ?

      由上可知,$u^i$ 本质上就是相互正交的 $w^i$ ,现在需要找到一组系数 $c_i$ 使得上式最小,根据正交性,乘上 $w^k$ 后:

      显然,当 $c_k=(x-\bar{x})\cdot w^k$ 的时候上式最小(等于0)

      • PCA 与 Neural Network 的关系

      PCA ≈ 有一层隐藏层(线性激活函数)的神经网络 <== 自动编码器 Autoencoder

      1617212978641

      直接用GD解出的weight不能保证相互正交,不能让Reconstruction Error最小

      在线性条件下,NN的方法会比PCA更麻烦一些,且更不精确一些。

      但用神经网络的优势在于,它可以变深 ==> Deep Autoencoder

      • PCA的缺点

      非监督的(容易混淆不同类别的数据),线性的(不能执行非线性的变换)

      求出的系数可能是负值(NMF解决)

      • Matrix Factorization(应用 Topic Analysis)