En algún momento del año pasado, durante un largo vuelo internacional, pude ver la película “Ex Machina”. Típica película de avión. Nunca hubiera ido a verla al cine, pero cuando tengo por delante más de diez horas tratando de dormir un poco en un asiento de avión que apenas se reclina, eligiendo música y películas en el catálogo de la pantallita del asiento de adelante, mis estándares personales en cuanto a los productos del séptimo arte tienden a relajarse un poco.

La película aborda la temática de la inteligencia artificial con un enfoque minimalista en su concepción visual y un sinnúmero de referencias a conceptos y experimentos relacionados con el tema. Como decirlo… La película es creíble. No se trata del típico tanque hollywoodense lleno de efectos especiales… plagado de términos y explicaciones de dudosa rigurosidad destinados al público en general. Cuando el personaje de Caleb, protagonizado por un actor cuyo nombre no puedo recordar, le dice al todopoderoso nerd dueño de la compañía de software para la que trabaja que no va a poder someter a AVA, que es el androide personificado por la bella Alicia Vikander, al Test de Turing porque estaría falseando la prueba de arranque al saber que ella es un robot, el director / guionista está demostrando que conoce de inteligencia artificial y como detectarla / identificarla. Y es que de eso se trata el Test de Turing.

 

 

Alan Turing, el genio inglés a quien se suele considerar uno de los padres de la informática, inicia uno de sus primeros textos dedicado a la inteligencia de las máquinas diciendo: “Me propongo tomar en cuenta la pregunta: ¿Pueden pensar las máquinas?”. Luego, considerando la ambigüedad de los términos “máquina” e “inteligencia”, decide cambiar la pregunta por “¿Pueden las máquinas hacer lo que nosotros (entidades pensantes) hacemos?”. Finalmente, Turing elabora una serie de pruebas basadas en el “Juego de Imitación” (título de otra película de avión que narra la vida de Turing), donde la máquina debe imitar las respuestas que un humano daría a un evaluador, lo suficientemente bien como para convencerlo que está tratando con un humano.

Lo que me parece más interesante del test y los textos de Turing es que plantean, aun con ciertas limitaciones, y al igual que Descartes con anterioridad, que una respuesta lingüística adecuada puede ayudarnos a identificar/diferenciar de forma indirecta al humano del autómata. Eventualmente, determinar si una máquina (imitadora) puede ser considerada “pensante”.

¿Qué pensaran las máquinas de estos términos? ¿Pensaran las máquinas? ¿Pensaran/piensan como nosotros? ¿Sueñan los androides con ovejas eléctricas?

 

 

Machine Learning & Big Data: ¿Cómo aprenden las máquinas?

Ciertamente, las máquinas no aprenden exactamente de la misma manera que los humanos. Cuando algún Data Scientist, esto es un “Científico de Datos”, habla de Machine Learning típicamente está hablando de técnicas de aprendizaje basadas en algoritmos, funciones matemáticas, estadísticas, probabilidades, etc. que pueden categorizarse en tres grandes grupos:

  • Aprendizaje supervisado – el algoritmo consiste de una variable objetivo o variable dependiente (target), la cual debe calcularse en base a una serie de variables independientes (input / predictors). El chiste pasa por encontrar la función matemática que relaciona / mapea las variables independientes y sus valores con un resultado deseado de la variable dependiente, con el mayor grado de precisión posible (aproximación). Ejemplos típicos: Regresión Lineal – función matemática que relaciona peso con altura / etiquetar fotos en Facebook manualmente para que luego los algoritmos de Facebook etiqueten automáticamente (aprenden a relacionar una cara determinada con una identidad).

 

  • Aprendizaje NO supervisado – NO existe variable objetivo o resultado esperado. Típicamente se utiliza para clasificar / categorizar valores de entrada en categorías o clusters / grupos. Algunos ejemplos: algoritmos bayesianos – clasificadores que puede aprender a partir de un grupo de datos de entrada cuales son las probabilidades que un nuevo dato pertenezca a una determinada categoría / Facebook te sugiere amigos, sin saber realmente quienes son tus amigos en la vida real, simplemente analizando las personas conocidas en común entre uno y esos potenciales amigos.

 

  • Aprendizaje reforzado (Reinforcement Learning) – la máquina es entrenada para tomar ciertas decisiones específicas. Se le permite entrenarse mediante prueba y error, exponiéndola generalmente a grandes volúmenes de datos / ambiente de aprendizaje. La máquina aprende de la experiencia previa y trata de identificar las decisiones que obtuvieron / obtienen los mejores / más precisos resultados. Ejemplo típico: Redes neuronales y Retro-propagación / la máquina que aprende a jugar juegos muy complejos y termina venciendo a los campeones humanos / Reconocimiento de voz y comandos orales.

