Introducción a la Inteligencia Artificial

La próxima frontera

Por @ajlopez

https://github.com/ajlopez/Talks/ArtificialIntelligenceIntro

https://github.com/ajlopez/ArtificialIntelligenceIntro

Using reveal.js

Círculo de Aprendizaje

Temas

  • Inteligencia Artificial en General
  • Agente Inteligente
  • Machine Learning
  • Aplicación a Juegos
  • Algoritmos Genéticos
  • Redes Neuronales

Inteligencia Artificial

Inteligencia Artificial, un Enfoque Moderno

http://aima.cs.berkeley.edu/

Hay edición en español

Décadas de IA

  • El Estudio y Diseño de Agentes Inteligentes
  • Conocimiento
  • Razonamiento
  • Formación de Planes
  • Manejo de Lenguaje Natural
  • Aprendizaje Automático

Agente Inteligente

Herramientas

  • Programación Lógica
  • Representación de Conocimiento
  • Sistemas Expertos
  • Redes Neuronales
  • Algoritmos Genéticos
  • ...

Machine Learning

Definiciones

La ciencia de hacer que las computadoras actuen sin programación explícita

La construcción y estudio de algoritmos que puedan aprender y hacer predicciones desde los datos

La creación de un model desde entradas de ejemplo para hacer predicciones dirigidas por los datos

Aprendiendo desde la experiencia con y sin supervisión humana

Usos

  • Clasificación de textos: detección de spam
  • Ranking de items: priorizando la inbox
  • Modelos de regresión: prediciendo las páginas vistas
  • Aprendiendo sin supervisión: construyendo un índice de mercado
  • Sistemas de recomendación
  • Análisis de redes sociales: a quien seguir
  • Finanzas: aprobación de préstamos

Principal fuente: Machine Learning for Hackers

Sabores

  • Reinforcement Learning + Interacción con el Ambiente
  • Datos + Aprendizaje Supervisado
  • Datos + Aprendizaje no Supervisado

Algoritmos

  • Vecinos más Cercanos
  • Arboles de Decisión
  • Support Vector Machines
  • Redes Neuronales
  • Algoritmos Genéticos
  • Programas Evolutivos
  • Distribuidos ...
  • ...

Juegos

Juegos de Guerra

Damas

Por Arthur Samuels, IBM, 1959

Búsqueda en Árbol

Backgammon

Ejemplo de Búsqueda en Árbol

https://github.com/ajlopez/SimpleGammon/tree/master/samples/html

Algoritmos Genéticos

Genotipo

  • Representa una solución/individuo
  • Compuesta por "genes"
  • Mutaciones
  • Cruzamiento

Estructura Genérica

## Creaando y Ejecutando Poblaciones ```js for (var k = 0; k < 1000; k++) genotypes.push(Path.createGenotype(/* ... */)); var mutators = []; for (var k = 0; k < 4; k++) mutators.push(Path.createMutator()); engine = new simplega.Engine({ minimize: true }); engine.setPopulation(genotypes); engine.setMutators(mutators); // var newgenotypes = engine.nextPopulation(); best = simplega.getBestGenotype(newgenotypes, { minimize: true }); ```

Ejemplo de Trayectoria

https://github.com/ajlopez/SimpleGA/blob/master/samples/path/path.html

Redes Neuronales

Neurona Artificial

Varias Capas

## Creando y Entrenando una Red Neuronal ```js var network = sn.network([6, 10, 3]); var outputs = network.outputs([0, 0, 1, 1, 0, 0]); console.dir(outputs); for (var k = 0; k < 20; k++) { network.train([0, 0, 1, 1, 0, 0], [0, 1, 0], 0.1); // .... } ```

Ejemplo Dígitos

https://github.com/ajlopez/SimpleNeuron/tree/master/samples/digits

ConvNetJS

"Deep Learning" en el Explorador

http://cs.stanford.edu/people/karpathy/convnetjs/ https://github.com/ajlopez/JavaScriptAI/tree/master/static

ConvNetJS Cifar10

https://github.com/ajlopez/JavaScriptAI/tree/master/static

Programas Evolutivos

Evolucionando Animales

https://github.com/ajlopez/SimpleGA/tree/master/samples/evol

Recursos

https://github.com/ajlopez/AprendiendoInteligenciaArtificial https://github.com/ajlopez/AprendiendoMachineLearning

¡Gracias!

Angel 'Java' Lopez / @ajlopez