政安晨:【深度学习神经网络基础】(四)—— 自组织映射

目录

自组织映射和邻域函数

理解邻域函数

墨西哥帽邻域函数

计算SOM误差


政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏政安晨的机器学习笔记

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

本文介绍当今仍然有用的、最早的一种神经网络。由于神经元可以通过各种方式连接,因此存在许多不同的神经网络架构。我们从自组织映射(Self-Organizing Map,SOM)开始研究经典神经网络。

人们利用SOM,将神经网络的输入数据分类。

将训练数据和希望将这些数据分类的组数一同提供给SOM。在训练期间,SOM会将这些数据分组。特征最相似的数据将被分在一起。这个过程与聚类算法(如K均值)非常相似。但是,与仅对一组初始数据进行分组的K均值不同,SOM可以继续对除用于训练的初始数据集之外的新数据进行分类。大多数神经网络不同,SOM是无监督的——你不会告诉它期望训练数据归入哪些组。SOM会根据你的训练数据简单地确定这些组本身,然后将未来的所有数据分为相似的组。将来的分类利用了SOM从训练数据中学到的内容。

自组织映射和邻域函数

Kohonen(1988)引入了SOM,这是一个由输入层和输出层组成的神经网络。两层SOM也被称为Kohonen神经网络,在输入层将数据映射到输出层时起作用。当程序将模式提供给输入层时,如果输出神经元包含与输入最相似的权重,它就被认为是赢家。通过比较来自每个输出神经元的权重集之间的欧氏距离,来计算这种相似性,欧氏距离最短者获胜。计算欧氏距离是下文的重点。

与咱们以前讨论的前馈神经网络不同,SOM中没有偏置。它仅具有从输入层到输出层的权重。此外,它仅使用了线性激活函数。下图展示了SOM。

下图中的SOM展示了程序如何将3个输入神经元映射到9个输出神经元,它们以3×3网格的方式排列。

SOM的输出神经元通常排列成网格、立方体或其他高维构造。因为大多数神经网络中输出神经元的排序通常根本不表达任何意义,所以这种安排有很大不同。如在大多数神经网络中,一个输出神经元与另一个输出神经元的接近程度并不重要。但对于SOM,一个输出神经元与另一个输出神经元的接近程度很重要。计算机视觉应用程序利用神经元的接近程度来更准确地识别图像。

卷积神经网络根据这些输入神经元彼此之间的接近程度,将神经元分组为重叠的区域。识别图像时,考虑哪些像素彼此靠近非常重要。程序通过查看彼此附近的像素来识别如边缘、实心区域和线条之类的模式。

SOM的输出神经元的常见结构如下:

● 一维:输出神经元排列成一行。

● 二维:输出神经元排列在网格中。

● 三维:输出神经元排列成立方体。

现在,我们将看到如何构造一个简单的SOM,它学习识别以RGB向量的形式给出的颜色。单个红色、绿色和蓝色值的范围可以在−1~+1。−1表示黑色或没有颜色,而+1表示红色、绿色或蓝色的完整强度。这些三色分量构成了神经网络输入。

输出是一个2 500个神经元的网格,排列成50行×50列。在这个输出网格中,该SOM将类似的颜色组织到相近的位置。

下图展示了这个输出

尽管上图不是那样清晰,但是你可以看到相似的颜色彼此组合在一起。单个的、基于颜色的SOM是一个非常简单的示例,让你能够看到SOM的分组能力。

如何训练SOM?训练过程将更新权重矩阵,它是3×2 500的矩阵。首先,程序将权重矩阵初始化为随机值。然后,它随机选择15种训练颜色。

训练将通过一系列迭代进行。与其他神经网络不同,SOM的训练包含固定数量的迭代。为了训练基于颜色的SOM,我们将使用1 000次迭代。

每次迭代将从训练集中选择一个随机颜色样本,该样本是RGB颜色向量的集合,每个向量由3个数字组成。同样,2 500个输出神经元和3个输入神经元之间的权重是由3个数字组成的向量。随着训练的进行,程序将计算每个权重向量与当前训练模式之间的欧氏距离。欧氏距离确定相同尺寸的两个向量之间的差。在这种情况下,两个向量都代表RGB颜色,由3个数字组成。我们将训练数据中的颜色与每个神经元的3个权重进行比较。

下式给出了欧氏距离的计算:

在上述公式中,变量p表示训练模式,变量w表示权重向量。对每个向量分量之间的差取平方,并取所得和的平方根,计算出欧氏距离。该计算测量了每个权重向量和输入训练模式之间的差异。

程序为每个输出神经元计算欧氏距离,距离最短的神经元称为最佳匹配单元(Best Matching Unit,BMU)。该神经元将从当前的训练模式中学到最多的知识,BMU的邻居将学到较少。为了执行此训练,程序会在每个神经元上循环并确定应训练的程度。靠近BMU的神经元将接受更多训练。

下面公式可以做出这个决定:

在上面公式中,变量t(也称为迭代次数)代表时间。

我们不想简单地将训练元素分配给输出神经元权重,使它们相同。作为替代,我们计算训练元素和神经元权重之间的差异,并通过将它乘以两个比率来缩放此差异。用θ(theta)表示的第一个比率是邻域函数,用α(alpha)表示的第二个比率是单调递减的学习率。换言之,随着训练的进行,学习率持续下降,不会上升。

邻域函数考虑每个输出神经元与BMU的距离。对于较近的神经元,邻域函数将返回接近1的值;对于较远的邻域,邻域函数将返回接近0的值。这个0~1的范围控制了训练近邻和远邻的方式。较近的邻居将获得更多的权重调整训练。在后文中,我们将分析邻域函数如何调整训练。

除了邻域函数外,学习率也缩放了程序调整输出神经元的程度。

理解邻域函数

邻域函数确定每个输出神经元应从当前训练模式中接受训练调整的程度。该函数通常为BMU返回值1,该值表示BMU应该接受最多的训练,远离BMU的神经元将接受较少的训练。邻域函数用于确定这个权重。

如果输出神经元仅按一维的结构排列,就应使用简单的一维邻域函数。该函数将输出视为一长串数字,如一维神经网络可能有100个输出神经元,这些神经元形成一个长单维数组,由100个值组成。

二维SOM可能同样会使用100个值,并将它们表示为网格,可能是10行10列。二维SOM实际结构保持不变,神经网络有100个输出神经元,唯一的区别是邻域函数。一维SOM会使用一维邻域函数,二维会使用二维邻域函数。函数必须考虑这个附加维度,并将它作为影响返回距离的因素。

邻域函数还可以是具有三维、四维,甚至更多维度的函数。通常,邻域函数以向量形式表示,因此维度无关紧要。为了表示维度,领域函数会采用所有输入的欧氏范数(用两对竖线表示),如下公式所示:

对于SOM,最受欢迎的选择是二维邻域函数,一维邻域函数也很常见,但是,具有3个或3个以上维度的邻域函数较为罕见。实际上,维度的选择取决于程序员对输出神经元彼此相邻有多少种方式的决定。这个决定不应草率,因为每个额外的维度都会显著影响所需的内存量和处理能力。这种额外的处理导致大多数程序员都会为SOM应用程序选择两三个维度。

可能很难理解为什么你可能拥有3个以上的维度。以下类比说明了3个维度的局限性。在杂货店里,约翰注意到一包苹果干。当他向左或向右转动头,在第1维中扫视时,他看到了其他品牌的苹果干。如果他向上或向下看,在第2维中扫视,他会看到其他类型的零食。第3维度(即深度)只是给了他更多完全相同的苹果干。他朝前一包苹果干的后面看,发现了更多库存。但是,没有第4维度,如果有的话,它可以允许新鲜苹果位于苹果干附近。因为超级市场只有3个维度,所以这种类型的链接是不可能的。程序员没有这种限制,他们必须决定是否需要额外的处理时间,以获得更多维度的好处。

高斯函数是邻域函数的流行选择。下面公式使用欧氏范数来计算任意维度的高斯函数:

下图展示了一维高斯函数。

上图说明了为什么高斯函数是邻域函数的流行选择。程序员经常使用高斯函数来显示正态分布或钟形曲线。如果当前输出神经元是BMU,则其距离(x坐标)将为0。因此,训练百分比(y坐标)为1(100%)。随着距离向正、负方向增加,训练百分比减小。一旦距离足够大,训练百分比将接近0。

如果高斯函数的输入向量具有两个维度,则图像如下图所示:

算法如何在神经网络中使用高斯常数?邻域函数的中心(c)始终为0,该函数以原点为中心。如果算法将中心从原点移开,则BMU以外的神经元将获得充分的学习。但你可能不太想将中心移离原点。对于多维高斯函数,将所有中心设置为0,以便将曲线定位在原点。

