我刚刚观看了一个涵盖“Polyworld”(在此处找到)的 Google 技术谈话视频,他们谈到了将两个神经网络一起培育以形成后代。我的问题是,如何组合两个神经网络?它们看起来如此不同,以至于任何将它们结合起来的尝试都只会形成第三个完全不相关的网络。也许我遗漏了一些东西,但我没有看到一个很好的方法来获取两个独立神经网络的积极方面并将它们组合成一个单独的神经网络。如果有人能详细说明这个过程,我将不胜感激。
3 回答
到目前为止,这两种反应都不符合 Polyworld 的性质!...
它们都描述了典型的遗传算法(GA) 应用程序。虽然 GA 包含了 Polyworld 中的一些元素(育种、选择),但 GA 还暗示了某种形式的“客观”标准,旨在引导进化朝着 [相对] 特定目标。
另一方面,Polyworld 是人工生命(ALife) 的框架。在 ALife 中,个体生物的生存以及它们将基因传递给其他世代的能力,与其说是由它们满足特定“适应功能”的能力所主导,不如说是与各种更广泛的、非目标导向的,标准,例如个体以与其体型和新陈代谢相称的方式养活自己的能力,避免捕食者的能力,寻找交配伙伴的能力以及各种运气和随机性的能力。
Polyworld与生物及其世界相关的模型是相对固定的(例如,它们都可以访问(尽管可能选择不使用)各种基本传感器(用于颜色、形状......)和各种执行器(“设备”吃、交配、转身、移动……)并且这些基本的感觉和运动功能不会进化(就像在自然界中那样,例如当生物找到对热或声音敏感和/或找到移动不同于原始运动图元等...)
另一方面,生物的大脑具有结构和联系,这些结构和联系既是生物的基因构成(来自其祖先的“东西”)又是其自身经验的产物. 例如,用于确定神经元之间连接强度的主要算法在生物的生命周期内使用 Hebbian 逻辑(即火在一起,连线)(早期,我猜,因为该算法通常具有“冷却“随着时间的推移,它最大程度地改变事物的能力的因素)。目前尚不清楚该模型是否包括某种形式的拉马克进化,即某些高级行为是[直接]通过基因传递的,而不是[可能]在每一代重新学习(在一些遗传传递的间接基础上)结构体)。
ALife 和 GA(还有其他!)之间的显着区别在于,对于 ALife,重点是观察和培养以非定向方式、紧急行为(无论它们可能是什么),例如,当某些生物进化时一种妆容,促使它们等待附近的绿色食物堆并等待深绿色生物杀死它们,或者某些生物可能会开始相互合作,例如为了交配以外的其他目的而寻找对方的存在等。有了 GA,重点是正在发展的程序的特定行为. 例如,目标可能是让程序识别视频图像中的边缘,因此在这个特定方向上进化是有利的。在进化方面,可以更好地执行此任务的单个程序(作为一些“适应功能”的衡量标准)受到青睐。
另一个不太明显但重要的区别是生物(或遗传算法中的程序)自我繁殖的方式。在 ALife 中,个体生物起初会随机找到自己的交配伙伴,但经过一段时间后,它们可能会学会仅与表现出特定属性或行为的生物进行繁殖。另一方面,对于 GA,“性别”留给 GA 框架本身,例如,它选择最好的杂交个体(及其克隆),这些个体在适应度函数上得分很高(并且总是为某些人留出空间随机性,以免解决方案搜索停留在某个局部最大值,但关键是 GA 框架主要决定谁与谁发生性关系)......
澄清了这一点,我们可以回到OP 的原始问题……
如何将两个神经网络结合起来?它们看起来如此不同,以至于任何将它们结合起来的尝试都只会形成第三个完全不相关的网络。...我看不出有什么好方法可以将两个单独的神经网络的积极方面结合成一个单独的神经网络...特定生物
的“基因构成”会影响参数比如生物的大小,它的颜色等等。它还包括与大脑相关的参数,特别是它的结构:神经元的数量、来自各种传感器的连接的存在(例如,生物是否能很好地看到蓝色?)与各种执行器的连接的存在(例如。该生物使用它的光吗?)。神经元之间的特定连接和它们的相对强度也可以在基因中传递,如果只是作为初始值,在大脑学习阶段会迅速改变。
通过取两个生物,我们 [自然!] 可以或多或少地随机选择,哪个参数来自第一个生物,哪个来自另一个生物(以及来自父母双方的一些新颖的“突变”)。例如,如果“父亲”与红色传感器有很多联系,但母亲没有,后代可能在这方面看起来像父亲,但也会得到母亲的 4 层神经元结构,而不是父亲的 6 层神经元结构.
这样做的目的是发现个人的新能力; 在上面的示例中,该生物现在可以更好地检测红色捕食者,并且在其稍微简单的大脑中更快地处理信息(与父亲的相比)。并非所有的后代都比他们的父母装备更好,这些弱小的个体可能会在短时间内消失(或者可能幸运地存活足够长的时间,以提供他们移动和逃避捕食者的奇特方式,即使他们的父母让他们失明或太大或其他什么......再次关键的事情:不要那么担心特定特征的直接有用性,而只是看到它长期发挥作用。
他们不会真的同时培育两个神经网络。据推测,他们有多种遗传算法,可以在给定特定“基因”序列的情况下产生特定的神经网络结构。他们将从一组基因序列开始,产生他们特有的神经网络,然后将这些网络中的每一个暴露于相同的训练方案中。据推测,这些网络中的一些会比其他一些更好地响应训练(即它们将更容易“训练”以实现所需的行为)。然后,他们将获取产生最佳“受训者”的基因序列,将它们相互杂交,产生它们特有的神经网络,然后将其暴露于相同的训练方案中。想必,第二代中的一些神经网络甚至比第一代更容易训练。这些将成为第三代的父母,依此类推。
在这种情况下,神经网络(可能)不是任意树。它们可能是具有恒定结构的网络,即相同的节点和连接,因此“培育”它们将涉及“平均”节点的权重。您可以平均两个相应网络中每对节点的权重以产生“后代”网络。或者,您可以使用依赖于更多相邻节点集的更复杂的函数——可能性是巨大的。如果关于固定结构的假设是错误的或没有根据的,我的回答是不完整的。