Como se mencionó en la clase pasada, los modelos de redes neuronales de perceptrones simples tienen grandes limitaciones, que vienen a raíz de que con dicho modelo solo se pueden dividir patrones mediante hiperplanos, o rectas en el caso en que la red solo tiene dos entradas. Vimos que podemos obtener mayor versatilidad al colocar más neuronas a nuestro modelo del perceptrón, no obstante llega un punto en el cual dicho modelo tiene, de nuevo, grandes limitaciones. Una manera de solventar dichas limitaciones es mediante el modelo del percetrón multicapa, donde se agregan capas ocultas a la red neuronal. Recordemos que mediante el modelo del perceptrón simple podemos clasificar patrones, para dos valores de entrada, mediante un recta; luego, de nuevo para dos valores de entrada, si consideramos una capa oculta la red neuronal será capaz de discriminar regiones convexas y para más capas ocultas la regla de decisión será aplicable para regiones arbitrarias.
Mediante MLP (Multi-Layer Perceptron) utilizando solo una capa oculta se puede aproximar a cualquier función continua en un intervalo dado hasta el nivel deseado.
Se denomina arquitectura a la topología (o estructura) en la que las distintas neuronas constituyen la red neuronal.
Luego, los nodos o neuronas de la red se conectan por medio de sinapsis , donde la estructura de las conexiones sinápticas determinará el comportamiento de la red; además, las conexiones sinápticas son direccionales.
En general, las neuronas se suelen agrupar en capas, donde dentro de cada capa las neuronas se pueden agrupar formando grupos neuronales. Podemos distinguir tres tipos de capas.
Una red neurona puede definirse de manera forma:
Definición: Una red neurona es un grafo dirigido con las siguientes propiedades:
Por otro lado, las redes neuronales que hemos abordado en las clase anteriores se denominan redes neuronales multicapa, en la cual existen múltiples capas intermedias entre la capa de entrada y la de salida, donde esta red puede estar totalmente o parcialmente conectada. Casos particulares de redes neuronales multicapa son todas las que hemos abordado en clases anteriores. Otros tipos son:
Red neuronal clásica | Red neuronal recurrente |
---|---|
Los vectores de entrada producen vectores de salida | Tratan datos secuenciales de forma eficiente |
No mezclan información entre ejecuciones | Recuerdan las salidas anteriores como entrada |
Tratan una secuencia de datos de una sola vez | Pueden tratar secuencias muy largas, elemento a elemento |
Bajo este contexto puede decirse que el aprendizaje es el proceso en el cual se produce un ajuste de los parámetros libres de la red neuronal a partir de un proceso de estimulación por el entorno que rodea a la red. Básicamente, el aprendizaje consiste en determinar un conjunto de pesos sinápticos que permitan a la red realizar correctamente el tipo de procesamiento deseado.
Al inicio se configuran los pesos sinápticos como nulos o aleatorios, para posteriormente comenzar a entrenar la red. El entrenamiento se puede llevar a cabo en dos niveles:
Considerando una neurona $j$ (presináptica) que se conecta a la neurona $i$ (postsináptica), así como el peso $w_{ij}$ de dicha conexión. Consideremos la iteración $t$, entonces el algoritmo de aprendizaje en función de las señales (o información) que llegan procedentes del entorno al instante $t$ proporcinará el valor $\delta w_{ij}(t)$ que da la modificación que se debe incorporar en dicho peso, el cual quedará actualizado de la siguiente forma:
$$ \Delta w_{ij}(t+1) = w_{ij}(t)+\Delta w_{ij}(t) \ \ \ \ \ \ (\star) $$esto es, el peso de la actualización $\Delta w_{ij}(t+1)$ será igual al peso original $w_{ij}$ más el peso obtenido por el algoritmo de aprendizaje $\Delta w_{ij}(t)$. El proceso de aprendizaje es usualmente iterativo, donde los pesos se estarán actualizando como se describió en la ecuación $(\star)$
Los tipos de aprendizaje que consideraremos son basados usualmente en métodos numéricos iterativos que tratan de minimizar una función de error. En el proceso de aprendizaje es importante distinguir entre el nivel de error alcanzado al final de la fase de aprendizaje para el conjunto de datos de entrenamiento, y el error que la red ya entrenada comete ante patrones no utilizados en el aprendizaje, lo cual mide la capacidad de generalización de la red. Consideramos los siguientes tipos de aprendizaje:
Aprendizaje supervisado: Para este caso se le presenta a la red un conjunto de patrones, con los resultados deseados, e iterativamente la red ajustará los pesos hasta que la salida de la red es muy cercana a los resultados deseados, utilizando para ello información detallada del error que se comete en cada paso.
Aprendizaje no supervisado: Se puede describir al aprendizaje no supervisado como la estimación de la función de densidad de probabilidad $p(x)$ que describe la distribución de patrones $x\in R$ (espacio generado por las entradas). En este tipo de aprendizaje se presentan patrones a la red sin adjuntar la respuesta esperada, donde, la red por medio de la regla de aprendizaje estima $p(x)$, para lo cual podremos reconocer regularidades en el conjunto de entradas, extraer rasgos o agrupar patrones según su similitud (clustering).
Aprendizaje híbrido: En la red neuronal se ocuparán los aprendizajes tanto supervisado como no supervisado.
Aprendizaje por reforzamiento: Se sitúa en un camino medio entre el aprendizaje supervisado y no supervisado. Se empleará entonces información sobre el error cometido, pero solo le estaremos indicando a la red lo bien o lo mal que está actuando. Como en el caso del aprenizaje no supervisado, no se adjunta explícitamente la salida deseada.