Logotipo de Zephyrnet

Red neuronal Feedforward: sus capas, funciones e importancia

Fecha:

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

Introducción

Las Redes Neuronales Feedforward, también conocidas como Redes Feedforward Profundas o Perceptrones Multicapa, son el foco de este artículo. Por ejemplo, las redes neuronales convolucionales y recurrentes (que se utilizan ampliamente en aplicaciones de visión artificial) se basan en estas redes. Haremos todo lo posible para comprender las ideas clave de una manera atractiva y práctica sin tener que profundizar demasiado en las matemáticas.

Los motores de búsqueda, la traducción automática y las aplicaciones móviles dependen de tecnologías de aprendizaje profundo. Funciona estimulando el cerebro humano en términos de identificación y creación de patrones a partir de varios tipos de información.

Una red neuronal feedforward es un componente clave de esta fantástica tecnología, ya que ayuda a los desarrolladores de software con el reconocimiento y la clasificación de patrones, la regresión no lineal y la aproximación de funciones.

Echemos un vistazo más de cerca a este aspecto fundamental de la construcción de la red neuronal.

¿Qué es la red neuronal Feedforward?

Una red neuronal feedforward es un tipo de red neuronal artificial en la que las conexiones de los nodos no forman un bucle.

A menudo denominadas redes multicapa de neuronas, las redes neuronales de avance se denominan así porque toda la información fluye solo hacia adelante.

Los datos ingresan a los nodos de entrada, viajan a través de las capas ocultas y eventualmente salen de los nodos de salida. La red carece de enlaces que permitan que la información que sale del nodo de salida se envíe de vuelta a la red.

El propósito de las redes neuronales feedforward es aproximar funciones.

Hay un clasificador que usa la fórmula y = f* (x).

Esto asigna el valor de la entrada x a la categoría y.

La red feedforward será y = f (x; θ). Luego memoriza el valor de θ que más se aproxima a la función.

Como se muestra en la aplicación Google Photos, una red neuronal de avance sirve como base para la detección de objetos en las fotos.

Las capas de una red neuronal Feedforward

Los siguientes son los componentes de una red neuronal feedforward:

Capa de entrada

Contiene las neuronas que reciben información. Los datos se pasan posteriormente al siguiente nivel. El número total de neuronas de la capa de entrada es igual al número de variables en el conjunto de datos.

Capa oculta

Esta es la capa intermedia, que está oculta entre las capas de entrada y salida. Esta capa tiene una gran cantidad de neuronas que realizan alteraciones en las entradas. Luego se comunican con la capa de salida.

Capa de salida

Es la última capa y depende de la construcción del modelo. Además, la capa de salida es la característica esperada, ya que conoce el resultado deseado.

Pesos de neuronas

Los pesos se utilizan para describir la fuerza de una conexión entre las neuronas. El rango del valor de un peso es de 0 a 1.

Función de costo en la red neuronal Feedforward

La función de costo es un factor importante de una red neuronal feedforward. Generalmente, los ajustes menores a los pesos y sesgos tienen poco efecto en los puntos de datos categorizados. Por lo tanto, para determinar un método para mejorar el desempeño haciendo ajustes menores a los pesos y sesgos utilizando una función de costo uniforme.

La función de costo del error cuadrático medio se define de la siguiente manera:

w = pesos recogidos en la red

b = sesgos

n = número de entradas de entrenamiento

a = vectores de salida

‖v‖ = longitud habitual del vector v

Función de pérdida en la red neuronal Feedforward

La función de pérdida de una red neuronal se utiliza para identificar si es necesario ajustar el proceso de aprendizaje.

Tantas neuronas como clases haya en la capa de salida. Mostrar la diferencia entre las distribuciones de probabilidades previstas y reales.

La pérdida de entropía cruzada para la clasificación binaria es la siguiente.

Función de pérdida en la red neuronal Feedforward

La pérdida de entropía cruzada asociada con la categorización multiclase es la siguiente:

El algoritmo de descenso de gradiente calcula repetidamente el siguiente punto usando el gradiente en la ubicación actual, luego lo escala (por una tasa de aprendizaje) y resta el valor alcanzado de la posición actual (hace un paso) (hace un paso). Resta el valor ya que queremos disminuir la función (aumentar sería sumar) (maximizar sería sumar). Este procedimiento puede escribirse como:

Hay un parámetro crucial η que ajusta el gradiente y, por lo tanto, afecta el tamaño del paso. En el aprendizaje automático, se denomina tasa de aprendizaje y tiene un efecto sustancial en el rendimiento.

  • Cuanto menor sea la tasa de aprendizaje, más tiempo GD converge o puede acercarse a la iteración máxima antes de encontrar el punto óptimo
  • Si la tasa de aprendizaje es demasiado grande, es posible que el algoritmo no converja al punto ideal (salte alrededor) o tal vez diverja por completo.

En resumen, los pasos del método Gradient Descent son:

  1. elegir un punto de inicio (inicialización) (inicialización)
  2. calcular el gradiente en este punto
  3. producir un paso escalado en la dirección opuesta al gradiente (objetivo: minimizar) (objetivo: minimizar)
  4. repetir los puntos 2 y 3 hasta que se cumpla una de las condiciones:
  • número máximo de repeticiones alcanzado
  • el tamaño del paso es más pequeño que la tolerancia.

