R中带有神经网络包的ReLU激活函数

Jef*_*rey 2 r neural-network activation-function

由于神经网络包没有ReLU函数,所以我尝试编写ReLU函数的代码。但是有一个我不明白的错误。请在下面查看我的代码和错误信息。

relu<-function(x){ifelse(x>=0,x,0)}
nn <- neuralnet(y~a+b+c+d+e+f,data=train,hidden=c(5),linear.output=T,act.fct = relu)
Run Code Online (Sandbox Code Playgroud)

deriv.formula(eval(parse(text = text)), "x", func = eval(parse(text = text2)) 中的错误:函数‘ifelse’不在导数表中

Car*_*lan 6

ReLU 可以在 sigmoid 包中找到。添加使用的激活函数需要是一个微分函数。

这里有几个简单的 ReLU 实现

relu <- function(x) {x * (x>=0)}
relu <- function(x) {max(0,x)}
Run Code Online (Sandbox Code Playgroud)