最近,我从Google Research Blog上读了一个非常有趣的博客条目,内容涉及神经网络。基本上,他们使用这种神经网络来解决各种问题,例如图像识别。他们使用遗传算法来“进化”轴突的重量。
所以基本上我的想法如下。如果我应该写一个能识别数字的程序,我将不知道如何开始(我可能有一个模糊的想法,但我的意思是:这并不琐碎,也不容易。)但是通过使用神经网络,我不必这样做。通过创建正确的上下文以使神经网络进化,我的神经网络将“找到正确的算法”。在下面,我引用了文章中一个非常有趣的部分,其中他们解释了每一层如何在图像识别过程中发挥不同的作用。
神经网络的挑战之一是了解每一层到底发生了什么。我们知道,经过训练后,每一层都会逐步提取图像的越来越高的特征,直到最后一层基本上决定了图像显示的内容。例如,第一层可能寻找边缘或拐角。中间层解释基本特征以寻找整体形状或组件,例如门或叶子。最后几层将它们组合成完整的解释-这些神经元会响应非常复杂的事物(例如整个建筑物或树木)而激活。
所以,基本上我的问题是:我们不能使用遗传算法+神经网络来解决每个NP问题吗?我们只是创造正确的进化环境,而让“自然”找到解决方案。
编辑:我知道我们可以在许多情况下使用蛮力或找到效率不高的解决方案。这就是为什么我试图强调不断发展的人工神经网络。正如我在评论中所说:给定足够的时间和适当的突变率,我们可以找到最佳解决方案(或者至少我认为如此)。