首页 > 编程语言 >人工智能算法进阶:SOM聚类的应用

人工智能算法进阶:SOM聚类的应用

时间:2023-01-25 10:02:13浏览次数:47  
标签:进阶 迭代 聚类 SOM 网格 BMU 数据 神经元


OM 即自组织映射,是一种用于特征检测的无监督学习神经网络。它模拟人脑中处于不同区域的神经细胞 分工不同的特点,即不同区域具有不同的响应特征,而且这一过程是自动完成的。SOM 用于生成训练样本的低维 空间,可以将高维数据间复杂的非线性统计关系转化为简单的几何关系,且以低维的方式展现,因此通常在降维问题中会使用它。

人工智能算法进阶:SOM聚类的应用_深度学习

SOM 的训练过程:

紫色区域表示训练数据的分布状况,白色网格表示从该分布中提取的当前训练数据。

(1) SOM 节点位于数据空间的任意位置,最接近训练数据的节点(黄色高亮部分)会被选中。它和网格中的邻近节点一样,朝训练数据移动。

(2)在多次迭代之后,网格倾向于近似该种数据分布(下图最右)。

人工智能算法进阶:SOM聚类的应用_人工智能_02

所有的神经元组织成一个网格,网格可以是六边形、四边形……,甚至是链状、圆圈……

网络的结构通常取决于输入的数据在空间中的分布。 SOM的作用是将这个网格铺满数据存在的空间

人工智能算法进阶:SOM聚类的应用_深度学习_03

人工智能算法进阶:SOM聚类的应用_数据_04

每个神经元由正方形表示,正方形内的粉红色区域表示神经元最接近的数据点的相对数量 - 粉红色区域越大,该神经元表示的数据点越多。

人工智能算法进阶:SOM聚类的应用_深度学习_05

当我们将训练数据输入到网络中时,会计算出所有权重向量的欧几里德距离。权重向量与输入最相似的神经元 称为最佳匹配单元(BMU)。BMU 的权重和 SOM 网格中靠近它的神经元会朝着输入矢量的方向调整。一旦确定 了 BMU,下一步就是计算其它哪些节点在 BMU 的邻域内。



人工智能算法进阶:SOM聚类的应用_深度学习_06


(1)将网格的神经元随机定位在数据空间中。

(2)选择一个数据点,按顺序随机或系统地循环遍历数据集。

(3)找到最接近所选数据点的神经元。这种神经元被称为最佳匹配单元(BMU)。

(4)将BMU移近该数据点。 BMU移动的距离由学习速率确定,学习速率在每次迭代后减小。

(5)将BMU的邻居移动到更靠近该数据点的位置,远处的邻居移动得更少。使用BMU周围的半径来识别邻居,并且在每次迭代之后该半径的值减小。

(6)在重复步骤1到4之前,更新学习速率和BMU半径。迭代这些步骤,直到神经元的位置稳定。

SOM 通常用在可视化中。比如右图,世界各国贫困数据的可视化。生活质量较高的国家聚集在左上方,而贫 困最严重的国家聚集在右下方。

SOM 的其它一些应用还包括:

  • 数据压缩
  • 语音识别
  • 分离音源
  • 欺诈检测

人工智能算法进阶:SOM聚类的应用_迭代_07


标签:进阶,迭代,聚类,SOM,网格,BMU,数据,神经元
From: https://blog.51cto.com/u_8238263/6022440

相关文章

  • JAVA进阶--- Properties文件的使用
    properties文件介绍 后缀properties的文件是一种属性文件。这种文件以key=value格式存储内容。Java中可以使用Properties工具类来读取这个文件。项目中会将一些配置信息......
  • sed 进阶使用
    sed进阶使用工作原理sed维护两个数据缓冲区:活动模式空间和辅助保持空间两者最初都是空的sed通过对每一行输入执行以下循环进行操作从输入流中读取一行,删除......
  • Three.js 进阶之旅:新春特典-Rabbit craft go
    声明:本文涉及图文和模型素材仅用于个人学习、研究和欣赏,请勿二次修改、非法传播、转载、出版、商用、及进行其他获利行为。摘要兔年到了,祝大家身体健,康万事顺利。本文内......
  • 02 Scanner进阶使用
    01用户交互ScannerScanner要导入包:importjava.util.Scanner;从键盘上读取数据//开始时的固定套路:Scannersc1=newScanner(System.in);//中间的关键步骤:String......
  • mt_Day6:oop进阶
    导包同一个包下的类可直接访问不同包下的类,必须先导包才能访问如果这个类中使用不同包下的相同类名,此时默认只能导入一个类的包,另一个类使用全名访问importc......
  • 无监督学习之聚类
    点头出品,必属精品!!!嘿嘿嘿( ̄y▽, ̄)╭![image]嗯~~~~,还是先从聚类到底是什么开始吧。一、聚类概述有关聚类的思考数据挖掘导论中提到过:聚类可以看做一种分类,它用类标号......
  • Go 语言进阶与依赖管理
    Goroutine在一个函数前加上go关键字就能为一个函数创建一个协程来运行Go协程有这种调度机制:循环并不会等待打印操作执行完再创建下一个协程,而是直接进行下一个循环,立刻......
  • Vue2.0项目引入字体库font-awesome
    1.安装依赖npminstallfont-awesome--save2.引入依赖可以选择全局引入或局部引入import'font-awesome/css/font-awesome.min.css';3.使用方式3.1.基本图标......
  • 35-ElasticSearch-进阶检索的基本操作
    1、SearchAPI2、QueryDSL1)、基本语法格式2)、返回部分字段3)、match【匹配查询】4)、match_phrase【短语匹配】也可以用关键字.keyword进行精确匹配,他与短语......
  • VT EPT原理解析和进阶——绕过pg检测,无视目前任何内核检测工具的检测如PCHander检测不
    [原创]驱动级VT技术EPT实现无痕HOOK保护指定进程----VTEPT原理解析和进阶 https://bbs.kanxue.com/thread-269303.htm驱动级VT虚拟化技术EPT实现无痕HOOK保护指定......