这种神经网络模型是否存在?

时间:2012-11-14 20:11:45

标签: nlp artificial-intelligence neural-network

我正在寻找具有特定特征的神经网络模型。这个模型可能不存在......

我需要一个不像传统人工神经网络那样使用“层”的网络。相反,我希望[我相信]是一种更具生物学的模型。

这个模型将容纳一大群相互连接的神经元,如下图所示。一些神经元(在图的底部)将接收输入信号,并且级联效应将导致连续的,连接的神经元可能根据信号强度和连接权重而发射。这不是什么新鲜事,但是,没有明确的层......只是越来越远,间接的连接。

正如您所看到的,我还将网络划分为多个部分(圆圈)。每个圆圈代表一个语义域(语言学概念),它是围绕概念的核心信息;本质上是一个语义域是一个概念。

节内节点之间的连接比不同节节点之间的连接具有更高的权重。因此,“汽车”的节点比将“英语”连接到“汽车”的节点更加相互连接。因此,当单个部分中的神经元发射(被激活)时,整个(或大部分)部分也可能被激活。

总而言之,我需要将输出模式用作进一步输出的输入,依此类推。级联效应是我所追求的。

我希望这是有道理的。如有需要请询问。

是否存在任何适合我已描述过的模型?

enter image description here

4 个答案:

答案 0 :(得分:3)

您的神经网络类似于使用进化算法(例如遗传算法)创建的神经网络。

有关详细信息,请参阅以下文章。

有关此类神经网络的摘要。使用进化技术创建神经元及其连接。因此他们没有严格的层面方法。汉斯使用以下技术:

遗传操作:

交叉运算符通过交换两个神经网络之间的部分区域来生成新的后代。它随机选择两个不同的神经网络,选择一个隐藏节点作为枢轴点。然后,它们根据选定的枢轴点交换连接链路和相应的权重。

变异运算符更改连接链接和随机选择的神经网络的相应权重。它执行以下两种操作之一:添加新连接或删除现有连接。

变异算子随机选择神经网络的两个节点。 如果它们之间没有连接,则它用随机权重连接两个节点 否则,它会删除连接链接和重量信息。 “

根据惠特利的文章图。

Neural Network Back Propogation vs Genetic Algorithm

@ARTICLE{Han2005Evolutionary,
  author = {Sang-Jun Han and Sung-Bae Cho},
  title = {Evolutionary neural networks for anomaly detection based on the behavior
of a program},
  journal = {Systems, Man, and Cybernetics, Part B: Cybernetics, IEEE Transactions
on},
  year = {2005},
  volume = {36},
  pages = {559 -570},
  number = {3},
  month = {june },

}

@article{whitley1995genetic,
  title={Genetic algorithms and neural networks},
  author={Whitley, D.},
  journal={Genetic algorithms in engineering and computer science},
  pages={203--216},
  year={1995},
  publisher={Citeseer}
}

答案 1 :(得分:2)

  

总而言之,我需要将输出模式用作进一步输出的输入,依此类推。我所追求的是级联效应。

这听起来像是一个有多个隐藏层的前馈网络。不要害怕这里的“层”这个词,有多个就像你在那里画的那样...就像5-5-7-6-7-6-6-5-6-5 - 结构化网络(5个输入,8个隐藏层,每个节点有不同数量的节点,5个输出)。

您可以以任何方式将节点从一个层连接到另一个节点。您可以通过简单地使用常量零作为它们之间的权重来保持一些未连接,或者如果使用面向对象编程,则只需将不需要的连接从连接阶段中取出。使用标准NN模型跳过图层可能会更难,但是一种方法可能是为权重需要跨越的每个图层使用虚拟节点。只需将原始输出* weight -value从节点复制到dummy,就像跳过图层一样,这样也可以保持标准NN模型的完整。

如果你想让网只输出1和0,一个简单的步进函数可以用作每个节点的激活函数:1表示值大于0.5,否则为0。

我不确定这是否是你想要的,但这样你应该能够建立你所描述的网络。但是,我不知道你打算如何教你的网络来产生一些语义域。为什么不让网络学习自己的重量?这可以通过简单的输入 - 输出 - 示例和反向传播 - 算法来实现。如果您使用标准模型来构建您的网络,那么学习的数学也不会与任何其他前馈网络有任何不同。最后但并非最不重要的是,您可以找到一个适合此任务的库,只需要很少或根本不需要对代码进行任何更改。

答案 2 :(得分:1)

涉及遗传算法的答案听起来不错(特别是引用Darrell Whitley的作品)。

另一种选择是简单地随机连接节点?这或多或少都是通过递归神经网络完成的。

你还可以看一下LeC​​un非常成功的卷积神经网络的一个例子,它有很多层,就像你在这里描述的那样,是为特定目的而设计的。

答案 3 :(得分:1)

您的网络也模仿了这一点 http://nn.cs.utexas.edu/?fullmer:evolving

但实际上并不允许网络学习,而是被替换。

可能会在这里介绍

http://www.alanturing.net/turing_archive/pages/reference%20articles/connectionism/Turing%27s%20neural%20networks.html