¿Cuándo deben usarse las redes neuronales y cuándo deben usarse los algoritmos genéticos? Cuáles son las diferencias entre ellos?

Las redes neuronales operan con reglas de aprendizaje que buscan los mejores parámetros (peso) para una categoría particular de modelos: redes de neuronas. El enfoque general es seguir el negativo del gradiente del error.

Los algoritmos genéricos son en su mayoría libres de modelos. Aunque, por lo general, las personas piensan en términos de genes y cromosomas, esto es realmente solo una analogía. La configuración de cualquier modelo con cualquier número de parámetros de cualquier tipo puede modelarse como una secuencia (genoma) de parámetros (genes). Los algoritmos genéticos usan una población de modelos (individuos) con parámetros aleatorios, y usan recombinación, mutación y selección para optimizar la función de aptitud.

Al contrario de lo que han respondido otras personas, no existe realmente una diferencia entre la predicción y la optimización: un problema planteado de una manera, se puede establecer fácilmente del otro tipo:
Predicción o aprendizaje == optimización de 1 / error.

Puede entrenar una red neuronal con un algoritmo genético, utilizando 1 / error de predicción como función de aptitud. Los pesos en la red neuronal se modelan como los genes (o alelo, para usar la terminología biológica más precisa). Empiezas con una población de redes neuronales y aplicas el algoritmo genético a través de generaciones sucesivas.

Tanto las redes neuronales como los algoritmos genéticos tienden a seguir la dirección general de reducir el error / maximizar la aptitud (óptimos locales, un lado). Pero los detalles de cómo lo hacen, y el camino que siguen, es diferente.

La red neuronal aprende / optimiza sus pesos con un algoritmo más específico: el gradiente de error desciende con funciones de salida neural que son diferenciables. La regla de aprendizaje tiene un conocimiento incorporado del mecanismo del modelo. Algoritmo genético no.
Entonces, en principio, para el tipo de problemas que una red neuronal es más adecuada, las redes neuronales tienden a ser las mejores. El problema es saber a priori para un problema particular, qué modelo neural es el mejor, si lo hay.

Los algoritmos genéticos son “ciegos” a los mecanismos de la máquina (de aprendizaje o de otro tipo) que está optimizando. Por lo tanto, pueden aplicarse con éxito en una gama más amplia de modelos, pero probablemente no aprendan / converjan tan rápido como un modelo de red neuronal para los problemas y conjuntos de datos que son realmente buenos / adecuados para la clasificación de la red neuronal.

(La declaración anterior sobre “ceguera” puede ser validada intuitivamente simplemente mirando la amplia variedad de criaturas vivientes que la selección natural ha estado produciendo en la Tierra. Es cierto que todos usan ADN, pero más allá del nivel básico de organización, tienden a ser muy diferente, al menos a nivel macroscópico.
En algoritmos genéticos esto es aún más cierto, ya que todos los problemas de descubrimiento / optimización de parámetros se pueden mapear como un cromosoma (secuencia de parámetros) y no requieren ninguna maquinaria común real, es decir. sin necesidad de ADN virtual)

Además, el modelo de redes neuronales puede / tiende a ser más rápido y computacionalmente más barato si la población es grande, especialmente si la función de aptitud es costosa de calcular (por ejemplo, en la simulación de organismos virtuales, en lugar de simplemente calcular una función matemática).

También puede combinar ambos de manera rentable (como lo hace la madre naturaleza).
Seleccione la población para la capacidad de aprender mejor.
Puede usar los algoritmos genéticos para cambiar más parámetros estructurales en la red neuronal, como el número de unidades neuronales y el grado de interconectividad.

Así que aprende ambas cosas … y diviértete construyendo maquinaria de predicción / aprendizaje honorable en la naturaleza …: o)

Curiosamente, ambos “aprenden”, pero lo hacen de una manera diferente.

Las redes neuronales simulan la forma en que funcionan las neuronas, aunque más bien aproximadamente. En la vida real, las neuronas se activan por un voltaje de umbral que dispara un pulso saliente a otras neuronas, y el voltaje de entrada es una especie de suma de las entradas.

Las redes neuronales simulan la activación por “pesos” y las neuronas por “nodos”.

Las redes neuronales necesitan ser “entrenadas”. Si tiene ciertas entradas que deberían dar ciertas salidas, puede ponderar los nodos de manera diferente dependiendo de qué tan cerca se aproximaron al resultado final. La esperanza es que con el entrenamiento repetido, una red neuronal puede brindarle los resultados apropiados en función de cualquier nueva entrada.

En cierto modo, pueden considerarse similares a los algoritmos genéticos aunque solo sea porque hay generaciones repetidas y el éxito es recompensado, el fracaso castigado.

Los algoritmos genéticos son de alguna manera un poco menos genéricos. Funcionan de acuerdo con un modelo evolutivo, lo que significa que tienen algunas partes comunes: un medio de variación, un medio de selección basado en lo que es mejor y la generación de múltiples candidatos por “generación”.