剩下的唯一高斯参数是宽度。你应该将此参数设置为稍微小于网格或数组的整个宽度的值。随着训练的进行,宽度逐渐减小。与学习率一样,宽度应该单调减小。

墨西哥帽邻域函数

尽管高斯函数是最流行的,但它并不是唯一可用的邻域函数。雷克波(Ricker wave)或墨西哥帽(Mexican hat)函数是另一种流行的邻域函数。与高斯邻域函数一样,[插图]维的向量是墨西哥帽函数的基础,如下公式所示:

与高斯函数基本相同,程序员可以在一个或多个维度上使用墨西哥帽函数。下图展示了一维墨西哥帽函数。

你必须意识到,墨西哥帽函数会对距离中心2~4或−2~−4单位的邻居造成不利影响。如果你的模型试图对附近未命中的位置罚分,那么墨西哥帽函数是一个不错的选择。

你也可以在两个或更多个维度上使用墨西哥帽函数。下图展示了二维墨西哥帽函数。

与一维墨西哥帽函数一样,二维的墨西哥帽函数也会对附近未命中的位置造成不利影响。唯一的区别是二维墨西哥帽函数使用二维向量,与一维变量相比,二维向量看起来更像墨西哥草帽。尽管可以使用超过两个维度,但是由于我们以三维的方式感知空间,因此很难让这些更多维度的变体可视化。

计算SOM误差

监督训练通常会报告误差度量,该误差度量会随着训练的进行而减少。无监督模型(如SOM)无法直接计算误差,因为没有预期的输出,但是,可以为SOM计算误差的估计值。

我们将误差定义为训练迭代中所有BMU的最长欧氏距离。每个训练集元素都有其自己的BMU。随着学习的进行,最长的欧氏距离应减少。结果也表明了SOM训练的成功,因为随着训练的进行,该值将趋于下降。


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

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

相关文章

APx500音频分析仪硬件简介

两通道模拟输出,两通道或以上的模拟输入接口 线性编码数字音频接口(AES/EBU,TOSLINK,SPDIF)Linear PCM 脉冲密度调制码流(需要APx-PDM选件支持) Bluetooth蓝牙音频码流(需APx-BT选件支持) 最…

打印月历 Open Judge

题面链接: http://noi.openjudge.cn/ch0113/24/ 题目描述: 评析: 大模拟题,考察的是你的耐心和毅力!很不错的模拟题练习题,小白(like me)可以练一练 思路: 先一个月一个月的模拟,求出来题目问的这个一年的这一个月的第一天是星期…

C#互联网区域医学检验中心云LIS系统源码

云LIS联通四级(市、县、乡、村)检验服务网构建互联网检验服务新体系落地检验资源区域共享建设。云LIS系统是一种基于云计算技术的区域实验室信息管理系统,它的主要功能是管理实验室中的各种信息数据,包括样品数据、检测结果、仪器…

多视觉传感器协同弱小目标检测

源自:指挥与控制学院 作者:王田, 程嘉翔, 刘克新,王薇, 吕金虎 “人工智能技术与咨询” 发布 摘 要 多视觉传感器协同对空实现全区域覆盖的弱小目标检测,在近距离防空领域中具有重要意义。…

酷开科技不断深耕智能电视领域,用酷开系统带给消费者更多可能性

在这个网络快速发展的时代,电视行业也发生了巨大变革。与以往单纯的“看”电视不同,人们不再满足于现有的状态,消费者对电视娱乐的追求更加丰富,这也就带给智能电视产业无限的发展可能。酷开科技瞄准这一产业趋势,不断…

Golang | Leetcode Golang题解之第18题四数之和

题目&#xff1a; 题解&#xff1a; func fourSum(nums []int, target int) (quadruplets [][]int) {sort.Ints(nums)n : len(nums)for i : 0; i < n-3 && nums[i]nums[i1]nums[i2]nums[i3] < target; i {if i > 0 && nums[i] nums[i-1] || nums[i]…

VLAN间的通信

目录 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.使用VLANIF接口实现VLAN间的通信 3.使用VLAN聚合实现VLAN间的通信。 原理概述 通常情况下&#xff0c;如果不采用一些特殊的方法&#xff08;如采用Hybrid端口的方法&#xff09;&#xff0c;不同的VLAN之间是不…

力扣--动态规划完全背包/深度优先08.11.零币

