神经气体生长算法【GNG】

当德国计算神经学家 Bernd Fritzke 在其 1995 年的开创性论文中提出后来被称为神经气体生长(GNG)的算法时,机器学习还是一个相对较新的领域,并且受到实际神经科学的极大启发。

当时,神经科学正处于一个突破性的时代——这在很大程度上要归功于新的神经成像方法,包括功能性神经成像 (fMRI)、脑磁图 (MEG) 和扩散张量成像 (DTI)。这启发了计算机科学家创建类似于神经元工作方式的模型。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

例如,深度学习(尤其是深度卷积神经网络)可能最多受到大脑处理信息的方式的启发,特别是大脑处理“什么”部分(称为腹侧视觉流)的视觉信息,而不是“哪里”部分(由背侧视觉流处理),但最初的灵感来自这些因素。最初的类比足以创建一个具有可行数学类比的模型,然后可以使用实际视觉系统中不存在的东西(例如卷积核)对其进行扩展。

神经气体同样从一种称为赫布学习(hebbian learning)的神经过程中获得了模糊的灵感。这一理论可以追溯到 20 世纪 40 年代末,它试图通过以下事实来解释联想学习现象:如果两个足够接近的神经元倾向于同时激发,那么它们最终将更有可能形成突触连接。

当然,这是一个彻底的简化(如果你对这种情况的程度感兴趣,Rumsey 和 Abbott 在《生理学》上发表的这篇论文是一个很好的介绍),但它启发了人工神经网络中的想法,即神经元之间的连接应该越频繁地同时激活(“同时激发的神经元会连接在一起”),它们之间的连接就越强。

1、神经气体生长算法

神经气体生长(Growing Neural Gas)算法仅用几百步就“学习”了我脸部的拓扑结构。该图由 752 个节点组成,非常容易辨认,不到构成图像的原始 15,564 个蓝点的 5%。

神经气体生长是一种相对简单的算法,就像我们在上一章中遇到的另一个竞争模型一样,它允许学习和表示拓扑。因此,它是一种拓扑表示网络,正如我们在第 1 部分中看到的那样,它能够近似人脸拓扑这样复杂的东西——产生人类观察者可以识别的东西,同时显著减少信息。例如,左侧的动画表明,可以非常高效地近似人脸这样复杂的东西,以创建观察者无法识别的图像。

神经气体生长算法的总体思路是:从两个随机放置的神经元开始,每隔一段时间在迄今为止表现最差的神经元和其表现最差的邻居之间添加新的神经元。这个过程会不断迭代,直到达到边界条件(例如最大迭代次数)。请注意,上述解释忽略了边老化和年龄下降。

就像之前的帖子一样,我将把严格的数学留给配套的笔记本,并坚持解释总体思路。就像自组织特征图一样,GNG 是迭代算法。然而,与 SOFM 不同,它们不需要对神经元的数量进行任何初始指定——顾名思义,GNG 是不断增长的,只要算法在运行,新的神经元就会不断增加。

  • 每次迭代都从从训练集中选择一个数据点开始。由于 GNG 可以很好地推广到任意数量的维度,因此通常用 𝛿 长度向量 v 来表示它们。
  • 最接近 v 的神经元,类似于 SOFM,称为最佳表现单元 (BPU),会移近 v。所有直接连接到 BPU 的神经元也会移近 v。
  • 确定第二佳表现单元 (SBPU)。如果 BPU 和 SBPU 已连接,则将此连接的年龄设置为零。如果它们未连接,则将它们连接起来。然后增加从 BPU 发出的所有其他边的年龄。
  • 如果边的年龄大于最大年龄 Amax,则删除该边。如果这导致“孤立神经元”(没有边连接的神经元),也会删除这些神经元。
  • 每 λ 次迭代,累积误差最大的神经元(每次迭代中与每个数据向量 v 的距离之和)被确定为表现最差的单元 (WPU)。在 WPU 和其表现最差的邻居之间插入一个新神经元,并删除 WPU 和其表现最差的邻居之间的原始边。
  • 迭代直到达到某些边界条件,例如最大迭代次数。

