Historia de la IA: Frank Rosenblatt y el Mark I Perceptrón, el primer ordenador fabricado específicamente para crear redes neuronales en 1957

Friday, July 20, 2018

Historia de la IA: Frank Rosenblatt y el Mark I Perceptrón, el primer ordenador fabricado específicamente para crear redes neuronales en 1957

Escrito por Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades

Las redes neuronales son hoy día parte fundamental de la IA y en concreto del Deep Learning y como veremos a continuación, al contrario de la creencia popular, no son conceptos nuevos. El primer algoritmo que presentaba una red neuronal simple se llamó Perceptrón, creado por Frank Rosenblatt en 1958 basándos, centrándonos en la Biología, en el trabajo realizado previamente por Santiago Ramón y CajalCharles Scott Sherrintong (pioneros en el estudio del funcionamiento del cerebro humano). Desde el punto de vista de la técnica, Rosenblatt utilizó las ideas que fueron introducidas por McCulloch y Pitts en 1943 donde hablaron por primera vez sobre la posibilidad de crear redes neuronales como si fueran ordenadores.

mujer y hombre trabajando en IBM
Figura 1. IBM 704. Fuente: NASA
Como se puede comprobar, estas ideas no son nada actuales (tienen más de 60 años), pero no ha sido hasta hoy día cuando se han podido implementar debido al gran avance tecnológico en computación.


neurona del cerebro humano
Figura 2. Detalle de una neurona del cerebro humano. Fuente: US Federal y recreado por el usuario Dhp1080

El Dr. Frank Rosenblatt (1928 – 1971) fue un psicólogo estadounidense al cual se le considera uno de los padres del Deep Learning. Nació en New Rochelle (Nueva York) y fue a la universidad de Cornell donde obtuvo también su doctorado en 1956. Frank Rosenblatt falleció muy joven con 41 años el 11 de julio de 1971. Aunque estuvo al frente de varias investigaciones importantes relacionadas con la neurobiología, es conocido mayormente por el desarrollo del Perceptrón, un clasificador binario o discriminador lineal, el cual genera una predicción basándose en un algoritmo combinado con el peso de las entradas. Este el gráfico de un Perceptrón:

imagen del perceptrón
Figura 3. Perceptrón. Fuente: Alejandro Cartas

El valor “bias” (ajuste) nos permite ajustar la sensibilidad de la curva de activación que veremos a continuación. El valor resultante se pasa a la función de activación, la cual se encarga de decidir si se activa o no la neurona. Para que esto ocurra se definen unos límites que definirán el resultado final, 1 o 0. Por ejemplo, si el valor de salida de la suma y el bias es mayor de 0 (límite establecido) la salida de la neurona será 1. Si el valor es menor de 0, entonces la salida de la neurona será 0. En caso de existir varias neuronas interconectadas donde tengamos que decidir el valor de salida, tendríamos que utilizar funciones como la lineal o Tanh

En 1957 se implementó en un programa (software) el funcionamiento del Perceptrón por primera vez utilizando un IBM704, uno de los ordenadores más potentes de aquella época. El IBM 704 fue el primer ordenador comercial (se vendieron 123 unidades) que utilizaba operaciones en coma flotante capaz de ejecutar 40.000 instrucciones por segundo (un Intel Core i7 es capaz de realizar aproximadamente más de 100.000 MIPS, millones de instrucciones por segundo). Utilizaba formato BCD de 6bits y registros de 36bits. Los lenguajes implementados para este ordenador fueron FORTRAN y LISP. Como curiosidad, en 1962 el físico John Larry Kelly Jr de los laboratorios Bell, creó un programa sintetizador de voz y lo probó con la canción Daisy Bell. En una visita de Arthur C. Clarke a los laboratorios Bell, le enseñaron este sintetizador con la misma canción la cual luego utilizó en el guión de la película “2001: Una Odisea Espacial” donde HAL9000 canta esta canción cuando lo están desconectando.

El Perceptrón estaba destinado a ser realmente una máquina en vez de un algoritmo y por eso finalmente se construyó el Mark I Perceptron, basado en las ideas del Perceptrón de Frank Rosenblatt. El Mark I Perceptron se dedicaba exclusivamente a la clasificación de imágenes. Todo el hardware estaba construido a medida y utilizaba potenciómetros para determinar los pesos de cada entrada por Perceptrón así como una cámara capaz de producir imágenes de 400 pixeles de resolución (20x20). En este enlace se puede encontrar el manual de operación original y en la siguiente foto se puede apreciar el panel de conexiones con las distintas combinaciones de entrada:

detalle de conexiones del perceptrón
Figura 4. Detalle del panel de conexiones del Mark I Perceptron. Fuente:Fotografo anónimo, posiblemente del Laboratorio Aeronáutico de Cornell

Aunque en principio la idea del Perceptrón tuvo una buena recepción muy prometedora en los ámbitos académicos, al final se probó que no podía ser entrenado para reconocer muchos otros tipos de patrones, lo que provocó un estancamiento en el avance de las redes neuronales durante algunos años. También contribuyó a este atraso en la investigación la atrevida afirmación de Frank Rossenblatt donde escribió en el The New York Times en 1958 nada menos que “este es (Perceptron) el embrión de un ordenador electrónico que espera poder caminar, hablar, ver, escribir, reproducirse y tener consciencia de su existencia”.


detalle de funcionamiento del perceptrón
Figura 5. Detalle de funcionamiento del Mark I Perceptron. Fuente: Manual de Perceptrón de el Laboratorio Aeronáutico de Cornell

Estas afirmaciones eran demasiado exageradas para esta primera implementación del Perceptrón, ya que no hay que olvidar tenía una sola capa y por lo tanto sólo eran capaces de aprender datos que permitan una separación lineal. Por lo tanto, las únicas pruebas que se realizaron con este Mark I fueron entrenar al Perceptrón para que fuera capaz de reconocer imágenes, en concreto diferenciar si es hombre o mujer. 

ejemplo de separación lineal
Figura 6. Ejemplo de separación lineal. Fuente: Qwertyus

Para ello se entrenó introduciendo cientos de fotografías de hombres y mujeres con diferentes estilos de pelo y maquillaje. Una vez terminado el proceso de entrenamiento, se introdujeron esta vez modelos de caras que no había visto nunca antes durante dicho proceso de entrenamiento. Finalmente, la máquina decidía si la foto era hombre o mujer con una elevada tasa de éxito. En el siguiente vídeo de la época se explica el proceso:


La capacidad de proceso, la tasa de acierto, así como los patrones a analizar aumentaron cuando unos años más tarde aparecieron las redes neuronales multicapas, o perceptrón multicapa. Pero no tenemos que desmerecer el gran trabajo de Frank Rossenblatt ya que esta redes multicapas no son más que capas de muchos Perceptrón exactamente iguales al implementado en el Mark I Perceptron.


No comments:

Post a Comment