El siguiente es un ejemplo de cómo construir el algoritmo de descenso de gradiente (con seguimiento de pasos):

importar numpy como np def gradiente_descenso (inicio, gradiente, tasa de aprendizaje, max_iter, tol = 0.01): pasos = [inicio] # seguimiento del historial x = inicio para _ en rango (max_iter): diff = tasa de aprendizaje * gradiente (x) si np. abdominales (diferencia)

Esta función acepta los siguientes cinco parámetros:

  1. Punto de partida – en nuestro ejemplo, lo especificamos manualmente, pero de hecho, con frecuencia se determina aleatoriamente.
  2. Función de gradiente - debe ser definido de antemano
  3. Tasa de aprendizaje – factor utilizado para escalar tamaños de paso
  4. Iteraciones máximas
  5. Tolerancia para que el algoritmo se detenga de forma condicional (en este caso, el valor predeterminado es 0.01)

Ejemplo- Una función cuadrática

Considere la siguiente función cuadrática elemental:

Debido a que es una función univariante, una función de gradiente es la siguiente:

Escribamos ahora los siguientes métodos en Python:

def func1(x): devuelve x**2-4*x+1 def gradiente_func1(x):

  volver 2*x – 4

Con una tasa de aprendizaje de 0.1 y un punto de partida de x=9, podemos simplemente calcular manualmente cada paso para esta función. Comencemos con los tres primeros pasos:

La función de python se invoca de la siguiente manera:

historial, resultado = gradiente_descenso (9, gradiente_func1, 0.1, 100)

La siguiente animación ilustra los pasos tomados por el algoritmo GD a tasas de aprendizaje de 0.1 y 0.8. Como puede ver, a medida que el algoritmo se acerca al mínimo, los pasos se vuelven cada vez más pequeños. Para un ritmo de aprendizaje más rápido, es necesario saltar de un lado al otro antes de la convergencia.

Inclinación en gradiente
Las primeras diez etapas fueron realizadas por GD para determinar la tasa de aprendizaje para grupos pequeños y grandes. IMAGEN

El siguiente diagrama ilustra la trayectoria, el número de iteraciones y el resultado final convergente (dentro de la tolerancia) para varias tasas de aprendizaje:

Red neuronal de avance | Grafico

La necesidad de un modelo de neurona

Suponga que las entradas a la red son datos de píxeles de un escaneo de caracteres. Hay algunas cosas que debe tener en cuenta al diseñar una red para clasificar adecuadamente un dígito:

Para ver cómo aprende la red, deberá jugar con los pesos. Para alcanzar la perfección, las variaciones de peso de unos pocos gramos deberían tener un efecto insignificante en la producción.

¿Qué pasa si, por otro lado, un pequeño cambio en el peso da como resultado un gran cambio en la salida? El modelo de neurona sigmoidea es capaz de resolver este problema.

Aplicaciones de la red neuronal Feedforward

Estas redes neuronales se utilizan en una amplia variedad de aplicaciones. Varios de ellos están denotados por las siguientes unidades de área:

  • Sistema de realimentación fisiológica: aquí, el control de realimentación se ejemplifica mediante el control preventivo habitual de los latidos del corazón antes del ejercicio por parte del sistema involuntario central.
  • Regulación de genes y feedforward: a lo largo de esto, un tema predomina en las famosas redes, y se ha demostrado que este motivo es un sistema de feedforward para detectar alteraciones atmosféricas no temporales.
  • Automatización y gestión de máquinas.
  • Compensación feedforward paralela con derivada: este es un enfoque relativamente reciente para convertir el componente no mínimo de un sistema de transferencia de bucle abierto en la parte mínima.

Conclusión

El aprendizaje profundo es un campo de la ingeniería de software que ha acumulado una gran cantidad de estudios a lo largo de los años. Hay varios diseños de redes neuronales que se han desarrollado para su uso con diversos tipos de datos. Los sistemas neuronales convolucionales, por ejemplo, han logrado el mejor rendimiento de su clase en las disciplinas de los procesos de manejo de imágenes, mientras que los sistemas neuronales recurrentes se usan comúnmente en los campos del procesamiento de contenido y voz.

Cuando se aplican a grandes conjuntos de datos, las redes neuronales requieren enormes cantidades de potencia informática y aceleración de equipos, lo que puede lograrse mediante el diseño de un sistema de unidades de procesamiento de gráficos, o GPU, dispuestas en un clúster. Aquellos que son nuevos en el uso de GPU pueden encontrar configuraciones personalizadas gratuitas en Internet, que pueden descargar y usar de forma gratuita. Se trata de Kaggle Notebooks y Google Collabor Notebooks, que son las más utilizadas.

Para construir una red neuronal feedforward que funcione bien, es necesario probar el diseño de la red varias veces para hacerlo bien.

Me alegro de que lo hayas encontrado interesante. Para ponerse en contacto conmigo, puede hacerlo a través de los siguientes métodos:

Etiqueta LinkedIn

Si aún tiene preguntas, no dude en enviármelas por correo electrónico.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor. 

punto_img

Información más reciente

punto_img