首发于 人工智能学习笔记
如何用自组织映射 (SOM) 解决旅行商问题 (TSP)

如何用自组织映射 (SOM) 解决旅行商问题 (TSP)

前言

自组织映射(SOM)是一种无监督学习的神经网络,用来解决旅行商问题(TSP)时,二维城市坐标是神经网络的输入,城市空间位置关系是神经网络要学习的模式,一个环形的神经元结构是神经网络的输出


自组织映射训练过程可视化:多次迭代训练,最终收敛为一条走完乌拉圭734个城市的路径


旅行商问题 (Travelling Salesman Problem,TSP) 是计算机科学的经典难题,即在地图上给定一系列城市和各城市之间的距离,求解遍历这些城市的最短路径。虽然旅行商问题很容易描述,但它是一个 NP-完全问题。这意味着,城市越多,解题困难就越大,而且这类问题没有通用解法。因此,目前认为任何次优解都是足够好的,多数情况下现在还没法验证返回的解是否是最优解。


为了解这个问题,我们可以尝试改善自组织映射(Self-Organizing Maps,SOM)技术。下面我们首先了解一下自组织映射,再来看它如何应用于旅行商问题的解决。



SOM 自组织映射的结构:输入层、全连接(权值矩阵)、输出层(特征映射)


1.认识自组织映射


1.1自组织映射基本原理


自组织映射(Self-Organizing Maps,SOM)由芬兰学者 Teuvo Kohonen 提出,是一种无监督的聚类方法,受人类大脑神经元的自组织和侧抑制现象启发。不同外部刺激引起大脑皮层各个区域的反应是不同的;类似地,自组织映射在接受外界输入的模式时,会分为不同的应对区域,各区域对输入模式有着不同的响应。这种分区对应是在训练中逐渐学到的,是一个自组织的过程。另一方面,生物神经元之间存在侧抑制现象,临近的神经元相互激励,较远的神经元相互抑制。响应最强的神经元即获胜神经元,以它为中心,会形成一个区域,距离中心越远激励越弱。


在 SOM 中,促使周围神经元兴奋的范围叫做“优胜邻域”。在优胜邻域内,作用强弱与距离的关系可以简化成高斯函数

SOM 有输入和输出两层神经网络,输出层通常是一个二维的神经元网格(本文是一维的环形结构)。从输入层输入的数据代表着真实世界的模式(Pattern),SOM 的训练目标是把输入数据的模式映射到输出层中。在训练中,输出层神经元的权值向量会被更新,输出层神经元在训练中逐渐学到输入数据背后的模式。对旅行商问题而言,二维城市坐标是网络的输入向量,城市空间位置关系是 SOM 要学习的模式,而网络的输出是一个环形的神经元结构。


1.2神经元权值向量的更新


在每次训练中,首先要根据各神经元权值向量与输入向量的相似度,选出获胜神经元。然后更新获胜神经元周围神经元的权值向量,使其逼近获胜神经元的权值向量和输入层的输入向量。输出层中神经元权值向量的更新方式是:

n(t+1) 表示更新后的神经元
n(t) 表示更新前的神经元
h 表示获胜神经元对近邻神经元作用强弱的邻域分布
Δ 表示该神经元与其附近获胜神经元之间的距离。


获胜神经元的优胜邻域内的神经元称为近邻神经元(neighborhood)。获胜神经元对其近邻神经元的作用在距离 Δ 上接近正态分布,这与实际相符,在本例中用高斯函数表示。优胜邻域就像一个气泡,在它半径范围内的神经元会得到更新,而优胜邻域之外的神经元不会被更新。


输出层神经元是二维网格排列时,优胜邻域像一个气泡,邻域内的神经元权值向量获得更新


1.3利用自组织映射解决旅行商问题


上式明确了神经元从 t 时刻到 t+1 时刻是如何更新的,关键是确认谁是获胜神经元。我们用欧几里得距离测量相似度,即神经元权值向量与输入向量之间的欧氏距离。欧氏距离最小的神经元就是权值向量最接近输入向量的那个,我们就将其设为获胜神经元。当我们输入的数据是城市坐标位置时,获胜神经元所表示的位置与地图中城市的位置最相近


每次训练,获胜神经元及其近邻神经元的权值向量都会更新,经过多次反复的竞争与更新,神经网络最终学到输入数据的模式(城市的空间关系),并以神经元权值向量的形式保存下来。体现在地图中,就是神经元的位置不断靠近城市,最终与之重合。


在训练过程中,神经元(圆形)不断向城市(方形)靠近,最后得到符合要求的路径。



2.参数衰减与算法收敛


利用自组织映射解决旅行商问题,最重要的就是调整优胜邻域。本文把 SOM 输出层的神经元排成一个环状阵列,每个节点只和它前后两个神经元产生竞争。稍作修改,SOM 的输出就会在邻域函数作用下,像有弹性的圆环一样,在不断靠近城市的同时,尽量控制总长,最终得到一个解。


