Revolución IA

La Inteligencia Artificial está llamada a protagonizar la próxima Revolución tecnológica

Inicio Sobre Revolucionia Temas Para saber más Contacto

Perceptrones multicapa

Fernando P.    23/10/2017

Temas:  Fundamentos

Las redes neuronales artificiales (RNA en lo sucesivo) son formas de definir funciones muy complejas que nos permiten construir clasificadores y entrenarlos usando aprendizaje supervisado.

Ya vimos una intoducción genérica a las RNA y se ha estudiado el caso de los perceptrones, que son las RNA más sencillas.

Por otro lado, hemos visto que los perceptrones tienen limitaciones serias en cuanto al tipo de clasificadores que pueden representar. En este artículo vamos a ver una extensión natural de los perceptrones, que denominaremos perceptrones multicapa.

Arquitectura general de un Perceptrón
No vamos a repetir aquí la descripción precisa de la arquitectura de un Perceptrón, pero sí que vamos a recordar que, básicamente, se trata de una aplicacicón  f : nm  que viene dada por una matriz real  A (n x m)  y por una función de activación sobre  m que convierte a no lineal la salida del Perceptrón.

Las funciones de activación que hemos visto hasta ahora eran muy simples y venían a funcionar como funciones binarias de corte, devolviendo valores en  {0,1}m. De esta forma podíamos usar hiperplanos para delimitar semiespacios cuya intersección nos daba la región convexa de  n  que era capaz de representar el Perceptrón.

Concatenación de perceptrones Secuencia perceptrones
Una forma natural de extender las capacidades de un Perceptrón consiste en concatenar varios de ellos, de forma que la salida de uno represente la entrada del siguiente.

Supongamos que concatenamos  s  perceptrones para construir un clasificador, vamos a ver que elementos habría en esta construcción:

Sea  f : nm  el clasificador que queremos construir

Sean  P1Ps  los  s  perceptrones

P1  tendrá  n  entradas y  p1 salidas

P2  tendrá  p1  entradas y  p2 salidas

Sucesivamente, llegamos a que Ps  tendrá  ps-1  entradas y  ps = m  salidas

Sean  Ai i=1…s  las matrices que definen a cada Perceptrón, cada una tiene un tamaño distinto, tantas filas como entradas y tantas columnas como salidas tenga el Perceptrón asociado

Si obviamos las funciones de activación de cada uno de los perceptrones, podemos calcular la salida de nuestra concatenación de perceptrones, que denotaremos por  P+:

Sea  x = ( x1…xn ) ∈ n  un caso de entrada

La salida de  P+  será  f(x) = xA1⋅…⋅As

Sea ahora la matriz  U = A1⋅…⋅As

De lo anterior se deduce que nuestra concatenación de perceptrones se comporta exactamente igual que un Perceptrón con  n  entradas y  m  salidas definido por la matriz  U.

Es decir, nuestra concatenación no mejora nada sobre un Perceptrón sencillo si obviamos las funciones de activación.

Si tenemos en cuenta las funciones de activación, la salida de  P+  se convierte en algo bastante complejo porque vamos aplicando en cada Perceptrón una función de activación no lineal a su resultado, que a su vez proviene de aplicar otra función no lineal al resultado del Perceptrón anterior.

RNA orientadas hacia adelante
Una concatenación de perceptrones como la descrita, en la que aplicamos funciones de activación no lineales a la salida de cada Perceptrón es el tipo de RNA más común, se denominan perceptrones multicapa o RNA orientadas hacia adelante, porque el procesamiento siempre sigue un sentido bien determinado, desde las entradas hacia las salidas, no hay conexiones entre neuronas hacia atrás ni otras cosas fuera de lo que es una concatención de perceptrones.