Lista típica de algoritmos comunes de Machine Learning:

  1. Linear Regression
  2. Logistic Regression
  3. Decision Tree
  4. SVM
  5. Naive Bayes
  6. KNN
  7. K-Means
  8. Random Forest
  9. Dimensionality Reduction Algorithms
  10. Gradient Boosting algorithms
  11. Neural networks

 


Alan Turing

 

Un embole, chino básico… intentemos otra explicación tipo recorrido histórico -> evolución:

Las computadoras, las máquinas, históricamente aprendían de forma repetitiva en base a algunos de los algoritmos detallados anteriormente. Por fuerza bruta… Calculando, recorriendo una y otra vez toooodas las posibles ramas de un árbol de posibilidades / decisiones – El ejemplo del partido de ajedrez. Esto en realidad es una simplificación muuy simplificadora. Como ya vimos existen cientos de algoritmos de Machine Learning… formas en las que las máquinas pueden aprender… Generalmente basados en la capacidad de recorrer árboles de decisión, en la aplicación de técnicas de probabilidad y estadística (Bayes, cadenas de Markov, etc) y en la aplicación de REDES NEURONALES (así en mayúsculas).

Las redes neuronales merecen una mención especial. Parten de la idea de imitar el funcionamiento de las redes de neuronas de los organismos vivos. Las neuronas están interconectadas entre sí y a partir de la experiencia se crean / se refuerzan determinadas conexiones fijando un conocimiento concreto en el tejido / red. En el caso de las máquinas, la idea es tomar una serie de parámetros de entrada y combinarlos de manera de obtener / predecir un resultado. Al comienzo la red no sabrá cómo combinar los parámetros de entrada para predecir un determinado resultado, pero si la “entrenamos”, encontrando y fijando las combinaciones adecuadas, luego podremos usarla para hacer predicciones / clasificaciones.

La teoría de redes neuronales data de hace muchos años… los primeros conceptos se comenzaron a publicar a mediados del siglo XX… se escribieron miles de libros al respecto… se hicieron muchos experimentos con aplicaciones sencillas, generalmente limitados por la capacidad de computo disponible… los conceptos evolucionaron… se complejizaron… aparecieron las redes neuronales profundas con muchas capas de neuronas…hace treinta años se inventó la retro-propagación, que es una revolucionaria técnica de aprendizaje basada en la capacidad de volver hacia atrás en las capas de procesamiento de la red, reforzando las conexiones que nos permiten predecir el resultado esperado… pero… pero… al igual que los otros algoritmos y técnicas detallados más arriba, hasta ahora las redes neuronales nunca había tenido demasiado éxito en esto de desarrollar una máquina “pensante”, la imitación adecuada.

Frustración… la Inteligencia Artificial seguía siendo algo limitado a las películas de Ciencia Ficción. HAL 9000, los Nexus 6 y los androides de Star Wars se nos reían desde la pantalla…

