¿Podemos aplicar el aprendizaje automático a los problemas de NP Complete?

Comencemos diseccionando la pregunta: ¿qué significa aplicar el aprendizaje automático a problemas de NP completo?

Los problemas NP-completos más comunes tienen un espacio de estado discreto exponencialmente grande, y el objetivo es minimizar una función objetivo bien definida. Por ejemplo, en el problema del vendedor ambulante (TSP), el espacio de estado es el conjunto de todas las permutaciones de los vértices y la función objetivo para una permutación (estado) particular es la suma de distancias entre vértices consecutivos en el recorrido. Ahora, las personas que están trabajando en un problema de NP completo, ¿qué están tratando de lograr? Depende:

  • Ciencias de la computación teóricas: las personas que trabajan en ciencias de la computación teóricas intentan desarrollar un algoritmo para el cual pueda dar garantías teóricas como “para cualquier caso de este problema, el algoritmo generará una solución que es como máximo 2 veces peor que la solución óptima “. (Por peor, quiero decir que la función objetivo en la solución devuelta por el algoritmo es como máximo 2 veces el valor mínimo de la función objetivo alcanzable). Claramente, desea el algoritmo que funciona mejor en el peor de los casos.
  • Investigación de operaciones: las personas que trabajan en investigación de operaciones, por otro lado, no se preocupan por el peor de los casos, en su mayor parte. Quieren un algoritmo que funcione bien en casos prácticos de los problemas o que funcione bien en promedio. Estas son esencialmente heurísticas, a menudo sin garantías teóricas.

Ahora, veamos qué te ofrece el aprendizaje automático. La mayoría del aprendizaje automático puede considerarse como una aproximación de funciones: dado algunos pares (entrada, salida), desea encontrar una función que, cuando se alimenta la entrada, la mayoría de las veces proporciona algo cercano a la salida.

Entonces, el objetivo de los problemas NP-completos es obtener un algoritmo, mientras que el aprendizaje automático le da una función. Estos no son exactamente lo mismo, pero puede pensar en un algoritmo como una función. Por ejemplo, todos los algoritmos de ordenación pueden considerarse funciones que toman una matriz sin clasificar y devuelven una matriz ordenada. Pierde información sobre la eficiencia en esta transformación, pero si evaluar la función devuelta por su sistema de aprendizaje automático lleva tiempo polinómico, está bien.

Finalmente, tenemos el siguiente marco: le damos a nuestro sistema de aprendizaje automático un conjunto de pares (entrada, salida) para el problema NP-completo dado. Por ejemplo, para TSP, las entradas serán los gráficos y las salidas serán los recorridos óptimos. El modelo de aprendizaje automático devuelve una función, que toma un nuevo gráfico y devuelve algo . Tendrá que modelar su problema de manera que tenga restricciones para que lo que se devuelva sea al menos un recorrido válido . Suponiendo que sí, ahora tiene una función que toma un gráfico y devuelve un recorrido. Aquí hay algunos problemas periféricos:

  1. ¿De dónde obtienes estos datos? Idealmente, para aprender, el sistema de aprendizaje automático requerirá datos con diferentes tamaños de gráficos. A medida que los gráficos se hacen más grandes, solo podrá resolverlos exactamente si tienen una estructura específica. Esto introducirá un sesgo en los datos.
  2. La mayoría de los marcos de aprendizaje automático suponen que la función objetivo que se optimiza es continua y se basan en algoritmos basados ​​en gradientes. Dado que los problemas NP-completos en consideración tienen un espacio de estado discreto, puede requerir modificaciones no triviales a los marcos de aprendizaje automático existentes para obtener algo significativo.

Suponga que de alguna manera evita estos problemas y obtiene una función de su marco de aprendizaje automático.

En la mayoría de los casos, no puede realizar un análisis del peor de los casos en esta función. Esto se debe a que, para un algoritmo, usted sabe con experiencia qué pasos introducirán errores y tiene formas de vincularlos. A menudo, cada paso de un algoritmo está cuidadosamente diseñado para que pueda realizar un análisis de errores. Pero para las funciones devueltas por los sistemas de aprendizaje automático, como SVM o redes neuronales, es muy difícil / imposible razonar dónde funcionará mal la función. Por lo tanto, el marco no es particularmente útil para la comunidad teórica de la informática.