Decimos que una RNA orientada hacia adelante tienen tantas capas de neuronas como perceptrones hemos concatenado para construirla. Algubos autores cuentan las capas de entrada y/o salida como capas de neuronas, pero estas capas no realizan procesamiento alguno. Así, un Perceptrón es una RNA orientada hacia adelante que tiene una única capa.

Las capas de neuronas que no están conectadas directamente a la entrada o a la salida se denominan capas de neuronas ocultas.

Funciones de activación Perceptrón multicapa
Como ya hemos visto, es esencial introducir no linealidad en cada capa de la RNA por medio de las funciones de activación.

Hay muchas funciones de activación posibles, pero en la práctica se usan muy pocas. Es un tema complejo que da para otro artículo independiente.

Básicamente, la misión de la función de activación en cada capa de neuronas es establecer un umbral de activación de cada neurona, de forma que si el valor que resulta en una neurona (multiplicar entradas por pesos y sumar) es pequeño, la función devolverá cero/negativo o algo muy próximo y si se supera el umbral, se devolverá un valor de salida positivo establecido o algo muy próximo a él.

Lo fundamental de las funciones de activación es que sean no lineales para poder romper la linealidad que supone una concatenación de perceptrones sin funciones de activación.

Funcionamiento de una RNA orientada hacia adelante
El funcionamiento de una de estas redes es tan sencillo como definir sus capas (perceptrones) usando funciones de activación no lineales (puede ser la misma para todas las capas, una por capa o incluso por neuronas), procesar la entrada con el primer Perceptrón y propagar su salida al resto de perceptrones hasta obtener la salida final:

Sean  ti : pipi i=1…s  las funciones de activación de cada capa

Sea  x = ( x1…xn ) ∈ n  un caso de entrada

Calculamos  y1 = t1(xA1)

Calculamos  y2 = t2(y1)

Sucesivamente vamos calculando las salidas de cada capa hasta llegar a la última,
que será  ys = ts(ys-1) = f(x)

Entrenamiento y capacidad de una RNA orientada hacia adelante
Una ventaja de los perceptrones es que su entrenamiento es muy sencillo gracias a la aplicación de un sencillo algoritmo que denominamos Regla δ. Desgraciadamente, no podemos decir lo mismo de las RNA orientadas hacia adelante.

Históricamente, el concepto de Perceptrón es bastante antiguo y la idea de concatenar perceptrones surgió rápidamente, pero no se pudo aplicar porque se desconocía cómo entrenar un perceptrón multicapa.

Tuvieron que pasar bastantes años antes de que se descubriera un algoritmo que permite entrenar RNA orientadas hacia adelante mediante aprendizaje supervisado, ese algoritmo se denomina Backpropagation y será objeto de otro artículo.

La combinación de múltiples perceptrones, que individualmente pueden aproximar bien cualquier región convexa del espacio de entrada, junto con funciones de activación no lineales dota a las RNA orientadas hacia adelante de una capacidad excepcional para aproximar funciones de clasificación. Básicamente, cualquier clasificador en espacios de números reales que resulte de utilidad puede aproximarse con una RNA orientada hacia adelante que tenga el suficiente tamaño.



Las RNA orientadas hacia adelante son el caballo de batalla de la construcción de clasificadores y del aprendizaje automático o machine learning. Los diseños más refinados de RNA suelen tener este tipo de redes en su origen.



Para saber más:

Artículo de la Wikipedia sobre los perceptrones multicapa, no es muy extenso.



 

Inicio Powered by NetBSD
 
HTML5
 
En general, todo el contenido de este sitio web es original, salvo referencias o enlaces a otros sitios web y citas o reproducciones expresamente presentadas como tales.

No está permitida la reproducción ni la copia del contenido de este sitio web sin el permiso expreso de la propiedad del mismo.

Este sitio web no utiliza cookies ni ningún otro mecanismo para almacenar información en los navegadores de los visitantes ni para realizar seguimiento de los mismos.

2017,2018 Revolucionia.net
Sobre Revolucionia
Temas
Para saber más
Contacto