Kohonen 网络是一个完全连接的层,它通过给定的度量将输入聚类到类中。然而,一层不允许操作复杂的关系,这就是为什么通常使用深度学习。
那么是否有可能制作多层 Kohonen 网络?
AFAIK,第一层的输出已经是集群标志,所以非最后一层的激活函数必须与原始的 Kohonnen 定义不同?
Kohonen 网络是一个完全连接的层,它通过给定的度量将输入聚类到类中。然而,一层不允许操作复杂的关系,这就是为什么通常使用深度学习。
那么是否有可能制作多层 Kohonen 网络?
AFAIK,第一层的输出已经是集群标志,所以非最后一层的激活函数必须与原始的 Kohonnen 定义不同?
根据定义,Kohonen 网络是单层 FCNN,但它们与其他网络的区别在于它们的无监督训练过程。
这个过程是输入、权重和一些超参数的函数。这意味着如果你有一个多层网络,你可以使用这个过程只训练最后一层的权重。这样想,让成为最后一层,并且是所有其他层的组合,使得整个网络. 使用 kohonens 训练程序,您可以学习的权重,其中输入是而不是 x。但那你将如何学习的权重?
所以你可以通过迭代学习来做到这一点。让是一个 2 层网络:. 先学使用单层程序,现在你可以学习了以同样的方式,除了它试图聚类的输入特征将是而不是.
但是,这个过程确实存在缺点:在每一层使用 kohonen 网络将尝试将其聚类到其能力范围内,而不是使其最终组成最佳(这是许多优化过程中的常见问题,不是端到端的) -end),但它当前的表示是。这可能会导致非最佳结果,无法实现您正在寻找的深度表示,而您可以在自动编码器或其他更深层次的无监督模型中实现。