3

我研究了一个基本的 SOM 初始化,并希望准确了解这个过程,PCI,如何在地图上初始化权重向量。我的理解是,对于一个二维的Map,这个初始化方法是看特征向量的数据矩阵的两个最大特征值,然后使用这些特征向量跨越的子空间来初始化map。这是否意味着为了获得初始地图权重,该方法是否采用最大两个特征向量的随机线性组合来生成地图权重?有范式吗?

例如,对于地图上的 40 个输入数据向量,lininit 初始化方法是否采用组合 a1*[e1] + a2*[e2] 其中 [e1] 和 [e2] 是两个最大的特征向量,a1 和 a2 是随机整数从-3到3?还是有不同的机制?我希望确保我确切地知道 lininit 如何获取输入数据矩阵的两个最大特征向量并使用它们来构造地图的初始权重向量。

4

2 回答 2

3

SOM 创建一个地图,该地图具有附近节点之间的邻域关系。随机初始化对这个过程没有帮助,因为节点是随机启动的。因此,使用 PCA 初始化的想法只是让地图更接近最终状态的捷径。这节省了大量的计算量。

那么这是如何工作的呢?使用前两个主要组件 (PC)。将初始权重设置为 PC 的线性组合。不是使用随机a1a2,而是将权重设置在与主成分的比例相对应的范围内。

例如,对于 5x3 地图,a1两者a2都可以在 (-1, 1) 范围内,并具有相关的元素数量。换句话说,对于 5x3 地图,a1 = [-1.0 -0.5 0.0 0.5 1.0]a2 = [-1.0 0.0 1.0],分别有 5 个节点和 3 个节点。

然后设置每个节点的权重。对于矩形 SOM,每个节点都有索引[m, n]。使用 和 的a1[m]a2[n]。因此,对于所有m = [1 2 3 4 5]n = [1 2 3]

weight[m, n] = a1[m] * e1 + a2[n] * e2

这就是如何使用主成分初始化权重。这使得初始状态全局排序,因此现在使用 SOM 算法创建局部排序。

于 2018-01-04T00:57:19.297 回答
0

名称的主要组件部分是对https://en.wikipedia.org/wiki/Principal_component_analysis的引用。

这是想法。您从放置在许多潜在因素的向量上的数据点开始。但它们可能与您的数据相关。因此,例如,如果您正在测量身高、体重、血压等,您预计高个子的人会更重。但是您想要做的是将其替换为数据中彼此不相关的因子向量。

因此,您的主成分是长度为 1 的向量,它与数据集中的变化尽可能强相关。

您的次要分量是长度为 1 的向量,与第一个分量成直角,它与数据集中的其余变化尽可能强相关。

您的第三分量是长度为 1 的向量,与前两个成直角,它与数据集中的其余变化尽可能强相关。

等等。

在实践中,您可能会从许多因素开始,但大多数信息仅在前几个中捕获。例如,在智力测试的结果中,第一个组成部分是智商,第二个组成部分是你在口头推理和定量推理方面的差异。

这适用于 SOM 初始化的原因在于,基于 PCA 分析构建的简单线性模型可以很好地猜测您正在寻找的答案,因此从那里开始可以减少完成获得答案所需的工作量。

于 2017-12-19T19:04:37.247 回答