Pero… de nuevo, pero… Al fin eso está cambiando, las máquinas, las redes neuronales y sobre todo las redes neuronales profundas (de muchas capas de neuronas) están empezando a tener más éxito en esto de aprender a predecir resultados, de manera más eficiente, no tan lineales, haciendo uso de la capacidad / potencia de cómputo y los enormes volúmenes de datos disponibles en la actualidad.

 

 

Un caso de éxito famoso por estos días: AlphaGo.

Ganar una partida de GO, que es un antiguo juego chino, es exponencialmente más complejo que resolver / ganar un partido de ajedrez. El proyecto AlphaGo de DeepMind (compañía líder del campo de Inteligencia Artificial adquirida por Google), consistió concretamente en la aplicación de técnicas de Deep Learning al problema de jugar y eventualmente ganar un partido de GO. Le permitieron a la máquina aprender a jugar GO analizando miles de partidos jugados por humanos, esto es millones de jugadas, obteniendo como resultado concreto que la máquina venciera a Lee Sedol, algo así como el Maradona de GO, luego de tan solo unos meses de entrenamiento…. Grabaron un documental, escribieron varios papers científicos y se hicieron famosos… ¡FIN!

Pero… La historia no termina allí… La última versión evolucionada de AlphaGo, llamada AlphaGo Zero, la cual se entrenó a si misma jugando miles de partidos de GO solita contra ella misma, logro superar el nivel de maestría de AlphaGo en tan solo ¡3 días!

STOP… ¿Cómo se relaciona esto con la inteligencia artificial -> máquinas capaces de imitar las respuestas / comportamientos característicos de un humano? ¿Y el famoso Big Data?

 

 

Para que una máquina pueda comportarse como un ser pensante, esto es imitar las respuestas adecuadas, primero debe APRENDER a predecir un resultado a partir de un conjunto determinado de estímulos de entrada. Para entrenar a una máquina a predecir dicho resultado con la precisión adecuada es necesario alimentarla con grandes volúmenes de datos (Big Data).

Permítanme volver a Ex Machina… en un momento Caleb le pregunta a su jefe nerd genio dueño de la empresa de software como logró que AVA pudiera reaccionar adecuadamente a los comportamientos de sus interlocutores humanos y el jefe le contesta que lo que hizo fue hackear los celulares y computadoras de los usuarios de sus servicios de búsqueda y recomendación (Oh, qué casualidad…) para que las cámaras capturaran los miles / millones / billones de gestos faciales y corporales con los que estos iban reaccionando a los resultados de las diferentes búsquedas durante sus actividades de navegación. Luego, permitió a la inteligencia artificial detrás del motor de búsqueda usar dicho enorme volumen de datos para aprender solita como se relacionan determinados contenidos con dichos gestos-> emociones… y ¡Voila!  Así es como AVA, que además esta re-buena, aprendió a hacerle caídas de ojito a Caleb para hacerlo sonrojar.

Claramente, la película lo explica mejor que yo.

 

Porque ahora sí se viene un cambio…

¿Qué cosas están cambiando gracias a la tecnología? ¿Cómo el Big Data & Machine Learning afectan nuestras vidas? Miren a su alrededor, miren en su celular, miren en los muros y bandejas de entrada de sus redes sociales…

Si después de mirar a su celular o revisar su muro de Facebook lleno de fotos de gatitos, no sienten que su vida ha cambiado mágicamente, esto es en general porque muchas de las aplicaciones que las corporaciones hacen de estas nuevas tecnologías todavía no apuntan a cambiar la vida de la gente o al menos a cambiarla en un sentido trascendental, sino más bien a seguir produciendo beneficios / ganancias mediante usos que fomentan el consumo. Ejemplo concreto, con la misma combinación de tecnología y dispositivos con la que se implementó Pokemon-Go se podría haber implementado una aplicación de monitoreo de los infectados con el virus del Chagas en Sudamérica. Esta última aplicación fue diseñada hace unos años por un grupo de investigadores y desarrolladores liderados por la Dra Cecilia Cravero en la provincia de Córdoba – Argentina, pero claramente no tuvo el éxito ni la publicidad que el juego del dichoso Pikachu y sus amigos. Ni hablar de Google Maps recomendando que te comas un choripán en Chori-Martín porque, gracias a los datos colectados / almacenados de nuestros perfiles de consumo / uso / localización más los algoritmos de minado de dichos datos, sabe que estás pasando por barrio Ayacucho – Córdoba – Argentina y te gusta comer como chancho. Más o menos como las interacciones de AVA con Caleb en la película, pero con mucho menos glamour y belleza.

