不断发展的人工神经网络解决NP问题


10

最近,我从Google Research Blog上读了一个非常有趣的博客条目,内容涉及神经网络。基本上,他们使用这种神经网络来解决各种问题,例如图像识别。他们使用遗传算法来“进化”轴突的重量。

所以基本上我的想法如下。如果我应该写一个能识别数字的程序,我将不知道如何开始(我可能有一个模糊的想法,但我的意思是:这并不琐碎,也不容易。)但是通过使用神经网络,我不必这样做。通过创建正确的上下文以使神经网络进化,我的神经网络将“找到正确的算法”。在下面,我引用了文章中一个非常有趣的部分,其中他们解释了每一层如何在图像识别过程中发挥不同的作用。

神经网络的挑战之一是了解每一层到底发生了什么。我们知道,经过训练后,每一层都会逐步提取图像的越来越高的特征,直到最后一层基本上决定了图像显示的内容。例如,第一层可能寻找边缘或拐角。中间层解释基本特征以寻找整体形状或组件,例如门或叶子。最后几层将它们组合成完整的解释-这些神经元会响应非常复杂的事物(例如整个建筑物或树木)而激活。

所以,基本上我的问题是:我们不能使用遗传算法+神经网络来解决每个NP问题吗?我们只是创造正确的进化环境,而让“自然”找到解决方案。

感应主义:更深入地研究神经网络

编辑:我知道我们可以在许多情况下使用蛮力或找到效率不高的解决方案。这就是为什么我试图强调不断发展的人工神经网络。正如我在评论中所说:给定足够的时间和适当的突变率,我们可以找到最佳解决方案(或者至少我认为如此)。

概念


1
我们没有必要。我们可以简单地使用蛮力。您的目标到底是什么?
波兰GD 2015年

2
我不是神经网络专家,所以我不知道是否可以训练它们正确解决NP问题。但我认为您提出的问题不是正确的。提出解决NP中包含的问题的算法通常并不困难,只需检查所有可能的解决方案即可。但是,找到一种在多项式时间内解决NP难题的算法却是另一回事,而且它的存在极不可能。由于神经网络可以通过整形机进行模拟,因此除非P = NP,否则它们仍需要超多项式时间,并且不会有太大帮助。
丹尼斯·卡夫

是的,神经网络已被用于解决NP完全问题,例如Traveling Salesman等许多问题,并且有关于该主题的研究/文献。它们可以具有一些有用的属性,但是正如DK指出的那样,它们并没有摆脱复杂性理论的时间限制。
vzn 2015年

我的观点是:使用适当的突变率和足够的时间,我们可以(至少在理论上)找到最佳解决方案。(或至少是局部最大值)图片:概念
NMO 2015年

2
遗传算法(以及其他许多“ AI”技术的其余部分)实质上是随机的“尝试求解解决方案空间的样本”,并加入了一些聪明才智(启发式),以使其并非完全随机。不,它并不比“尝试所有可能的解决方案”更好,大多数情况下,情况更糟(因为无法保证不会再次检查相同的废弃案例)。当然,他们找到了“不错的”解决方案。但是我们想找到最好的
vonbrand 2015年

Answers:


21

否。此方向不太可能有用,原因有两个:

  1. 大多数计算机科学家认为P NP。假设P NP,这意味着不存在任何多项式时间算法来解决任何 NP完全问题。如果您希望神经网络在合理的时间内解决问题,那么它就不能太大,因此神经网络本身就是多项式时间算法。因此,如果P NP,则神经网络无法有效解决任何NP完全问题。

  2. 神经网络不是“魔术”。它们是尝试找到模式的一种方式。对于某些问题,只要可以找到足够强大的模式,并且可以从大量示例中学习这些模式,那么它们可能会有效。但是它们不是魔术仙尘。仅仅因为您可以建立神经网络并不意味着反向传播一定会找到解决问题的好方法。可能是找不到模式,只能通过不可行的示例数来发现模式,或者存在模式,但是神经网络训练过程无法找到它们。

神经网络只是机器学习的另一种形式。我们可以对SVM,随机森林或线性回归进行任何其他形式的机器学习的评论。神经网络并不是解决所有机器学习问题的神奇灵丹妙药。它们与其他机器学习方法一样有效,或者对于某些问题,也许更有效,但是它们并不是魔术。

