EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
精确径向基神经网络在matlab中使用newrbe建立。这里小编不得不说,newrbe实际是newrb(径向基)神经网络的 特殊情况,newrbe的结构与newrb完全一样,只不过隐节点是固定个数(与样本个数相同),而newrb则会使用OLS算法逐个添加神经元,直到误差小于指定误差为止。即当newrb拥有与样本个数一样的神经元时,此时它就是newrbe。 为什么叫精确径向基神经网络?因为当径向基的隐节点个数与样本个数相同时,它对样本数据的预测误差将是0! 下面翻译matlab的doc文档给大家,以供更全面学习使用(为方便大家理解,本人作了些少改动)。 语法: G7 V# u" J7 B, h, S" }4 z
net = newrbe(P,T,spread)
6 i2 C. ?0 G; m' v9 M5 G说明8 D* U; W6 W( ^0 F& P" x
精确径向基神经网络可以用于拟合函数。newrbe 非常快的设计出一个在样本上0错误的径向基神经网络。, n% J8 ]$ q& W5 f! a3 d
net = newrbe(P,T,spread) 需要2或3个输入参数
| 入参 | 说明 | | P | R行Q列的输入矩阵,R个输入变量,Q个样本。 | | T | S行Q列的目标输出矩阵,S个输出变量,Q个样本。 | | spread | 径向基函数的扩展系数(默认=1.0) | : P2 z7 s+ ]1 f# j% ~
并返回一个新的精确径向基神经网络。1 r) C" [, ?' v. J' i4 v5 Y' q4 @
spread越大,拟合出来的函数会更加平滑。但太大的spread会引起数值问题。 例子:
; F c2 T2 c5 Y# k7 p9 o 对于给定的输入P和目标T,设计一个精确径向基神经网络:
3 ^% X$ e; L, S: s) Z P = [1 2 3];8 ^) O( D3 u2 a$ V& I* ^# H0 {" w9 f' }
T = [2.0 4.1 5.9];' M" k) P% Z: {: Z7 ?; b! r$ v
net = newrbe(P,T);
网络对于新输入的预测:
. e4 R; i. R0 v& h7 s6 | P = 1.5;' E; F6 Q2 E+ k8 Z& I
Y = sim(net,P);
算法:
* E7 u7 h+ c* z" k& O newrbe 创建一个2层的神经网络。第一层拥有径向基神经元,并用dist来计算它的加权输入和用netprod来计算它的网络输入。第2层是线性神经元,用dotprod计算它的加权输入和netsum计算网络输入,两层都有阈值。
5 [. M& e, t* `# O/ a& p8 z) Y newrbe 将第一层的权重设置为P',第一层的阈值全设为0.8326/spread,使权重输入为+/–spread时,径向基的值为0.5。
+ O& J3 }4 \3 p4 o0 }' [ 第二层的权重 IW{2,1} 和阈值 b{2}这样求得:先拟合第一层的输出A{1},然后对下面的表达式求解:- S+ _$ S! R9 Z' k d, X$ N8 D
W{2,1} b{2}] * [A{1}; ones] = T 5 d$ e. |- G6 i' d
|