首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >神经网络的局部逆

神经网络的局部逆
EN

Stack Overflow用户
提问于 2013-02-28 17:20:05
回答 5查看 4.6K关注 0票数 7

我有一个有N个输入节点和N个输出节点的神经网络,其中可能有多个隐藏层和递归,但首先让我们忘记这些。神经网络的目标是学习N维变量Y*,给定N维值X。假设神经网络的输出是Y,学习后应该接近Y*。我的问题是:是否有可能得到输出Y*的神经网络的逆?也就是说,当我放入神经网络时,我如何获得值X*,它将产生Y*?(或与之类似的东西)

问题的主要部分是N非常大,通常在10000或100000量级,但如果有人知道如何解决没有递归或隐藏层的小型网络,这可能已经有所帮助。谢谢。

EN

回答 5

Stack Overflow用户

发布于 2016-04-16 04:19:33

如果您可以选择这样的神经网络,使得每层中的节点数量相同,并且权重矩阵是非奇异的,并且传递函数是可逆的(例如,泄漏relu),则该函数将是可逆的。

这种神经网络简单地由矩阵乘法、偏差加法和传递函数组成。要反转,您只需要以相反的顺序应用每个操作的反转。即取输出,应用逆传递函数,将其乘以最后一个权重矩阵的逆,减去偏差,应用逆传递函数,将其乘以倒数第二权重矩阵的逆,依此类推。

票数 3
EN

Stack Overflow用户

发布于 2013-02-28 18:03:32

这是一个也许可以用autoencoders解决的任务。您可能还会对生成模型感兴趣,例如可以堆叠形成深度信念网络(DBNs)的受限玻尔兹曼机(RBMs)。RBM建立可用于重建v的数据V的内部模型H。在DBN中,第一层的H将是第二层的V,依此类推。

票数 2
EN

Stack Overflow用户

发布于 2016-11-24 18:12:41

泽娜是对的。如果你使用双射(可逆)激活函数,你可以逐层求逆,减去偏差,然后取伪逆(如果每层有相同数量的神经元,在一些温和的规则条件下,这也是精确的逆)。重复条件: dim(X)==dim(Y)==dim(layer_i),det(Wi) not =0

例如:Y= tanh( W2*tanh( W1*X + b1 )+ b2) X= W1p*( tanh^-1( W2p*(tanh^-1(Y) - b2 )) -b1 ),其中W2p和W1p分别表示W2和W1的伪逆矩阵。

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

https://stackoverflow.com/questions/15131713

复制
相关文章

相似问题

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