2017-04-15 41 views
0

我最近开始对人工智能,神经网络和遗传算法有很大的兴趣,并且我想要构建一个能够处理问题的小AI。 我研究了这个主题,并且我认为我对非增长神经网络的工作原理以及它们的权重如何演变有了很好的理解,但我无法找到关于如何确定网络是否需要生成新神经元的解释,我应该从多少这样的开始。神经网络中神经元的演化

P.S. 我是一名计算机科学专业的学生,​​也是职业程序员,所以我对算法和图形有很好的理解,但我还没有学习AI。

回答

2

的遗传算法不“确定”,如果神经元应该被添加或移除,它通过一个随机的机会,当它有积极的影响,它会留在后代做它 - 优胜劣汰。

纯纸开始与仅具有输入节点和输出节点的网络。然后它演变越来越多的节点和连接,然而随机(mutationRate)的机会!

Read about it here

enter image description here


我已经实现了这个转换成JavaScript,所以如果你想看看网络如何演变作为一个异或门,检查this出来。

0

起始神经元数量是很难定义的。 Scientisc通常使用直觉或gentic algoritm来描述上层。如果使用第一个选项,网络不工作好: 1.(过多的神经元,网络快速学习lerning例子,但有symilar问题的问题)做出新的更小的网络和学习。 2.(太痘痘神经元,网络具有较大的误差结束,这不可能是lerning期间更小)尽量小的重量和continou lerning添加新的神经元太现有的网络(连接其他人一样),或者做出新的更大的网络,并开始新的lerning 。您也可以尝试添加新图层。

输入 leyer 1> leyer 2> L 3 ...

输出leyer可以是一个例外。 使用连接的所有所有 在文献usualy recomentd 3层,但我的实验告诉4层具有更好的泛化。