¿Qué es lo mejor para entrenar una red neuronal artificial, un algoritmo de retropropagación o un algoritmo genético?

Una forma de ver una red neuronal en función de varias minimas locales.

Imagine la capa de entrada, todo se alimenta a varios nodos de la segunda capa. ¿Imagina lo que hace que varios nodos en la segunda capa sean diferentes entre sí? Si los inicializa igual, todos se comportarán igual … entonces, dependiendo de cómo inicialice los nodos, cada nodo encuentra un mínimo local en el espacio donde los inicializa. La capa posterior se construye sobre los mínimos locales encontrados por la capa anterior.

Ahora mire el algoritmo genético. Se usa para encontrar el mejor punto óptimo, posiblemente un mínimo global cuando hay varios mínimos locales … Por selección natural. cruzado y mutación, GA puede, en mi débil entendimiento, funcionar mejor que la red neuronal … pero NN ha evolucionado con CNN, RNN y similares … Incorporar todo eso en GA, sería difícil. No estoy seguro si some1 ha intentado todo esto …

Los siguientes son los dos mejores algoritmos de entrenamiento para entrenar una red neuronal artificial:

  • Descenso de gradiente: este algoritmo itera hasta encontrar un mínimo en nuestra función. Pero el punto a tener en cuenta aquí es que nuestra función debe ser convexa o, de lo contrario, este algoritmo puede atascarse en un mínimo local.
  • Ecuación normal: este algoritmo es mucho más rápido que el gradiente de descenso si nuestro conjunto de observaciones de entrada es más pequeño (~ 10000). Como este algoritmo encuentra el inverso de una matriz (que tiene una complejidad temporal de O (n ^ 3)) puede tomar mucho tiempo para conjuntos de datos más largos. Para conjuntos de datos tan grandes, podemos elegir Descenso de degradado.

La retropropagación no es un algoritmo de entrenamiento, es un algoritmo para calcular el gradiente. El descenso de gradiente es un algoritmo de entrenamiento.

El descenso de gradiente es mucho mejor para las redes neuronales que los algoritmos genéticos. El descenso por gradiente suele ser mejor que los algoritmos genéticos siempre que sea posible el descenso por gradiente. Si tiene una función que opera en n entradas, el descenso de gradiente usa el gradiente n-dimensional como información sobre dónde debe buscar a continuación. Los algoritmos genéticos utilizan solo el valor unidimensional generado por la función, por lo que no obtienen tanta información sobre dónde buscar.

Si bien el descenso de gradiente basado en propagación hacia atrás se utiliza para optimizar los pesos de una red neuronal para minimizar una función de pérdida, los métodos no basados ​​en gradiente, como la optimización bayesiana o GA, se utilizan para optimizar la estructura de la red y los hiperparámetros, como las tasas de aprendizaje, decadencia de peso, etc.

Propagación hacia atrás, sin preguntas. Obtiene una señal de retroalimentación 1-D para un algoritmo genético y una señal de retroalimentación ND para retropropagación.