理解此算法的工作原理很简单,但值得花一些时间思考它为什么有效。你可能已经从上面的例子中注意到,此方法创建了数据分布空间的分区,并通过近似 Delaunay 三角剖分来实现。事实上,在原始论文中,Fritzke 将 GNG 生成的图称为“诱导 Delaunay 三角剖分”。

神经气体生长算法的理念是,与需要了解表示数据所需的神经元数量 SOFM 不同,GNG 确定模型迄今为止表现最差的区域,并改进该区域。这最终导致模型不能均匀增长,而是扩大图形的大小,不再能以给定的分辨率(神经元数量)覆盖(量化)数据。

2、使用 GNG 来计算聚类

在竞争性神经网络的第一部分介绍中,我已经介绍了 GNG 的一个用例,即作为快速高效的矢量量化算法,可以创建不错的图像近似值。接下来,我们将讨论一些略有不同的内容,即计算不同的对象并量化它们的大小。

眼底镜检查图像上的硬性和软性渗出物, DIARETDB1 数据集

拉彭兰塔理工大学 Kauppi 等人的研究小组的 DIARETDB1 数据集包含 5 名健康志愿者和 84 名患有一定程度糖尿病视网膜病变的人的 89 张数字眼底镜检查图像,即眼底图像。糖尿病视网膜病变是糖尿病的一种并发症,会影响视网膜的小血管,长期血糖控制不足会导致血管损伤、微动脉瘤和渗出物,其中脂质(导致亮黄色硬渗出物)或血液(导致淡黄色、弥漫性软渗出物)积聚在眼底。接下来,我们将使用 GNG 来量化这些异常。DIARETDB1 数据集包含 ROI(感兴趣区域)蒙版,但这些蒙版仅勾勒出显示特定临床特征的区域。我们可以使用 Growing Neural Gas 来计算感兴趣区域中存在多少个硬渗出物簇吗?当然可以!

使用共识掩码隔离 ROI:根据原始 ROI 注释(左下)生成至少两位专家投票的共识掩码(右下)。此掩码用于将感兴趣的区域与眼底检查图像(左上)隔离,从而生成掩码图像(右上)。

我们从一些图像处理开始,即细化感兴趣的区域。每张图像都由四位专家标记,从而创建了一个蒙版。我们可以对蒙版进行阈值处理,以要求一定数量的专家达成共识,这是带注释的研究图像中广泛使用的技巧(如果您不熟悉它,请滚动到底部!)。然后,我们使用硬性渗出液相对突出的亮黄色将它们转换为 GNG 可以开始表征的数据点(有关细节,请参阅配套笔记本,其中解释了一些额外的技巧,包括一些形态变换)。

接下来,我们利用脂质渗出液具有非常可识别的黄色这一事实,通过使用 OpenCV 的 inRange 函数对其进行阈值处理。此时,我们上面执行的 ROI 蒙版派上了用场,因为视神经盘(血管进入的亮黄色圆形结构,神经节神经元的轴突离开视网膜加入视神经)通常具有相似的颜色,具体取决于照明。使用 inRange 时,通常将图像转换为 HSV(色调、饱和度和明度)格式,因为这样可以更轻松地指定特定色调范围内的颜色。在 HSV 中,色调(“颜色”)占据颜色向量的单个元素(通常指定为色环上的度数),因此指定所有黄色就像指定黄色的近似色调角(大约 60°)并排除低饱和度(浅色,趋向于白色)或低明度(深色,趋向于黑色)边缘一样简单。对于 RGB 中的大多数颜色,这会复杂得多!幸运的是,OpenCV 及其 Python 绑定具有出色的颜色空间转换功能。

使用 OpenCV 的颜色阈值功能从原始 ROI 中提取硬脂质渗出物。只有落在特定色调角度范围内的值才会被保留。经过一些形态学操作以消除噪音后,我们留下了一个布尔图像,该图像将转换为二进制网格格式,以供 GNG 进行训练。

终端神经元数量越多,形状近似越准确,但运行时间也越长(左:200 个神经元,右:1,000 个神经元)。

