Self Organizing Maps 自映射人工神经网络

2024-04-02 13:32

本文主要是介绍Self Organizing Maps 自映射人工神经网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:Self Organizing Maps作者:shiqj1980
the ebook: http://davis.wpi.edu/~matt/courses/soms/
using som in excel:http://www.geocities.com/adotsaha/NN/SOMinExcel.html

 人工神经网络技术在模式识别方面有着独特的优势,神经网络能够进行非线性数据处理,发现复杂的数据关系,其中,自组织映射神经网络( Self-Organizing Map , SOM )可以对模式数据进行自动聚类。
 自组织特征映射是 Kohonen 在 1990 年提出的类似大脑思维的一种人工神经网络方法,它是一种竞争学习算法,可以被认为是一种从 N 维模式空间各点到输出空间少数点的映射。这一映射由系统本身完成,没有外部的监督,即聚类是以自组织的方式实现的。
 SOM 采用无教师学习训练,训练完成后,分类信息存储在网络各节点连接权值向量中,与权值向量相似的输入向量将分为一类。 SOM 包括一维和二维模型,二维 SOM 也称为 KFM(Kohonen Feature Mapping) 。它们的区别在于 KFM 考虑邻近神经元的相互作用,即获胜神经元对周围神经元由于距离的不同会产生不同的影响。
 KFM 的结构如 图 8.3 所示 ,输入网络的是一个 n 维向量的所有 n 个数值,输出单元呈二维排列,个数为 p × p, 输入层与输出层的各单元之间是全连接的,并用 W 表示连接权重。 KFM 的学习过程就是对所有的 G 个样本向量进行迭代学习,直到权值 W 的变化小于某一个确定的阈值或迭代达到一定的次数。测试过程比较简单,对于每一个样本向量,计算其获胜神经元,输出单元相同的样本向量属于同一类。虽然 KFM 有学习过程,但是可以看到这种学习是从所有的样本中自动获取特征,没有教师的参与,因此称为无监督的学习方法。
 Kohonen 认为,神经网络中邻近的各个神经元通过侧向交互作用彼此相互竞争,自适应地发展成检测不同信号的特殊检测器。该思想来自于大脑神经元的特性,即大脑皮层的神经元成二维空间排列,不同区域分工不同,各自对输入模式的不同特征敏感,神经元之间存在信息交互,主要是侧向交互,即某个经元对周围神经元之间存在由近到远的不同的影响作用,而不是简单的侧抑制作用。对邻近神经元的交互作用函数有巴拿马草帽型 (公式 8-22 ) 或矩形型 (公式 8-23 ) 。
这里写图片描述
其中 dcj 是输出单元 c 与邻近单元 j 之间在神经元平面上的距离, R 是交互作用半径。
KFM 的学习过程如下:
这里写图片描述

 学习过程可以采用从全局到局部的策略。采取这种策略时,学习初期可设定较大的交互作用半径 R ,随着学习过程的不断推进,逐步减小 R ,直至不考虑对邻近单元的影响。邻域的形状可以是正方形或者圆形。

  KFM 的聚类结果与 K 均值相似,它的优点是自动提取样本数据中的信息,同时也是一种全局的决策方法,能避免陷入局部最小,缺点在于必须实现人为设定类的数目与学习参数,而且学习时间较长。 KFM 方法克服了 K- 均值聚类的一些缺点:它应用类间的全局关系,能提供大数据集内相似性关系的综合看法,便于研究数据变量值的分布及发现类结构。而且,它具有更稳健更准确的特点,对噪声稳定,一般不依赖于数据分布的形状。

这篇关于Self Organizing Maps 自映射人工神经网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/870111

相关文章

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Java中基于注解的代码生成工具MapStruct映射使用详解

《Java中基于注解的代码生成工具MapStruct映射使用详解》MapStruct作为一个基于注解的代码生成工具,为我们提供了一种更加优雅、高效的解决方案,本文主要为大家介绍了它的具体使用,感兴趣... 目录介绍优缺点优点缺点核心注解及详细使用语法说明@Mapper@Mapping@Mappings@Co

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

docker 重启容器且修改服务映射端口

要重启 Docker 容器并修改服务的映射端口,可以按照以下步骤进行操作: 1. 停止当前运行的容器 如果你想重新配置端口,通常需要先停止当前运行的容器。你可以使用以下命令停止容器: docker stop <container_name_or_id> 2. 删除现有容器 为了修改端口映射,你需要删除旧的容器并重新创建一个新的容器。首先运行以下命令删除停止的容器: docker rm

maven项目中程序运行编译的时候出现:编码GBK的不可映射字符

由于JDK是国际版的,我们在用javac.exe编译时,编译程序首先会获得我们操作系统默认采用的编码格式(也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格

ManyToMany双向外键关联(基于注解)的映射案例(简单版)

学生和老师就是多对多的关系,一个学生有多个学生,一个老师也有多个学生,这里的多对多映射采用中间表连接的映射策略,建立中间表的映射策略,建立中间表分别引入俩边的主键作为外键。通过中间表映射俩个表之间的关系。 下面就以学生类和老师类为例介绍多对多的映射关系的实例 Students类 package mtm_bfk;import java.io.Serializable;import java.

Mybatis查询到多条记录但是映射到list集合只有一条或者条数不对

如果你出现了这个问题。 *. 原因:mybatis是基于当前实体对象的id进行映射的 *.所以在查询字段中加上查询id即可。 搞定!!!!