El Perceptrón

El perceptrón fue propuesto por Frank Rosenblatt a principio de los 1960's. En esta propuesta se veía que tenía un poderoso algoritmo de aprendizaje. En 1969 Minsky y Papert publicaron un libro llamado "perceptrón" que analizó lo que realmente se podría hacer y cuáles eran sus limitaciones, pero muchas personas entenderion mal al pensar que estas limitaciones se extendían a todas las redes neuronales. Hoy en día el algoritmo de aprendizaje del perceprón se sigue aplicando para tareas que requieren vectores de características muy grandes, quizá millones de ellos. 

Cada neurona tiene una unidad de decisión, llamada portal. Es una función matemática que decide revolver un valor binario a partir de la multiplicación de los vectores de entrada con sus pesos mas el bias. Esto se expresa mediante:

\[ z = b+\sum x_i w_i \]

 

\[ y = \begin{cases} 1 & \quad \text{si } x \geq 0\\ 0 & \quad \text{de lo contrario} \end{cases} \]

Donde b es el bias, un valor extra que facilita el aprendizaje, w es un vector de pesos y x es el vector de entrada. Y es el resultado del perceptrón.

¿Pero cómo se entrana una perceptrón?

Se agrega un vector w del que ya sabemos la salida correcta. Se realiza el las operaciones de la primer ecuación y se determina tres posibles acciones dependiendo del resultado:

  • Si la salida es la correcta, la que se supone debería de generarse, entonces ya no se realiza acción alguna.
  • Si la salida es incorrecta y su salida es un 0, entonces se suma el vector x al vector de pesos w.
  • Si la salida es incorrecta y su salida es un 1, entonces se resta el vector x al vector de pesos w. 

Realizar este procedimiento para todos los ejemplos garantiza encontrar un vector de pesos que obtiene los pesos correctos para todos los casos de entrenamiento, siempre y cuando este exista y el resultado sea lineal. 

 ¿Cómo visualizamos al perceptrón geométricamente?

Primero entendamos nos encontramos en un espacio que tiene una dimensión por peso y un punto en este espacio representa una configuración de pesos específicos. Cada entrada x puede ser representado como un hiperplano en el espacio desde el origen. En el momento de ajustar cada ejemplo se moverá el hiperplano de pesos para tener todos los casos para separa correctamente todos los casos. 

 ¿Pero por qué funciona?

Cada vez que el perceptrón se equivoqua el vector de pesos actuales se mueve para reducir la distancia cuatrada de cada vector de peso a una región cercana a la factibilidad. Y esto hace que la distancia cuadrada se reduce por al menos la distancia cuadrada del vector de entrada. Por lo tanto después de un número aceptable de errores, el vector de pesos tiene que entrar a la región de factibilidad, siempre y cuando este exista y sea lineal. 

¿Qué no puede hacer un perceptrón?

La canitdad de características de entrada se escogen a mano. Pero una vez que se ha escogido a mano se limita el modelo a esto. Entre varios casos tendremos estoas problemas:

  • Un portal binario no podrá decirnos si dos caracterrísticas son iguales.
  • Si en un espacio los elementos no son linealmente separables por un hiperplano.
  • Encontrar patrones con el mísmo número de elementos.

Esto nos lleva a que redes neuronales sin capas ocultas son muy limitadas, de unidades no lineales. Para eso necesitamos una forma eficiente de adaptar todos los pesos y no únicamente la última capay esto es difícil. Aprender los pesos que se asignan a las capas ocultas es equivalente que aprender características, pero en realidad no se especifica qué es lo que en realidad estas capas ocultas deben hacer. 


Tipos de redes neuronales (Principales arquitecturas)

Cuando hablamos de arquitecturas de redes neuronales nos referimos a la forma en que se organizan las neuronas artificiales para que trabajen en conjunto. 

Feed-Forward Neural Network

Este tipo de redes neuronales son bastante comúnes y sencillas. La primer capa es la capa de entrada y la última es la capa de salida. Las capas intermedias son conocidas como capas ocultas. Si existe más de una capa oculta se considera como una "deep" neural network. Estas redes computan una serie de transformaciones que cambian las similaridades entre casos. Por ejemplo en un reconocimiento de voz, nos permite identificar la misma palabra de voces distintas. para conseguir esto las actividades de las neuronas en cada capa son funciones no lineales de actividades de las capas superiores. 

Las Convolutional Neural Nets (CNN) son una clase de red neuronales del tipo feed forward inspirado en la cortesa visual biológica. Actualmente se usan de manera amplia en sistemas de reconocimeinto de imágenes y videos, así cómo en procesamiento de lenguaje natural. 

Recurrent Neural Network (RNN)

A estas redes neuronales se les agrega ciclos a sus conecciones de grafo. Esto es sirve para comunicar información o recordar información dentro de la red, sin embargo pueden llegar a ser complicadas de entrenar al no poder hacer las operaciones de manera completamente paralelas. Con los nuevos avances en hardware, sin embargo, el entrenamiento de este tipo de redes es completamente posible, pero si requieren días o semanas para ejecutarse.

Las RNN son biológicamente más relaistas, y también han tenido un gran auge en los últimos tiempos para tareas de secuencias, reemplazando a otros modelos como las cadenas de markov. Las aplicaciones son increíblmente diversas, pero para mencionar algunos ejemplos: reconocimiento de escritura, de voz, traducción automática, reconocimiento de imágenes, etc.

Dentro de las RNN existen toda una gama de redes que se explicarán posteriormente. Sólo por mencionar las más famosas:

  • RNN Simples
  • Memoria bidireccional asociativa
  • Redes de Elman y Jordan
  • Long Short-Term Memory (LSTM!!!!)
  • Gated Recurrent Unit (GRU!!!!)

La estructura que se muestra en la figura anterior está relacionada con el tiempo. Las RNN son equivalentes a redes neuronales muy profundas, con un estado oculto por cada paso en el tiempo, con la excepción de que usan los mismos pesos en cada paso de tiempo (pesos compartidos) y reciben entradas en a cada paso. Con esto ontienen la capacidad de recordar por un largo tiempo. 

Symmetrically connected Networks

Son cercanos a las RNN, pero sus conecciones entre ellos son simétricas, lo que quiere decir que tienen los mismos pesos en ambas direcciones. Un ejemplo son las redes de Hopfield, y son mucho más sencillas de entrenar que RNN, pero tienen serias restricciones cómo: no pueden modelar ciclos.

 

 

 

Share This