使用 GNG 计算聚类簇时,一些设置至关重要。特别是,值得从大量初始神经元开始。在第 1 部分中提到的图像矢量量化示例中,我们从两个神经元开始。这样做的结果是一个图,该图在大多数时间将保持完全连接(回想一下,对于 GNG 来说,生成新神经元比删除现有神经元要容易得多)。这是一个问题,因为我们依靠计算断开连接的子图来确定不同病变的数量。最简单的解决方案是创建大量初始神经元(几千个,即比预期的不同簇数量多 2-3 个数量级)。虽然延长了训练时间,但一段时间后确实会导致分割越来越准确——最重要的是,与初始神经元数量较少的分割不同,它们不太可能具有需要多次迭代才能分离的连接段。

在大量迭代中使用相同的设置可以更好地分离近距离神经元

3、结束语

基于生长神经气体的模型不仅擅长矢量量化,还能从所有数据点的一小部分创建可行、可理解的数据表示。它们还可以找到未知数量的连贯拓扑。如果有时间收敛,这些模型不仅可以识别不同拓扑的数量,还可以量化它们的相对和绝对面积。

竞争神经网络至今仍是一种未得到充分利用的技术,但最近的高效实现,如 Tensorflow SOFM 层和基于 Tensorflow 的 GNG 实现,有望促进竞争神经网络的复兴,无论是单独实现还是作为更大神经网络图的一部分。


原文链接:GNG神经气体生长算法 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698691.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈word格式:.doc和.docx的优缺点及区别

.doc和.docx是两种最为常见的文档格式,它们在多个方面存在着显著的区别。首先,从版本角度来看,.doc是Microsoft Office Word 2003及之前版本的保存类型,而.docx则是Word 2007及之后版本的保存类型。这一区别直接影响了文档在不同版…

【数据分析】统计学基础及Python具体实现

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…

FlowUs息流:新媒体运营者的智能协作解决方案

新媒体和自媒体运营者在日常工作中经常面临信息管理复杂、创意记录不便、团队协作效率低等痛点。FlowUs作为一款多功能的协作工具,能够针对性地解决这些问题。 FlowUs息流是一款专为新媒体从业者设计的协作文档工具,它具备以下功能特色: 中文…

Android 代码打印meminfo

