广义回归神经网络(GRNN)

devtools/2024/12/22 20:26:49/

 一、简介

       广义回归神经网络 (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


http://www.ppmy.cn/devtools/107720.html

相关文章

如何使用Linux命令行创建文件

可以使用命令行中的 touch 或 echo 命令来创建一个名为 main.rs 的文件。以下是两种方法: 方法 1:使用 touch 命令 touch 命令用于创建一个空文件。运行以下命令来创建 main.rs 文件: touch main.rs这将在当前目录下创建一个名为 main.rs …

Day11_0.1基础学习MATLAB学习小技巧总结(11)——程序流程控制2

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 素材来源“数学建模清风” 特此说明:本博客的内容只在于总结在…

戴尔 Latitude5290 平板上手笔记

想搞个Windows 平板平时带着方便,比安卓平板更泛用,戴尔这个二手九成新机器价格还不错,七百块咸鱼上捡回来个二手。虽然用7 代CPU 的5285 价格更便宜,但是我觉得还是上8 代i5 吧,因为还记得当年说8 代更新牙膏挤了挺多…

[Unity3D]胡闹厨房复刻笔记

完整笔记内容点击https://kokoollife.github.io/查看。 部分内容 02 简陋实现 001 玩家控制器 [1]简单移动 a:逻辑与动画分离 b:新建脚本Player.cs using UnityEngine;public class Player : MonoBehaviour {//私有就保证不被其他脚本修改该变量,序列化保证我…

服务器安装pytorch-阿里云-centos7

原文阅读:【巨人肩膀社区专栏分享】服务器安装pytorch-阿里云-centos7 1、创建一个虚拟环境 conda create -n pytorch python3.10 安装成功:   但是使用上面的命令会失败(疑问?&#xf…

顶级域名服务器 - TLD服务器

TLD服务器(顶级域名服务器)是负责管理互联网域名系统(DNS)中所有顶级域名(Top-Level Domains, TLDs)的DNS记录的服务器。顶级域名是域名层级结构中的最高级别,位于域名的最右侧,例如…

hyperf json-rpc

安装 安装docker hyperf 安装 hyperf-rpc-server-v8 (服务端) docker run --name hyperf-rpc-server-v8 \ -v /www/docker/hyperf-rpc-server:/data/project \ -w /data/project \ -p 9508:9501 -it \ --privileged -u root \ --entrypoint /bin/sh \…

2024国赛数学建模预测算法-BP神经网络模型的预测精度分析(MATLAB 实现)

人工神经网络 第一节 人工神经网络概述 在您阅读这本书的时候,大约有个相互连接的神经元在帮助您阅读、呼吸、思考,以及完成各种各样的动作。这些神经元中,有些有着与生俱来的功能,比如呼吸、吮吸,有些则是由后天训练…