¿Cuáles son las desventajas del algoritmo genético?

Las principales desventajas de los GA son:

  • No hay garantía de encontrar máximos globales. Pero, de nuevo, aparte de la fuerza bruta, rara vez hay garantía de problemas no triviales. Pero la probabilidad de quedar atrapado en un máximo local desde el principio es algo con lo que tendrá que lidiar, por ejemplo, con algún tipo de disminución simulada de la tasa de mutación de recocido.
  • Tiempo necesario para la convergencia. Por lo general, necesita una población de tamaño decente y muchas generaciones antes de ver buenos resultados. Y con una gran simulación, a menudo puede esperar días para encontrar una solución.
  • Es un arte negro. Ajustar todos los parámetros para la AG, como la tasa de mutación, el porcentaje de elitismo, los parámetros cruzados, los parámetros de normalización / selección de condición física, etc., a menudo es solo prueba y error.
  • Otros aspectos complejos. Además de los parámetros genéticos de la AG, otras cosas como la función de aptitud física, la elección de la codificación genética, el mapeo de genotipo a fenotipo, etc., también son importantes en la eficacia del sistema.
  • Soluciones incomprensibles. La forma en que comunica sus deseos al sistema es a través de la función fitness. Pero los GA lo tomarán literalmente, sin absolutamente ningún sentido común. El resultado podría ser totalmente loco, ineficiente o incomprensible desde el punto de vista de la ingeniería. Debes tener mucho cuidado al diseñar tu función de fitness.

Los enfoques actuales de AI y ML son de naturaleza estadística y no pueden generar modelos o descubrir mecanismos causales a partir de datos (a veces los científicos ayudan con AI y ML pero nit AI o ML ellos mismos, y las personas se confunden creyendo que es AI o ML).

Las tendencias y métodos, incluido el aprendizaje profundo, son enfoques de caja negra que funcionan increíblemente bien para describir datos pero proporcionan poca o ninguna comprensión de los mecanismos de generación. Como consecuencia, tampoco pueden ser escalables a dominios para los que no fueron entrenados, y requieren toneladas de datos para ser entrenados antes de hacer algo interesante, y necesitan capacitación cada vez que se les presentan (incluso un poco) datos diferentes .

Con suerte, AI y ML se incorporarán más a los enfoques basados ​​en modelos dejando atrás las estadísticas tradicionales e incorporando los primeros principios universales algorítmicos. Esto significa impulsar la ciencia fundamental en lugar de simplemente lanzar más recursos computacionales para resolver todo como lo hacen la IA y el ML actuales.

Los ejemplos anteriores potentes de enfoques basados ​​en modelos incluyen el modelado de ecuaciones diferenciales, pero esos enfoques también han carecido de los mecanismos para explorar y actualizar (y por lo tanto mejorar y escalar) modelos y, por lo tanto, lo que se necesita son enfoques fuertes basados ​​en el ciclo de datos modelo. Afortunadamente, estamos avanzando en esa dirección, aquí nuestro enfoque orientado a la causalidad basado en la inferencia computacional dinámica:

Un cálculo de información algorítmica para el descubrimiento causal y los sistemas de reprogramación

Al principio, los resultados pueden parecer menos impresionantes en comparación con las noticias sobre el aprendizaje profundo (DL) que golpea a los humanos en Go, etc. Y hay razones para estar entusiasmado con eso, ya que DL es una herramienta muy poderosa para extraer y analizar datos. El DL eventualmente se incorporará al conjunto de herramientas que los científicos de datos aplicarán por defecto, al igual que las personas hacen análisis de regresión lineal (DL es en realidad un análisis de regresión con esteroides). Sin embargo, los científicos fundamentales continúan empujando desde la dirección opuesta hacia el modelado y la comprensión en lugar de reducir los números de los datos.

Por ejemplo, el documento anterior muestra cómo un motor puede generar modelos casi óptimos a partir de observaciones naturales o inducidas para crear mecanismos generadores que reproduzcan el sistema que a su vez reproduzca los datos, proporcionando así una comprensión profunda de las causas y los medios de dirección para manipularlos. , algo que queremos hacer si queremos, por ejemplo, curar enfermedades en lugar de tratarlas, por mencionar solo un ejemplo. En este otro documento, una aplicación del método anterior podría modelar aspectos de la evolución natural que han permanecido misteriosos (por ejemplo, explosiones de diversidad, la aparición de genes, etc.) y también pueden acelerar los algoritmos evolutivos naturales y artificiales:

[1709.00268] Las mutaciones algorítmicamente probables reproducen aspectos de la evolución, como la tasa de convergencia, la memoria genética, la modularidad, las explosiones de diversidad y la extinción en masa.

Las desventajas de usar GA de la manera que mencionaste:

  • Demasiado ajustado.
  • Como no puede generar todas las permutaciones posibles de agujeros y bloques disponibles, es probable que tenga un ajuste excesivo con sus datos de muestra utilizando el enfoque simple ponderado que mencionó
  • Por el contrario, si no entrena el algo el tiempo suficiente (generaciones), entonces la usabilidad sería baja.
  • Tiempo de optimización (que ya notó)
  • Los resultados y pros / contras también dependen de si:

    • ¿Ajustan las tasas de mutación con generaciones?
    • ¿Utiliza el elitismo, si es así, qué tipo y cómo varía con las generaciones?
    • etc.

    Sugerencia para un mejor rendimiento:

    • En lugar de un enfoque simple ponderado, agregue un sistema inteligente intermedio y optimice ese sistema.
    • Por ejemplo, los pesos de una red neuronal o los parámetros de un sistema de lógica difusa.

    Los GA son, como han mencionado otros aquí, conocidos por largos tiempos de entrenamiento. Sin embargo, dado que algunas de las soluciones pueden ser extremadamente complicadas, existe otro inconveniente: puede ser demasiado lento para los juegos en tiempo real.

    Uno de los elementos de Tetris es la destreza física. La obra debe ser casi reflexiva. Lo comparo con tratar de mejorar el juego de tenis con un GA.

    Por mucho que he trabajado en GA, la convergencia aleatoria de soluciones en un problema variante con respecto a una función de aptitud es la principal desventaja del algoritmo genético. Además, el tiempo que consume el algoritmo de optimización también es alto, ya que involucra tantos parámetros. Y se prefiere GA para un conjunto de soluciones binarias, por lo que muchas de las declaraciones del problema no prefieren GA para optimizar su función respectiva.

    La desventaja muy básica del algoritmo genético es su mutación no guiada. El operador de mutación en GA funciona como agregar un número generado aleatoriamente a un parámetro de un individuo de la población. Esta es la única razón de una convergencia muy lenta del algoritmo genético. Podemos eliminar este problema combinándolo con algunos otros algoritmos que realizan búsquedas guiadas como la evolución diferencial.

    More Interesting

    ¿Debo comenzar a aprender programación de computadoras con CS50 o con un libro de estructuras de datos y algoritmos?

    ¿Cuáles son los mejores recursos para aprender R? Tratando de construir mi propio algoritmo de predicción basado en datos anteriores que tengo en archivos csv y que solía ser un desarrollador de Ruby hace un par de años

    Cómo calcular [matemáticas] a ^ {\ binom {n} {r}} [/ matemáticas] de manera eficiente

    Cómo imprimir rutas en forma DFS en gráficos

    ¿Cómo abordar este problema gráfico? ¿Es NP-completo?

    ¿Cómo funciona el algoritmo de 'conteo' de Gmail?

    En la programación de computadoras, ¿es cierto que una recursión funcionará mejor para encontrar todas las rutas posibles que los bucles anidados?

    Cómo resolver este problema de matriz (detalles en la descripción)

    ¿Cuál es la complejidad temporal de la solución del problema del vendedor ambulante mediante la optimización de colonias de hormigas?

    ¿Puedo obtener el algoritmo para un enfoque iterativo en una búsqueda binaria de doble pivote?

    ¿Cuál es la mejor manera de crear una estructura de datos basada en valores clave en C ++ que admita memoria compartida entre procesos usando C ++ 11?

    ¿Crees que KNN tiene privilegios en comparación con otros algoritmos de aprendizaje automático porque aprende con el tiempo?

    ¿Cuál es tu problema de programación dinámica favorito?

    ¿Qué SDK y lenguaje de programación debo usar para codificar algoritmos de aprendizaje automático para predicciones en tiempo real?

    ¿Cuál es la elección ideal de algoritmos, bibliotecas en PNL y aprendizaje automático para construir un bot de chat?