Dejando de lado los intereses y los usos comerciales de la tecnología o las aplicaciones de monitoreo & control de todo lo que hacemos tipo Gran Hermano, el avance real masivo creo que va a continuar de la mano de la aplicación de la ley de Moore, esa ley económica empírica que establece que aproximadamente cada dos años se duplica el número de transistores en un micro-procesador / circuito integrado. La ley es importante, relevante en este contexto, en cuanto significa que los costos (de fabricación, de operación) por unidad de procesamiento se reducen. Un claro ejemplo, cada uno de nosotros tiene en este momento en un celular en su bolsillo más capacidad de procesamiento que la de todas las computadoras de a bordo del Apollo 11 (nave espacial que fue a la Luna). Sin la reducción de costos de procesamiento serían impensables los clusters de miles de procesadores utilizados para el minado de Datos en la nube o los nuevos celulares con procesadores “dedicados” para Inteligencia Artificial. Lo mismo aplica al almacenamiento. Sin los bajos costos actuales de almacenamiento no existiría el Big Data. Google no colectaría / almacenaría Petabytes de datos cada día. Hace 30 años estas aplicaciones hubieran sido impensables, no por falta de factibilidad técnica, sino por un simple tema de costos.

 

1984 de Orwell. El creador de Gran Hermano.

 

Cuando yo empecé a estudiar programación y accedí a un curso de Bases de Datos allá lejos y hace tiempo, estaban comenzando a ponerse de “moda” las bases de datos relacionales. La teoría en la que se basan las bases de datos relacionales, elaborada por Boyce y luego Codd en la década de los setenta, cuando las memorias y los dispositivos de almacenamiento costaban fortunas, establece un algebra específica, una serie de formas normales -> modelos de diseño, las cuales apuntan a garantizar la integridad de los datos y evitar la redundancia de datos. Redundancia de datos -> mayores costos de almacenamiento. Con la reducción progresiva de los costos de almacenamiento, empezaron a aparecer y aplicarse de forma masiva bases de datos NO relacionales, las cuales almacenan los datos de forma redundante. Cada documento / registro de la base de datos contiene toooodos los datos del documento que representa, no solo referencias (relación) a otra entidad única. Dichas bases de datos, que además generalmente son capaces de escalar su capacidad de forma dinámica, son las que actualmente se aplican a nivel masivo para soportar las aplicaciones de Big Data que luego se pueden utilizar para alimentar los algoritmos de Machine Learning -> enseñar a las máquinas.

 

Resumiendo, creo que realmente estamos presenciando / viviendo una era de grandes cambios tecnológicos que empiezan a aplicarse de forma masiva, los cuales probablemente aún no estén cambiando la vida de la gente a escala planetaria, pero es muy factible que empiecen a hacerlo en los próximos años… Existen miles de potenciales aplicaciones interesantes… aplicaciones Fintech que permitan utilizar Big Data y Machine Learning para el otorgamiento de micro créditos de forma masiva a la población – sin requerir a la gente que no está bancarizada que concurra a un banco u oficina para llenar un montón de formularios que permitan calificarlos para el otorgamiento de dichos créditos. Simplemente se puede utilizar la reputación de la gente en redes sociales, su comportamiento, etc. para inferir su capacidad de pago / devolución de los créditos… Blockchain: cripto-monedas que no dependen de una entidad financiera central que las regule o administre… Redes inteligentes de distribución de medicamentos a bajo costo… Sistemas de detección / prevención temprana de brotes de enfermedades infecciosas… Traducción de idiomas en tiempo real… y sigue una larga lista de potenciales aplicaciones con impacto social.

