SOM 如何降低数据的维数?

机器算法验证 降维 自组织图
2022-03-17 15:19:56

这是我几天来一直在努力解决的问题。从我对自组织地图的研究中,我知道自组织地图的一个共同特点是降低数据的维数。例如,如果您有一个 3x3 SOM,并且输入空间由 50 个 10 维向量组成,则 SOM 会将其减少到 50 个 2 维向量。如果我正在创建自己的 SOM,这些数据在哪里?如果我的问题太模糊或太宽泛,请原谅。附加到 SOM 中每个神经元的参考向量与输入空间的维度相同。输入空间本身的维数不会减少。那么降维数据在哪里呢?换句话说,与自组织地图相关的什么数据结构包含这些数据?我唯一的猜测是,这些数据可以在自组织地图中每个节点的位置中找到。

谢谢!

2个回答

SOM 网格是一个二维流形或拓扑空间,10 维空间中的每个观测值都通过其与 SOM 网格中每个单元的原型(代码簿向量)的相似性映射到该空间。

SOM 网格在全维空间中是非线性的;“网格”在训练期间被扭曲以更紧密地拟合输入数据。然而,在降维方面的关键点是可以在网格的拓扑空间中测量距离——即二维——而不是完整的维。(其中是变量的数量。)mm

简单地说,SOM 是维到二维 SOM 网格的映射。m

考虑您的二维 SOM 人工神经元单元的目标是使值等于您的高维数据的值。它通过学习过程来实现这一点——从数据中提取一个样本(一行数据),并与地图上的每个单元进行相似性比较。在相似性方面与样本更接近的单元成为该样本的赢家。然后为了实现“学习”,将单元上的值调整为更接近它刚刚赢得的样本的值。该获胜者附近的单位也调整了其值,但数量小于获胜者的数量。单位值的调整使学习发生。对数据中的所有样本重复该过程。在学习过程结束时,

请注意,您的数据值保持不变,它们仅被读取并协助进行学习过程。

现在专注于每个单元在学习过程结束时所承载的价值。每个单元可能已经从数据中赢得了几个样本,它们现在“聚集”在它周围。也就是说,您的数据中的多个样本可以用一个 SOM 单元轻松表示 - 这带来了降维的想法!您的 10 维数据现在可以被可视化为 2 维,因为原始数据集中的相似数据可以由 SOM 的一个单元来表示。

如需更深入的了解,请查看此处