旨在替代adb shell dumpsys meminfo packageName,在log打印meminfo,以便分析内存情况 ActivityManager.MemoryInfo memoryInfo new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo); long totalMemory Runtime.getRuntime(…

Python从0到100(三十二):lxml模块的学习与应用

学习目标 掌握使用lxml库提取数据的方法。理解lxml在数据处理后提取的数据类型。学习将元素(element)转换为字符串的方法。 1. lxml的安装 通过以下命令安装lxml库: pip install lxml2. lxml的使用 2.1 基础使用 导入lxml的etree库&…

用英语介绍端午节,柯桥零基础英语培训

端午节 Dragon Boat Festival 中国传统节日,农历五月初五。相传古代诗人屈原在五月初五投江自杀,后人把这天作为节日纪念他。有划龙舟比赛、包粽子等风俗。 A traditional Chinese festival on the fifth day of the fifth lunar month. Legend has i…

Doris 2.1 元数据更新

metadata_refresh_interval_sec 20

护理考试搜题软件哪个免费?分享九个搜题直接出答案的软件 #知识分享#微信

培养自己的阅读习惯,并不仅仅限于课外读物,还包括学术期刊、行业报告等,以不断提升自己的知识水平和思考能力。 1.彩虹搜题 这是一个公众号 是一款专门针对于大学生或者是成年自考等学生顺利完成证件考试的应用软件,这款软件涵…

AI巅峰对决:8款大模型边缘作文谁领风骚?

前几天我们预测高考作文题目,然后有朋友说我们预测对了,但是我们认真看,发现和全国卷作文人工智能有点交集,但是不能说预测对。 这次我们不预测了,而是让实力说话——邀请8个国产AI大模型参与一场别开生面的“边缘作文…

人工智能对聊天机器人训练数据的“淘金热”可能会耗尽人类编写的文本

人工智能对聊天机器人训练数据的“淘金热”可能会耗尽人类编写的文本 像ChatGPT这样的人工智能系统可能很快就会耗尽让它们变得更聪明的东西——人们在网上写下和分享的数万亿字。 Epoch AI研究集团发布的一项新研究预计,科技公司将在大约十年之交——2026年至203…

Spring--Bean的作用域,生命周期

Bean的作用域 Bean的作用域有很多种,在Spring Framework中支持6种(其中有四种只有在web环境中才能生效),同时Spring还支持自定义Bean的范围。 Spring Framework中支持的6种范围: 作用域解释singleton每个Spring IoC…

【数学建模】微分方程的数值求解

微分方程的数值求解 一阶差分求解微分方程原理:四阶龙格-库塔方法应用:小船渡河问题: 进阶求二阶微分方程 一阶差分求解微分方程原理: d y d x f ( x n , y n ) \dfrac{dy}{dx}f(x_n,y_n) dxdy​f(xn​,yn​) y n 1 − y n x n 1 − x n f ( x n , y n ) \dfrac{y_{n1}-y_n…

React+TS前台项目实战(一)-- 项目初始化配置及开此系列的初衷

文章目录 前言一、初始化项目二、基础配置1. 项目目录及说明如下2. TS版本使用Craco需注意 总结 前言 前面 后台管理系统实战 系列教程暂时告一段落了,想了解全局各种配置的可自行查看。本次教程将重点介绍React前台项目的实操,关于具体的配置&#xff…

51单片机-数码管显示多个

目录 简介: 一. 简单全亮 二. 控制单个变化 三. 2024 书接上回 51单片机-数码管显示单个 http://t.csdnimg.cn/Ii6x0 简介: 51 单片机作为控制核心,可以与数码管相连接来实现数字的显示。 数码管通常有多个段,通过控制这些段的点亮和熄灭状态&…

弘君资本炒股技巧:银行降准对股票的影响?

银行降准会带动股票市场变得相对活泼起来,假如降准前股价在跌落状态,降准能够起到一定缓冲股价跌落的效果。 什么是降准:降准指的是减少银行在央行的存款准备金率,也便是说银行需求存放于央行的资金份额下降,银行能够…

Tensorflow2.10 完成图像分割任务

前言 图像分割在医学成像、自动驾驶汽车和卫星成像等方面有很多应用,本质其实就是图像像素分类任务,也就是使用深度学习模型为输入图像的每个像素分配一个标签(或类)。 准备 本文的准备如下,使用 pip 安装如下配置&…

动态内存管理<C语言>

导言 在C语言学习阶段,指针、结构体和动态内存管理,是后期学习数据结构的最重要的三大知识模块,也是C语言比较难的知识模块,但是“天下无难事”,只要认真踏实的学习,也能解决,所以下文将介绍动态…

成都石室中学学子游汶鑫展现新时代好少年风采 拾金不昧获表彰

在繁华的都市中,每天都有无数的故事在上演,而其中的一些故事,却以其独特的温暖和正能量,深深打动着我们的心灵。近日,成都石室中学初中学校的一名学生游汶鑫同学,就用他的实际行动,诠释了新时代好少年的风采,展现了中华民族传统美德在当代青少年身上的生动体现。 成都石室中学初…

# Mac下反编译微信小程序获得源码

Mac下反编译微信小程序获得源码 所需工具 mac版微信 最好3.8以上版本node环境wxappUnpacker wxappUnpacker: 小程序反编译(支持分包) 小程序反编译(支持分包) https://gitee.com/ksd/wxappUnpacker 大体步骤 用微信搜索打开对应小程序,为的是把产物文件加载到…

郑州小区火灾防范需重视:可燃气体报警器检测的日常管理与维护

近日,郑州市一小区发生了一起严重的火灾事故,这起事故不仅给遇难者家属带来了巨大悲痛,也再次引发了社会对于小区火灾防范与应急处理的关注。 在对此次事故进行深入分析的同时,我们不得不思考可燃气体报警器在小区火灾检测中的重…