机器学习 | 自组织神经网络求解TSP问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习 | 自组织神经网络求解TSP问题相关的知识,希望对你有一定的参考价值。



今天我们来讲一讲使用自组织神经网络求解TSP问题,本次推文分为以下两部分:

1、自组织神经网络的基本原理

2、利用自组织神经网络解决TSP问题的基本思路



自组织神经网络的基本原理


一种自组织神经网络的典型结构:由输入层竞争层组成。主要用于完成的任务基本还是“分类”和“聚类”,前者有监督,后者无监督。聚类的时候也可以看成将目标样本分类,只是是没有任何先验知识的,目的是将相似的样本聚合在一起,而不相似的样本分离。


竞争学习规则——Winner-Take-All ,网络的输出神经元之间相互竞争以求被激活,结果在每一时刻只有一个输出神经元被激活。这个被激活的神经元称为竞争获胜神经元,而其它神经元的状态被抑制,故称为Winner Take All。


那么如何寻找获胜神经元?首先,对网络当前输入模式向量X和竞争层中各神经元对应的权重向量Wj(对应j神经元)全部进行一化,使得X和Wj模为1;当网络得到一个输入模式向量X时,竞争层的所有神经元对应的权重向量均与其进行相似性比较,并将最相似的权重向量判为竞争获胜神经元。前面刚说过,归一化后,相似度最大就是内积最大


总结来说,竞争学习的步骤是:

(1)向量归一化

(2)寻找获胜神经元

(3)网络输出与权值调整

步骤(3)完成后回到步骤1继续训练,直到学习率衰减到0。学习率处于(0,1],一般随着学习的进展而减小,即调整的程度越来越小,神经元(权重)趋于聚类中心


机器学习


利用自组织神经网络解决TSP问题的基本思路


自组织映射(SOM)是一种无监督学习的神经网络。SM自组织映射的结构只有三层,分别是输入层全连接层输出层。其中输入层也就是权值矩阵,输出层就是那些特征映射


SOM算法的主要原理就是每次找到离城市最近的神经元,该神经元被称为优胜神经元,然后以该神经元建立一个高斯分布逐渐更新其他神经元的位置,也就是更新输出神经元权值向,通过不断的迭代,输出神经元会逐渐学习到输入数据背后的模式


在TSP问题中二维城市坐标就是输入数据,城市空间位置就是网络需要学习的模式,在迭代的过程中,为了保证算法的收敛,会更新学习率等参数,最终达到神经元不断的靠近城市,最终输出一条最短城市回路


程序流程:

1.以城市个数的八倍的随机神经元的位置

2.随机挑选一个城市

3.用欧式距离找到距离这个城市最近的神经元

4.以该神经元为中心,均值为0,方差为城市个数的十分之一创建高斯分布,所有神经元按照该高斯分布向选中的城市移动

5.改变学习率改变高斯分布的方差

6.判断方差或者学习率是否达到阈值,或者是否达到迭代次数,如果达到则停止迭代,转到步骤7,否则转到步骤2

7.按照神经元的顺序输出城市编号即为最短路径,同时输出最短路径长度。


OK,老规矩,在公众号“优化算法交流地”里回复关键词【代码】,就能获取一整套高质量智能优化算法的MATLAB代码。



以上是关于机器学习 | 自组织神经网络求解TSP问题的主要内容,如果未能解决你的问题,请参考以下文章

TSP问题基于hopfield神经网络求解TSP问题matlab

TSP问题基于hopfield神经网络求解TSP问题matlab

连续型Hopfield神经网络求解TSP问题神经网络十一

连续型Hopfield神经网络求解TSP问题神经网络十一

机器学习算法笔记5. 自组织映射SOM

郑捷《机器学习算法原理与编程实践》学习笔记(第六章 神经网络初步)6.3 自组织特征映射神经网路(SMO)