广义回归神经网络(GRNN)

一、简介

广义回归神经网络 (General Regression Neural Network , GRNN ) 的概念是由德

国科学家多纳德提出的,是径向基网络的其中一种 。因为其是以数理统计为基

础的,因此 GRNN 可以依据样本数据逼近其中包含的非线性映射关系。即使样本

数量较小,它也可以收敛于最优解。 GRNN 与 BP 网络相比,最大的优点就是在建

模时只需考虑平滑因子这一个变量即可,可以省略许多优化步骤。这样的好处

在于可以大大减少人为因素对测量精度造成的影响。

GRNN作为径向基神经网络的一种,无需训练过程,通过优化平滑因子来提升预测性能。正是看中了只需考虑一个变量,且精度较高,故有兴趣研究一下。

二、网络结构

广义回归神经网络是一种具有较好的非线性逼近能力的四层前向传播神经网络,它属于径向基神经网络的一种变形形式,数据输入网络后依次经过输入层、模式层、求和层、输出层后得到输出结果,与反向传播神经网络(BPNN)不通的是该网络没有训练过程,主要通过对模式层的平滑因子进行优化来获得好的输出结果。

可以用如下图解来解释一下工作原理:

不同于 BP 神经网络的三层拓扑结构, GRNN 是由四层结构组成的,它们分别

输入层 (input layer) ,模式层 (pattern layer) ,求和层 (summation layer) ,输出层 (output
layer)
。其结构图如上图所示。其中, X 1 ~X N 表示 GRNN 的输入, Y 1 ~Y K 表示其相

对应的输出。

(1) 输入层**(input layer)**

输入层节点数与输入向量的维数相等,各个节点直接将输入样本传输到模式层中。

(2) 模式层

模式节点数与输入层节点数相同,都为N。模式层的传递函数为径向基函数,表示为:

其中输入向量表示为 X 。为高斯函数的宽度系数,在广义回归神经网络中,称之为平滑因子。

(3) 求和层

求和层中使用两种类型的求和函数对模式层的输出进行求和。第一类计算表达式式为:

它表示为模式层中所有的输出的和,其中模式层节点与求和层节点之间的连接权值为 1 ,传递函数可表示为:

第二类计算表达式为:

它表示为预期的输出样本与模式层节点的输出的加权和,其中模式层节点与求和层节点之间的连接权值为预期的输出数据,即第 i 个输出样本 Y i 中的第 j 个元素。传递函数可以表示为:

(4) 输出层

输出层节点数与输出向量的维数相等。第二类求和层的输出与第一类求和层的输出相除得到输出层的输出值,即:

三、理论基础

GRNN 的测量结果与学习样本与平滑因子有关。当平滑因子过大时,将会导致测量结果趋于样本数据的均值;相反的,平滑因子过小则会导致测量结果接近训练样本值,从而使神经网络的泛化性能变差,造成测量结果变差。因此,在测量之前需要给 GRNN 选择最佳平滑因子,这样可以使得测量效果最佳。具体公式计算由于较为复杂,这里便不再给出。

四、GRNN的优缺点

优点: 没有模型参数需要训练, 只调节 Spread 即可, 收敛速度快; 以径向基网络为基础, 具有良好的非线性逼近性能。

缺点: 计算复杂度高, 每个测试样本要与全部的训练样本进行计算; 空间复杂度高, 因为没有模型参数, 对于测试样本全部的训练样本都要参与计算, 因此需要存储全部的训练样本。

参考文献:

[1]郭栋.光学微腔中光热振荡的传感研究[D].浙江工业大学,2019.DOI:10.27463/d.cnki.gzgyu.2019.000101.

[2]https://blog.csdn.net/weixin_42051846/article/details/128765413

相关推荐
万事可爱^12 分钟前
HDBSCAN:密度自适应的层次聚类算法解析与实践
算法·机器学习·数据挖掘·聚类·hdbscan
牧歌悠悠1 小时前
【深度学习】Unet的基础介绍
人工智能·深度学习·u-net
坚毅不拔的柠檬柠檬2 小时前
AI革命下的多元生态:DeepSeek、ChatGPT、XAI、文心一言与通义千问的行业渗透与场景重构
人工智能·chatgpt·文心一言
坚毅不拔的柠檬柠檬2 小时前
2025:人工智能重构人类文明的新纪元
人工智能·重构
jixunwulian2 小时前
DeepSeek赋能AI边缘计算网关,开启智能新时代!
人工智能·边缘计算
Archie_IT2 小时前
DeepSeek R1/V3满血版——在线体验与API调用
人工智能·深度学习·ai·自然语言处理
大数据追光猿2 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
Dream it possible!2 小时前
LeetCode 热题 100_在排序数组中查找元素的第一个和最后一个位置(65_34_中等_C++)(二分查找)(一次二分查找+挨个搜索;两次二分查找)
c++·算法·leetcode
夏末秋也凉2 小时前
力扣-回溯-46 全排列
数据结构·算法·leetcode
南宫生2 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode