martes, 31 de diciembre de 2024

Bibliografía 2024

Y para cerrar el año, en lo que a este blog se refiere, llega el ya tradicional post (el primero fue en 2009, hace ya quince años)  con el resumen de mis lecturas del año.

Ha sido un año razonablemente pródigo en lecturas, hasta un total de 50 libros que no está nada mal, y muchas de ellas, aunque no todas, de alta o muy alta calidad y profundidad.

En la temática, y bastante en línea con el año pasado, hay una muy alta presencia de inteligencia artificial, con foco, como cabría esperar en la inteligencia artificial generativa, especialmente los grandes modelos de lenguaje, con aparición, hacia el último tercio del año de la idea de los agentes y el Langchain y también cierto énfasis en procesamiento de datos y analítica inteligente.

De forma en cierto sentido puntual, y muy ligado y como apoyo a mis actividades docentes, este año hay picos de temáticas menos habituales como las comunicaciones IP, la ciberseguridad, la accesibilidad o el design thinking.

Ha habido menos lecturas de lo que hubiera querido en el campo de la robótica, en parte porque tampoco hay muchas publicaciones nuevas. El foco en esta materia ha estado en algunas lecturas enfocadas a la visión ética especialmente de los robots sociales.

Y claro está, aunque de forma algo más dispersa, lecturas relacionadas con la transformación digital, con blockchain, con internet de las cosas o con computación cuántica.

En lo relativo a ensayos más o menos relacionados con la tecnología, vuelve e haber muchas lecturas con la visión ética o filosófica de la tecnología, con humanismo digital y una breve incursión en neurociencia.

Dejo para otro de mis blogs, 'El cielo del gavilán', el comentario sobre las lecturas del campo literario y de humanidades.


Lista completa de lecturas


A la hora de revisar la lista de lecturas, las agrupo, como siempre, en tres bloques: management, tecnología y ensayo, aunque debo decir que con cada vez más frecuencia me resulta difícil clasificar algunos libros en una categoría u otra porque, como ocurre, por ejemplo, con los de filosofía de la tecnología, en algunos hay bastante transversalidad y a veces es discutible dónde hay más peso, si en la filosofía o en la tecnología y porque, también, algunos libros en teoría de tecnología son a veces tan divulgativos, tan básicos, e incluso no exentos de incursiones en razonamientos de otras naturalezas, que no siempre está claro que se puedan clasificar como de tecnología. Una tercera casuística es cuando una tecnología se enfoca con visión de negocio, y donde no siempre está claro si estamos hablando más de tecnología o de ese negocio.

Esa transversalidad me gusta, y en cierto sentido la busco, pero me dificulta la clasificación.

En cualquier caso, y con una clasificación susceptible de discusión. estas, son, en fin, mi lista de lecturas de 2024:


Management


  • Exponential Organizations 2.0 (Salim Ismail, Peter Diamandis & Michael S. malone)
  • Hit Refresh (Satya Nadella)
  • The transformation myth (G. Kane, R. Nanda, A. Nguyen y J.Copulsky)
  • Humanismo digital (Joan Clotet)
  • Testing business ideas (David Bland & Alex Osterwalder)
  • Moonshot thinking (Ivan Bofarull)
  • Change by design (Tim Brown)
  • The design thinking playbook (Michael Lewrick, Patrick Link, Larry Leifer)
  • Rewired (Eric Lamarre, Kate Smaje, Eodney Zemmel)
  • Measure what matters (John Doerr)
  • Design thinking for business growth (Michael Lewrick)
  • Smart Citizens (Luis Alberto Santos)
  • Accesibilidad: personas con discapacidad y diseño arquitectónico (José Luis Gutiérrez Brezmes)
  • Modelos de negocio: Resolución de problemas y creación de valor (José Antonio de Miguel)


Tecnología


  • Robotic Process Automation (RPA) - Digitization and Automation of Processes (Christian Langmann y Daniel Turi)
  • Ciberseguridad paso a paso: Diseña tu estrategia (Maria Ángeles Caballero, Laura Baus y Diego Cilleros)
  • The art of invisibility (Kevin Mitnick)
  • Accesibilidad Web (Olga Revilla y Olga Carreras)
  • Odoo 17 Enterprise Book - Volume 4: HR, Website & Studio (Cybrosis Technologies)
  • The heart and the chip (Daniela Rus, Gregory Mone)
  • Aprende Machine Learning en español (Juan Ignacio Bagnato)
  • Ethereum for business (Paul Brody)
  • Microsoft Copilot: Mastering the AI Revolution in Office 365 (Bryan Silva)
  • iBPMS - Intelligent BPM Systems (Layna Fischer, Ed.)
  • Artificial Intelligence with Power BI (Jennifer Stirrup & Thomas Weinandi)
  • Internet of Things: Architectures, Protocols and Standards (S. Cirani, G. Ferrari, M. Piccone & Luca Veltri)
  • Autonomous Agents and AutoGPT: Creating Intelligent Bots with Reinforcement Learning (Alex Brogane)
  • Cuando fuimos jóvenes (Martiniano Mallavibarrena)
  • The illustrated network (Walter Gorelski)
  • Accesibilidad de las TIC para La diversidad funcional cognitiva (P. Román-Graván, C. Ballesteros-Regaña, E. fernández-Márquez y C. Hervás-Gómez)
  • Networking for dummies (Doug Lowe)
  • LLMs Agents in Action (Harvey Reed)
  • Deep reinforcement learning (Aske Plaat)
  • Fundamentos de Networking para Redes IP : Cisco CCNA (Manuel Sepúlveda)
  • Beyond Business Process management (BPM) (Jeffrey A. Doornbos)
  • Azure OpenAI Services (Adrián González Sánchez)
  • Deciphering Data Architectures (James Serra)
  • Unlocking Data with Generative AI and RAG (Keith Bourne)
  • Generative AI with LangChain (Ben Auffarth)
  • Vidas futuras (Cristina Aranda)


Ensayo: ciencia y humanidades


  • Derecho, ética e inteligencia artificial (Wilma Arellano Toledo, Ed.)
  • Social robotics and the good life (Janina Loh y Wulf Lod (Eds.))
  • Robología, la nueva filosofía en la era robótica (Jesús A. Marmol)
  • Hybrid societies (Piercosma Bisconti)
  • Digital Humanism (Julian Nida-Rümelin y Nathalie Weidenfeld, Eds.)
  • Introduction to digital humanism (Varios)
  • El cerebro, el teatro del mundo (Rafael Yuste)
  • Pensar la tecnología (Antonio Diéguez)
  • ¿Ética o ideología de la inteligencia artificial? (Adela Cortina)
  • Programming the universe (Seth Lloyd)


Ranking


Y todos los años, a la hora de hacer el ranking de lecturas, me enfrento a la dificultad de discernir. En este año hay no menos de diez o quince libros, y seguramente más, de muy alta calidad, y además una calidad o interés que considero muy parejo por lo que, aunque intento guardar cierta objetividad, está poco claro el ranking y pienso que si yo mismo me olvidase este post y lo redactase, no sé, a lo mejor dentro de un mes, probablemente cambiaría, y puede que no de manera superficial el ranking.

Pero bueno, con todas esas precauciones y salvedades, ésta es mi propuesta de ranking con las mejores lecturas de este año.


(1) Azure OpenAI Services


Y el primer puesto es para, como se podía esperar, un libro que tiene que ver con los grandes modelos de lenguaje. La verdad es que en este campo, hay no menos de cinco lecturas de este año, de parecida calidad, planteamiento e interés, pero he optado por este 'Azure OpenAI Services'. 

Es posible que la elección esté un poco condicionada por el hecho de que conozco personalmente, y aprecio, al autor, pero desde luego es un gran libro. 

Un libro para el que, además, el título puede ser un poco engañoso porque, sí, evidentemente, trata del servicio que recubre en Azure los modelos de OpenAI, pero, sin embargo, pone mucho empeño, y desde luego con éxito, en explicar los fundamentos de la inteligencia artificial generativa, de los grandes modelos de lenguaje y también, evidentemente, de los servicios cloud computing y particularmente, claro, Azure. 

Es un gran libro, pues, y pese a lo que pueda parecer, para alcanzar una visión amplia y arquitectural de los servicios de inteligencia artificial y de cloud computing.

(2) Moonshot thinking


En el segundo puesto un libro del que había oído hablar con frecuencia pero que hasta ahora no había leído. Se trata de este 'Moonshot thinking' de Ivan Bofarull.  Un libro dedicado al campo de la innovación y donde, de forma ordenada y atractiva, se da cita la revisión del pensamiento sobre emprendimiento e innovación de los autores más relevantes de la materia, junto con pensamientos y planteamientos propios del autor. Un libro, además, de sencilla y atractiva lectura, desafiante y motivador. 

Pese a la fama que le precedía, para mi ha sido un descubrimiento.


(3) Programming the universe


Y la medalla de bronce se la otorgo justamente a mi última lectura de este año: 'Programming the universe'. Y lo hago, aparte de su indudable calidad científica y buena factura y exposición, por tratarse de un libro bastante sorprendente en cuanto a contenido. Un libro que en realidad tiene ya bastantes años y que probablemente en ciertos nichos sea popular, pero que conocí sólo por la sugerencia de David Arcos en su paso por un episodio del podcast 'Código abierto' en que colaboro.

Aunque, en cierto sentido, es un libro sobre computación cuántica, lo cierto es que más de la computación cuántica en sí misma, habla de la mecánica cuántica o, por mejor decirlo, de su significado e implicaciones y plantea una tesis sorprendente: el propio universo es un gigantesco computador cuántico, un computador donde se entrelazan  y relacionan los conceptos de energía e información.  

Muy bien explicado, buscando y consiguiendo a medias la simplicidad, aunque los conceptos son con frecuencia complejos y poco intuitivos y requiere una lectura lenta y concentrada para su verdadera comprensión.

Un fascinante y sorprendente recorrido por los fundamentos de la mecánica cuántica, de la computación y de las teorías sobre el nacimiento y evolución del universo. 

Sorprendente.


Accesits


Son tantas las lecturas interesantes y de buena factura, que no sólo para elegir el pódium sino también para decidir qué libros incluyo o excluyo de estos accesits, he tenido importantes dudas y dificultades pero, bueno, ahí va una propuesta: 

El primer accesit es para otro libro sorprendente, aunque probablemente un 'clásico' en el ámbito de la ciberseguridad, este 'The art of invisibility'. Se trata de un libro escrito por un hacker, primero hacker de 'los malos' habiendo estado incluso en la cárcel, que luego se pasó al campo del 'hacking ético'. Aunque quizá adolece un poco de desorden en su exposición, denota un conocimiento profundísimo, y sin duda práctico, de todo lo que tiene que ver con los ciberataques y la ciberseguridad. Un libro que te puede incluso hacer sonreír pero que en el fondo, al menos a mi, me ha dejado un poso de inquietud porque te demuestra, pese a que en teoría la idea es la contraria, enseñarte a ser invisible, que la verdadera seguridad es prácticamente imposible.

He leído tantos libros de buena calidad este año en torno a los LLMs que me resulta muy difícil decidir, pero me quedo con estos dos, 'Unlocking Data with Generative AI and RAG' y 'Generative AI with LangChain' En ambos casos, se trata de libros que, aunque evidentemente seleccioné con la esperanza que me aportaran información relevante, lo cierto es que tenía las expectativas bajas porque en los libros sobre temáticas muy modernas, muy en la cresta de la ola, no suele ser fácil conseguir calidad y profundidad. Pero estos dos sí que valen la pena por calidad del contenido, actualidad y claridad expositiva. El primero, 'Unlocking Data with Generative AI and RAG' aborda, sobre todo el tema del RAG ('Retrieval Augmented Generation''). 

En el caso del segundo, 'Generative AI with LangChain' lo que buscaba es, entender claramente como se entienden y utilizan y qué posibilidades ofrecen los tan traídos y llevados agentes inteligentes, en este caso con la herramienta 'reina' en estos momentos para su creación que es LangChain. Aunque, probablemente, esté por llegar el 'super-libro' de los agentes inteligentes (cruzo dedos para que aparezca y leerlo en 2025), éste no está nada mal.


Y para rematar esta lista con cuatro accesits (me quedo con ganas de unos cuantos más) me quedo con este 'Deep reinforcement learning' sobre aprendizaje por refuerzo basado en deep learning, un libro en el que he basado una larga serie de posts, todavía inconclusa, sobre aprendizaje por refuerzo. Un libro científico, riguroso y desde luego no sencillo pero que explica, con gran conocimiento, rigor y actualidad, todo lo relativo a ese aprendizaje por refuerzo, unas de las 'esperanzas blancas' de mejorar y economizar los mecanismos de aprendizaje y, además, con interesantes aplicaciones en robótica en general y robótica cognitiva en particular e incluso, en los famosos agentes.


De  cara a 2025


De cara a 2025, desde luego seguiré leyendo mucho sobre inteligencia artificial y seguiré poniendo foco en los grandes modelos de lenguaje, y previsibles novedades que aparecerán este año en el campo de la inteligencia artificial generativa y de los agentes.

Quiero volver también a mis queridos robots, especialmente en robótica cognitiva, robots sociales y humanoides, y de hecho tengo en 'cola de salida' dos libros y algún tema como la robótica de enjambre en la que quiero profundizar. Seguramente 2025 sea el año para ello.

Sin duda, seguiré explorando y actualizando todas la tecnologías digitales relevantes (blockchain, internet de las cosas, realidad virtual, etc) y también la visión de negocio con temas sobre innovación o transformación digital.

Es posible también que refuerce el tema de la computación cuántica

Y, sin duda también, seguiré buscando miradas transversales sobre la tecnología, desde campos como la filosofía y la ética y puede que desde otros como la lingüística, la psicología o la neurociencia.

En fin, esto lo decido un poco sobre la marcha, según las novedades en tecnología y las novedades editoriales, según mis propios intereses y, en ocasiones, según las demandas de mi actividad docente.

y, dentro de un año, nuevo repaso.


Artículos de este blog relacionados

lunes, 30 de diciembre de 2024

Mis #TEDTalks de 2024

Pues llega el momento de hacer mi ya tradicional post, el penúltimo del año en este blog, listando y comentando las charlas TED, las #TEDTalks, que he visualizado este año.

Como viene ocurriendo en los dos o tres últimos años, a la hora de seleccionar las charlas TED que veo, me fijo más en el tema que en otros aspectos.

Aunque uno de mis objetivos de ver estas charlas sigue siendo observar a los mejores 'speakers' para ver cómo se expresan, cómo narran y en qué elementos gráficos o escenográficos se apoyan,  lo cierto es que ya pongo poco foco, salvo excepciones, en buscar charlas excepcionales, que además creo que no abundan, y a cambio busco más el oír hablar de las últimas tendencias, fundaentalmente en materia de tecnología, o escuchar ideas que me resulten a priori sugerentes en mi amplio campo de intereses. A veces también, aunque menos frecuentemente, busco 'al personaje', es decir personas famosas, o en la 'cresta de la ola' o de las que he leído un libro y que quiero 'ver en acción'.

En las charlas de este año, se pueden localizar a algunos de esos personajes famosos como Max Tegmark, Stephen Wolfram, Andrew Ng, Reid Hoffmann, Chris Anderson, Fei Fei Li, John Wooden, Ray Kurzweil o Steven Pinker. Pero, junto a ellos, abundan los perfectos desconocidos y desconocidas, al menos para mi, de cuyas charlas me ha atraído fundamentalmente el tema de que hablan.

Aunque, quizá, no identifique este año ninguna charla realmente deslumbrante, sí que hay muchas interesantes y correctamente escenificadas. En cuanto a temática, como ya ocurrió el año pasado, predominan las que tienen que ver con tecnología, y muy especialmente con inteligencia artificial, pero también hay elementos de liderazgo, talento, comunicación, etc y así hasta completar el cupo de las 50 charlas que he visualizado este año.


Las #TEDTalks de 2024


Y, en fin, estas son las 50 charlas que he visualizado este año:



De cara a 2025


¿Y para 2025? 

Pues, a priori, preveo continuidad: seguir buscando más la temática que otra cosa, con mucho foco en los aspectos de tecnologías más avanzadas, pero con interés en liderazgo, comunicación, ética y, en fin, en un muy amplio abanico de temas. Y aunque fundamentalmente, como digo, y como he hecho en al menos los dos últimos años, pongo más foco en los temas que en otra cosa, también con mucha atención a los grandes personajes a los que vale la pena ver y escuchar, y siempre con deseos y esperanzas de ver alguna charla que me maraville, que sea realmente excepcional, más allá de su temática, por su exposición, por su 'storytelling', por su puesta en escena.

Y, si Dios quiere, el 30 de Diciembre de 2025, nos citamos en este medio para ver qué ha dado de sí el año en cuanto a charlas TED,


Artículos de este blog relacionados

viernes, 27 de diciembre de 2024

Pensar la tecnología desde la filosofía con Antonio Diéguez

En 'Pensar en la tecnología' su autor, el catedrático de la Universidad de Málaga Antonio Diéguez, nos trae un análisis filosófico pero muy moderno y actual, del papel de la tecnología en la sociedad y las consideraciones que desde un punto de vista humano, y especialmente ético, debemos de tener en cuenta, trayendo a colación, durante el recorrido, muchas de las ideas de otros autores, desde los más clásicos a los más modernos y muchos debates, gran parte de los cuales no están realmente resueltos, sin dejar, por supuesto, de aportar sus propios planteamientos y opciones

El libro, que no es muy extenso, se divide en cinco capítulos como sigue:
  • '¿Cómo entender la tecnología? Una aproximación filosófica': Comienza haciendo algunas aclaraciones de orden terminológico indicando lo que significa técnica, lo que significa tecnología y cuál es la relación de la ciencia con la tecnología. Continúa justificando el interés de una filosofía de la tecnología comenzando por una diferenciación de los problemas abordados y una reseña histórica. Y remata con lo que el autor considera tres tópicos falsos sobre la tecnología, que serían: la consideración de que la tecnología no es ni buena ni mala sino que depende del uso que hagamos de ella, la afirmación de que la tecnología nos deshumaniza y, finalmente, la afirmación de que la tecnología tiene su propia dinámica ajena al control humano.

  • 'No deberíamos aceptar el determinismo tecnológico': En este capítulo el autor afronta lo que parece ser casi una batalla personal contra el determinismo tecnológico, un determinismo que, aunque presenta diversas variantes que el autor explica, en el fondo viene a decir que la tecnología sigue su propio camino sin posibilidad de un control humano y sin posibilidad tampoco de un debate ético, en línea con el tercer tópico tratado en el debate anterior. El autor explica las variantes de ese determinismo que se concretan en una que afirma que los procesos sociales y el devenir histórico vienen determinados por la tecnología, otra que sostiene que la tecnología está determinada por las leyes naturales, y una tercera que dice que la tecnología se auto-determina a sí misma. Tras estas explicaciones el autor identifica los problemas tras ese determinismo tecnológico.

  • 'Tecnología, responsabilidad y democracia': Comienza concentrándose en la idea de la responsabilidad y, tras proporcionar 'background' sobre el concepto, analiza la posibilidad de que las máquinas sean responsables, entrando así en la problemática de la agencia moral de las máquinas y recorriendo algunas de las argumentaciones de diversos autores y autoras en ese campo. Tras esto, se sitúa en la hipótesis de unas máquinas realmente inteligentes, una AGI ('Artificial General Intelligence') y analiza cómo deberíamos relacionarnos con esas máquinas lo que abre el debate, ahora, de la paciencia moral de esas máquinas. Finaliza con una última sección que analiza largamente la relación entre tecnología y democracia

  • 'Transhumanismo y gobernanza de la inteligencia artificial': Recoge aquí el autor un tema del que es especialista y del que ya ha publicado al menos otro libro: el transhumanismo. Primero explica de qué estamos hablando y luego analiza cómo el transhumanismo trasciende el ámbito tecnológico para convertirse en una forma de ideología. Luego se pregunta si el dominio de las máquinas es realmente algo cercano, y toca, entre otros, aspectos como la singularidad o la posibilidad de la inmortalidad. Aborda luego la super-inteligencia y las posibilidades de mejoramiento humano. Y finaliza el capítulo analizando la temática de la regulación de la inteligencia artificial.

  • 'Biotecnología: un camino abierto': En este quinto y último capítulo se adentra en una forma de tecnología algo diferente pero igualmente desafiante como es la biotecnología y aborda algunos aspectos muy relacionados con la temática del transhumanismo como, de nuevo, el mejoramiento humano o el alargamiento de la vida. Finaliza con algo que parece de película pero sobre lo que ya hay trabajos: la posibilidad de 'devolver a la vida' especies de seres vivos ya extintas.
Remata la obra con un extenso epílogo en que, entre otras muchas cosas, anima a considerar la tecnología, no sólo desde el punto de vista ético, sino también bajo el prisma de sus implicaciones políticas y sociales.

'Pensar la tecnología' es un libro más divulgativo que erudito, aunque situándose un poco a medio camino, que aborda la tecnología y sobre todo su impacto, desde un prisma filosófico y especialmente aunque no únicamente, ético, tocando por el camino, no todos, pero sí muchos de los debates filosóficos más relevantes respecto de la tecnología, con dos focos fundamentales, aunque no únicos, desde el punto de vista tecnológico: la inteligencia artificial y la biotecnología. Una lectura interesante, que hace reflexionar, y que para lectores poco acostumbrados a estas temáticas de éticos tecnológica o filosofía de la tecnología, (la verdad es que no es mi caso) puede resultar muy sorprendente y estimulante.

Antonio Diéguez Lucena

(Fuente: Entrada en Wikipedia)

Antonio Diéguez Lucena
Antonio Javier Diéguez Lucena (Málaga, España, 1961) es un filósofo y Epistemólogo español. Doctor en filosofía por la Universidad de Málaga y catedrático de lógica y filosofía de la ciencia en esa misma universidad. Sus investigaciones giran alrededor de la filosofía de la ciencia, el realismo científico y el transhumanismo.​ Se le considera un referente del transhumanismo en el mundo hispanohablante gracias a dos de sus libros: 'Transhumanismo' (2017) y 'Cuerpos inadecuados' (2021).

En 1984 se graduó de sus estudios de filosofía en la universidad de Málaga, universidad a la que ha estado ligado toda su vida académica. En 1987 consiguió su doctorado con Pascual Martínez Freire como director. También ha cursado varios créditos de la licenciatura de biología.

Desde 1984 ha trabajado como profesor en la universidad de Málaga, consiguiendo la titularidad del puesto en 1989. Ha dado clase en diferentes asignaturas en las licenciaturas y grados de filosofía e Historia y en másters relacionados con la filosofía o la ciencia en la universidad de Málaga. También ha realizado diversas estancias en el extranjero: en la Universidad de Helsinki en 1996, 1998 y 2003; en la Universidad de Harvard en 2007; y en el The Oxford Uehiro Centre for Practical Ethics de la Universidad de Oxford en 2014 y en 2023.

Entre 2012 hasta 2015 fue presidente electo de la Asociación Iberoamericana de Filosofía de la Biología y desde 2013 es director de la revista Contrastes.

En abril de 2023 fue nombrado por el Ministerio de Ciencia e Innovación como miembro del Comité Español de Ética de la Investigación.

Puedes conocer más del autor visitando su página personal en la Universidad de Málaga o siguiéndole en X donde se presenta como @AJDieguez.

Ficha técnica:


EDITORIAL: Schackleton books
AÑO: 2024 
ISBN: 978-8413613291
PAGINAS: 256

viernes, 20 de diciembre de 2024

Computación afectiva y voz: detección de estados anímicos en la cara y en la voz

Un campo de la computación, y muy especialmente de la que tiene que ver con la inteligencia artificial, que recibe gran interés, aunque al tiempo resulta polémico o desafiante desde el punto de vista ético y regulatorio, es la detección de emociones por las máquinas, por algoritmos y robots.


Computación afectiva


Aunque últimamente quizá no se utilice mucho este nombre, existe un subconjunto de la inteligencia artificial denominado computación afectiva ('affective computing') que se concentra en ello, una disciplina a la que hace un tiempo dediqué bastante espació en este blog a propósito de la lectura del libro 'The Oxford handbook for affective computing' y una disciplina que su creadora, Rosalind Pickard definía como 


computing that relates to, arises from, and deliberately influences emotion.


una definición compacta y clara y no exenta de ambición e incluso polémica puesto que declara la intención, no sólo de detectar emociones sino de, deliberadamente, influir en ellas.


Modelos de emociones. 


Una de las tareas de la computación afectiva es, claro, detectar las emociones de los humanos. Y el resultado de esa detección podría ser, simplemente, una etiqueta que clasifique la emoción. En esa labor es frecuente acudir al campo de la psicología para que nos defina y clasifique de alguna manera las emociones humanas.

Un muy famoso, aunque no completamente aceptado, modelo de emociones es el de las seis emociones básicas definidas por Paul Ekman, que identificaba seis emociones que, además, se daban en todas las culturas: alegría, ira, miedo, asco, sorpresa, tristeza.


Las seis emociones fundamentales de Ekman

Hay que decir que este modelo ha sido discutido y que el propio Ekman amplió este modelo para llegar hasta las quince emociones, en lugar de 6.


Detección visual de emociones 


No es del todo difícil imaginar cómo trabajar en la detección visual de emociones. Más o menos, la idea podría ser: partimos de un sensor (típicamente una webcam) que captura la imagen y se le da como entrada a un algoritmo (típicamente una red neuronal, probablemente con unas primeras capas de convolución para 'entender la imagen' y otras capas densas finales para realizar la clasificación con una función de actividad final de tipo softmax). A este algoritmo, evidentemente se le ha entrenado previamente, seguramente mediante aprendizaje supervisado, para que aprenda a hacer la clasificación.

El mismo Ekman planteó también otra forma de trabajar, no pensando en machine learning, pero sí orientada a la detección visual de las emociones, mediante el desarrollo de FACS ('Facial Action Coding System') en que se definen una serie de unidades de acción ('action units') que eran como elementos de la expresión facial anatómicamente observables y que luego se relacionan con emociones.


FACS y action units

Lo que no cabe duda es de que, con mayor o menor acierto, es viable la detección de emociones humanas mediante la expresión facial


Análisis de sentimiento


Pero hay otros mecanismos. Es muy conocido en el campo de la inteligencia artificial el denominado análisis de sentimiento ('sentiment analysis'), que trabaja con un texto (texto que lo puede haber tecleado un usuario, que puede proceder de un tuit, un correo electrónico, una noticia, un documento, o que puede provenir de la conversión a texto de lo dicho vocalmente por una persona) y se le asigna una etiqueta que representa la actitud del emisor/emisora de ese texto hacia lo que allí expresa.

Es una tarea propia del procesamiento de lenguaje natural y que da buenos resultados en el estado actual de la tecnología.


Detección acústica de emociones


Pero lo que, en el fondo, me ha animado a escribir este post es otra forma de detectar emociones humanas, en este caso, con base en la voz y las propiedades físicas del sonido emitido por el humano.

Se trata de una forma de trabajo que me encuentro descrito en el libro 'The Oxford Handbook of Computational Linguistics' editado por Ruslan Mitkov y, en concreto, en el capítulo 'Text-to.Speech synthesis' de Thierry Dutoit y Yannis Stylianou.

En este caso, se trabaja con el propio sonido, con la onda del sonido, no con el texto que se expresa, enlazando un poco, aunque creo que no exactamente, con la idea de la prosodia.

Se trata de la exposición de un trabajo ya antiguo, realizado por la propia Rosalind Pickard de la que hablábamos más arriba, y que relaciona las propiedades del sonido de la voz con las seis emociones de Ekman, que mencionábamos antes.

En la tabla se pueden observar esas correspondencias.



Como se puede ver en esa tabla, Pickard se fijaba en cuatro propiedades:

  • La velocidad del hablante, es decir la tasa a la que va emitiendo elementos léxicos

  • El tono ('pitch') es decir, si es más agudo o más grave, (medido a partir de la frecuencia fundamental del sonido de la voz) y del cual evalúa tanto su valor medio como el rango de tonos empleados.

  • La intensidad de la voz 


Aunque parece un estudio algo preliminar y no del todo operativo, da buenas pistas de cómo las propiedades físicas de la voz correlan con las emociones y estados anímicos.


Combinaciones


No me resulta difícil imaginar que un mecanismo avanzado de detección de emociones, como podría incluir un robot social avanzado, probablemente reuniría percepción multisensorial y ejecutaría un análisis multimodal que combinaría los elementos visuales, textuales, acústicos e incluso alguno más, para proporcionar un mecanismo de detección de emociones altamente sofisticado y efectivo.


Conclusiones


Por si alguien lo duda a estas alturas, las máquinas, combinando sensores y procesamiento mediante inteligencia artificial, están bien preparadas para detectar emociones en los humanos, unas emociones que pueden detectar, al menos, mediante la imagen facial, el texto expresado por la persona y, además, por el propio sonido de la voz.

lunes, 16 de diciembre de 2024

Notas sobre aprendizaje por refuerzo (XIII): sistemas multi-agente

Casi todo lo que he comentado en esta larga serie de artículos dedicados al aprendizaje por refuerzo ('reinforcement learning'), se refería a problemas o situaciones en que nos centrábamos en un único agente, del cual queríamos maximizar su política.

En el último post, introdujimos ya el caso de dos agentes.

En este artículo damos un paso más para abordar los escenarios o sistemas multi-agente.

Como en toda esta serie, me guiaré por las enseñanzas recogidas en el libro 'Deep reinforcement learning' de Aske Plaat y, como anuncié en el post anterior, en los últimos artículos de esta serie profundizaré poco en los algoritmos propiamente dichos, delineando sólo las ideas principales.

Vamos, allá, pues, con los sistemas multi-agente.


Recordatorio: lo que hemos visto de aprendizaje por refuerzo


Pero antes, y como en toda esta serie, recordemos brevemente lo que hemos visto hasta ahora.


Mientras nos mantuvimos, en los primeros posts, en el caso de sistemas mono-agente, nos ocupábamos de la situación de un agente que interactúa con un entorno que se encuentra en un estado s. Sobre ese entorno, el agente aplica unas acciones, a, como consecuencia de las cuales, el entorno puede experimentar una transición y cambiar de estado, pasando del estado s al s', y el agente recibe una recompensa r. El agente decide la acción a aplicar en cada momento, siguiendo una política π y su objetivo es maximizar la recompensa obtenida lo largo de una secuencia o trayectoria.

Los métodos más básicos, aquellos en que el espacio de estado es reducido, siguen un enfoque tabular, en que se tabulan, de ahí el nombre, los posibles estados y para ellos se calculan unas funciones que nos dan el valor, Q, de la recompensa esperada. Cuando la dimensión del espacio de estados es muy alta, como sucede habitualmente en problemas reales, dejan de tener sentido estos métodos tabulares así que renunciamos a representar la situación del entorno mediante su estado, y a cambio lo representamos mediante unas características ('features') y la obtención de valores o acciones vienen a ser unas funciones con base en esas características e implementadas mediante redes neuronales profundas, dando lugar al 'deep reinforcement learning'.

Cuando tratamos problemas ya no de alta dimensionalidad, sino continuos, como es la locomoción de robots, se adoptan los denominados métodos basados en políticas en que se prescinde de la visión de valores, y se trabaja directamente en optimizar las políticas, que pasan a considerarse como estocásticas, es decir, como distribuciones de probabilidad. 

También aparecía como opción el denominado aprendizaje basado en modelos ('model-based'), en que el agente primero consigue un modelo del entorno y luego ya prescinde del entorno propiamente dicho par a trabajar con ese modelo local durante todo el entrenamiento.

Y, en el último post, ya introdujimos brevemente las situaciones en que tenemos dos agentes, exactamente dos. Dos agentes que se encontraban en una situación competitiva, en uno de los denominados juegos de suma cero en que la ganancia de un agente supone la perdida del otro. En esa situación, una opción habitual es trabajar con el aprendizaje basado en modelos, dado que, para un agente, el entorno está constituido por el otro agente, y se adopta la hipótesis razonable de que su política, la del otro agente, es igual a la nuestra, por lo que modelamos el entorno con el modelo de nuestra propia política. 

Eso, además, conduce a la posibilidad del autoaprendizaje o auto-juego ('self-play'), en que un agente aprende jugando, en el fondo, contra sí mismo (contra otro agente con la misma política, en realidad).

Mediante los problemas mono-agente, se pueden tratar problemas como la locomoción de robots, la búsqueda de rutas o videojuegos. Y mediante los problemas de dos agentes, se ha conseguido tratar casos de juegos de mesa, por ejemplo. 


Sistemas multi-agente


Pues bien, ahora damos un nuevo salto de complejidad, abordando los escenarios o sistemas multi-agente, es decir, ya no nos limitamos a uno o dos agentes, sino que el número es mayor e indefinido.

Siendo un poquito formales, los problemas o sistemas multi-agente se podrían definir como problemas de decisión secuencial de múltiples agente autónomos que operan en un entorno estocástico compartido y donde cada uno de los agentes busca optimizar su recompensa a largo plazo mediante la interacción con el entorno y con los otros agentes.

El entrar en sistemas multi-agente, nos introduce además la idea de la colaboración entre agentes. En los casos mono-agente, no tiene sentido ni siquiera plantearlo y, en el caso de dos agentes, el foco ha estado en la competencia entre ellos, en los juegos de suma cero.

Sin embargo en los sistemas multi-agente una situación habitual es que los agentes colaboren para conseguir un objetivo común. Pero tampoco es extraño que los agentes compitan entre sí. Es decir, en los sistemas multi-agente, en general tenemos que contemplar tanto la competición como la colaboración.

Por eso, a la hora de trabajar con ellos, se suele dividir los problemas multi-agente en tres situaciones:


  • Comportamiento competitivo
  • Comportamiento cooperativo
  • Comportamiento mixto


Algunos retos de los sistemas multi-agente


Los sistemas multi-agente se enfrentan a varios retos. En concreto, en la obra citada, Plaat se concentra en tres:


  • Observabilidad parcial
  • Entornos no estacionarios
  • Espacios de estado grandes


El problema de la observabilidad parcial hace referencia que se trata de problemas en que no podemos suponer que el agente disponga de información perfecta sino que, bien al contrario, ésta es incompleta e imperfecta. Así, por ejemplo, un agente puede trabajar con información privada que no pone a disposición del resto de agentes, como se podría ejemplificar con las cartas propias de los jugadores de póker. Esto nos lleva a tener que considerar todos los posibles 'estados del mundo' lo que incrementa enormemente el número de variantes a considerar.

El problema de los entornos no estacionarios se refiere al hecho de que el entorno no permanece estable, dado que los agentes (que, en el fondo, forman parte del entorno para un agente dado) van mejorando sus propias políticas y, por tanto, el entorno para un agente dado, se modifica de manera continuada. De alguna forma, todos los agentes están aprendiendo de manera concurrente. El encontrarnos ante entornos no estacionarios hace que los agentes deban de tener en cuenta una suerte de espacio de acciones conjunto que, no sólo tenga en cuenta sus propias acciones, sino también las del resto de agentes. Esto, de nuevo, incrementa muchísimo, de manera exponencial, el espacio de acciones a considerar.

El tercer reto, espacio de estado grandes deriva, y en el fondo ya lo hemos mencionado, de que la presencia de múltiples agentes aumenta el espacio de acciones de manera exponencial con el número de agentes. De momento, la única forma de acometer estos grandes espacios de acciones es aplicando hipótesis simplificadoras pero realistas.


Aproximaciones


Plaat reconoce que este tipo de problemas no están realmente resueltos de manera general y que se encuentran fundamentalmente en investigación, pero menciona y describe algunos algoritmos o situaciones útiles como el CFR ('Counter Factual Regret minimization'), y su generalización a deep learning: Deep Counter Factual Regret Minimization con resultados interesantes para entornos competitivos.

También se explica la opción de, pese a estar hablando de agentes autónomos, centralizar el aprendizaje lo que, en el fondo, lo hace equivalente a un problema de un solo agente.

E igualmente explica estrategias en que se intenta reducir la complejidad, modelando el comportamiento del oponente basándose para ello en la teoría de la mente procedente del campo de la psicología.

Existen, asimismo, los algoritmos evolutivos (creo que otro nombre para o una derivada de los algoritmos genéticos) que se basan en los mecanismos propios de la biogenética: mutación, recombinación, y selección.

Finalmente, menciona los enfoques propios del 'swarm computing' (computación de enjambre) que se centra en los comportamientos emergentes que surgen en sistemas colectivos, descentralizados y auto-organizados.

No profundizaré más en los algoritmos aunque, especialmente el 'swarm computing' es muy de mi interés, y seguramente vuelva a él en otro momento ya fuera del ámbito del aprendizaje por refuerzo y pensando más en robótica..


Conclusiones


Un nuevo paso en el aprendizaje por refuerzo es el salto a los sistemas multi-agente donde, aparte de un entorno común, tenemos varios agentes autónomos, cada uno de los cuales desea optimizar su recompensa a largo plazo, y que interactúan entre si exhibiendo comportamientos tanto competitivos, como colaborativos o mixtos.

Aunque hay avances, se trata de un campo fundamentalmente en investigación.


Artículos de este blog relacionados


miércoles, 11 de diciembre de 2024

Tres formas de personalizar un LLM

Una de las 'magias' que ha traído consigo la inteligencia artificial generativa, que ya por sí misma parece pura magia si no fuera porque parece que ha hemos perdido un poco la capacidad de asombrarnos, son las posibilidades que ofrece de adaptar los modelos, personalizarlos para una dominio, unas circunstancias o incluso los gustos o características de una persona concreta.

En parte por eso, aunque no únicamente por eso, ha surgido el término de modelo fundacional para designar este tipo de modelos: porque sirven como base para muchos modelos y aplicaciones, extendiendo en cierto sentido, su propósito original.


Grandes modelos de lenguaje


Aunque existen muchos modelos generativos, y aunque la creciente multimodalidad y convergencia o concurrencia de modalidades y modelos al menos en las mismas soluciones tienden a desdibujarl las fronteras, me voy a centrar en este caso, 'sólo' en los grandes modelos de lenguaje, del tipo de los GPT.

Estos modelos, como muchos de los lectores de este blog probablemente conozcan, modelan el lenguaje humano y recogen, bajo una perspectiva esencialmente probabilista, la estructura de ese lenguaje tanto en sintaxis como en morfología. Asimilan, además, a partir del entrenamiento y sea dicho cono comillas "conocimiento" humano expresado en ese lenguaje y manifestado en webs, libros o la wikipedia. Y recogen, hasta cierto punto, unas ciertas nociones semánticas, no porque tengan ningún tipo de conocimiento real sobre significados pero sí porque, mediante los famosos 'embeddings' tienen conceptos bastante acertados de cercanía semántica de palabras.

Con eso, con el uso de mecanismos de atención que le permiten fijarse de manera selectiva en amplios contextos textuales, y con una atención autorregresiva, que permite que el modelo mantenga la coherencia cuando su respuesta se alarga, alcanzamos los espectaculares, por más que ya casi asimilados, resultados de este tipo de modelos, y que se hicieron célebres hace ya algo más de dos años, con el icónico lanzamiento de ChatGPT.


La adaptabilidad de los modelos generativos.


Pero una capacidad que, aunque no totalmente ausente en la inteligencia artificial discriminativa, se potencia, casi exacerba, en la generativa, y en concreto en los grandes modelos de lenguaje, es la posibilidad de personalizarlos y adaptarlos.

La mayoría de algoritmos en general, y de inteligencia artificial y machine learning en particular, 'son como son': una vez desarrollados y/o entrenados, así se quedan y se utilizan tal cual son. Sí que se contempla, por ejemplo para modelos analíticos, el reentrenamiento periódico para adaptarse a cambios en el entorno. Pero, aún así, se trata de una forma de adaptación, todavía un poco estática (a lo mejor se reentrena cada seis meses o un año) y no generalizada.

Es cierto también que, ya desde hace años, y como forma de intentar conseguir mayor eficiencia en los entrenamientos de los modelos y menor necesidad de datos, se lleva trabajando, y con éxito creciente, en mecanismos de 'transfer learning', es decir, en la reutilización un modelo ya entrenado y más o menos genérico, para, o bien adaptarlo mediante el 'fine tunning' al que luego nos referiremos, o bien reutilizarlo como una especie de 'backoffice' cuya salida servirá de entrada a otro modelo más especializado.

Pero creo, que esa capacidad de adaptación es mayor, y utilizando nuevos mecanismos, en el caso de los modelos generativos.


Tres mecanismos de adaptación 


En concreto, y no sé si me dejo alguno en el tintero, creo que no, hay como tres formas fundamentales de adaptar o personalizar un modelo generativo, de manera que resulte más adecuado o más especializado para un dominio o área de conocimiento concreto o, incluso, que responda mejor a las características e intereses del usuario final. Las tres formas serían las siguientes:


  • 'fine tunning': Es la traslación de algo que, como acabo de comentar, ya se hacía en la inteligencia artificial discriminativa. La idea es que, el entrenamiento 'más difícil', el inicial, y el que precisa de una cantidad enorme de datos, se realice una sola vez por parte de la entidad que crea el modelo. Eso es lo que se denomina pre-entrenamiento. Eso es lo que hace, por ejemplo, OpenAI con sus modelos GPT donde, por cierto, la 'P' del acrónimo representa, precisamente 'Pre-trained'. Y luego, cada organización, e incluso cada persona que desee adaptar el modelo, puede hacer un segundo entrenamiento, muchísimo más limitado en datos, con información del dominio específico. Esto es lo que se denomina 'fine tunning' y, aunque ya existía hace tiempo, quizá gana relevancia y visibilidad en el caso de los modelos generativos. Como ilustración de esa facilidad, y posibilidad incluso para organizaciones muy pequeñas, se puede ver la manera en que Open AI describe la forma de hacer 'fine tunning' con sus modelos. Este mecanismo es el único, de los tres que vamos a ver, en que realmente se modifica el modelo como tal, básicamente en sus parámetros internos. En el caso de los dos que siguen, se personaliza la respuesta, pero no el modelo propiamente dicho.

  • RAG ('Retrieval Augmented Generation') Este mecanismo está orientado a complementar al modelo con información nueva que, o bien se ha producido con posterioridad a su entrenamiento (pero que se puede obtener típicamente en la web a través de un buscador SEO 'de toda la vida', o bien es información propia, e incluso privada, de una organización o persona, información que puede residir en documentos, sistemas de información, etc. En este caso, más que re-entrenar el modelo, lo que se hace es darle mucho más contexto (contexto que procede del buscador o de la información privada) antes de que genere su respuesta. Este contexto 'se une' al prompt del usuario, formando una especie de 'macro-prompt', por decirlo de alguna manera, que es la entrada final al modelo generativo. Este mecanismo de RAG, cada vez 'más de moda', lo describí someramente en un post de hace unos días.

  • Contexto y 'feedback' del usuario: Finalmente, el mecanismo más sencillo, y en cierto modo más alucinante, es la personalización con base en la interacción con el propio usuario y su feedback. En el fondo, es muy parecido a RAG. Lo que se hace es que, junto con el prompt que introduce el usuario, el modelo recibe como entrada información adicional que procede de interacciones anteriores, incluyendo feedback del usuario. Al igual que en RAG, casi diría que de forma complementaria, ese contexto pasa a formar parte de esa especie de 'macr-oprompt' que mencionaba en el punto anterior.


En el libro 'Unlocking Data with Generative AI and RAG' de Keith Bourne, señala algunas fortalezas y debilidades de estos mecanismos. Así, nos dice que el 'fine tunning' funciona bien para complementar al modelo con nuevo conocimiento sobre, por ejemplo, la forma de hacer tareas especializadas, pero no tanto para que el modelo recoja información factual (datos, hechos relevantes, etc). Sin embargo, ahí, en la información factual, es donde destaca RAG.

Me resulta atractiva la metáfora o comparación que el autor utiliza, diciendo que el hacer 'fine tunning' es como utilizar o mejorar la memoria de largo plazo. Sin embargo, aportar contexto vía RAG o feedback del usuario es más como utilizar la memoria de corto plazo.

El autor apunta también que, RAG (y yo añado que la interacción con el usuario) se ve limitada por el tamaño de la ventana de contexto (expresado normalmente en número de tokens), cosa que no afecta al 'fine tunning' que, en cierto modo, admite una nueva información ilimitada.

Aunque quizá en esta tipología de formas de personalizar, pueda haber simplificado un poquito, y aunque me apuesto algo a que este es un tema que va a evolucionar, y rápidamente, creo que con lo expuesto, el lector que no lo conociera ya, puede hacerse una idea clara y esquemática sobre cómo conseguir la adaptación y personalización de los modelos generativos,


Conclusiones


Una de los aspectos, no exclusivos, pero sí bastante característico, de los modelos generativos, y en concreto los grandes modelos de lenguaje, es la posibilidad, relativamente sencilla, de adaptarlos o personalizarlos a tareas concretas, a dominios específicos o a las preferencias y gustos del usuario.

Aunque quizá simplificando un poco (no creo que mucho) existen básicamente tres formas de hacerlo: mediante 'fine tunning', mediante RAG y mediante interacción con el usuario.


lunes, 9 de diciembre de 2024

Notas sobre aprendizaje por refuerzo (XII): autoaprendizaje y el caso de AlphaGo y AlphaZero

En los últimos tres o cuatro posts de esta ya larga serie dedicada al aprendizaje por refuerzo ('reinforcement learning'), voy a ir algo más rápido, en el sentido de sobrevolar un poco más los temas (que son progresivamente más complejos) y quedarme con  las ideas y enunciados principales, en un nivel algo más divulgativo.

En el post de hoy hablo del caso de autoaprendizaje con dos agentes que, como el propio nombre indica, contiene dos elementos nuevos:

  • El hecho de considerar dos agentes, en lugar de uno sólo, como habíamos hecho hasta ahora
  • El introducir la idea de autoaprendizaje.

Además, esto permitirá saltar de unas ideas que pueden parecer teóricas, a una realización muy concreta y conocida: AlphaGo y su sucesor AlphaZero. 


Repaso: Lo que hemos visto de aprendizaje por refuerzo


Antes, y como siempre en esta serie de posts sobre aprendizaje por refuerzo, un resumen de lo que hemos hablado hasta ahora



Estamos, al menos hasta ahora, ante la situación de un agente que interactúa con un entorno que se encuentra en un estado s. Sobre ese entorno, el agente aplica unas acciones, a, como consecuencia de las cuales, el entorno puede experimentar una transición y cambiar de estado, pasando del estado s al s', y el agente recibe una recompensa r. El agente decide la acción a aplicar en cada momento, siguiendo una política π y su objetivo es maximizar la recompensa obtenida lo largo de una secuencia o trayectoria.

Los métodos más básicos, aquellos en que el espacio de estado es reducido, siguen un enfoque tabular, en que se tabulan, de ahí el nombre, los posibles estados y para ellos se calculan unas funciones que nos dan el valor, Q, de la recompensa esperada. Cuando la dimensión del espacio de estados es muy alta, como sucede habitualmente en problemas reales, dejan de tener sentido estos métodos tabulares así que renunciamos a representar la situación del entorno mediante su estado, y a cambio lo representamos mediante unas características ('features') y la obtención de valores o acciones vienen a ser unas funciones con base en esas características e implementadas mediante redes neuronales profundas, dando lugar al 'deep reinforcement learning'.

Cuando tratamos problemas ya no de alta dimensionalidad, sino continuos, como es la locomoción de robots, se adoptan los denominados métodos basados en políticas en que se prescinde de la visión de valores, y se trabaja directamente en optimizar las políticas, que pasan a considerarse como estocásticas, es decir, como distribuciones de probabilidad. 

Finalmente, en el último post, hablábamos del aprendizaje basado en modelos ('model-based'), en que el agente primero consigue un modelo del entorno y luego ya prescinde del entorno propiamente dicho par a trabajar con ese modelo local durante todo el entrenamiento.


La interacción de dos agentes


Ahora toca introducir varias novedades. La primera es que vamos a hablar de dos agentes en lugar de uno. Hasta ahora siempre habíamos considerado un agente interactuando con su entorno, pero ahora hablamos de dos agentes interaccionando entre sí.

En la referencia bibliográfica que ha guiado toda esta serie de posts, y que también lo hace con éste, el libro 'Deep reinforcement learning' de Aske Plaat, se nos indica que hay dos motivos que hacen interesante considerar este caso, a saber:


  • Que nos acerca a situaciones más realistas donde es habitual la existencia de varios agentes 
  • Que se han obtenido grandes éxitos en esta variante de aprendizaje por refuerzo, especialmente en el campo de los juegos.


Problemas de suma cero


Nos centramos además, en un tipo de problema muy común en el mundo de los juegos, que son los de suma cero, es decir, la ganancia de un agente supone en la misma medida la pérdida del otro.

Esto supone dos cosas: por un lado, que el entorno para un agente dado, es fundamentalmente el otro agente, y que este entorno es, por decirlo de alguna manera, hostil.

Si en los problemas que habíamos tratado hasta ahora, podíamos considerar al entrono 'neutral' (reacciona a las acciones del agente pero sin ningún 'propósito' ni de beneficiarle ni de perjudicarle) en los problemas de que hablamos ahora, el otro agente, que viene a ser el entorno, trabaja en contra del primer agente (y, as u vez, éste trabaja en contra del segundo agente, naturalmente. Por lo tanto, cuando un agente intenta aprender una política óptima, debe de tener en cuenta todos los posibles contraataques


Autoaprendizaje


Un enfoque para el aprendizaje por refuerzo en este caso es el denominado autoaprendizaje en el que sustituimos al entorno por una copia de nosotros mismos.

¿Qué quiere decir esto?

Nosotros somos uno de los agentes y nos comportamos racionalmente para intentar ganar el juego. Suponemos, evidentemente, que el otro agente es tan racional como nosotros y, por lo tanto, que podría actuar exactamente conforme a nuestra política. Por tanto, el otro agente, y por ende el entorno, tiene exactamente el mismo modelo que nosotros mismos.

Se trata, además, de un caso de aprendizaje basado en modelo, puesto que disponemos de un modelo del entorno.

En el autoaprendizaje se crea una suerte de círculo virtuoso en que usamos el entorno (que es una copia de nosotros mismos) para generar ejemplos de entrenamiento. Con esos ejemplos, mejoramos nuestro comportamiento, nuestra política, y también la del entorno, (que es una copia de nosotros mismos). Y así sucesivamente, tanto el agente como su entorno (que, ¿lo he dicho ya? es una copia de él mismo) van mejorando, y mejorando, y mejorando... sin ningún apoyo externo. Y así hasta la excelencia.

Se me ocurre decir, de mi cosecha, que es, además, una forma de aprendizaje muy económica y práctica, porque no necesitamos de ningún entorno del que aprender o del que obtener información mediante sensores o mecanismos similares.

Anotar finalmente que me estoy tomando la libertad de traducir como 'autoaprendizaje' lo que en realidad sería auto-juego ('self-play') o juego con uno mismo. Me ha parecido que como autoaprendizaje transmitía mejor la idea.


Algunos algoritmos


Como decía al inicio del post, no voy a profundizar en detalles algorítmicos, pero para beneficio del lector más avanzado, y por si 'quiere tirar del hilo' menciono los algoritmos que aparecen en el libro de Plaat.

El autor nos habla de MCTS ('MonteCarlo Tree Search') que es un algoritmo de búsqueda en un árbol o Alpha Zero tabula rasa


AlphaGo y AlphaZero.


Como no es difícil de imaginar, este tipo de aprendizaje se adapta de manera excelente al caso de juegos con dos jugadores y reglas muy claras.

Y, en efecto, se ha utilizado, por ejemplo, para jugar al ajedrez o el mucho más complicado juego del Go, dos juegos, tanto el ajedrez como el Go que, aunque complejos, se pueden considerar de información perfecta, en el sentido de que los dos agentes tienen una información completa y precisa de la situación del juego en cada momento.

En este campo del Go son casi míticos los sistemas AlphaGo y AlphaZero, siendo el primero el que batió a Lee Sedol en el legendario encuentro de Mayo de 2016.

AlphaGo, combinaba un aprendizaje supervisado con base en información de jugadores expertos con autoaprendizaje, usando tanto MCTS y autoaprendizaje. Su evolución AlphaGo Zero ya utilizaba únicamente autoaprendizaje mediante AlphaZero tabula rasa. Finalmente, AlphaZero, es una generalización del anterior válido para otros juegos. 


Conclusiones


Aunque superficialmente, hemos visto cómo se extiende el modelo de aprendizaje por refuerzo al caso de dos agentes, y también hemos conocido algunas ideas sobre el autoaprendizaje, que ha concluido a éxitos tan sonoros de la inteligencia artificial como la consecución de AlphaGo y su sucesor AlphaZero.


Artículos de este blog relacionados