0

Ciao,我正在研究 R 中的神经网络。我曾经在 python 中使用 Keras 编写这种东西,所以我希望能够为不同的层设置不同的激活函数。

让我解释。假设我想构建一个具有 2 个隐藏层(比如 5 个和 4 个神经元)和一个介于 -1 和 1 之间的输出的神经网络。

我想在隐藏层设置RELUsoftplus ,在输出层设置tanh

这里的问题是神经网络包允许我通过参数act.fun只选择一个激活函数:

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

我尝试将 act.fun 参数设置为c(softplus, softplus, tanh)但当然我得到一个错误,因为神经网络函数只需要一个函数用于该参数。

你知道我如何以这种方式设置神经网络吗?在互联网上,我只能找到用这个包构建的非常基本的线性神经网络。如果不可能,这意味着这个包几乎没有用,因为它只能构建“线性模型”(??!)

非常感谢,曹

4

1 回答 1

1

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 包很棒)。

于 2019-07-03T08:02:02.810 回答