我试图了解RBF网络如何与RSNNS一起使用,并且对“ nitFuncParams”和“ learnFuncParams”中的参数有一些疑问,例如,我尝试使用此代码(这是R代码):*
X <- data.frame(x1=c(1,0,0,1),x2=c(1,1,0,0))
Y <- as.matrix(c(1,0,1,0),4,1)
library(RSNNS)
在这里,我使用两个中心并且仅进行一次迭代
rbfn.model <- RSNNS::rbf(as.matrix(X,ncol=2),as.matrix(Y),
size=2,
maxit=1,
initFunc = "RBF_Weights",
initFuncParams = c(0, 0,0, 0.02, 0),
learnFunc = "RadialBasisLearning",
learnFuncParams = c(0,0,0.01,0,0),
updateFunc = "Topological_Order",
updateFuncParams = c(0),linOut=TRUE)
这是预测
rbf.network.pred <-predict(rbfn.model, X)
rbf.network.pred
[,1]
[1,] 0.05882368
[2,] 0.05805492
[3,] 0.05805485
[4,] 0.05882360
这是附加信息
extractNetInfo(rbfn.model)
## $infoHeader
## name value
## 1 no. of units 5
## 2 no. of connections 6
## 3 no. of unit types 0
## 4 no. of site types 0
## 5 learning function RadialBasisLearning
## 6 update function Topological_Order
##
## $unitDefinitions
## unitNo unitName unitAct unitBias type posX posY posZ
## 1 1 Input_1 1.0000000 0.0000000 UNIT_INPUT 1 0 0
## 2 2 Input_2 0.0000000 0.0000000 UNIT_INPUT 2 0 0
## 3 3 Hidden_2_1 1.0000000 1.0000000 UNIT_HIDDEN 1 2 0
## 4 4 Hidden_2_2 0.3678795 1.0000000 UNIT_HIDDEN 2 2 0
## 5 5 Output_1 0.0611404 0.0388499 UNIT_OUTPUT 1 4 0
## actFunc outFunc sites
## 1 Act_Identity Out_Identity
## 2 Act_Identity Out_Identity
## 3 Act_RBF_Gaussian Out_Identity
## 4 Act_RBF_Gaussian Out_Identity
## 5 Act_IdentityPlusBias Out_Identity
##
## $fullWeightMatrix
## Input_1 Input_2 Hidden_2_1 Hidden_2_2 Output_1
## Input_1 0 0 1 1 0.00000000
## Input_2 0 0 0 1 0.00000000
## Hidden_2_1 0 0 0 0 0.01415128
## Hidden_2_2 0 0 0 0 0.02212468
## Output_1 0 0 0 0 0.00000000
我阅读了SNNS的手册,并使用了公式,但没有得到相同的答案(权重)
weights = pseudoinverse(t(G)%%G + lamda C)%%t(G)%%Y >
其中lamda = 0.01, G是包含例如exp(-0.02 * || xi-ti || ^ 2)的矩阵,其中t在这种情况下是1,1和1,0的两个中心 C是使用中心之间的距离的矩阵,例如exp(-0.02 * || ti-tj || ^ 2) Y是输出
在这里我们可以看到我的第一个权重是0.01415128和0.02212468,我在otuput中的偏倚是0.0388499,如何获得这个第一个值??,并且当我使用2次迭代时,我使用此公式来实现输出神经元中的偏差:b(i + 1)= b(i)+ lambda * sum(error),它可以工作,但w(i + 1)= w(i)+ lambda * sum(error)* centers不能作为权重,请有人可以帮助我吗?
这是迭代= 2中的附加信息
extractNetInfo(rbfn.model)
$infoHeader
name value
1 no. of units 5
2 no. of connections 6
3 no. of unit types 0
4 no. of site types 0
5 learning function RadialBasisLearning
6 update function Topological_Order
$unitDefinitions
unitNo unitName unitAct unitBias type posX posY posZ
1 1 Input_1 1.0000000 0.00000000 UNIT_INPUT 1 0 0
2 2 Input_2 0.0000000 0.00000000 UNIT_INPUT 2 0 0
3 3 Hidden_2_1 1.0000000 0.02000000 UNIT_HIDDEN 1 2 0
4 4 Hidden_2_2 0.9801987 0.02000000 UNIT_HIDDEN 2 2 0
5 5 Output_1 0.1107717 0.03766243 UNIT_OUTPUT 1 4 0
actFunc outFunc sites
1 Act_Identity Out_Identity
2 Act_Identity Out_Identity
3 Act_RBF_Gaussian Out_Identity
4 Act_RBF_Gaussian Out_Identity
5 Act_IdentityPlusBias Out_Identity
$fullWeightMatrix
Input_1 Input_2 Hidden_2_1 Hidden_2_2 Output_1
Input_1 0 0 1 1 0.00000000
Input_2 0 0 0 1 0.00000000
Hidden_2_1 0 0 0 0 0.03691628
Hidden_2_2 0 0 0 0 0.03692412
Output_1 0 0 0 0 0.00000000