5

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

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

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

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

一个部分内的节点之间的连接比不同部分的节点之间的连接具有更高的权重。因此,“car”的节点之间的连接比将“English”连接到“car”的节点更紧密。因此,当单个部分中的神经元触发(被激活)时,很可能整个(或大部分)部分也将被激活。

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

我希望这是有道理的。请在需要时要求澄清。

是否存在任何合适的模型来模拟我已经描述的内容?

在此处输入图像描述

4

4 回答 4

3

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

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

对于这种类型的神经网络的总结。神经元及其连接是使用进化技术创建的。因此他们没有严格的层方法。汉斯使用以下技术:

"基因操作:

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

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

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

下图来自惠特利的文章。

神经网络反向传播与遗传算法

@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}
}
于 2012-11-22T12:24:19.153 回答
2

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

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

您可以以任何您喜欢的方式将节点从一层连接到另一层。您可以通过简单地使用常量零作为它们之间的权重来使一些未连接,或者如果使用面向对象的编程,只需将不需要的连接留在连接阶段之外。使用标准 NN 模型跳过这些层可能会更难,但一种方法可能是对权重需要跨越的每一层使用一个虚拟节点。只需将原始 output*weight 值从节点复制到虚拟对象与跳过一层相同,这也将保持标准 NN 模型的完整性。

如果您希望网络仅输出一些 1 和 0,则可以使用简单的步进函数作为每个节点中的激活函数:值大于 0.5 时为 1,否则为 0。

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

于 2012-11-19T20:38:45.517 回答
1

涉及遗传算法的答案听起来不错(尤其是引用 Darrell Whitley 的工作)。

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

您还可以查看 LeCun 非常成功的卷积神经网络,作为一个具有很多层的 ANN 示例,这有点像您在此处描述的为特定目的而设计的。

于 2012-11-30T05:31:44.060 回答
1

你的网络也模仿这个 http://nn.cs.utexas.edu/?fullmer:evolving

但并没有真正让网络学习,而是被替换。

可能会在这里介绍

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

于 2013-01-04T05:34:35.780 回答