【问题标题】:Neural Network "Breeding"神经网络“育种”
【发布时间】:2010-12-09 07:53:37
【问题描述】:

我刚刚观看了一个关于“Polyworld”(找到here)的 Google 技术谈话视频,他们谈到了将两个神经网络一起培育以形成后代。我的问题是,如何组合两个神经网络?它们看起来如此不同,以至于任何将它们结合起来的尝试都只会形成第三个完全不相关的网络。也许我遗漏了一些东西,但我没有看到一个很好的方法来获取两个独立神经网络的积极方面并将它们组合成一个单独的神经网络。如果有人能详细说明这个过程,我将不胜感激。

【问题讨论】:

    标签: artificial-intelligence neural-network artificial-life


    【解决方案1】:

    到目前为止,这两种反应都不符合 Polyworld 的本质!...

    它们都描述了典型的遗传算法 (GA) 应用程序。虽然 GA 包含了 Polyworld 中的一些元素(育种、选择),但 GA 还暗示了某种形式的“客观”标准,旨在引导进化朝着[相对]特定目标。

    另一方面,

    Polyworld 是 Artificial Life (ALife) 的框架。对于 ALife,个体生物的生存及其将基因传递给其他世代的能力,与其满足特定“适应功能”的能力无关,而是与 strong>各种更广泛的、非目标导向的标准,例如个体以与其体型和新陈代谢相称的方式养活自己的能力、避开捕食者的能力、寻找交配伙伴的能力和还有各种运气和随机性。

    Polyworld 的模型与生物及其世界相关联是相对固定的(例如,它们都可以访问(尽管可能选择不使用)各种基本传感器(例如颜色,形状......)和各种执行器(“设备”吃,交配,转动,移动......)并且这些基本的感觉和运动功能不会进化(就像它在自然界中可能发生的那样,例如当生物找到对热或声音敏感的方法和/或找到与原始运动原语不同的移动方式等......)

    另一方面,生物的大脑具有结构和联系,这些结构和联系既是生物基因构成(来自其祖先的“东西”)的产物,也是自身的产物经验。例如,用于确定神经元之间连接强度的主要算法在生物的生命周期内使用 Hebbian 逻辑(即火在一起,连线)(早期,我猜,因为该算法通常具有“冷却“随着时间的推移,它最大程度地降低了其大幅改变事物的能力的因素)。目前尚不清楚该模型是否包括某种形式的拉马克进化,即某些高级行为是[直接]通过基因传递的,而不是[可能]在每一代重新学习(在一些遗传传递的间接基础上)结构)。

    ALife 和 GA 之间的显着区别(还有其他!)在于 ALife 的重点是以非定向方式观察和培养,紧急行为 - 无论它们是什么 - 例如,当一些生物进化出一种妆容,促使它们等待附近的绿色食物堆并等待深绿色生物杀死它们,或者某些生物可能开始彼此合作,例如通过寻找彼此的存在而不是交配等。对于 GA,重点是正在发展的程序的特定行为。例如,目标可能是让程序识别视频图像中的边缘,因此在这个特定方向上进化是有利的。更好地执行此任务的单个程序(作为一些“适应功能”的衡量标准)在进化方面受到青睐。

    另一个不太明显但重要的区别在于生物(或遗传算法中的程序)自我繁殖的方式。在 ALife 中,个体生物找到自己的交配伙伴,起初是随机的,但经过一段时间后,它们可能会学会仅与表现出特定属性或行为的生物进行繁殖。另一方面,对于 GA,“性别”留给 GA 框架 本身,它会选择例如在适应度函数上得分较高的杂交个体(及其克隆) (并且总是为一些随机性留出空间,以免解决方案搜索停留在某个局部最大值,但关键是 GA 框架主要决定谁与谁发生性关系)...

    澄清这一点后,我们可以回到 OP 的原始问题...
    ...如何组合两个神经网络?它们看起来如此不同,以至于任何将它们结合起来的尝试都只会形成第三个完全不相关的网络。 ...我没有看到一个很好的方法来获取两个独立神经网络的积极方面并将它们组合成一个......
    特定生物的“基因构成”会影响参数,例如生物的大小、颜色等。它还包括与大脑相关的参数,特别是它的结构:神经元的数量、来自各种传感器的连接的存在(例如,生物是否能很好地看到蓝色?)与各种执行器的连接的存在(例如。这个生物会使用它的光吗?)。神经元之间的特定连接和它们的相对强度也可以在基因中传递,如果只是作为初始值,在大脑学习阶段会迅速改变。
    通过选取两个生物,我们 [nature!] 可以或多或少随机地选择哪个参数来自第一个生物,哪个来自另一个生物(以及一些新颖的“突变” " 来自父母双方)。例如,如果“父亲”与红色传感器有很多联系,但母亲没有,后代可能在这方面看起来像父亲,但也会得到母亲的 4 层神经元结构,而不是父亲的 6 层神经元结构.
    这样做的目的是发现个人的新能力;在上面的示例中,该生物现在可以更好地检测红色捕食者,并且在其稍微简单的大脑中更快地处理信息(与父亲的相比)。并不是所有的后代都比他们的父母有更好的装备,这些弱小的个体可能会在短时间内消失(或者可能并且幸运地存活了足够长的时间,以提供他们移动和逃避捕食者的奇特方式,即使他们的父母让他们失明或太大或其他什么...再次关键:不要太担心特定特征的即时有用性,而只是看到它在长期内发挥作用

    【讨论】:

      【解决方案2】:

      他们不会真的同时培育两个神经网络。据推测,他们有多种遗传算法,可以在给定特定“基因”序列的情况下产生特定的神经网络结构。他们将从一组基因序列开始,产生其特有的神经网络,然后将这些网络中的每一个暴露于相同的训练方案中。据推测,其中一些网络会比其他网络更好地响应训练(即它们将更容易“训练”以实现所需的行为)。然后,他们将获取产生最佳“受训者”的基因序列,将它们相互杂交,产生它们特有的神经网络,然后将其暴露于相同的训练方案中。据推测,第二代中的一些神经网络甚至比第一代更容易训练。这些将成为第三代的父母,依此类推。

      【讨论】:

      • 谁#$%#$ 否决了这个?这让我很生气,因为我自己实际上已经多次执行了这个过程。请自行解释。
      • 感谢您的反馈,但我不认为这就是 Polyworld 应用程序的工作方式。它更像是一个游戏,其中每个“角色”都由神经网络控制。它们移动、进食、交配和死亡。交配会产生一个新角色,它是前两个角色的组合。
      • Polyworld 中对“基因”和“神经网络”之间关系的描述与我在此处的回答中描述的非常相似。
      • 对不起,从上面肯尼所说的看来,这是正确的想法。谢谢!
      • 简而言之,我们正在使用 GA 来学习神经网络的结构(它仍然像往常一样通过反向传播进行训练以更新权重)。
      【解决方案3】:

      在这种情况下,神经网络(可能)不是任意树。它们可能是具有恒定结构的网络,即相同的节点和连接,因此“繁殖”它们将涉及“平均”节点的权重。您可以平均两个相应网络中每对节点的权重以产生“后代”网络。或者,您可以使用依赖于更多相邻节点集的更复杂的函数——可能性是巨大的。 如果关于固定结构的假设是错误的或没有根据的,我的回答是不完整的。

      【讨论】:

      • 感谢您的反馈。如果您可以依靠固定结构,平均的想法很有趣。从视频中可以看出,结构不是固定的,因为节点可以作为突变添加/删除。不过,这是一个很好的起点。
      • 啊——从 Polyword [beanblossom.in.us/larryy/polyworld.html] 的描述来看,神经网络似乎是由 Polyworld 系统中每个有机体拥有的另一个“遗传”代码动态产生的。正是这些遗传密码在“繁殖”过程中组合在一起,正是这种组合的输出决定了后代的神经网络。
      • @MusiGenesis – 我还不能投票给你,但你的答案是正确的,并且与我自己的(修改后的)答案相匹配[见上面的评论]。
      • @Kenny:有趣的链接,但您的链接已损坏(我不得不从 URL 中删除“]”)。
      • 来自未来的你好。 Geoff Hinton 通过平均权重或基本相同效果的算法培育了 NN。他认为,通过在一个或多个 NN 之间进行投票,您实际上是在平均所有权重。虽然这会破坏性能最好的神经网络,但更重要的效果是创建一个对不断变化的环境更具适应性和鲁棒性的神经网络,与有性生殖的效果完全相同。
      猜你喜欢
      • 2017-02-19
      • 2014-01-15
      • 1970-01-01
      • 2015-12-03
      • 2018-12-16
      • 2011-08-23
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多