代码之家  ›  专栏  ›  技术社区  ›  Arnold Zahrneinder

NN与贪婪搜索

  •  1
  • Arnold Zahrneinder  · 技术社区  · 5 年前

    NN和贪婪搜索算法都有 Greed 自然,两者都有成本/距离最低的趋势(不过我的理解可能不正确)。但是,我不清楚是什么让它们在某种程度上不同,以至于每个算法都可以被归入一个不同的算法组。

    例如,如果我能用神经网络解决一个特定的问题,我当然也可以用贪婪搜索算法来解决,特别是在最小化的情况下。我得出这个结论是因为当我开始编码它们时,我在代码中遇到了非常相似的实现,尽管两者背后的一般概念可能不同。有时我甚至无法判断实现是遵循NN还是贪婪搜索。

    我做得很好,在谷歌上搜索得也够多了,但找不到一个恰当的解释来解释它们之间的区别。任何这样的解释确实值得赞赏。

    0 回复  |  直到 5 年前
        1
  •  1
  •   Thomas Cook    5 年前

    嗯,在很高的层次上,它们都是由启发式驱动的,以便根据理想解决方案评估给定的解决方案。但是,当贪婪搜索算法输出给定输入的解时,神经网络会训练一个模型,为给定输入生成解。因此,在非常高的层次上,你可以认为神经网络生成了一个解决方案查找器,而贪婪搜索是一个harcode解决方案查找者。

    换句话说,当提供给相同的网络拓扑时,神经网络将生成“代码”(即模型(也称为权重)),找到问题的解决方案。贪婪搜索实际上是你编写的找到问题解决方案的代码。虽然这很含糊,但我相信有一种更简洁、学术上合理的方式来表达我刚才说的话

    我刚才说的所有内容都是基于这样一个假设,即你所说的“贪婪搜索”是指解决旅行推销员等问题的算法。

    另一种思考方式是:

    在贪婪搜索中,您编写了一个解决搜索问题的算法(根据提供的启发式方法,为我找到最能描述数据点a和数据点B之间关系的图)。

    当你编写一个神经网络时,你需要声明一个网络拓扑,提供一些最初的“随机”权重和一些启发式方法来测量输出误差,然后通过多种不同的方法(反向道具、GAN等)训练网络权重。然后,这些权重可以用作新问题的求解器。

    不管怎样,我认为神经网络不是解决旅行销售人员问题的好方法。你最好使用一种常见的图搜索算法。。