algorithm - 自组织映射中神经元的位置是否取决于它的权重?

标签 algorithm machine-learning self-organizing-maps

我看过很多 SOM 的理论示例,但我不太清楚一件事:节点的位置是否取决于它们的权重?例如,权重大的节点会在 map 的一侧,而权重小的节点在 map 上会远离吗?

最佳答案

没有。在 SOM(又名 Kohonen 映射)中,权重函数应用于您的数据而不是“神经元”。

权重在 map 构建(训练)期间使用,即在每次迭代时计算,并针对每次迭代中的每个格子单元计算。换句话说,对于包含 map 构建的每次迭代,权重函数用于衡量这些点在确定单元格位置/定位方面的贡献。

Kohonen map 中数据点的位置由 map 中距离该数据点最近的格子单元决定——即,构建 Kohonen map 涉及迭代重新分配您的每个点数据集到格子中离它最近的单元格。

这是一种思考方式:Kohonen 映射只是将您的数据映射到某个固定的拓扑结构或二维格子上,例如规则网格。

训练阶段(构建 map )中的每次迭代都涉及将每个数据点(如有必要)重新分配给格子中距离它最近的单元格。接下来,根据以下内容调整单元格位置:(i) 先前迭代中分配给该单元格的数据点; (ii) 相邻单元格中的数据点。

(i) 和 (ii) 中数据点的值如何影响像元位置的新值取决于每个数据点的权重,而权重又由权重函数确定。这符合直觉——与离单元格较近的数据点相比,距离单元格较远的点对单元格新值的影响应该较小。在 Kohonen 映射中,权重函数强制执行此约束。教科书的权重函数是高斯的。在 Python 中:

def gaussian(dist, t, alpha=1.0, sigma=1.0) :
    from math, import e
    return alpha * t * e**(-dist/(2*sigma*t))**2

在这个函数中,dist是数据点到单元格中心的距离,t是时间(例如, map 构建期间的每次迭代都是时钟的一个滴答声)。

想象一下高斯曲线,从中心向下切成两半; x 轴是 dist,y 轴代表重量——所以随着距离的增加,重量会减少。同样,随着 t 的增加,重量也会增加。这是构建 Kohonen map 的关键要素:随着迭代次数的增加(在 map 构建期间),相邻点对给定单元格重新定位的影响越来越小。因此,时间-权重关系的意义在于,单元格位置的变化率随时间降低(每次迭代位置变化较小),直到最终位置在下一次迭代中没有变化,这是 a 的收敛标准科霍宁 map 。

数据点的权重与此有什么关系?那么,先前迭代中该格子单元的位置由该单元中的数据点和相邻单元中的数据点确定,这些点对新单元位置的贡献根据加权函数确定。

最后,数据点的权重并不是该数据点的固有属性。一方面,它仅在 map 构建期间有用,另一方面,数据点实际上没有权重值——而是在 map 构建期间的每次迭代中,分配给给定单元格的数据点和相邻单元格中的那些点是用于计算给定晶格单元的新位置。该计算通过为每个数据点分配权重来考虑每个点与细胞中心的距离——因此,该权重值仅对该迭代和该细胞中心有意义,例如,在计算下一个细胞中心时,相同的数据点将具有不同的权重,因为它到该像元中心的距离不同。

关于algorithm - 自组织映射中神经元的位置是否取决于它的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926386/

相关文章:

java - 总结时四舍五入到小数点后 2 位

algorithm - 迭代 n * F(n - 1)+((n - 1) * F(n - 2))

ios - 按需提供多个动态加载的 CoreML 模型

python - 在 Keras 层中重置权重

algorithm - 使用动态规划的所有可能组合

c - 找到数组中的最大数

r - 如何计算随机森林的OOB?

k-means - 自组织映射与 k 均值

data-visualization - 在自组织 map 绘图或鸢尾花数据集中可视化类标签

data-mining - 自组织映射(SOM)中的降维问题