有时我遇到的人只听说过一点神经网络,而他们却以为神经网络是一切的答案而走开了-也许是因为他们听说“您的大脑也使用神经网络”,或者他们看到了一些很酷的应用程序(语音识别等)。但不要上当。不要相信炒作。神经网络是一种有用的技术,但是它们不会使计算机能够解决NP完全问题,也不会击败图灵测试,夺走了我们的所有工作,并用计算机代替了人类。无论如何,不​​会很快。那只是科幻小说。


1
真的很好的答案。遗传算法+神经网络似乎非常强大,但也许不足以解决每个np问题。我想让神经网络+遗传算法在野外寻找这种p解决方案。就像小侦察员哈哈。
NMO

1
可能还值得注意的是,神经网络通常提供找到正确答案的某种可能性,而不是保证。当您放宽对问题的要求以允许采用次优解决方案时,尽管在最坏的情况下它们都是难解决的,但通常有一些实用的解决方案可以解决NP完全问题。
丹·布莱恩特

9

在提供有益信息的同时,其他答案似乎并没有真正真正地理解您的问题,而且对它的理解也太多了。您没有询问神经网络是否会胜过其他方法,仅询问它们是否可以应用于 NP完全问题。答案是肯定的,并且取得了一些成功,并且已经有数十年的历史了,对此有各种各样的研究,并且还在继续。这与机器学习的灵活性有关。请注意,即使他们找不到精确或最佳的解决方案,他们拥有的解决方案也可能具有其他理想的属性。一些示例文件:


4

神经网络实际上并不能解决NP完全问题。他们要做的是解决非常接近NP完全问题的问题。

神经网络的一大特点是它们不必每次都找到“正确的”答案。他们被允许是“错误的”。例如,您可能正在解决一个装箱问题,并且得出的解决方案比理想解决方案低1%,并且完全满足于该答案。

如果您每次都消除了100%做到正确的要求,那么其他解决问题的方法将非常有效。例如,许多路线规划算法(例如Google Maps)必须是NP完整的,但是要找到一种算法来找到一条路径,该算法在99.9%的最佳时间中的1%内找到一条路径,这是微不足道的。它试图确定结果,导致NP完成工作的最后0.1%的情况如此昂贵。

碰巧的是,当我们在现实生活中尝试使用NP完全方程时,我们通常不需要实际的答案。我们通常对“接近”答案非常满意,尽管我们通常没有措辞来解释我们使用的“接近”指标。在这种情况下,神经网络可以回答您要提出的实际问题,而不必实际解决您要提出的NP完全问题。


1

神经网络已知具有通用的函数逼近能力,但是这需要对其进行训练(优化),而这个问题本身就是一个NP完全问题,这就是为什么要进行进化训练和反向传播SGD的原因。

因此,尽管他们不太可能解决NP完全问题,但可以训练他们近似精确地模拟问题的函数。同样,即使您碰巧使用神经网络最优地解决了NP完全问题,您仍然没有办法证明它找到的解决方案实际上是全局最优的而没有强求解决方案(这对于几乎任何实际应用来说都是不可行的神经网络的用例)。

从某种意义上说,您的可视化是准确的,因为进化算法(请参见整洁算法如何通过使用共享适应度来阻止单个物种通过具有最初高性能的结构来接管种群)不像SGD和其他机器学习技术那样容易陷入局部最优解,但是它们不能提供证明他们找到的解决方案实际上是全局最优解的证据。


您能否在答案中添加一些参考?另外,请尝试改善格式设置(例如,使用NP,SGD,反向传播等,并可能添加一些换行符)。
Yuval Filmus,

好吧,进行了一些编辑,让我知道是否可以深入任何地方
nickw

我认为您应该为“进化算法...比SGD和其他机器学习技术更不适合陷入局部最优”这一说法提供一些理由。我认为这是不对的,特别是对于训练神经网络的特定任务。
DW

这个答案对NP完整性的定义有些困惑。与您主张的相反,如果我们解决了NP完全问题,则可以检查我们是否有正确的解决方案。NP完全搜索问题和NP困难优化问题之间存在差异。对于前者,我们确实可以有效地检查解决方案是否正确,但对于后者,我们可能无法做到。
DW

我确实有资格证明我们无法在没有首先强行逼迫真正的最佳解决方案的情况下验证它是最佳解决方案,这不正确吗?我为我的推理提供了理由,即神经进化不太容易陷入带有最优算法和共享适应度的引用链接的局部最优中,我认为梯度下降容易陷入局部最优中是不言而喻的,而超参数调整框架可以帮助缓解这种情况,我不会相信,因为厌恶sgd会卡住。
nickw
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.