Redes Neuronales

Redes Neuronales Artificiales con MATLAB

Las redes neuronales artificiales son una técnica de aprendizaje y procesamiento automático inspirada en el funcionamiento del cerebro humano. Podemos definir las redes neuronales artificiales como una estructura de procesamiento paralelo masivo constituida por unas unidades muy sencillas (denominadas neuronas), que tienen la capacidad de almacenar conocimiento experimental y ponerla a disposición para su uso.

Las redes neuronales artificiales se asemejan a las redes neuronales biológicas en varios aspectos:

  1. Las neuronas son elementos simples y altamente interconectados (aunque las neuronas artificiales son mucho más simples).
  2. Las conexiones entre las neuronas determinan la función de la red. Estas conexiones, conocidas como pesos (pesos sinápticos), se utilizan para almacenar el conocimiento adquirido.
  3. El conocimiento es adquirido a partir de su entorno mediante un proceso de aprendizaje.

Arquitectura

La arquitectura (o topología) de la red hace referencia a la disposición de las neuronas en la red. Las neuronas se organizan formando capas, de modo que la red neuronal puede consistir en una o más capas de neuronas.

Cada neurona recibe un conjunto de entradas multiplicadas por su interconexión (peso), que son sumados y operados por una función de transferencia (o función de activación) antes de transmitirse a la siguiente capa o como salida de la red.

La figura muestra una red con una única capa, R elementos de entrada y S neuronas

La capa que contiene las salidas de la red se conoce como capa de salida y el resto de capas como capas ocultas.

Es habitual clasificarlas por su arquitectura. Así nos encontramos con:

  • Redes con propagación hacia adelante
  • Redes con retropropagación

Aprendizaje

En numerosas ocasiones, se suelen también clasificar en función del tipo de aprendizaje que realizan. Así, distinguimos entre:

  • Aprendizaje supervisado, donde un conjunto conocido de datos de entrada-salida se utiliza para iterativamente ajustar los pesos de la red.
  • Aprendizaje no supervisado, en donde únicamente se disponen de datos de entrada y una función de coste a minimizar.
  • Aprendizaje reforzado, situado a medio camino entre el aprendizaje supervisado y no supervisado. En este aprendizaje la información proporcionada a la red es mínima, limitándose a indicar si la respuesta de la red es correcta o incorrecta.

La figura muestra el proceso de ajuste de pesos en el aprendizaje supervisado

Aplicaciones

Estas redes han sido y son ampliamente utilizadas en muchos campos: aeroespacio (e.g. pilotos automáticos, simulaciones de trayectorias de vuelo, detección de fallo de componentes), automoción (e.g. sistemas de guiado automático, controladores, análisis de la garantía), finanzas (e.g. lectores automáticos de cheques, solicitudes de crédito, detección de fraude, calificación de bonos), defensa (e.g. seguimiento de objetos, reconocimiento facial, eliminación de ruido), medicina (e.g. análisis de células cancerígenas, diseño de prótesis, análisis de electroencefalografía y electrocardiograma), telecomunicaciones (e.g. reconocimiento y compresión de voz, compresión de imágenes, traducción en tiempo real de un idioma), etc.

Redes neuronales artificiales con MATLAB

Neural Network Toolbox ofrece una amplia variedad de arquitecturas y funciones de entrenamiento para modelizar complejos sistemas no lineales de un modo sencillo utilizando artificiales. Las Apps disponibles en Neural Network Toolbox permiten diseñar, entrenar, visualizar y simular interactivamente la red para posteriormente generar el código MATLAB equivalente y así poder automatizar el proceso.

Neural Network Toolbox soporta aprendizaje supervisado, no supervisado y reforzado utilizando arquitecturas como: perceptrón, perceptrón multicapa, adaline, base radial, mapas auto-organizados, redes competitivas, etc.

Con el objetivo de acelerar complejos procesos de entrenamiento debido al gran volumen de datos, es posible distribuir los cálculos en máquinas multinúcleo, GPUs y clústers utilizando Parallel Computing Toolbox.



Referencias de software

También puede consultar: MATLAB, Big Data con MATLAB, Data Mining With MATLAB, Electricity Load and Price Forecasting with MATLAB, Data Driven Fitting with MATLAB, Análisis predictivo, Mantenimiento predictivo, Deep Learning (Aprendizaje profundo)

Deep learning con MATLAB