¿Pueden las redes neuronales profundas resolver problemas NP-Hard?

Depende de lo que quieras decir con “resolver”. Si quiere encontrar soluciones prácticamente útiles para tales problemas, la respuesta es sí y es bastante común. Tomemos, por ejemplo, el reconocimiento facial, que es una instancia de Image Matching, que es NP-Complete (por lo tanto, NP-Hard) [1]. Las redes neuronales de convolución profunda a menudo se usan para “resolver” eso, lo que significa que pueden encontrar soluciones razonables la mayor parte del tiempo.

Sin embargo, si por “resolver” te refieres a encontrar las soluciones óptimas para todas las instancias, entonces no, no pueden (a menos que P = NP). La razón es simple: las redes neuronales actuales se ejecutan en computadoras normales, que son instancias limitadas de máquinas de Turing deterministas, y están limitadas por la capacidad de este modelo. Por lo tanto, si pudieran, probarían P = NP.

No estoy seguro de si las redes neuronales profundas se realizaran físicamente (por ejemplo, neuronas independientes y comunicación paralela) las cosas cambiarían. Supongo que no lo harían.

[1] La coincidencia de imagen elástica es NP-completa

Sorprendentemente (o no) la respuesta es sí, podemos.

El aprendizaje por refuerzo se puede utilizar para modelar agentes que tienen como objetivo resolver problemas combinatorios como TSP (El vendedor ambulante, Clique, Vertex Cover, etc.)

Esta es una buena publicación sobre el uso de Q-Learning para el problema de TSP:

El vendedor de Skynet

Descargo de responsabilidad de Pedantic 1: Se editó la pregunta para referirse a problemas NP-Hard (anteriormente NP).

Descargo de responsabilidad de Pedantic 2: El problema de TSP ni siquiera es NP, porque si nos dan un recorrido diciendo que es la solución óptima, no tenemos forma de verificar la verdad en tiempo polinómico, aunque creo que la respuesta se ajusta al “espíritu” del pregunta.

Pueden, de hecho, pueden aplicarse a la mayoría de las cosas.

Es importante darse cuenta de que, en este contexto, las redes neuronales son heurísticas (informática): Wikipedia, un método que tiene como objetivo encontrar una buena solución (que también puede ser la mejor solución) en lugar de un método que garantice encontrar la mejor solución.

Por ejemplo, encontrar la mejor solución (la mejor combinación de elementos para elegir) para un problema de mochila es NP-Hard. Problema de la mochila – Wikipedia. No existen métodos conocidos que se ejecuten en tiempo polinómico que puedan garantizar que encuentren la mejor solución para este problema.

Sin embargo, hay muchos métodos que producen una respuesta “razonable” al problema de la mochila en menos tiempo. Un ejemplo es el algoritmo de aproximación codicioso en wiki, aquí – Problema de mochila – Wikipedia

Entonces, si bien podemos encontrar formas más rápidas de resolver instancias de problemas NP-Hard utilizando redes neuronales, esto no significa que las redes neuronales puedan encontrar soluciones óptimas a los problemas NP-Hard en tiempo polinómico.

No. El aprendizaje profundo trata de comprender las señales de alta dimensión, no resolver problemas combinatorios.

More Interesting

¿Qué libros o recursos de probabilidad y estadística debo consultar antes de sumergirme en Machine Learning, PNL, minería de datos, etc.? Soy un completo principiante.

¿Las redes RBM (máquina de Boltzman restringida) suelen tener el mismo número de nodos por capa?

¿Qué se considera estado de arte para la traducción automática neuronal?

¿Es el sesgo entre las mejores universidades frente a otras universidades en los Estados Unidos tan malo como el sesgo de IIT frente al resto de la India?

¿Cuáles son los problemas de investigación abiertos en el aprendizaje automático para la detección de intrusos?

Según muchas personas, la inteligencia artificial y el aprendizaje automático son las principales razones de los despidos de trabajo de TI. ¿Qué trabajos han sido reemplazados por estas disciplinas?

¿El curso de aprendizaje automático que el profesor Andrew Ng ofrece en Coursera me será útil como desarrollador de software profesional para resolver problemas de aprendizaje automático del mundo real?

¿Qué son las máquinas complejas?

¿Qué enfoques / regulaciones se utilizan para manejar el 'problema mínimo / máximo local' cuando se usa el descenso de gradiente con redes neuronales profundas?

¿Cómo se relaciona la RNN con el aprendizaje profundo?

¿Cuál es la diferencia entre adaboost y el clasificador de perceptrones de una capa?

¿Cuál es la diferencia entre estadística y aprendizaje automático?

¿Cuál es la importancia del lenguaje de programación Erlang para el aprendizaje automático?

Cómo manejar una imagen de diferentes tamaños en una red convolucional de MatConvNet con un contenedor DagNN

¿Cómo puedo usar el modelo oculto de Markov sin supervisión para detectar y corregir palabras dobles?