【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

Clustering

选择适当的cluster,有比较empirical的方法。

最常用的方法K-means:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

假设要把X分成K个clusters

找center,要K个clusters就需要K个center。可以随即找K个vector作为K个center。

然后重复以下的事情:

1)对training data每一个的x,判断他们属于1到K的哪个cluster,假设跟第i个cluster最接近的话,那么他就属于第i个cluster,binary就为1,反之为0.

2)接下来update cluster,假设要update第i个cluster,就把所有属于第i个cluster的object全部做取平均,然后就得到第i个cluster 的center。

clustering的第二个方法是HAC

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

1)先计算tree。 structure。文章有5个example,先两两计算相似度,挑最相似的pair出来。假设最相似的是第一个和第二个example,则把第一和第二个example merge起来(比如平均起来),则得到了新的vector,这代表了第一个和第二个example。

那么现在只剩下4个example了。再利用这四个example两两计算相似度。假设第三个和第四个最相似,再把他们merge起来。得到另外一个data,则现在就剩下三个data了:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

再两两计算similarity,发现第一个和第二个最相似,则再把他们平均起来。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

最后只剩红色和绿色了,再把他们平均起来,就得到了这个tree的root。这是一个根据相似度建立的tree structure。越早(root处)被分支的说明是越不像的。

2)给tree切一刀。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

根据这一刀可以把example切成3个class:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

如果切上一点,可以分成两个class:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

如果往下切一点,可以切4个class:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

Distributed Representation

cluster太粗糙,只能能约束object属于一个类,以偏概全了,还不够。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

有些object跨了很多类,我们希望能够囊括它所有的类。可以用一个vector来概括一个object,这个vector能够概括它的特征,就叫做Distributed Representation,也叫作dimension reduction。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

降维比如说将左边的3D摊平为2D,用2D就可以描述3D的infomation。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

比如MNIST,大多数28x28的matrix完全组成不了digit,所以其实MNIST的digit可能不需要这么多维的信息。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

比如可以用一维表示数字3的角度的变化。

最简单的办法是feature selection,比如发现data的feature集中在x2维,x1维不重要,则可以把x1维去掉。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

还有一个方法是PCA

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

找一个W,使得它完成x到z的映射,z的维度比x低。假设考虑1维的case:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

用w1代表W的第一个row,与x做inner product得到z1.

假设w1的2norm是1,x是高维空间中的一个点,w1是高维空间中的一个vector,z1是x在w1上的投影,投影的值是inner product。

那么w1怎么选?设左上角是x

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

可以两个方向的w1,这两个方向的w1,得到的结果截然不同:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

我们希望z1的variance越大越好,而不是全部挤在一起

投影之后的分布可能在这个地方,就有比较大的varience

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

如果投影在这个地方的话,就比较小的varience:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

我们就更倾向于将w1的方向指向右边那个方向(代表宝可梦的强度,同时影响了(防御力(纵轴)和攻击力(横轴)))。

如果用等式来描述的话,我们现在要maximize的对象是z1的varience。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

我们可能不只是要1维:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

那就再找一个w2,去确定z2。以此类推,把所有w找到,就得到W了。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

这是一个orthogonal matrix,W中不同维度的w是相互正交的。那怎么找w1和w2呢?

拉格朗日乘子法

z1有了,那么z1的平均值有:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

varience有

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

带回去有:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

蓝色框起来的其实是Covarience协方差:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

所以其实要找的是找一个w1去maximize这个式子。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

协方差矩阵的半正定性质。

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

拉格朗日乘子法的推导:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

发现w2也是covarience matrix S的eigenvector,对应的第二大的eigenvalue

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

我们得到:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

PCA解耦

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

可以展开为:

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning

【学习笔记】李宏毅2020ML&DL课程 13_1 Unsupervised Learning