Supongo, una vez más, que esto suena como el alegato de un iluminista defendiendo la máquina de vapor. A veces me siento como se deben haber sentido los científicos que asistieron a la Exposición Universal de París en 1900, celebrando los logros de la Humanidad con el siglo recién concluido… 14 años antes de la Primera Guerra Mundial.

En fin, hoy me levante optimista. Instagram me acaba de avisar que llegué a los mil seguidores y me sugiere seguir a varias celebridades. Netflix me recomienda dos películas de ciencia ficción que tengo que ver. Y mi celular me comunica que el tráfico en el camino a la oficina es normal y no hay demoras y voy a llegar en 34 minutos… la vida me sonríe ¿Qué podría salir mal?

 

Fuentes / Referencias:

  1. Película “Ex Machina” (2014), Director: Alex Garland, http://www.imdb.com/title/tt0470752/
  2. Turing, Alan (1952), «Can Automatic Calculating Machines be Said to Think?», en Copeland, B. Jack, The Essential Turing: The ideas that gave birth to the computer age, Oxford: Oxford University Press, ISBN 0-19-825080-0
  3. Película “Blade Runner” (1982), Director: Ridley Scott, http://www.imdb.com/title/tt0083658/?ref_=fn_al_tt_1
  4. Somers, James (2017), Articulo “El hallazgo de hace 30 años en el que se basa toda la inteligencia artificial actual”, MIT Technology Review -https://www.technologyreview.es/s/9600/el-hallazgo-de-hace-30-anos-en-el-que-se-basa-toda-la-inteligencia-artificial-actual
  5. Página Web de Geoffrey Hinton: http://www.cs.toronto.edu/~hinton/
  6. Página Web de DeepMind – Creadores de Alpha Go: https://deepmind.com/
  7. Alpha Go, el documental: https://www.alphagomovie.com/

 

Colaboraciones:

  1. Gabriel Infante Lopez – Gabriel Infante-Lopez es Principal Engineer en McAfee. Posee un Doctorado en Análisis de Lenguaje Natural Natural (Universiteit van Amsterdam – Ph.D. Computer Science), y es experto en Métodos Formales, Minado de Datos y Machine Learning.

 


 

Pablo Abián nació en Corrientes, Argentina. Es Ingeniero en Sistemas, egresado de la Facultad Regional Córdoba de la Universidad Tecnológica Nacional.

A lo largo de más de 20 años de carrera profesional, Pablo ha trabajado en distintos roles y puestos, como Programador, Líder Técnico, Gerente de Desarrollo de Software y  Gerente de Ingeniería. Ha participado en proyectos de desarrollo e implementación en empresas locales de diversos rubros, tales como Industria, Finanzas y Telecomunicaciones. En los últimos años ha trabajado también en empresas multinacionales tecnológicas, tales como Intel o McAfee.

Entre sus anécdotas nerd más notables se cuentan haber conocido a Ajay Bhatt y haber estado en la misma habitación que Sir Tim Berners Lee (fue en una presentación con otras 3000 personas, pero bueno…).

Pablo escribe de vez en cuando, como una especie de hobby. El pedido de escribir un texto sobre Inteligencia Artificial, Machine Learning y otras yerbas le permitió combinar dos de las cosas que más le gustan: la tecnología y sus aplicaciones y la escritura.

 


 

Los artículos publicados en la revista CRANN no expresan las opiniones de los directores, editores y responsables de CRANN, quienes no asumen la responsabilidad por su autoría ni naturaleza. Se permite la reproducción de los artículos y material publicados solo a fines de difusión y no de lucro, siempre citando la fuente y consultando antes a su autor cuyo contacto se puede solicitar en el apartado de Contacto del sitio Web de CRANN.