Workshop inteligencia artificial con ml5.js, 10 enero 2019, La Planta, Santiago, Chile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ejemplos
media
.gitignore
LICENSE
README.md

README.md

workshop-inteligencia-artificial-ml5js-p5js-laplanta-2019

Workshop de introducción a la programación creativa e inteligencia artificial con ml5.js y p5.js, 10 enero 2019, 10am a 4pm, en Centro La Planta, Santiago, Chile.

Workshop para estudiantes sin conocimientos previos de programación. Los estudiantes aprenderán fundamentos aprendizaje de máquinas y programación de aplicaciones web interactivas.

Los estudiantes aprenderán estructuras de páginas web y lenguajes HTML, CSS y JavaScript con la biblioteca p5.js y sobre cómo usar y programar modelos de inteligencia artificial con la biblioteca ml5.js.

Se les dará acceso a material educativo gratuito para seguir aprendiendo después del workshop, incluyendo material de la comunidad en torno a ml5.js, p5.js, el libro gratuito Machine Learning for Artists de Gene Kogan y el libro Introducción a p5.js, disponible en formato PDF paga-lo-que-quieras.

Acerca de

Este workshop de Introducción a la programación creativa e inteligencia artificial con ml5.js y p5.js fue diseñado y es impartido por Aarón Montoya-Moraga. Este workshop incluye trabajo y material que ya ha sido usado por Aarón en workshops similares.

Esta versión fue enseñada en Centro La Planta,Santiago, Chile, jueves 10 enero 2019, en el contexto de una actividad de formación de CODED Escuela.

Fue una actividad pagada con un costo de 20,000 CLP y con con descuentos para estudiantes (10,000 CLP) y freelancers (15,000 CLP).

Flyer

alt text

Este flyer fue diseñado por Natisú y usa una imagen original de Sofía Luisa.

Temario

Sobre el instructor

Aarón Montoya-Moraga es ingeniero eléctrico, músico, programador y artista chileno. Se graduó y fue residente de investigación en el Programa de Telecomunicaciones Interactivas de la Universidad de Nueva York. Enseña introducción a la programación y FLOSS para las artes en CODED Escuela, que incluye Pure Data y ChucK para arte sonoro, Python para poesía, p5.js y Processing para artes visuales. Es colaborador del proyecto p5.js y ha traducido a español el libro Introducción a p5.js para Processing Foundation. Dirige el sello de música bandurria.

Sobre les alumnes

Haremos presentaciones de 90 segundos

Por favor responde estas preguntas:

  • Nombre?
  • Por qué viniste a este curso?
  • Experiencia programar?
  • Experiencia inteligencia artificial?

Mi comunidad

Introducción a inteligencia artificial para programación creativa

Hoy nos concentraremos en una rama de la inteligencia artificial llamada aprendizaje de máquinas, cuyo objetivo de estudio es desarrollar técnicas que nuestros computadores aprendan.

Los computadores son máquinas capaces de hacer muchos cálculos de forma muy rápida, pero no poseen inherentemente nuestra capacidad humana de reconocer una cara, una voz, o de realizar pinturas abstractas.

El aprendizaje de máquinas nos permitirá crear programas capaces de generalizar comportamientos a partir de una información suministrada en forma de ejemplo, para que así el computador "aprenda" y tenga una "inteligencia".

Estos campos usualmente son estudiados por gente trabajando en ciencias e ingeniería, pero en esta década se han creado cursos para acercar estas áreas a estudiantes, diseñadores, artistas, músicos, y creativos.

Se destaca el aporte de las siguientes personas que han contribuido a la creación difusión de material educativo y obras de arte relacionadas a inteligencia artificial y aprendizaje de máquinas:

Software a usar

Para este workshop usaremos dos bibliotecas de código abierto, libres, y gratuitas (FLOSS):

  • ml5.js: para realizar aplicaciones de aprendizaje de máquinas e inteligencia artificial.

  • p5.js: para crear páginas web con elementos audiovisuales interactivos, controlados por nuestros algoritmos hechos con ml5.js.

Historia de ml5.js

ml5.js es una biblioteca de JavaScript, desarrollada por la comunidad de NYU ITP, que incluye a profesores, residentes y estudiantes, incluyendo a Daniel Shiffman, Yining Shi, Cristóbal Valenzuela, Hannah Davis, y más. Esta biblioteca fue lanzada el año 2018.