本文 SOM 技术的主要思想是不断调整优胜邻域,但算法在时间上不会自动收敛。为了保证算法的收敛性,我们要设置一个学习率 α,用它来控制算法的探索。为了让算法的探索足够充分,我们还要用让邻域值和学习率都随时间衰减。学习率不断衰减会使得计算过程过程收敛。邻域值不断衰减会使得距离城市较远的神经元也能参与探索。考虑使算法收敛,SOM 输出层神经元的权值更新可表示为:

α 是学习率
g 是获胜神经元的优胜邻域,它是以获胜神经元为中心,以更新前的优胜邻域 h 为标准差的高斯函数


学习率和优胜邻域随时间衰减可以表示为:

γ(α) 是学习率的衰减率
γ(h) 是邻域值的衰减率


我们需要为 SOM 设置初始学习率及其衰减率、初始优胜邻域及其衰减率,然后按上述步骤运行,学习率和优胜邻域值都随着迭代次数增加而不断减小,最终收敛。


上面的 SOM 方法,无论是表达式、收敛方法还是搜索方式,都与 Q-Learning 的相似。Teuvo Kohonen 本人开发的学习矢量量化技术(Learning Vector Quantization)在功能上也与之类似。学习矢量量化是一种有监督学习的算法,用于分类问题。


最后,要让 SOM 生成路径,只需要将一个城市和它的获胜神经元相连,从任意一点开始,按获胜神经元的顺序对城市排序。如果几个城市映射到同一个神经元,那是因为 SOM 没有考虑到穿越这些城市的顺序。更进一步,原因可能是总距离和穿越顺序的相关性不够,也可能是因为精确度不够。此时,对于这些城市,就需要考虑各种可能的排序。


3.检验 SOM 的效果


3.1数据格式与来源


本项目采用了滑铁卢大学在“全国旅行商问题( National Traveling Salesman Problem instances)”项目中的案例数据,包括城市位置和目前已知的最优路径,可以用来评价用 SOM 生成路径的效果。城市数据是通用的 TSPLIB 格式,可以在文末链接中找到。


3.2评价指标和初始参数


我们使用下列指标作为检验:



评估过程中所用的参数根据 Brocki(2010)的工作做了调整:


在“全国旅行商问题”项目中,已知下面四个国家的城市数量和最优路线长度:



3.3实验结果


当某些变量衰减到有效阈值以下,模型会停止执行。尽管可以为每个实例找到更细粒度的参数,我们还是使用了统一的方法对这些实例进行测试。下面的评估结果是每个实例5次试验后的平均值:

实验结果

用 SOM 走遍乌拉圭:分别迭代100次,6000次,17000次的训练结果


这个方法实现的结果不错,我们能够用400秒训练时间获得一个接近最优的解,总体上可以接受。还有像类似于乌拉圭这样,能够在25秒内找到一条穿越734个城市的路线,总长度仅仅比给定的最优路线多7.5%。


3.4评论


用 SOM 走遍意大利:分别迭代100次,8000次,20000次的训练结果

只经过了部分测试,我们就能发现,自组织映射技术的这一应用很有趣,在一些实例中效果令人印象深刻。本文的亮点是把 SOM-TSP 解决方案使用 Python 来实现。


我们将在后续文章中介绍本文 SOM 方法的 Python 实现,你也可以在 github 仓库中先睹为快。


参考资料:

1.本项目 github 仓库地址: github.com/DiegoVicen/s

2.Teuvo Kohonen 的自组织映射论文: pdfs.semanticscholar.org

3.加拿大滑铁卢大学的 TSP 实例数据库: math.uwaterloo.ca/tsp/w


本文由集智小仙女编译整理,内容有增补

原文地址: diego.codes/post/som-ts

玻璃钢生产厂家武威玻璃钢浮雕厂家直销蚌埠不锈钢家具加工锦州玻璃钢人物雕塑加工青岛玻璃钢摆件哪家好长治玻璃钢装饰制造山南玻璃钢餐桌椅常德不锈钢花盆制作日照玻璃钢装饰工程生产厂家南阳玻璃钢坐凳生产厂家福州玻璃钢花盆厂家直销唐山玻璃钢花池厂家直销渭南玻璃钢雕塑批发中卫不锈钢家具厂鹰潭玻璃钢制品厂家福州玻璃钢产品制造松原玻璃钢休闲椅公司安庆玻璃钢前台制造咸阳玻璃钢人物雕塑吕梁玻璃钢沙发加工运城玻璃钢家具制作辽源玻璃钢树池坐凳生产厂家银川玻璃钢座椅公司鞍山玻璃钢天花吊顶多少钱太原玻璃钢花池制造德阳不锈钢雕塑多少钱揭阳玻璃钢休闲椅定制郴州玻璃钢树池定制自贡玻璃钢花坛制作中卫不锈钢花盆黑龙江玻璃钢前台加工香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化