title: Red neuronal prealimentada
text: # Red neuronal prealimentada
  
  Una red neuronal prealimentada (feed-forward en inglés) es una red neuronal artificial donde las conexiones entre las unidades no forman un ciclo. Estas son diferentes de las redes neuronales recurrentes.
  
  La red neuronal prealimentada fue la primera y más sencilla forma de red neuronal artificial ideada. En esta red, la información se mueve en una única dirección: adelante. De los nodos de entrada, a través de los nodos escondidos (si los hay) hacia los nodos de salida. No hay ningún ciclo o bucle en estas redes.
  
  ## Perceptrón de una capa
  
  El tipo más sencillo de red neuronal es el perceptrón de una capa, el cual consta de una sola capa de nodos de salida; las entradas están conectadas directamente a las salidas a través de una serie de ponderaciones. Es por esto que puede ser considerada el tipo más sencillo de red prealimentada. La suma de los productos de las ponderaciones y las entradas es calculada en cada nodo y, si el valor es superior a algún umbral (típicamente 0), la neurona es disparada y toma el valor de activación (típicamente 1); de forma contraria, toma el valor de desactivación (típicamente -1). Las neuronas con esta clase de función de activación son también llamadas neuronas artificiales o unidades de umbral lineal. Muchos autores usan el término perceptrón para las redes que constan de únicamente una de estas unidades. Una neurona similar ha sido descrita por Warren McCulloch y Walter Pitt en la década de 1940.
  
  Un perceptrón puede ser creado utilizando cualesquier valor para los estados activado y desactivado siempre y cuando el valor del umbral se encuentre entre ambos extremos. La mayoría de los perceptrones tienen salidas con valor 1 o -1 con un umbral de 0 y hay evidencia de que tales redes pueden ser entrenadas más deprisa que las redes creadas por nodos con valores de desactivación y activación diferentes.
  
  Los perceptrones pueden ser entrenados por medio de un algoritmo de aprendizaje sencillo que es normalmente llamado regla delta. Ésta calcula los errores entre la salida calculada y salida de los datos de muestra y utiliza ello para crear un ajuste a las ponderaciones implementando para ello una forma de descenso de gradiente.
  
  Perceptrones de unidad única son sólo capaces de aprender patrones con separabilidad lineal. En 1969 en una monografía famosa titulada Perceptrons, Marvin Minsky y Seymour Papert mostraron que es imposible para un perceptrón de unidad única aprender una función XOR. Es a menudo asumido que ellos también conjeturaron, incorrectamente, que un resultado similar sería obtenido con un perceptrón multicapa. Sin embargo, esto no es cierto, ya que ambos, Minsky y Papert, ya sabían que los perceptrones multicapa eran capaces de formar una función XOR. (Ver el artículo de perceptrón para más información.)
  
  A pesar de que una unidad de umbral por sí sola es bastante limitada en su poder computacional, ha sido mostrado que las redes de unidades de umbral paralelas pueden aproximar cualquier función continua de un intervalo compacto de los números reales al intervalo [-1,1]. Este resultado puede ser encontrado en el artículo de Peter Auer, Harald Burgsteiner y Wolfgang Maass titulado "A learning rule for very simple universal approximators consisting of a single layer of perceptrons".
  
  Un red neuronal multicapa puede computar una salida continua en vez de una función escalonada. Una elección común es la renombrada función logística:
  
      $y={\frac {1}{1+e^{-x}}}$
  
  (En forma general, f(X) está en el sitio de x, donde f(X) es una función analítica en relación con las x.) Con esta elección, la red de capa única es idéntica al modelo de regresión logística, ampliamente utilizado en modelado estadístico. La función logística es también conocida como función sigmoide. Tiene una derivada continua, la cual le deja ser utilizada en propagación hacia atrás. Esta función es también utilizada porque su derivada es fácilmente calculable:
  
      $y'=y(1-y)$(multiplicado por ${\frac {df}{dX}}$, en forma general, según la regla de la cadena)
  
  ## Perceptrón multicapa
  
  Esta clase de redes consta de capas múltiples de unidades computacionales, normalmente interconectados de una manera prealimentada. Cada neurona en una capa tiene conexiones dirigidas a las neuronas de la capa siguiente. En muchas aplicaciones las unidades de estas redes realizan una función sigmoide como función de activación.
  
  El teorema de aproximación universal para redes neuronales establece que cada función continua que mapea intervalos de números reales a algún intervalo de salida de números reales puede ser aproximado arbitrariamente por un perceptrón multicapa con una sola capa escondida. Este resultado es válido para una amplia gama de funciones de activación, p. ej. para funciones sigmoides.
  
  Redes multicapa utilizan una variedad de técnicas de aprendizaje, entre las cuales la más popular es la de Propagación hacia atrás. Aquí, los valores de salida son comparados con la respuesta correcta para computar el valor de alguna función de error predefinida. Por medio de varias técnicas, el error es entonces retroalimentado a través de la red. Utilizando esta información, el algoritmo ajusta las ponderaciones de cada conexión para reducir el valor de la función de error en cantidades pequeñas. Después de repetir este proceso por un número suficientemente grande de ciclos de entrenamiento, la red normalmente convergerá en algún estado donde el error de los cálculos sea pequeño. En este caso, uno diría que la red ha aprendido una función objetivo en específico. Para ajustar las ponderaciones correctamente, uno aplica un método general para optimización no lineal denominado descenso de gradiente. Para ello, la derivada de la función de error con respetacto a las ponderaciones de la red es calculada y las últimas son modificadas de tal manera que el error disminuye (así pues yendo en picada a lo largo de la superficie de la función de error). Por esta razón, a propagación hacia atrás sólo puede ser aplicada en redes con funciones de activación diferenciables.
  
  En general, el problema de enseñar a una red para rendir adecuadamente, incluso en muestras que no fueron utilizadas como muestras de entrenamiento, es que es un tema bastante complejo que requiere técnicas adicionales. Esto es especialmente importante para casos donde sólo números muy limitados de muestras para entrenamiento están disponibles. El peligro es que la red tenga un Sobreajuste en los datos de fentrenamiento y falle en capturar el verdadero proceso estadístico que genera los datos. La teoría de aprendizaje computacional se enfoca en entrenar clasificadores en una cantidad limitada de datos. En el contexto de redes neuronales un heurísticos sencillo, llamado parado temprano, a menudo asegura que la red generalizará bien por medio de ejemplos que no se encuentran en el conjunto de entrenamiento.
  
  Otros problemas típicos del algoritmo de propagación hacia atrás es la velocidad de convergencia y la posibilidad de terminar en un mínimo local de la función de error. Hoy existen métodos prácticos que hacen de la propagación hacia atrás en perceptrones multicapa la herramienta de elección para muchas tareas de aprendizaje automático.
  
  