La parte más difícil es determinar cómo dividir el problema en cuestión en piezas “genéticas”. El dominio de su problema tiene que poder dividirse esencialmente en objetos funcionales que se puedan encadenar como instrucciones para formar un proceso.

Una vez que tenga algunos objetos funcionales que se pueden combinar, necesita una “función de condición física”. Este es esencialmente un número que refleja cuán cerca está el resultado del resultado deseado.

A menudo, usted mantiene la receta genética, es decir, la lista de objetos funcionales que dieron el máximo valor de la función de estado físico, y hace múltiples copias y las varía.

Cómo los varías puede ser interesante. Puede insertar pasos aleatorios, eliminar pasos, sustituir pasos; esto puede denominarse “mutación”. Incluso puede “reproducirse” hasta cierto punto haciendo cosas muy parecidas a los cromosomas como cruces (tome las dos listas de instrucciones más exitosas y mezcle las instrucciones entre sí)

Los algoritmos genéticos pueden converger en algo muy bueno bastante rápido, pero sufre algunas de las mismas cosas que se encuentran en la naturaleza. Por ejemplo, el resultado puede no ser el mejor posible, pero no se pueden encontrar otras soluciones porque puede haber picos locales que el algoritmo no puede volver a bajar porque está muy decidido a maximizar el resultado de la función de condición física.

Muchos problemas pueden abordarse mediante cualquiera de los enfoques. Sin embargo, las características de cada enfoque tienen sus fortalezas y debilidades.

Te sugiero que describas el problema que estás interesado en resolver y que nos permitas describir los pros y los contras de cada pariente en relación con ese problema específico. Mientras tanto, te daré una respuesta breve.

Quizás el mayor problema con las NN es la eliminación de “datos incorrectos”. Las NN no son muy buenas para los problemas que tienen muchos “datos incorrectos” porque su objetivo es ser perfecto.

Ejemplo: quieres predecir carreras de caballos. A medida que observa los datos de la carrera, tiene una carrera en la que el caballo número 1 se cayó de la puerta, llevándose consigo a los números 2, 3 y 4. Esto permitió al # 8 un tiro largo, para ganar en 80-1.

Si le da estos datos a la NN, JUSTIFICARÁ por qué ganó ese caballo. Es decir, ENCONTRARÁ UN CAMINO para que ese caballo de 80-1 sea el mejor en la carrera. Por lo tanto, razas como esa deben ser seleccionadas de los datos.

Los GA, por otro lado, suelen ser muy buenos para manejar “datos incorrectos”. Como todo se trata de pesos, no hay necesidad intrínseca de que el motor sea perfecto.

Por cierto, no todos los datos tan malos son tan obvios como el ejemplo que di. El verdadero problema detrás del uso de un NN para misiones probabilísticas es que obliga a un alto grado de detección de datos.

No confunda “datos incorrectos” con datos “difusos”. Por ejemplo, considere el reconocimiento óptico de caracteres. Lo que hace que funcione es que hay algún tipo de capacitación asistida por el usuario donde el usuario corrige los errores de la NN. Imagine lo que sucede si un entrenador dice erróneamente que una letra A es en realidad una O. ¡Con una muestra relativamente pequeña de datos, esto pondrá un NN al revés! (Este es otro ejemplo de datos incorrectos).

Una diferencia fundamental es que, en términos de aprendizaje automático, una red neuronal es una hipótesis, mientras que un algoritmo genético es un algoritmo de optimización. Puede usar este último para optimizar el primero.

La red neutral se aplica en caso de aprendizaje artificial o inteligencia artificial. La red neuronal podrá predecir los resultados futuros de un sistema basado en datos recopilados previamente. Por otro lado, los algoritmos genéticos se utilizan con fines de optimización. Piense en una colección de objetos y cada uno tiene propiedades como volumen, masa, peso, color, etc. Si desea seleccionar un conjunto específico de objetos con el objetivo de lograr alguna medida basada en las propiedades de los objetos recolectados, entonces debe intentar Todas las combinaciones. Piense en una situación si el número de objetos es 100000 o más. Por lo tanto, será casi imposible calcular todas las combinaciones y tomará una enorme cantidad de tiempo. Ahí es donde entra el algoritmo genético.

En resumen, se puede decir que la red neutral es para el aprendizaje artificial y el algoritmo genético para los problemas de optimización.

Una red neuronal encontrará una función que predice salidas de entradas a partir de un conjunto de ejemplos. Podría entrenar una red neuronal neuronal con ejemplos de datos de la casa: área del piso, distrito, edad, estado y precio de venta. Una vez entrenado, podría darme un precio de venta dado un área de piso, distrito, edad, condición, incluso por ejemplos que no ha visto antes.

Un algoritmo genético encuentra las entradas que dan la mejor salida. Podría configurar un algoritmo genético que pudiera encontrar la hélice de mayor rendimiento dadas las dimensiones clave de la hélice y la función que relaciona el rendimiento con las dimensiones.