Настройте разные функции действия для разных слоев, используя пакет "neuralnet" - PullRequest
0 голосов
/ 30 июня 2019

Ciao, Я работаю в нейронной сети в R. Раньше я программировал подобные вещи с использованием Keras в python, поэтому я ожидал, что смогу установить разные функции активации для разных слоев.

Позвольте мне объяснить. Предположим, я хочу построить нейронную сеть с 2 скрытыми слоями (скажем, с 5 и 4 нейронами) и выводом между -1 и 1.

Я хотел бы установить RELU или softplus в скрытых слоях и tanh в выходном слое.

Проблема здесь в том, что пакет neuralnet позволяет мне выбрать только одну функцию активации через аргумент act.fun :

> nn <- neuralnet(data = data, hidden = c(5, 4), act.fun =tanh)

Я попытался установить аргумент act.fun как c (softplus, softplus, tanh) , но, конечно, я получаю сообщение об ошибке, потому что функция neuralnet ожидает только одну функцию для этого аргумент.

Знаете ли вы, как я могу настроить нейронную сеть таким образом? В интернете я могу найти только очень простые линейные нейронные сети, построенные с помощью этого пакета. Если это было бы невозможно, это означает, что этот пакет почти бесполезен, потому что он мог бы строить только «линейные модели» (??!)

Большое спасибо, чао

1 Ответ

0 голосов
/ 03 июля 2019

ReLu был добавлен в нейронной сети 1.44.4 (еще не в CRAN, может использовать devtools::install_github("bips-hb/neuralnet")). В этой версии также возможно изменить функцию активации выхода отдельно (output.act.fct). Однако различные активации для скрытых слоев пока невозможны. Смотрите также здесь: https://github.com/bips-hb/neuralnet/issues/18.

В Интернете я могу найти только очень простые линейные нейронные сети, построенные с помощью этого пакета. Если это было бы невозможно, это означает, что этот пакет почти бесполезен, потому что он мог бы строить только «линейные модели» (??!)

Нет, не только линейные модели. Но обратите внимание, что пакет относится к эпохе предварительного глубокого обучения (2008) и не предназначен для глубоких сетей. Я также рекомендовал бы keras (пакет R великолепен) здесь.

...