【问题标题】:Set up different actiavtion functions for different layers using "neuralnet" package使用“neuralnet”包为不同层设置不同的激活函数
【发布时间】:2019-11-11 09:07:33
【问题描述】:

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

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

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

这里的问题是 neuralnet 包让我只能通过参数 act.fun 选择一个激活函数:

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

我尝试将 act.fun 参数设置为 c(softplus, softplus, tanh) 但我当然会收到错误,因为 neuralnet 函数只需要一个函数对于那个论点。

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

非常感谢, 咻

【问题讨论】:

  • 也许有可能?但是那个包不是一个等同于 Keras 的框架。如果您已经在 Python 中使用过 Keras,并且目前正在使用 R,you can use Keras from R。尽管如此,它还是使用 reticulate 来通过 Python,所以如果您已经对该界面感到满意,那么您最好还是坚持使用它,除非这是 R 中更大项目的一部分。
  • @alistaire Thsx 供您发表评论。不幸的是,我无法在当前使用的版本上安装 Keras,也无法升级它。

标签: r neural-network layer relu


【解决方案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 包很棒)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2019-09-05
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多