我刚刚观看了一个关于"Polyworld"(在这里找到)的Google技术谈话视频,他们谈到将两个神经网络一起培育成后代.我的问题是,如何组合两个神经网络?它们看起来如此不同,任何组合它们的尝试都只会构成第三个完全不相关的网络.也许我错过了一些东西,但我没有看到一个很好的方法来采取两个独立的神经网络的积极方面,并将它们组合成一个单一的神经网络.如果有人能详细说明这个过程,我会很感激.
昨天我遇到了Craig Reynolds的Boids,随后我发现我会用Java实现一个简单的2D版本.我已经根据Conrad Parker的笔记精心制作了一个相当基本的设置.
但是,我得到了一些相当奇怪的(在我看来)行为.目前,我的boids合理地快速移动到粗糙的网格或格子中,然后在现场进行抽搐.我的意思是他们移动一点并且非常频繁地旋转.
目前,我已实施:
最初,我的boids随机分布在屏幕区域(与Parker方法略有不同),它们的速度都指向屏幕区域的中心(请注意,随机初始化的速度会产生相同的结果).更改速度限制值只会改变boids移动到此模式的速度,而不会形成模式.
我认为,这可能是:
预期的行为将更像雷诺兹的boids页面上applet中发生的二维版本,尽管现在我还没有实现任何方法来保持屏幕上的boid.
有没有人遇到过这个?有关原因和/或如何解决的任何想法?如果它有帮助,我可以发布一个.gif的行为.
我正在尝试构建一个由神经网络控制的代理的简单演化模拟.在当前版本中,每个代理具有前馈神经网络,其具有一个隐藏层.环境包含固定数量的食物,表示为红点.当一个特工移动时,他会失去能量,当他靠近食物时,他会获得能量.具有0能量的代理死亡.神经网络的输入是药剂的当前角度和最接近食物的矢量.每一步,每个代理的运动角度由其神经网络的输出改变.当然,目标是看到寻求食物的行为在一段时间后发展.然而,没有任何反应.
我不知道问题是神经网络的结构(太简单了吗?)还是繁殖机制:为了防止人口爆炸,最初的人口约有20个特工,随着人口接近50,再生机会接近零.当再现确实发生时,通过从头到尾遍历代理列表来选择父代,并检查每个代理是否0到1之间的随机数小于该代理的能量与该代理的总和之间的比率.所有代理人的能量.如果是这样,搜索结束并且该代理成为父代,因为我们向该环境添加该代理的副本,其神经网络中的一个或多个权重具有一定的突变概率.
提前致谢!
python artificial-intelligence artificial-life neural-network
我想知道是否有人知道利用生物学的任何软件技术?例如,在机器人世界,有很多,但软件呢?
研究出现,建立一个快速测试新想法的开发框架是非常有用的.物理碰撞的3d会很好,而开源将是一个很大的优势.为了这个目的,'breve'看起来非常有前景,但我想知道是否有人使用它或知道任何其他合适的引擎?
我正在与Scala和Akka一起进行人工生命模拟,到目前为止,我对两者都非常满意.我有一些时间问题,但我无法解释.
目前,模拟中的每只动物都是一对演员(动物+大脑).通常,这两个演员轮流(动物将传感器输入发送到大脑,等待结果,作用于它并重新开始).然而,不时地,动物需要彼此互动以互相吃饭或繁殖.
对我来说奇怪的一件事是时机.事实证明,从一只动物向另一只动物发送信息比从动物发送到大脑要慢很多(大约100倍).这使得我的可怜的食肉动物和性活跃的动物处于劣势,而不是素食者和无性动物(免责声明:我自己也吃素,但我认为成为素食主义者的理由比在尝试捕食时陷入困境更好. ).
我提取了一个演示问题的最小代码片段:
package edu.blindworld.test
import java.util.concurrent.TimeUnit
import akka.actor.{ActorRef, ActorSystem, Props, Actor}
import akka.pattern.ask
import akka.util.Timeout
import scala.concurrent.Await
import scala.concurrent.duration.Duration
import scala.util.Random
class Animal extends Actor {
val brain = context.actorOf(Props(classOf[Brain]))
var animals: Option[List[ActorRef]] = None
var brainCount = 0
var brainRequestStartTime = 0L
var brainNanos = 0L
var peerCount = 0
var peerRequestStartTime = 0L
var peerNanos = 0L
override def receive = {
case Go(all) =>
animals = Some(all)
performLoop()
case BrainResponse =>
brainNanos += (System.nanoTime() …Run Code Online (Sandbox Code Playgroud) 我有一个控制人工草食动物的人工神经网络.输入是最接近的植物的大小和方向,最接近的配偶的大小和方向,以及草食动物的健康.输出是运动矢量(方向和幅度).如果通过遗传算法训练,是否有必要使用偏见?
artificial-intelligence artificial-life neural-network genetic-algorithm
akka ×1
algorithm ×1
boids ×1
hierarchical-temporal-memory ×1
java ×1
javascript ×1
jquery ×1
memory ×1
open-source ×1
physics ×1
python ×1
scala ×1
simulation ×1