Функция активации ReLU с пакетом нейронной сети в R

Из-за того, что в пакете нейронной сети нет функции 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)

Ошибка в deriv.formula(eval(parse(text = text)), "x", func = eval(parse(text = text2)),: функция ifelse отсутствует в таблице производных


person Jeffrey    schedule 03.05.2018    source источник


Ответы (1)


ReLU можно найти в пакете sigmoid. Чтобы добавить используемую функцию активации, она должна быть дифференциальной функцией.

Вот пара простых реализаций ReLU

relu <- function(x) {x * (x>=0)}
relu <- function(x) {max(0,x)}
person Carlos Santillan    schedule 03.05.2018