如果暴力的深度优先&#xff1a; class Solution {// 定义硬币的面值数组int fangx[4] {25, 10, 5, 1};// 计数变量&#xff0c;用于记录配合得到 n 的方法数long long count 0;// 定义深度优先搜索函数// now: 当前总值// n: 目标总值// notbig: 上一次选择的硬币面值索引…

PCB学习记录-----入门基础知识

一、搭建环境 1.下载嘉立创EDA 软件下载 - 嘉立创EDA (lceda.cn) 选专业版 在线编辑&#xff1a;嘉立创EDA(专业版) - V2.1.45 (lceda.cn) 官方教程&#xff1a;立创EDA专业版-使用教程 (lceda.cn) 2.新建工程 文件-新建-项目&#xff0c;右键Board1可以重命名&#xff…

Debian 12.0安装NVM管理器

cd到一个自己创建的目录 要在Debian 12.0上安装 Node Version Manager&#xff08;NVM&#xff09;来管理 Node.js 版本&#xff0c;您可以按照以下步骤进行操作&#xff1a; 首先&#xff0c;您需要使用 cURL 下载 NVM 安装脚本。在终端中运行以下命令&#xff1a; curl -o…

读博做FPGA上的AI加速能不能搞啊?

从企业的角度来看&#xff0c;选择在FPGA上进行AI加速仍然有其一定的优势和适用场景&#xff0c;但也有一些挑战需要考虑。我这里有一套嵌入式入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习嵌入式&#xff0c;不妨点个关注&#xff0c;给…

使用Datax自定义采集组件Reader/Writer实现国产数据库支持以及_Datax数据清洗/过滤规则功能自定义---大数据之DataX工作笔记007

我们基于datax来做的自己的数据采集系统,现在基本的数据采集已经实现了,也就是调用datax的数据采集能力,实现在已支持的数据库之间同步数据.我们是基于datax-web实现的,里面都有开源的代码了,可以分析以后拿过来用,这个过程并不复杂,而且,结合xxljob的web那个开源项目,也可以让…

S19文件解析

目录 一、概述 二、S19文件解析 三、举例 一、概述&#xff1a; Motorola S-record是一种文件格式&#xff0c;由摩托罗拉在20世纪70年代中期为Motorola 6800处理器创建&#xff0c;以ASCII文本形式传达二进制信息的十六进制值&#xff0c;其文件格式也可能为SRECORD&#xf…

如何使用宝塔面板搭建MySQL数据库并实现无公网IP远程访问

文章目录 前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了Linux命令行进行繁琐的配置,下面简单几步,通过宝塔面板cp…

Macos 部署自己的privateGpt(2024-0404)

Private Chatgpt 安装指引 https://docs.privategpt.dev/installation/getting-started/installation#base-requirements-to-run-privategpt 下载源码 git clone https://github.com/imartinez/privateGPT cd privateGPT安装软件 安装&#xff1a; Homebrew /bin/bash -c…

《C语言深度解剖》(3):探索函数递归、传值、传址调用的奥秘

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多数据结构与算法点击专栏链接查看&am…

Linux锁的使用

一、临界资源与临界区 多线程会共享例如全局变量等资源&#xff0c;我们把会被多个执行流访问的资源称为临界资源&#xff0c;我们是通过代码访问临界资源的&#xff0c;而我们访问临界资源的那部分代码称为临界区。 实现一个抢票系统 只有一个线程抢票时 #include <ios…

【二分查找】Leetcode 寻找峰值

题目解析 162. 寻找峰值 题目中有一个很重要的提示&#xff1a;对所有有效的i都存在nums[i] ! nums[i1],因此这道题不需要考虑nums[mid] 和 nums[mid1]之间的相等与否的关系 算法讲解 1. 暴力枚举 我们按照顺序判断每个数字是否是当前的峰值&#xff0c;如果是直接返回&#…

【WEEK7】 【DAY1】索引【中文版】

2024.4.8 Monday 目录 7.索引7.1.内涵7.2.索引的作用7.3.索引的分类7.3.1.主键索引&#xff08;PRIMARY KEY&#xff09;7.3.1.1.主键 : 某一个属性组能唯一标识一条记录7.3.1.2.特点 : 7.3.2.唯一索引&#xff08;UNIQUE KEY&#xff09;7.3.2.1.作用 : 避免同一个表中某数据…

第一部分 Vue讲解(代码版)

1.第一个vue实例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-w…