2

有人可以提供一些有关如何将自组织地图与多层感知器正确结合的信息吗?

我最近阅读了一些关于这种技术的文章,与常规 MLP 相比,它在预测任务中的表现要好得多。因此,我想通过对输入数据进行聚类并将结果传递给 MLP 后端,将 SOM 用作降维的前端。

我目前实施它的想法是用几个训练集训练 SOM 并确定集群。之后,我使用与 SOM 集群一样多的输入单元来初始化 MLP。下一步是使用 SOM 的输出(哪个值?... BMU 的权重?)作为网络的输入(SOM 的输出用于匹配输入单元的集群和零用于任何其他输入单元?)来训练 MLP。

4

1 回答 1

3

没有单一的方法可以做到这一点。让我列出一些可能性:

  • 你描述的那个。但是,您的 MLP 将需要有 K*D 输入,其中 K 是聚类数,D 是输入维度。没有降维。
  • 与您的想法类似,但不使用权重,只需为 BMU 发送 1,为其余集群发送 0。那么你的 MLP 将需要 K 个输入。
  • 与上面相同,但不是 1 或 0,而是发送从输入向量到每个集群的距离。
  • 与上面相同,但不是距离,而是为每个集群计算高斯激活。
  • 由于 SOM 保留拓扑,因此仅发送 BMU 的 2D 坐标(可能在 0 和 1 之间归一化)。然后你的 MLP 将只需要 2 个输入,你就可以实现真正的极端降维。

您可以在此处阅读这些想法以及更多内容:SOM 的主要时间扩展:概述。这不是将 SOM 的输出提供给 MLP,而是将 SOM 提供给自身。但是,当您尝试从 SOM 生成一些输出时,您将能够理解各种可能性。

于 2016-04-05T20:10:29.090 回答