博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第三部分
阅读量:4636 次
发布时间:2019-06-09

本文共 1803 字,大约阅读时间需要 6 分钟。

前面两篇介绍了SOM的基本概念和算法,,,本篇具体展开一下应用中的一些trick设定。

SOM设计细节

输出层设计

输出层神经元数量设定和训练集样本的类别数相关,但是实际中我们往往不能清除地知道有多少类。如果神经元节点数少于类别数,则不足以区分全部模式,训练的结果势必将相近的模式类合并为一类;相反,如果神经元节点数多于类别数,则有可能分的过细,或者是出现“死节点”,即在训练过程中,某个节点从未获胜过且远离其他获胜节点,因此它们的权值从未得到过更新。

不过一般来说,如果对类别数没有确定知识,宁可先设定较多的节点数,以便较好的映射样本的拓扑结构,如果分类过细再酌情减少输出节点。“死节点”问题一般可通过重新初始化权值得到解决。

输出层节点排列的设计

输出层的节点排列成哪种形式取决于实际应用的需要,排列形式应尽量直观反映出实际问题的物理意义。例如,对于旅行路径类的问题,二维平面比较直观;对于一般的分类问题,一个输出节点节能代表一个模式类,用一维线阵意义明确结构简单。

权值初始化问题

基本原则是尽量使权值的初始位置与输入样本的大概分布区域充分重合,不要出现大量的初始“死节点”。

  • 一种简单易行的方法是从训练集中随机抽取m个输入样本作为初始权值
  • 另一种可行的办法是先计算出全体样本的中心向量,在该中心向量基础上迭加小随机数作为权向量初始值,也可将权向量的初始位置确定在样本群中(找离中心近的点)。

优胜邻域的设计

优胜领域设计原则是使领域不断缩小,这样输出平面上相邻神经元对应的权向量之间既有区别又有相当的相似性,从而保证当获胜节点对某一类模式产生最大响应时,其领域节点也能产生较大响应。领域的形状可以是正方形、六边形或者菱形。优势领域的大小用领域的半径表示,r(t)的设计目前没有一般化的数学方法,通常凭借经验来选择。下面是两种典型形式:

r(t)=C1(1tT)r(t)=C1eB1t/T
C1为于输出层节点数有关的正常数,
B1为大于1的常数,T为预先选定的最大训练次数。

学习率的设计

在训练开始时,学习率可以选取较大的值,之后以较快的速度下降,这样有利于很快捕捉到输入向量的大致结构,然后学习率在较小的值上缓降至0值,这样可以精细地调整权值使之符合输入空间的样本分布结构。在上一篇中,我们提到最终的学习率是由学习率*优胜领域的影响,也有一些资料是把两者分开的,学习率就是一个递减的函数(学习率可以参考上面优胜邻域半径的设定形式,可选形式类似),而优胜邻域也是t的递减函数,只不过我们队优胜邻域内的点进行更新罢了。

SOM功能分析

1、保序映射——将输入空间的样本模式类有序地映射在输出层上。

1989年Kohonen给出一个SOM网的著名应用实例,即把不同的动物按其属性映射到二维输出平面上,使属性相似的动物在SOM网输出平面上的位置也相近。训练集选了16种动物,每种动物用一个29维向量来表示。前16个分量构成符号向量(不同的动物进行16取1编码),后13个分量构成属性向量,描述动物的13种属性的有或无(用1或0表示)。

这里写图片描述

这里写图片描述

SOM网输出平面上有10×10个神经元,16个动物模式轮番输入训练,最后输出平面呈现16种动物属性特征映射,属性相似的挨在一起,实现了特征的有序分布。(实现这个图只需要判断每个神经元的模式和哪个样本最近)

这里写图片描述

2、数据压缩

将高维空间的样本在保持拓扑结构不变的条件下投影到低维的空间,在这方面SOM网具有明显的优势。无论输入样本空间是多少维,其模式都可以在SOM网输出层的某个区域得到相应。SOM网经过训练以后,在高维空间输入相近的样本,其输出相应的位置也相近。

3、特征提取

从高维空间样本向低维空间的映射,SOM网的输出层相当于低维特征空间。

另外,[2]还提到了字符排序,复合材料损伤监测等等有趣的应用,有兴趣的可以看一下。这里就不展开了。

SOM提出的比较早,算法的思想启发于人脑,主要用于无监督学习,我个人认为是很有发展空间的一类模型;另外,比较早的还有一类网络叫做hopfiled神经网络,后面有时间再写一下。好,本篇就到这里,谢谢!

参考资料

[1]

[2] 百度文库,《SOM自组织特征映射神经网络》
[3] 《第四章 自组织竞争型神经网络》, PPT

转载于:https://www.cnblogs.com/yihaha/p/7265304.html

你可能感兴趣的文章
spring boot 文件上传工具类(bug 已修改)
查看>>
《机电传动控制》学习笔记03-1
查看>>
读《大道至简》第六章感想
查看>>
ef linq 中判断实体中是否包含某集合
查看>>
金蝶K/3 BOS产品培训教案
查看>>
章三 链表
查看>>
react组件回顶部
查看>>
MyBatis if标签的用法
查看>>
VMware
查看>>
具体解释可变參数列表
查看>>
【LeetCode】Palindrome Partitioning 解题报告
查看>>
用vue-cli脚手架搭建一个仿网易云音乐的全家桶vue项目
查看>>
Solution for Concurrent number of AOS' for this application exceeds the licensed number
查看>>
从壹开始微服务 [ DDD ] 之一 ║ D3模式设计初探 与 我的计划书
查看>>
python 错误之SyntaxError: Missing parentheses in call to 'print'
查看>>
Windows Phone开发(16):样式和控件模板
查看>>
CSE 3100 Systems Programming
查看>>
洛谷 1604——B进制星球(高精度算法)
查看>>
IntelliJ IDEA 的Project structure说明
查看>>
处理 JSON null 和空数组及对象
查看>>