有人可以提供一些有关如何正确地将自组织映射与多层感知器结合起来的信息吗?
我最近读了一些关于这种技术的文章,与常规 MLP 相比,它在预测任务中表现得更好。因此,我想使用 SOM 作为前端,通过对输入数据进行聚类来降维,并将结果传递到 MLP 后端。
我目前的实现想法是用几个训练集训练 SOM 并确定集群。然后,我使用与 SOM 簇一样多的输入单元来初始化 MLP。下一步是使用 SOM 的输出(哪个值?... BMU 的权重?)作为网络的输入(SOM 的簇匹配输入单元的输出和任何其他输入单元的零?)来训练 MLP。
没有单一的方法可以做到这一点。让我列出一些可能性:
- 你所描述的那个。但是,您的 MLP 将需要有 K*D 输入,其中 K 是簇的数量,D 是输入维度。没有降维。
- 与您的想法类似,但不使用权重,只需为 BMU 发送 1,为其余集群发送 0。那么你的 MLP 将需要 K 个输入。
- 与上面相同,但不是 1 或 0,而是发送从输入向量到每个簇的距离。
- 与上面相同,但不是计算距离,而是计算每个簇的高斯激活。
- 由于 SOM 保留拓扑,因此仅发送 BMU 的 2D 坐标(可能在 0 和 1 之间标准化)。那么你的 MLP 将只需要 2 个输入,你就可以实现真正的极端降维。
您可以在这里阅读这些想法以及更多内容:SOM 的主要时间扩展:概述 http://www.sersc.org/journals/IJSIP/vol2_no3/10.pdf。它不是将 SOM 的输出馈送到 MLP,而是将 SOM 馈送到其自身。但是,当您尝试从 SOM 生成一些输出时,您将能够了解各种可能性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)