abril 27, 2022 10:00 am

Jesús

En un artículo publicado recientemente en este blog y titulado ‘Estos son los Elementos Básicos para Entrenar una Red Neuronal‘, resumía las opciones básicas que se pueden elegir a la hora de diseñar una red neuronal.

Esta vez, dedicaré este post a los elementos que componen una red Neuronal. Para empezar, hablaremos de las capas.

Las redes neuronales impulsan algunas de las aplicaciones más innovadoras de nuestros días. Amazon Alexa, Google Translate y otras tecnologías "inteligentes" (como los coches que se conducen solos) utilizan redes neuronales que imitan el cerebro humano. Estas redes consisten en una combinación finamente equilibrada de matemáticas, programación y pensamiento de diseño que funciona detrás de las escenas de estas aplicaciones. No es de extrañar que el tipo de arquitectura que se utiliza para alimentar estas redes sea crucial. En este artículo, explicaremos cómo empezar con las arquitecturas de redes neuronales y cómo optimizarlas.

Construcción de Redes Neuronales

Una red neuronal está formada por neuronas que se organizan en capas. Hay tres tipos de capas: una capa de entrada, una capa de salida y una capa oculta.

Diagrama de capas de una Red Neuronal

En la mayoría de los casos, habrá varias capas ocultas en una red neuronal. Las redes que no tienen estas capas ocultas se llaman perceptrones de una sola capa.

Las neuronas de la capa de entrada reciben los objetos de entrada. Por ejemplo, si la entrada es una imagen, los objetos de entrada pueden ser píxeles que se convierten en un número basado en la escala de grises. Cuando una neurona se activa, se "dispara", lo que a su vez activa las neuronas de la capa siguiente. Cada neurona de una capa pasa una salida a las neuronas de la capa siguiente. Esta salida está definida por dos factores: el peso y el sesgo.

El "peso" define la importancia de una entrada concreta para la siguiente neurona, y también dirige el flujo de valores de la entrada a la salida. (En el diagrama anterior, las flechas azules representan los pesos).

Por otro lado, el "sesgo" es un valor constante añadido que define la facilidad con la que se dispara una neurona.

Propagación

El proceso de enviar datos de una capa a la siguiente se llama propagación. Hay dos tipos de propagación: la propagación hacia adelante y la propagación hacia atrás.

En la propagación hacia adelante, los datos se mueven de la entrada a la capa oculta y a la salida. Termina con una predicción basada en la entrada, que puede ser precisa o inexacta.

En la propagación hacia atrás, una predicción de la capa de salida se retrocede desde la salida hasta la capa de entrada, lo que muestra la tasa de error. Esto se utiliza entonces para modificar los pesos y sesgos de cada neurona, dando a las neuronas con una tasa de error más alta y un mayor ajuste. Es importante reajustar constantemente los pesos para minimizar los errores y obtener una mayor precisión.

Entonces, ¿cómo encontrar la arquitectura adecuada para sus redes neuronales y cuántas capas necesita su arquitectura?

Para ser claros, existen numerosos tipos de arquitecturas en las redes neuronales. De hecho, cada pocos meses se proponen nuevos diseños adaptados a determinados casos de uso. Dado que la predicción está en el corazón de las redes neuronales, no existe una solución de arquitectura única. Lo mejor es empezar de forma sencilla: estimar cuántas capas puede necesitar (quizá sólo una capa oculta) y, a continuación, mantener el mismo tamaño de las capas a medida que las vaya ampliando en aras de la simplicidad.


Los diferentes tipos de capas son más adecuados para diferentes tipos de tareas. Por ejemplo, las capas densas simplemente conectan las capas de entrada con las de salida, las capas convolucionales se utilizan para procesar datos de imágenes y las capas recurrentes son excelentes para datos de series temporales y audio (como el reconocimiento del habla).

Optimización y Ajuste

La clave es empezar rápidamente y luego ajustar los pesos para optimizar las salidas más precisas. Puede ajustar el peso al final de cada lote (lo que se conoce como optimización de la tasa de aprendizaje), y también puede cambiar el grado de influencia de los errores de los lotes anteriores en el actual (lo que se denomina impulso). 

Animación de 5 métodos de descenso de gradiente en superficie: descenso de gradiente (cian), momentum (magenta), AdaGrad (blanco), RMSProp (verde), Adam (azul). El hueco de la izquierda es el mínimo global; el de la derecha es un mínimo local.

Además, puedes utilizar algoritmos para afinar tus redes neuronales, incluyendo el descenso de gradiente o el descenso de gradiente estocástico, así como AdaGrad, Adam, y otros. 

Conclusión

Las redes neuronales están en el centro de la actual revolución de la IA. Aunque representan una gran oportunidad, el diseño de redes neuronales precisas y eficientes es todo un reto. En este post, hemos discutido los aspectos centrales de las redes neuronales, incluyendo la propagación, la arquitectura, las capas y la optimización. Aunque hay mucho más que aprender, esta guía le dará un marco de referencia para pensar en el diseño y el escalado de su propia red neuronal.

¡Hasta pronto! 

Sobre el Autor

Jesús Martínez es el creador de DataSmarts, un lugar para los apasionados por computer vision y machine learning. Cuando no se encuentra bloggeando, jugando con algún algoritmo o trabajando en un proyecto (muy) cool, disfruta escuchar a The Beatles, leer o viajar por carretera.