Sin embargo, para la comunidad de investigación de operaciones, podría ser algo útil. Pero, de nuevo, hay algunos problemas por los cuales puede no ser particularmente útil. Primero, como mencioné anteriormente, generar datos imparciales y optimizar la función objetivo no es trivial. En segundo lugar, a menos que haya probado exhaustivamente la función devuelta por el sistema de aprendizaje automático con su algoritmo heurístico y demuestre que es mejor en la mayoría de los casos, es posible que no confíe lo suficiente como para usarlo en la práctica, porque para el algoritmo heurístico, usted ordena de saber que al menos hará algo razonable en la mayoría de los casos, mientras que el algoritmo de aprendizaje automático es más como una caja negra y puede salirse completamente de los rieles de vez en cuando. En tercer lugar, sabes dónde funciona mal el algoritmo heurístico y puedes mejorarlo con el tiempo. La función devuelta por el sistema de aprendizaje automático es mucho menos susceptible a tales mejoras incrementales.

En resumen, con el estado actual del aprendizaje automático y los objetivos de los problemas de NP completo, en la actualidad, no ayuda utilizar el aprendizaje automático para los problemas de NP completo.

, pero eso NO AYUDA de 2 maneras :
i) No proporciona una prueba formal sobre si un Algoritmo de tiempo polinomial [matemático] A_ {poli} [/ matemático] dado para un problema [matemático] P ^ {‘} \ en [/ matemático] NP-Complete realmente genera el mismo espacio de respuesta que [math] P ^ {‘} [/ math]. En otras palabras, uno no puede probar para cada entrada [matemática] I [/ matemática] a [matemática] P ^ {‘} [/ matemática], si [matemática] Salida (P ^ {‘} (I)) = Salida ( A_ {poly} (I)) [/ math]. Para hacerlo requiere el Halting Problem ser Decidable , que no lo es. Este algoritmo solo aproximará la distribución del problema real al “aprender” algunos ejemplos.
ii) Debido a i), en realidad no proporciona ninguna idea concreta de una relación entre [matemáticas] P [/ matemáticas] y [matemáticas] NP [/ matemáticas]. Por lo tanto, si bien puede proporcionar alguna información sobre el diseño de Algoritmos de Aproximación (y en realidad no estoy seguro de que lo haga), en realidad no proporciona nada a un Teórico de la Complejidad.

More Interesting

¿Cuál es la diferencia entre modelos discriminativos y generativos en el contexto de la segmentación de imágenes?

¿Quién usa OpenNLP?

Sistemas móviles: ¿Qué empresas / organizaciones de investigación están trabajando en el área de análisis de comportamiento / sistemas colaborativos basados ​​en dispositivos móviles?

Cuando uno usa la función de pérdida al cuadrado para la regresión, ¿significa que asume implícitamente que está agregando ruido gaussiano con la misma varianza?

¿Qué temas de matemáticas recomienda Conner Davis a alguien interesado en el aprendizaje automático teórico para aprender en su tiempo libre?

¿Hay alguna trampa en los recientes anuncios de Microsoft e IBM sobre los avances en el reconocimiento de voz?

¿Cuál es la diferencia entre regresión, clasificación y agrupamiento en el aprendizaje automático?

Cómo etiquetar objetivamente objetos con etiquetas que son subjetivas, en sistemas expertos

¿Cuáles son algunos proyectos interesantes de minería de texto en análisis político?

¿Por qué las redes convolucionales profundas llegaron tan tarde?

¿El descenso de gradiente de lote completo, con potencia de computadora ilimitada, es siempre mejor que el descenso de gradiente de mini lote?

¿Se mejorará la mayor ganancia en el reconocimiento de objetos en los algoritmos de representación y aprendizaje, en lugar de modelos simples y datos más grandes?

¿Cómo funciona el sistema de clasificación de Aarne-Thompson?

¿Cuándo es importante utilizar convoluciones cruzadas de canales y cuándo no?

¿Cuáles son algunos ejemplos de inferencia?