6.Redes Neuronales
Las Redes Neuronales (RN) artificiales (o sistemas conexionistas) son un modelo inspirado en el funcionamiento del cerebro humano. Esta formado por un conjunto de nodos conocidos como neuronas artificiales que están conectadas y transmiten señales entre sí. Estas señales se transmiten desde la entrada hasta generar una salida.
Esto es porque porque el cerebro humano:
-
Procesa información imprecisa rápidamente.
-
Aprende sin instrucciones explícitas.
-
Crea representaciones internas que permiten estas habilidades.
Características
Entre las principales características podemos mencionar:
-
Procesamiento de la información proveniente del entorno en tiempo real.
-
Robustez y tolerancia a fallas.
-
Capacidad de adaptación.
-
Manejo de información difusa, con ruido e inconsistente.
-
Procesamiento paralelo.
Tipos de Problemas que las RN pueden resolver
Predicción
-
Trabaja como una función de mapeo.
-
Puede utilizarse para estimación o clasificación (salida continua o discreta).
Ejemplos
-
Predecir si un alumno va a aprobar la materia o no
-
Dado un paciente nuevo determinar la probabilidad de que tenga cierta enfermedad.
Segmentación
-
Agrupa (clustering) de los datos de entrada.
-
Estos grupos pueden utilizarse para clasificar o para describir la información disponible.
Ejemplos
-
Dado un nuevo cliente la RN puede clasificarlo como “bueno”, “regular” o “malo”.
-
Hallar las características comunes de los alumnos recursantes (modelo descriptivo).
Similitudes entre una neurona biológica y una artificial
Las entradas Xi representan las señales que provienen de otras neuronas y que son capturadas por las dendritas
Los pesos Wi son la intensidad de la sinapsis que conecta dos neuronas; tanto Xi como Wi son valores reales.
Θ es el umbral que la neurona debe sobrepasar para activarse; este proceso ocurre biológicamente en el cuerpo de la célula.
Neurona Artificial
Las señales de entrada a una neurona artificial X1, X2,.., Xn son variables continuas en lugar de pulsos discretos, como se presentan en una neurona biológica.
Cada señal de entrada pasa a través de una ganancia o peso, llamado peso sináptico o fortaleza de la conexión cuya función es análoga a la de la función sináptica de la neurona biológica. Los pesos pueden ser positivos (excitatorios), o negativos (inhibitorios).
El nodo sumatorio acumula todas las señales de entrada multiplicadas por los pesos o ponderadas y las pasa a la salida a través de una función umbral o función de transferencia.
La entrada neta a cada unidad puede escribirse de la siguiente manera:
Neurona Artificial
Funciones de Transferencia o Funciones de Activación
La función de activación devuelve una salida que será generada por la neurona dada una entrada o conjunto de entradas. Cada una de las capas que conforman la red neuronal tienen una función de activación que permitirá reconstruir o predecir.
Pueden ser lineales o no lineales.
Funciones Umbral
La función Umbral o Escalón se usa cuando se quiere clasificar o cuando se tiene salidas categóricas. Por ejemplo, se puede usar para predecir si compro algo o no.
Función umbral binaria
Esta función crea neuronas que clasifican las entradas en dos categorías diferentes.
Función umbral bipolar
Esta función crea neuronas que clasifican las entradas en dos categorías diferentes.
Función lineal
O función identidad, permite que la entrada sea igual a la salida por lo que si hay un red neuronal de varias capas y se aplica una función lineal se dice que es una regresión lineal.
Esta función de activación lineal se usa si a la salida se requiere una regresión lineal y de esta manera a la red neuronal que se le aplica la función va a generar un valor único.
Por ejemplo se usa cuando se solicita predecir el valor de un número de ventas. A diferencia de las anteriores, esta función no es acotada.
Función sigmoide
O función logística, la salida está entre cero y uno por lo que es interpretada como una probabilidad. Si se evalúa la función con valores de entrada muy negativos, es decir x<0 la función será igual a cero, si se evalúa en cero la función dará 0.5 y en valores altos su valor es aproximadamente a 1. Por lo que esta función se usa en la última capa y se usa para clasificar datos en dos categorías.
Actualmente no es una función muy utilizada debido a que no está centrada y esto afecta en el aprendizaje y entrenamiento.
Función ReLU
Es la más utilizada porque permite el aprendizaje muy rápido en redes neuronales.
Si a esta función se le da valores de entrada muy negativos el resultado es cero pero si se le da valores positivos queda igual y además el gradiente de esta función será cero en el segundo cuadrante y uno en el primer cuadrante.
Cuando se tiene que la función es igual a cero y su derivada también, lo que se genera es la muerte de neuronas, a pesar que puede ser un inconveniente en algunos casos permite la regularización Dropout.
Por esta razón la función ReLu tiene una variante denominada Leaky ReLu que va a prevenir que existan neuronas muertas debido a la pequeña pendiente que existe cuando x<0.
Función Leaky ReLu
Por lo anterior la función ReLu tiene una variante denominada Leaky ReLu que va a prevenir que existan neuronas muertas debido a la pequeña pendiente que existe cuando x<0.
13123
Función Softmax
Se usa para clasificar data o clases múltiples y cuando se va a asignar probabilidades a cada clase que pertenezca a clases múltiples. Por ejemplo si le damos de entrada la imagen de una fruta y se solicita saber el tipo de fruta a que pertenece, aplicando softmax la red nos dará la probabilidad de que puede ser 0.3 o 30% melón, 0.2 o 20% sandía y 0.5 o 50% papaya, por lo que el resultado será el que tenga mayor probabilidad y la suma de estas probabilidades será igual a 1.
Red neuronal feedforward
Las neuronas de una misma capa tienen el mismo comportamiento
Las redes neuronales se encuentran conformadas por capas que a su vez cuentan con “neuronas” quienes se conectarán entre sí para enviarse mensajes y poder compartir información que será relevante para determinar el o los outputs correspondientes.
Las capas se encuentran divididas en 3 grupos input, hidden y output.
Arquitecturas
Existen dos arquitecturas:
Perceptrón
-
Es una RN formada por una única neurona.
-
Sirve para hacer separación lineal de clases
Multiperceptrón
-
Tiene una estructura organizada en capas.
-
Utiliza el método BackPropagation como estrategia de entrenamiento.
-
Puede usarse para predicción y para clasificación.
Perceptrón
Es una red neuronal formada por una única neurona.
Representa una única función discriminante que separa linealmente los ejemplos en dos clases.
En consecuencia la función que aplicaríamos es la siguiente:
Funciones No Lineales en Redes Multicapa
Una sola neurona no se puede resolver el problema del XOR porque no es linealmente separable. Por ejemplo:
En este caso debemos usar más de un perceptrón, tal como se muestra a continuación:
Problemas no separable linealmente
Es importante tener en cuenta que NO todo problema que involucra dos clases es linealmente separable.
Si se van a utilizar varios perceptrones, es preciso entrenarlos simultáneamente.
¿Cuál es el tamaño de cada Capa?
Aspectos a tener en cuenta en los problemas no separable linealmente
Los principales aspectos son:
-
La idea es aplicar un descenso en la dirección del gradiente sobre la superficie de error expresada como una función de los pesos.
-
Deberán tenerse en cuenta los pesos de los arcos que unen AMBAS capas.
-
Dado que el aprendizaje es supervisado, para los nodos de salida se conoce la respuesta esperada a cada entrada.
-
Para las neuronas ocultas el error cometido en la predicción será estimado.
Multiperceptrón. Arquitectura
Una red neuronal de retroalimentación es una red neuronal artificial donde las conexiones entre las unidades no forman un ciclo dirigido. En esta red, la información se mueve en una sola dirección, hacia adelante, desde los nodos de entrada, a través de los nodos ocultos (si los hay) hasta los nodos de salida. No hay ciclos ni bucles en la red.
El algoritmo de retropropagación es un método de aprendizaje supervisado que se puede dividir en dos fases: propagación y actualización de peso. Las dos fases se repiten hasta que el rendimiento de la red sea lo suficientemente bueno.
En los algoritmos de retropropagación, los valores de salida se comparan con la respuesta correcta para calcular el valor de alguna función de error predefinida. Mediante diversas técnicas, el error se retroalimenta a través de la red. Con esta información, el algoritmo ajusta los pesos de cada conexión para reducir el valor de la función de error en una pequeña cantidad.
Después de repetir este proceso durante un número suficientemente grande de ciclos de entrenamiento, la red generalmente convergerá a algún estado en el que el error de los cálculos sea pequeño. En este caso, se diría que la red ha aprendido una determinada función objetivo.
Generalización
En el ejemplo que se muestra a la derecha podemos observar una Red Neuronal formada por una única neurona donde:
-
Los puntos sólidos corresponden a los patrones de entrenamiento y los demás a testeo.
-
La clasificación es correcta.
En este caso se dice que le red ha GENERALIZADO la información correctamente.
Overfitting o Sobreajuste de la superficie de decisión
En el ejemplo que se muestra a la derecha podemos observar una Red Neuronal que utiliza dos neuronas ocultas donde:
-
Cada hiperplano busca la mayor proximidad a los patrones.
-
Algunos patrones se clasifican incorrectamente.
En este caso se dice que le red NO ha GENERALIZADO la información correctamente.
Solución
A mayor cantidad de neuronas en la capa oculta, la red puede variar más rápido en respuesta a los cambios de la entrada.
¿Y que pasa cuando nos encontramos con un Mínimo local o global?
El problema se resuelve utilizando la dirección del gradiente junto con un componente aleatorio que permita salir de los mínimos locales (subiendo en lugar de bajar).