ml5.js es desarrollada para hacer que el aprendizaje de máquinas sea más accesible a artistas, programadores creativos y estudiantes. ml5.js está construida en base a TensorFlow.js, una biblioteca de JavaScript de código abierto.

El nombre ml5.js viene de ML, la sigla en inglés para aprendizaje de máquinas (machine learning) y el "5" ya que su desarrollo fue inspirado por p5.js. La terminación ".js" indica que es una biblioteca de JavaScript.

Historia de p5.js y Processing

Processing fue creado por Ben Fry y Casey Reas. Es un lenguaje para aprender a programar dentro del contexto de las artes visuales y promover la alfabetización de software dentro de las artes visuales y la alfabetización visual dentro del mundo tecnológico. Para más información leer A modern Prometheus - The History of Processing by Casey Reas and Ben Fry .

Processing es desarrollado principalmente por la comunidad en torno a UCLA DMA, Fathom Information Design y NYU ITP.

La Processing Foundation es una fundación sin fines de lucro que promueve el desarrollo de la comunidad en torno a las herramientas Processing y que hace que los campos de la tecnología y las artes sean accesibles para diversas comunidades. Su misión es ayudar a gente de diversos intereses y orígenes a aprender a programar y hacer trabajo creativo con código, especialmente aquellas personas que no lo hubieran hecho sin acceso a estas herramientas y recursos.

p5.js es una biblioteca creada por Lauren McCarthy como una reinterpretación del espíritu original de Processing, escrita en JavaScript y por lo tanto útil para hacer aplicaciones web.

Integración ml5.js con p5.js

Usaremos ml5.js para realizar modelos y p5.js para ver nuestros resultados.

Ejercicios en clase

Teachable Machine

Giorgio Cam

ejemplo0: clasificación de imagen con MobileNet

Original extraído de la referencia de ml5.js

Este modelo pre-entrenado fue entrenado con una base de datos de 15 millones de imágenes (ImageNet). Los resultados de este algoritmo son totalmente dependientes de estos datos de entrenamiento: las imágenes incluidas y excluidas, las etiquetas aplicadas y sus errores. ``

ejemplo1: entrena una red neuronal para distinguir entre clase A y clase B y dibujar

Original extraído del libro Machine Learning for Artists

Este ejemplo está basado en MobileNet y te permite entrenar tu propio clasificador con tu cámara, para distinguir entre dos categorías A y B, y variar una gráfica.

ejemplo2: entrena una red neuronal para distinguir entre clase A y clase B y emitir sonido

Este ejemplo está basado en MobileNet y te permite entrenar tu propio clasificador con tu cámara, para distinguir entre dos categorías A y B, y reproducir sonidos.

ejemplo3: entrena una red neuronal para capturar una foto con tu cámara

Este ejemplo está basado en MobileNet y te permite entrenar tu propio clasificador con tu cámara, para distinguir entre dos categorías A y B, y capturar una foto con tu cámara.

ejemplo4: entrena una red neuronal para tocar guitarra con tu cámara

Este ejemplo está basado en MobileNet y te permite entrenar tu propio clasificador con tu cámara, para distinguir entre seis categorías, y tocar acordes de una guitarra.

ejemplo5: entrena una red neuronal para jugar Pong

Este ejemplo está basado en MobileNet y te permite entrenar tu propio clasificador con tu cámara, para entrenar una variable continua para jugar Pong.

ejemplo6: entrena una red neuronal para cambiar la velocidad de reproducción de audio

Este ejemplo está basado en MobileNet y te permite entrenar tu propio clasificador con tu cámara, para entrenar una variable continua para reproducir audio.

ejemplo7: dibuja con tu nariz usando PoseNet

Este ejemplo está basado en PoseNet y te permite dibujar con tu nariz.

ejemplo8: dibuja con PoseNet

Este ejemplo está basado en PoseNet y te permite dibujar tus keypoints.

Referencia

Para seguir explorando y aprendiendo, se recomienda consultar estas fuentes:

  • Machine Learning for Artists, libro escrito por Gene Kogan.
  • ml5.js
  • p5.js
  • Wekinator