НН против Жадного Поиска - PullRequest
1 голос
/ 27 января 2020

Оба алгоритма NN и Greedy Search имеют характер Greed, и оба имеют тенденцию к наименьшей стоимости / расстоянию (хотя моё понимание может быть неверным). Но то, что отличает их таким образом, что каждый из них может быть классифицирован в отдельную группу алгоритмов, мне почему-то неясно.

Например, если я могу решить конкретную проблему с помощью NN, я, несомненно, могу решить ее и с помощью алгоритма Greedy Search, особенно в случае минимизации. Я пришел к такому выводу, потому что, когда я начинаю их кодировать, я сталкиваюсь с очень похожими реализациями в коде, хотя общая концепция обоих может отличаться. Иногда я даже не могу сказать, следует ли реализация за NN или Greedy Search.

Я хорошо выполнил свою домашнюю работу и достаточно поискал в Google, но не смог найти достойного объяснения того, что отличает их друг от друга. Любое такое объяснение действительно приветствуется.

1 Ответ

1 голос
/ 27 января 2020

Хм, на очень высоком уровне они оба управляются эвристикой, чтобы оценить данное решение в сравнении с идеальным решением. Но, хотя жадный поиск al go выводит решение для заданного входа, NN обучает модель, которая будет генерировать решения для заданных входов. Таким образом, на очень высоком уровне вы можете думать, что NN генерирует средство поиска решения, тогда как жадный поиск - это средство поиска решения с зашифрованным кодом.

Другими словами, NN будет генерировать «код» (то есть модель (также известные как весовые коэффициенты)), который находит решение проблемы, когда предоставляется одной и той же сетевой топологии. Жадный поиск - это вы на самом деле пишете код, который находит решение проблемы. Это довольно странно, хотя, я уверен, что есть гораздо более краткий, академически обоснованный способ выражения того, что я только что сказал

Все то, что я только что сказал, основано на предположении, что «Жадный поиск» - вы имели в виду алгоритмы для решения таких задач, как путешествия продавца.

Еще один способ думать об этом:

В жадном поиске вы пишете алгоритм, который решает проблему поиска (найдите мне график, который наилучшим образом описывает отношения, основанные на предоставленных heuristi c (s), между точкой данных A и точкой данных B).

Когда вы пишете нейронную сеть, вы объявляете топологию сети предоставьте несколько первоначально «случайных» весов и некоторую эвристику для измерения ошибок на выходе, а затем обучите веса сетей с помощью множества различных методов (back prop, GAN et c). Эти весовые коэффициенты можно затем использовать в качестве решателя для новых задач.

Не смотря на то, что это стоит, я не думаю, что NN был бы хорошим подходом для создания решателя для задачи коммивояжера. Вам было бы намного лучше, если бы вы использовали общий алгоритм поиска по графику.

...