EDA365电子论坛网

标题: 精确径向基(matlab工具箱) [打印本页]

作者: haidaowang    时间: 2020-12-26 11:11
标题: 精确径向基(matlab工具箱)

精确径向基神经网络在matlab中使用newrbe建立。这里小编不得不说,newrbe实际是newrb(径向基)神经网络的

特殊情况,newrbe的结构与newrb完全一样,只不过隐节点是固定个数(与样本个数相同),而newrb则会使用OLS算法逐个添加神经元,直到误差小于指定误差为止。即当newrb拥有与样本个数一样的神经元时,此时它就是newrbe。

     为什么叫精确径向基神经网络?因为当径向基的隐节点个数与样本个数相同时,它对样本数据的预测误差将是0!   

    下面翻译matlab的doc文档给大家,以供更全面学习使用(为方便大家理解,本人作了些少改动)。

语法
+ @- T5 H$ G. _9 F     net = newrbe(P,T,spread)

$ _$ [0 i7 S$ e& x% ~( ]8 w0 w
说明
( K$ f/ L* U4 d1 o6 y" r3 {    精确径向基神经网络可以用于拟合函数。newrbe 非常快的设计出一个在样本上0错误的径向基神经网络。4 M  z4 m# U* r( [9 f: ~- {
net = newrbe(P,T,spread) 需要2或3个输入参数

入参说明
PR行Q列的输入矩阵,R个输入变量,Q个样本。
TS行Q列的目标输出矩阵,S个输出变量,Q个样本。
spread径向基函数的扩展系数(默认=1.0)
' {# _$ k% Y0 W  q: t* z2 M3 S( h

    并返回一个新的精确径向基神经网络。) H: e3 Z1 p! g. e$ b; G: w
    spread越大,拟合出来的函数会更加平滑。但太大的spread会引起数值问题。

例子:
! b3 u0 B7 M0 `5 V" J1 C# [    对于给定的输入P和目标T,设计一个精确径向基神经网络:


! X8 |) E& N5 L; R6 u  N    P = [1 2 3];/ N* ]+ A# K# y( E3 x% O7 a
    T = [2.0 4.1 5.9];
- a' n7 u5 F" h8 z, s7 Q    net = newrbe(P,T);

    网络对于新输入的预测:

0 w/ b/ E6 i9 S2 K
    P = 1.5;6 h8 m1 W4 w7 v1 F. f- c9 {
    Y = sim(net,P);

算法:/ n. W) I1 N; h
      newrbe 创建一个2层的神经网络。第一层拥有径向基神经元,并用dist来计算它的加权输入和用netprod来计算它的网络输入。第2层是线性神经元,用dotprod计算它的加权输入和netsum计算网络输入,两层都有阈值。
3 @+ w2 z% p+ v  X: S7 ?3 q$ n/ Y

      newrbe 将第一层的权重设置为P',第一层的阈值全设为0.8326/spread,使权重输入为+/–spread时,径向基的值为0.5。" {$ @' `2 x; N3 L6 J8 H

      第二层的权重 IW{2,1} 和阈值 b{2}这样求得:先拟合第一层的输出A{1},然后对下面的表达式求解:
) d' p3 V: {: g6 w      W{2,1} b{2}] * [A{1}; ones] = T


% T8 M$ o0 ^$ f& e
作者: yin123    时间: 2020-12-26 17:29
精确径向基(matlab工具箱)




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2