Ayer nuestro compañero Diego Calvo estuvo en DotNet Málaga hablando sobre las Redes Neuronales, donde mostró los conceptos básicos, su clasificación y sus principales aplicaciones.
Comenzó haciendo una introducción a la Inteligencia Artificial: consiste en técnicas de aprendizaje que permiten a las máquinas imitar el comportamiento humano y engloban al resto.
Para diferenciarlo del Machine Learning y el Deep Learning, utilizó la siguiente imagen:
El Machine Learning consiste en un subconjunto de la IA que utiliza métodos estadísticos para permitir a las máquinas mejorar con la experiencia; mientras que el Deep Learning es, a su vez, un subconjunto del Machine Learning que utiliza redes neuronales multicapa.
Con la llegada del Machine Learning, se ha dado un cambio de paradigma: mientras que con la programación tradicional se desarrollaba el programa y posteriormente se obtenían los resultados, actualmente el orden se ha invertido, lo que posibilita partir del resultado y generar un programa que haga que los resultados se cumplan.
El Machine Learning permite:
- Aprender automáticamente de los datos.
- Descubrir patrones ocultos.
- Toma de decisiones basadas en datos.
Una vez explicados los conceptos básicos del ML, pasó a diferenciar sus dos vertientes: el aprendizaje supervisado y el no supervisado. Su principal diferencia radica en que el aprendizaje supervisado requiere que se le indiquen los datos de salida con los que se entrena, mientras que el aprendizaje no supervisado no requiere de esos datos.
El aprendizaje supervisado consiste en un conjunto de técnicas que permiten realizar predicciones futuras basadas en comportamientos o características analizadas en datos históricos etiquetados.
El aprendizaje no supervisado, por su parte, se basa en un conjunto de técnicas que permiten inferir modelos para extraer conocimiento de conjuntos de datos donde a priori se desconoce.
Tras explicar sus detalles técnicos, dio paso a las Redes Neuronales. Como ya explicamos en anteriores artículos, las Redes Neuronales son un sistema aprendizaje y procesamiento automático inspirado en el funcionamiento del sistema nervioso humano.
Diego explicó su funcionamiento para más tarde pasar a su clasificación por topología:
- Perceptrón monocapa: Son las redes neuronales más simples, constan de una capa de entrada y una capa de salida. Son capaces de representar funciones lineales. Un ejemplo muy sencillo de estas redes puede ser el de predecir la nota de un examen a partir de las notas de los parciales.
- Perceptrón multicapa: Gracias a las capas ocultas, el sistema es capaz de representar funciones no lineales. A medida que la red neuronal va aprendiendo, la propia capa oculta es capaz de eliminar los enlaces que no considere relevantes.
- Red Neuronal recurrente: Una red neuronal recurrente no tiene una estructura de capas definida, sino que permiten conexiones arbitrarias entre las neuronas, incluso pudiendo crear ciclos. Con esto se consigue crear la temporalidad, permitiendo que la red tenga memoria. Este tipo de redes son muy potentes para todo lo que tiene que ver con el análisis secuencias (Análisis de textos, sonido o de vídeo)
- Red Neuronal convolucional: Son similares a las redes neuronales multicanal; su principal ventaja es que a cada parte de la red se le entrena para realizar una tarea, reduciendo significativamente el número de capas ocultas y haciendo el entrenamiento más rápido. Este tipo de redes son muy potentes para todo lo que tiene que ver con el análisis de imágenes.
Tras dar ejemplos de cada una, pasó a la ronda de preguntas. ¡Todos querían saber más de las Redes Neuronales!