当前位置: 首页 > article >正文

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


http://www.kler.cn/a/292258.html

相关文章:

  • Linux下编译安装Nginx
  • 算法魅力-二分查找实战
  • 全面解读 USB Key:定义、使用场景、加密技术及 Java 实现
  • SQL Server Service Broker完整示例
  • CSP-X2024山东小学组T2:消灭怪兽
  • 【数据结构】线性表——栈与队列
  • Facebook的AI进化:如何用智能技术提升内容推荐
  • DataAccessException产生原因及解决方案
  • One-Shot Imitation Learning
  • 谷歌计划在越南设立首个美国科技数据中心
  • 山东大学机试试题合集
  • 在 Ubuntu 上安装 Jenkins,并配置 SSH Server 插件
  • 使用 Docker 部署和运行 RabbitMQ
  • 举例说明,在HTTP中怎样使用哈希算法?
  • SF-HCI-SAP问题收集19:自定义MDF不生效 开始时间与结束日期映射逻辑
  • LCR 017
  • 揭开分布式系统的神秘面纱:Java中的分布式链路追踪详解
  • Linux CentOS 部署Docker
  • 地理信息科学在考古学中的应用:GIS与遥感技术的时空穿梭之旅
  • 【数据分析预备】Numpy入门
  • 【刷题笔记】删除并获取最大点数粉刷房子
  • 二进制方式部署k8s集群
  • OpenCV结构分析与形状描述符(6)带统计的连通组件计算函数connectedComponentsWithStats()的使用
  • 数据结构-栈、队列-相关练习
  • DevExpress WinForms中文教程:Data Grid - 如何自定义绘制?
  • OpenCVSharp中的GrabCut图像分割技术详解