Caret 中用于 mlpML 的激活函数

Activation function used for mlpML in Caret

我正在使用 R 中的 Caret 包,试图实现多层感知器来对卫星图像进行分类。我正在使用 method=mlpML,我想知道正在使用哪个激活函数。

这是我的代码:

controlparameters<-trainControl(method = "repeatedcv",
                               number=5,
                               repeats = 5,
                               savePredictions=TRUE,
                                classProbs = TRUE)
mlp_grid<-expand.grid(layer1=13,
                      layer2=0,
                      layer3=0)
model< train(as.factor(Species)~.,
                   data = smotedata,
                   method='mlpML',
                   preProc =  c('center', 'scale'),
                   trcontrol=controlparameters,
                   tuneGrid=mlp_grid,
                   importance=T) 

我使用了单层,因为它比使用多层表现得最好。

正在查看 mlpML, it turns out that it uses the mlp function of the RSNNS package 的插入符号源代码。

根据RSNNS mlp documentation,它的默认参数是:

mlp(x, ...)

## Default S3 method:
mlp(x, y, size = c(5), maxit = 100,
  initFunc = "Randomize_Weights", initFuncParams = c(-0.3, 0.3),
  learnFunc = "Std_Backpropagation", learnFuncParams = c(0.2, 0),
  updateFunc = "Topological_Order", updateFuncParams = c(0),
  hiddenActFunc = "Act_Logistic", shufflePatterns = TRUE,
  linOut = FALSE, outputActFunc = if (linOut) "Act_Identity" else
  "Act_Logistic", inputsTest = NULL, targetsTest = NULL,
  pruneFunc = NULL, pruneFuncParams = NULL, ...)

从中可以看出 hiddenActFunc = "Act_Logistic",即隐藏层的激活函数,是逻辑函数。