Neuroevolución - Neuroevolution

Neuroevolución , o neuro-evolución , es una forma de inteligencia artificial que utiliza algoritmos evolutivos para generar redes neuronales artificiales (ANN), parámetros, topología y reglas. Se aplica más comúnmente en la vida artificial , juegos generales y robótica evolutiva . El principal beneficio es que la neuroevolución se puede aplicar de manera más amplia que los algoritmos de aprendizaje supervisado , que requieren un programa de estudios de pares de entrada y salida correctos. En contraste, la neuroevolución requiere solo una medida del desempeño de una red en una tarea. Por ejemplo, el resultado de un juego (es decir, si un jugador ganó o perdió) se puede medir fácilmente sin proporcionar ejemplos etiquetados de las estrategias deseadas. La neuroevolución se usa comúnmente como parte del paradigma del aprendizaje por refuerzo , y se puede contrastar con las técnicas convencionales de aprendizaje profundo que usan el descenso de gradiente en una red neuronal con una topología fija.

Características

Se han definido muchos algoritmos de neuroevolución . Una distinción común es entre los algoritmos que evolucionan solo la fuerza de los pesos de conexión para una topología de red fija (a veces llamada neuroevolución convencional), en contraposición a los que evolucionan tanto en la topología de la red como en sus pesos (llamados TWEANN, para Topología y Peso Evolución de los algoritmos de redes neuronales artificiales.

Se puede hacer una distinción separada entre los métodos que hacen evolucionar la estructura de las RNA en paralelo a sus parámetros (los que aplican algoritmos evolutivos estándar) y los que los desarrollan por separado (a través de algoritmos meméticos ).

Comparación con el descenso de gradientes

La mayoría de las redes neuronales utilizan el descenso de gradientes en lugar de la neuroevolución. Sin embargo, alrededor de 2017, los investigadores de Uber declararon que habían descubierto que los algoritmos de neuroevolución estructural simples eran competitivos con los sofisticados algoritmos modernos de aprendizaje profundo de descenso de gradientes estándar de la industria , en parte porque se encontró que era menos probable que la neuroevolución se atascara en mínimos locales. En Science , el periodista Matthew Hutson especuló que parte de la razón por la que la neuroevolución está teniendo éxito donde antes había fallado se debe al aumento de la capacidad de cálculo disponible en la década de 2010.

Codificación directa e indirecta

Los algoritmos evolutivos operan sobre una población de genotipos (también denominados genomas ). En la neuroevolución, un genotipo se asigna a un fenotipo de red neuronal que se evalúa en alguna tarea para derivar su aptitud .

En los esquemas de codificación directa, el genotipo se asigna directamente al fenotipo. Es decir, cada neurona y conexión de la red neuronal se especifica directa y explícitamente en el genotipo. Por el contrario, en los esquemas de codificación indirecta, el genotipo especifica indirectamente cómo se debe generar esa red.

Las codificaciones indirectas se utilizan a menudo para lograr varios objetivos:

  • modularidad y otras regularidades;
  • compresión del fenotipo a un genotipo más pequeño, proporcionando un espacio de búsqueda más pequeño;
  • mapeo del espacio de búsqueda (genoma) al dominio del problema.

Taxonomía de sistemas embriogénicos para codificación indirecta

Las codificaciones tradicionalmente indirectas que emplean embriogenia artificial (también conocida como desarrollo artificial ) se han categorizado según las líneas de un enfoque gramatical frente a un enfoque de química celular . El primero desarrolla conjuntos de reglas en forma de sistemas de reescritura gramatical. Este último intenta imitar cómo emergen las estructuras físicas en biología a través de la expresión génica. Los sistemas de codificación indirecta a menudo utilizan aspectos de ambos enfoques.

Stanley y Miikkulainen proponen una taxonomía para sistemas embriogénicos que pretende reflejar sus propiedades subyacentes. La taxonomía identifica cinco dimensiones continuas, a lo largo de las cuales se puede colocar cualquier sistema embriogénico:

  • Destino celular (neurona) : las características finales y el papel de la célula en el fenotipo maduro. Esta dimensión cuenta el número de métodos utilizados para determinar el destino de una celda.
  • Orientación : método mediante el cual se dirigen las conexiones desde las células de origen a las células de destino. Esto va desde la orientación específica (la fuente y el destino se identifican explícitamente) hasta la orientación relativa (por ejemplo, según la ubicación de las celdas entre sí).
  • Heterocronía : el momento y el orden de los eventos durante la embriogenia. Cuenta el número de mecanismos para cambiar la sincronización de eventos.
  • Canalización : qué tan tolerante es el genoma a las mutaciones (fragilidad). Varía desde requerir instrucciones genotípicas precisas hasta una alta tolerancia a mutaciones imprecisas.
  • Complejificación : la capacidad del sistema (incluido el algoritmo evolutivo y el mapeo de genotipo a fenotipo) para permitir la complejación del genoma (y por lo tanto del fenotipo) a lo largo del tiempo. Varía desde permitir solo genomas de tamaño fijo hasta permitir genomas de longitud muy variable.

Ejemplos de

Ejemplos de métodos de neuroevolución (aquellos con codificación directa son necesariamente no embriogénicos):

Método Codificación Algoritmo evolutivo Aspectos evolucionados
Evolución neurogenética por E. Ronald, 1994 Directo Algoritmo genético Pesos de la red
Codificación celular (CE) por F. Gruau, 1994 Indirecto, embriogénico (árbol gramatical usando expresiones-S ) Programación genética Estructura y parámetros (simultáneos, complexificación)
GNARL por Angeline et al., 1994 Directo Programación evolutiva Estructura y parámetros (simultáneos, complexificación)
EPNet por Yao y Liu, 1997 Directo Programación evolutiva (combinada con retropropagación y recocido simulado ) Estructura y parámetros (mixto, complexificación y simplificación)
NeuroEvolution of Augmenting Topologies (NEAT) por Stanley y Miikkulainen, 2002 Directo Algoritmo genético . Rastrea genes con marcas históricas para permitir el cruce entre diferentes topologías, protege la innovación a través de la especiación. Estructura y parámetros
NeuroEvolución de topologías aumentadas basada en hipercubos (HyperNEAT) por Stanley, D'Ambrosio, Gauci, 2008 Indirecto, no embriogénico (los patrones espaciales generados por una red productora de patrones de composición (CPPN) dentro de un hipercubo se interpretan como patrones de conectividad en un espacio de menor dimensión) Algoritmo genético . El algoritmo NEAT (arriba) se utiliza para desarrollar el CPPN. Parámetros, estructura fija (funcionalmente completamente conectado)
NeuroEvolución de topologías aumentadas basada en hipercubo de sustrato evolutivo (ES-HyperNEAT) por Risi, Stanley 2012 Indirecto, no embriogénico (los patrones espaciales generados por una red productora de patrones de composición (CPPN) dentro de un hipercubo se interpretan como patrones de conectividad en un espacio de menor dimensión) Algoritmo genético . El algoritmo NEAT (arriba) se utiliza para desarrollar el CPPN. Parámetros y estructura de la red
Adquisición evolutiva de topologías neuronales (EANT / EANT2) por Kassahun y Sommer, 2005 / Siebel y Sommer, 2007 Directa e indirecta, potencialmente embriogénica (codificación genética común) Programación evolutiva / Estrategias de evolución Estructura y parámetros (por separado, complexificación)
Interactiva restringida Neuro-Evolución (ICONE) por Rempis 2012 Directo, incluye máscaras de restricción para restringir la búsqueda a variedades de topología / parámetros específicos. Algoritmo evolutivo . Utiliza máscaras de restricción para reducir drásticamente el espacio de búsqueda mediante la explotación del conocimiento del dominio . Estructura y parámetros (por separado, complexificación, interactivos)
Red neuronal Deus Ex (DXNN) por Gene Sher, 2012 Directo / Indirecto, incluye restricciones, ajuste local y permite la evolución para integrar nuevos sensores y actuadores. Algoritmo memético . Evoluciona la estructura y los parámetros de la red en diferentes escalas de tiempo. Estructura y parámetros (por separado, complexificación, interactivos)
Arquitectura de neuroevolución unificada de espectro diverso (SUNA) por Danilo Vasconcellos Vargas, Junichi Murata ( Código de descarga ) Directo, introduce la Representación Neural Unificada (representación que integra la mayoría de las características de la red neuronal de la literatura). El algoritmo genético con un mecanismo de preservación de la diversidad llamado diversidad de espectro que escala bien con el tamaño de los cromosomas, es independiente del problema y se enfoca más en obtener diversidad de comportamientos / enfoques de alto nivel. Para lograr esta diversidad, se introduce el concepto de espectro cromosómico y se utiliza junto con un mapa de población novedoso . Estructura y parámetros (mixto, complexificación y simplificación)
Evolver modular basado en agentes (MABE) de Clifford Bohm, Arend Hintze y otros. ( Código de descarga ) Codificación directa o indirecta de redes de Markov , redes neuronales, programación genética y otros controladores personalizables arbitrariamente. Proporciona algoritmos evolutivos, algoritmos de programación genética y permite algoritmos personalizados, junto con la especificación de restricciones arbitrarias. Los aspectos evolucionables incluyen el modelo neuronal y permite la evolución de la morfología y la selección sexual entre otros.
Adaptación de la matriz de covarianza con el algoritmo de cuadrícula adaptativa ordenada por hipervolumen (CMA-HAGA) de Shahin Rostami y otros., Directo, incluye una función de atavismo que permite que los rasgos desaparezcan y reaparezcan en diferentes generaciones. Objetivo-Multi estrategia de evolución con Articulación Preferencia ( Computacional de dirección ) Estructura, ponderaciones y sesgos.

Ver también

Referencias

enlaces externos