技术标签: 算法 机器学习 # 广义回归神经网络(GRNN) 神经网络 智能优化算法应用 回归
广义回归神经网络 CGRNN, Generalized Regression Neural Network)是美国学者 Don-aid F. Specht 在 1991 年提出的,它是径向基神经网络的一种。 GRNN 具有很强的非线性映射能力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非线性问题。 GRNN在逼近 能力和学习速度上较 RBF 网络有更强的优势,网络最后收敛于样本量积聚较多的优化回归 面,并且在样本数据较少时,预测效果也好。此外,网络还可以处理不稳定的数据。因此, GRNN 在信号过程、结构分析、教育产业、能源、食品科学、控制决策系统、药物设计、金融领域、生物工程等各个领域得到了广泛的应用 。
GRNN 在结构上与 RBF 网络较为相似。它由四层构成,如图1所示,分别为输入层(input layer)、模式层( pattern layer)、求和层 ( summation layer)和输出层( output layer)。对 应网络输入 X = [ x 1 , x 2 , . . . , x n ] T X = [x_1,x_2,...,x_n]^T X=[x1,x2,...,xn]T,其输出为 Y = [ y 1 , y 2 , . . . , y n ] T Y = [y_1,y_2,...,y_n]^T Y=[y1,y2,...,yn]T 。
(1)输入层
输入层神经元的数目等于学习样本中输入向量的维数,各神经元是简单的分布单元,直接将输入变量传递给模式层。
(2)模式层
模式层神经元数目等于学习样本的数目 η ,各神经元对应不 同的样本,模式层神经元传递函数为:
p i = e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] i = 1 , 2 , . . . , n (1) p_i = exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}] i =1,2,...,n \tag{1} pi=exp[−2σ2(X−Xi)T(X−Xi)]i=1,2,...,n(1)
神经元 i i i 的输出为输入变量与其对应的样本 X X X 之间 Euclid 距离平方的指数平方 D i 2 = ( X − X i ) T ( X − X i ) D_i^2= (X-X_i)^T(X-X_i ) Di2=(X−Xi)T(X−Xi) 的指数形式 。式中, X X X 为网络输入变量; X i X_i Xi 为第 i 个神经元对应的学习样本。
(3)求和层
求和层中使用两种类型神经元进行求和。
一类的计算公式为 ∑ i = 1 n e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] \sum_{i=1}^n exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}] ∑i=1nexp[−2σ2(X−Xi)T(X−Xi)],它对所有模式层神经元的输出进行算术求和,其模式层与各神经元的连接权值为1 ,传递函数为:
S D = ∑ i = 1 n P i (2) S_D = \sum_{i=1}^nP_i\tag{2} SD=i=1∑nPi(2)
另 一类计算公式为 ∑ i = 1 n Y i e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] \sum_{i=1}^nY_i exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}] ∑i=1nYiexp[−2σ2(X−Xi)T(X−Xi)],它对所有模式层的神经元进行加权求和,模式层中第 i 个神经元与求和层中第 j 个分子求和神经元之间的连接权值为第 i 个输 出样本 Y i Y_i Yi中的第 j 个元素,传递函数为:
S N j = ∑ i = 1 n y i j P i , j = 1 , 2 , . . . , k (3) S_{Nj} = \sum_{i=1}^n y_{ij}P_i ,j = 1,2,...,k\tag{3} SNj=i=1∑nyijPi,j=1,2,...,k(3)
(4)输出层
输出层中的神经元数目等于学习样本中输出向量的维数h ,各神经元将求和层的输出相除 , 神经元 j 的输出对应估计结果Y( X) 的第 j 个元素,即:
y j = S N j S D , j = 1 , 2 , . . . , k (4) y_j = \frac{S_{Nj}}{S_D},j=1,2,...,k \tag{4} yj=SDSNj,j=1,2,...,k(4)
广义回归神经网络的理论基础是非线性回归分析 , 非独立变量 Y 相对于独立变量x的回归分析实际上是计算具有最大概率值的 y. 设随机变量x和随机变量 y 的联合概率密度函数 为f(x,y),已知 x 的观测值为 X ,则 y 相对于 X 的回归,也即条件均值为:
KaTeX parse error: \tag works only in display equations
Y即为在输入为 X 的条件下,Y 的预测输出 。
应用 Parzen 非参数估计,可由样本数据集 x i , y i i = 1 n {x_i,y_i}_{i=1}^n xi,yii=1n估算密度函数 f ′ ( X , y ) f'(X,y) f′(X,y)
f ′ ( X , y ) = ∑ i = 1 n e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] e x p [ − ( X − Y i ) 2 2 σ 2 ] / ( n ( 2 π ) p + 1 2 σ p + 1 ) (6) f'(X,y) =\sum_{i=1}^n exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}]exp[-\frac{(X-Y_i)^2}{2\sigma^2}]/(n(2\pi)^{\frac{p+1}{2}}\sigma^{p+1}) \tag{6} f′(X,y)=i=1∑nexp[−2σ2(X−Xi)T(X−Xi)]exp[−2σ2(X−Yi)2]/(n(2π)2p+1σp+1)(6)
式中, X i X_i Xi, Y i Y_i Yi, 为随机变量 x 和 y 的样本观测值; n n n为样本容量; p p p为随机变量 x x x的维数; σ σ σ为高斯函数的宽度系数,在此称为光滑因子。
用 f ( X , y ) f(X,y) f(X,y)代替 f ( X , y ) f(X,y) f(X,y)代人式,并交换积分与加和的顺序:
Y ( X ) = ∑ i = 1 n e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] ∫ − ∞ ∞ y e x p [ − ( Y − Y i ) 2 / ( 2 σ 2 ) ] d y ∑ i = 1 n e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] ∫ − ∞ ∞ e x p [ − ( Y − Y i ) 2 / ( 2 σ 2 ) ] d y (7) Y(X) = \frac{\sum_{i=1}^n exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}]\int_{-\infty}^{\infty}yexp[-(Y-Y_i)^2/(2\sigma^2)]dy}{\sum_{i=1}^n exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}]\int_{-\infty}^{\infty}exp[-(Y-Y_i)^2/(2\sigma^2)]dy}\tag{7} Y(X)=∑i=1nexp[−2σ2(X−Xi)T(X−Xi)]∫−∞∞exp[−(Y−Yi)2/(2σ2)]dy∑i=1nexp[−2σ2(X−Xi)T(X−Xi)]∫−∞∞yexp[−(Y−Yi)2/(2σ2)]dy(7)
由于 ∫ − ∞ ∞ z e − x 2 d z = 0 \int _{-\infty}^{\infty}ze^{-x^2}dz = 0 ∫−∞∞ze−x2dz=0,对两个积分进行计算后可得网络的输出Y(X)为:
Y ( X ) = ∑ i = 1 n Y i e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] ∑ i = 1 n e x p [ − ( X − X i ) T ( X − X i ) 2 σ 2 ] (8) Y(X) = \frac{\sum_{i=1}^nY_i exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}]}{\sum_{i=1}^n exp[-\frac{(X-X_i)^T(X-X_i)}{2\sigma^2}]} \tag{8} Y(X)=∑i=1nexp[−2σ2(X−Xi)T(X−Xi)]∑i=1nYiexp[−2σ2(X−Xi)T(X−Xi)](8)
估计值 Y ( X ) Y(X) Y(X)为所有样本观测值 Y i Y_i Yi的加权平均,每个观测值 Y i Y_i Yi的权重因子为相应的样本 X i X_i Xi与 X X X之间 Euclid 距离平方的指数 . 当光滑因子 σ 非常大的时候 , Y ( X ) Y(X) Y(X)近似于所有样本因变量的均值 。 相反,当光滑因子σ 。趋向于0 的时候, Y ( X ) Y(X) Y(X)和训练样本非常接近,当需预测的点被包含在训练样本集中时,公式求出的因变量的预测值会和样本中对应的因变量非常接近, 而一旦碰到样本中未能包含进去的点,有可能预测效果会非常差 , 这种现象说明网络的泛化能力差。当σ取值适中,求预测值 Y ( X ) Y(X) Y(X)时,所有训练样本的因变量都被考虑了进去,与预测点距离近的样本点对应的因变量被加了更大的权。
数据信息如下:
data.mat 的中包含input数据和output数据
其中input数据维度为:2000*2
其中output数据维度为2000*1
所以RF模型的数据输入维度为2;输出维度为1。
静电放电算法原理请参考:https://blog.csdn.net/u011835903/article/details/118755197
优化参数主要是GRNN的光滑因子 σ \sigma σ参数。是适应度函数设计为:
f i n t e n e s s = M S E [ p r e d i c t ( t r a i n ) ] + M S E [ p r e d i c t ( t e s t ) ] finteness = MSE[predict(train)] + MSE[predict(test)] finteness=MSE[predict(train)]+MSE[predict(test)]
适应度函数选取训练后的MSE误差。MSE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为,最佳的光滑因子。
静电放电算法的参数设置如下:
%% 静电放电算法
pop = 20;%种群数量
Max_iteration = 20;%最大迭代次数
lb = 0.01;%下边界
ub = 2;%上边界
dim = 1;%维度
fobj = @(spread) fun(spread,Pn_train,Tn_train,Pn_test,Tn_test);
[Best_pos,Best_score,SSA_curve]=SSA(pop,Max_iteration,lb,ub,dim,fobj); %开始优化
经过静电放电算法优化的结果:
从MSE 误差曲线可以看出,静电放电优化的GRNN结果更好
文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr
文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc
文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8
文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束
文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求
文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname
文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立
文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码
文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词
文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限
文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定
文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland