笔者自己的理解,无监督学习是挖掘数据自身的分布,找出一种低维的具有代表性或者某种性质的子空间(流形)。SOM是一种加约束的k-means,既可以看做是寻找具有代表性的特征点,也可以看做是寻找具有代表性的二维流形曲面。PCA是非常经典的最小化投影误差的子空间,也可以看做最大化投影方差的子空间。NMF则是基于假设最大化似然的同时,限制基向量非负。FA也是寻找某种子空间,目的是得到uncorrelated的基向量,并用变换矩阵近似实际观测值中的相关性。ICA同样是寻找子空间,但进一步要求基向量independent(此假设强于uncorrelated),不能用于高斯分布的数据,使得基向量不能随意旋转。MDS则是直接寻找保距的低维子空间,即子空间投影之间的距离尽可能与原空间相同。ISOMAP以及Local MDS是MDS的局部版本,旨在更好的保留数据的流形分布。
其中SOM是聚类算法,只能找到离散的特征点来近似数据分布;PCA、NMF、MDS、ISOMAP、Local MDS等则是寻找一个低维流形空间近似数据分布;FA以及ICA不仅可以得到线性子空间,而且还可以基于假设得到数据分布的概率密度。
Self-Organizing Map (SOM)
参考资料:https://youtu.be/w1XMiZg1m8Y
SOM可以看做是k-means的约束版本,即不同于k-means所有特征点之间毫无关联,SOM的特征点位于某个假象的方格上面,各个特征点之间基于方格上的距离存在不同程度的关联。
SOM的具体算法是先假象有一个方格( q1×q2 ),其中 q1,q2 任意指定,其选择决定了SOM的特征点数,共用 q1∗q2 个特征点(每个方格的交叉点)。每个特征点均位于观测的数据空间中 Rp ,有一个特征值。故不同于k-means只有一个位于观测空间 Rp 的特征值,SOM的特征点同时位于方格空间 Rq1×q2 中,存在一个方格空间坐标。特征点的方格坐标在学习的过程中是不变的,而特征值 Rp 在学习过程中不断改变,更加接近数据分布。方格坐标是SOM为特征点之间加入约束的方式,每次根据数据点更新特征值的时候,不仅仅更新特征值离数据点最近的特征点的特征值,而且同时更新在方格中与最近特征点较近的特征点的特征值。每次仅仅处理一个数据点,重复多次之后,得到的SOM中 q1∗q2 个特征点的特征值即表示了数据的空间分布,也可以将每个数据点分配给特征值离其最近的特征点,进行聚类分析。
基于不同的距离度量,更新时各个特征点的权重赋予,以及每次处理的数据点的多少 可以构造不同的SOM算法。每种算法都保证了SOM的保距性质,即观测空间中相近的数据点投影到方格空间中相近的特征点。
最简单的方法如下:
根据距离赋予特征点更新权重的方法如下:
batch版本如下:
Principle Component Analysis (PCA)
主成分分析法非常常见常用,以至于Ng认为它被过度滥用了。有很多种对PCA结论的解释,这里仅阐述两种:最小化投影误差,以及最大化投影方差。
首先,常见的数据预处理步骤包括数据平移(减均值),以及缩放(除以方差)。故以下分析中存在多解的情况,均以方便以上假设成立的情况下进行求解。
PCA寻找的是低维线性子空间,故存在一组正交基 Vp×q , VTV=Iq ,其中 p 为观测空间维度,
任意向量 x∈Rp 在该空间中的投影为 VVT(x−μ)+μ∈Rp 。首先我们讨论最小化投影误差的情况: e=x−(VVT(x−μ)+μ)=(Ip−VVT)(x−μ) ,我们希望最小化训练集中的平方投影误差
对 μ 求导有 μ=x¯
构造