【问题标题】:Evolution of neurons in Neural Network神经网络中神经元的进化
【发布时间】:2017-09-11 12:48:46
【问题描述】:
我最近开始对 AI、神经网络,尤其是 GA 产生了浓厚的兴趣,我想构建一个能够处理问题的小型 AI。
我研究了这个主题,我认为我对非生长神经网络如何工作以及它们的权重如何演变有足够的了解,但是我找不到关于如何确定网络是否需要生成新神经元的解释,并且我应该从多少开始等等。
附:
我是一名计算机科学专业的学生,职业是程序员,所以我对算法和图形有很好的理解,但我还没有学习人工智能。
【问题讨论】:
标签:
neural-network
artificial-intelligence
【解决方案1】:
遗传算法不会“确定”是否应该添加或删除神经元,它是随机进行的,当它产生积极影响时,它将留在后代中 - 适者生存。
NEAT 论文从一个只有输入节点和输出节点的网络开始。然后它会进化出越来越多的节点和连接,但是随机 (mutationRate) 机会!
Read about it here
我已经在 javascript 中实现了这一点,所以如果您想了解网络如何演变为充当 XOR 门,请查看this。
【解决方案2】:
定义起始神经元数很难。科学家通常使用直觉或基因算法来定义这一点。如果您使用第一个选项并且网络无法正常工作:
1.(神经元太多,网络快速学习学习示例但有类似问题的问题)创建新的更小的网络并学习它。
2.(神经元太少,网络有很大的错误结束,这在学习期间不能更小)尝试在现有网络中添加新的神经元并继续学习(像其他人一样连接)或制作新的更大的网络并开始新的学习。您也可以尝试添加新图层。
输入
莱尔 1> 莱尔 2> 升 3...
输出 leyer 可能是一个例外。
全部使用连接
在文献中通常推荐 3 层,但我的实验表明 4 层具有更好的泛化性。