首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中构造一个简单的神经网络生成对抗性网络

在R中构造一个简单的神经网络生成对抗性网络
EN

Stack Overflow用户
提问于 2017-01-21 18:46:26
回答 1查看 270关注 0票数 1

我正在尝试复制古德费罗,I.等人:生成性对抗性网中给出的示例

伪码在第4页给出为“算法1”。我正试图用R中的神经网络软件包重建它:

代码语言:javascript
复制
library(neuralnet)

train_iter <- 10
steps <- 1
m <- 100

# initialize D and G
z <- sort(runif(m))
x <- sort(rnorm(m))
data <- cbind(z, x)
D <- neuralnet( , data = data, hidden = 11) # unclear how to define formula
G <- neuralnet(x ~ z, data = data, hidden = 11)

for (i in 1:train_iter) {
  for (k in 1:steps) {
    z <- sort(runif(m))
    x <- sort(rnorm(m))
    data <- cbind(z, x)
    err_fct_d <- function(x, z) {
      -log(compute(D, x)$net.result + log(1 - compute(D, compute(G, z)$net.result)$net.result))
    }
    D <- neuralnet( , data = data, hidden = 11, err.fct = err_fct_d, startweights = D$weights) # unclear how to define formula
  }
  z <- sort(runif(m))
  data <- cbind(z, x)
  err_fct_g <- function(x, z) {
    log(1 - compute(D, compute(G, z)$net.result)$net.result)
  }
  G <- neuralnet(x ~ z, data = data, hidden = 11, err.fct = err_fct_g, startweights = G$weights)
}

我的问题

我的第一个问题是,是否有可能以上述方式使用带有这些自定义错误函数的神经网络包。

我的第二个问题涉及鉴别器网络:我不知道如何训练它,即如何定义神经网络功能的公式部分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-28 17:03:42

不幸的是,这是不可能的,因为err.fct必须是一个可分析的可微函数,而compute函数阻止了这一点。

编辑:我联系了这个包的作者,他写道:

我检查了你的GAN例子,我认为用神经网络是不可能的,因为错误函数的处理方式不够灵活。..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41783117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档