Unsupervised Learning

无监督学习可以分成两种

  • Clustering & Dimension Reduction(聚类或将事物用隐向量进行表示)
  • Generation (无中生有,例如:AE、GAN)
    两种方法示意图两种方法示意图

Clustering

K-means

步骤

  • 给定参数k,将数据聚到k类
  • 随机初始化k个点
  • Repeat
    • 对于所有点计算与初始点的距离,若某点更接近初始点cic^i,该点的类别和cic^i相同
    • 更新所有初始点,求该簇的平均值即可

受参数k和初始点的影响大

Hierarchical Agglomerative Clustering(HAC)

步骤:
* 构建一棵树,方法是,重复计算两两相似度,将最相似的两个向量merge起来,知道构成一个完整的树。
* 选择一个阈值

HAC示例HAC示例

Dimension Reduction

  • feature selection
  • Principle component analysis(PCA)

PCA

z=Wx z = Wx
若将所有样本降维到1维:
z1=w1xVar(z1)=z1(z1z1)2 z_1 = w^1 \cdot x \\ Var(z_1) = \sum_{z_1}(z_1 - \overline{z_1})^2
其实就是将x投影到w1w^1得到降维后的集合z1z_1
问题就是如何选择这样一个w1w_1,并且使得所有样本投影后,它们之前的偏差越大越好,我们期望降维后仍可以将这些样本区分开。

若想要将样本降维到2维以上,那么可以分别寻找每一维的ziz_i,再将wiw_i,拼接起来。这一需要注意,WW我们期望是一个正交矩阵。

解法

z1=w1xz1=z1=w1x=w1x=w1x z_1=w^1 \cdot x \\ \overline{z_1} = \sum{z_1} = \sum{w_1 \cdot x} = w_1 \cdot \sum{x} = w_1 \cdot \overline{x}

Var(z1)=z1(z1z1)2=x(w1xw1x)2=w1(xx)2=(w1)T(xx)(xx)Tw1=(w1)TCov(x)w1 \begin{aligned} Var(z_1)&=\sum_{z_1}(z_1 - \overline{z_1})^2 \\ &=\sum{x}(w^1 \cdot x - w_1 \cdot \overline{x})^2 \\ &=\sum{w^1 \cdot (x-\overline{x})^2} \\ &=\sum{(w^1)^T(x-\overline{x})(x-\overline{x})^Tw^1} \\ &=(w^1)^T Cov(x) w^1 \end{aligned}

观察协方差矩阵可知,对角线为特征的方差,其他为特征间的协方差,PCA的目的就是使得特方差越小越好,方差越大越好。
因此,我们需要找到一个w1w^1使得(w1)TSw1(w^1)^TSw^1最大,同时需要满足(w1)Tw1=1(w^1)^Tw^1=1
w^1是协方差矩阵S的特征向量,且对应最大的特征值
w2w^2时,需要满足w1w^1w2w^2是正交的。
w^2是协方差矩阵S的特征向量,且对应第二大的特征值

另一个视角

MNIST示例MNIST示例

每个数字可以表示成多个component的线性组合加上平均值。那么一个数字就可以用一个由ckc_k组成的向量表示。例如:数字7可以表示为[1,0,1,0,1,...][1,0,1,0,1,...]

xxc1u1+c2u2++cKuK=x^ x-\overline{x} \approx c_1u^1 + c_2u^2 + \ldots + c_Ku^K = \hat{x}

但我们一开始是不知道basic compent是什么样的。
Reconstruction error:
(xx)x^2 ||(x-\overline{x})-\hat{x}||_2
我们需要找到一组u1,...,uK{u^1,...,u^K}使得这个损失最小,可以用奇异值分解来求解。

PCA很像一个只有一个隐层的神经网络,且没有activation function,这个视角下其实就是自编码器。
但用神经网络的结果和PCA的结果是不一样的。

Matrix Factorization

示例示例

该结果矩阵的每个元素可以看成两个隐向量的点积。

隐向量示例隐向量示例

每个人和公仔之间是有共同的特性,利用矩阵分解就可以将隐向量提取出来,可以利用SVD方法,虽然得到的是三个矩阵,只需要决定中间的矩阵和左右哪个矩阵合并。

有时我们不能观测到所有交互,或者没有产生交互(参考推荐系统场景),可以利用梯度下降方法,只对观测到的数据进行训练,求出rir^irjr^j

隐向量示例隐向量示例