Intr. a los Sistemas Inteligentes

2024-1


Descripción del Curso

Profesores

Fabio A. González
Profesor Titular
Depto. de Ingeniería de Sistemas e Industrial
Universidad Nacional de Colombia

Objetivo del curso

Los sistemas inteligentes estudian el desarrollo de agentes inteligentes o racionales. Un agente racional debe ser capaz de actuar para maximizar el mejor resultado esperado. El objetivo del curso es estudiar la teoría y los métodos que permiten construir agentes racionales bajo diferentes condiciones.


Temas

1 Introducción

1.1 Historia de la IA

1.2 Qué es IA

1.3 Agentes inteligentes

2 Solución de problemas

2.1 Agentes y Búsquedas

2.2 Búsqueda no informada

2.3 Búsqueda informada

3 Conceptos de machine learning

3.1 Qué es el machine learning

3.2 Aprendizaje supervisado

3.3.1 Modelos lineales

3.3.2 Modelos probabilísticos

3.3.3 Arboles de decisión

3.3.4 Redes neuronales

3.4 Aprendizaje no supervisado

3.4.1 Reducción de la dimensionalidad

3.4.2 Clustering

4 Machine learning en la práctica

4.1 Python para machine learning

4.2 Construcción de modelos a partir de datos

4.3 Exploración y preparación de datos

4.4 Evaluación de modelos

4.5 Selección de modelos

4.6 Redes neuronales y Tensorflow

4.8 Desarrollo de modelos no supervisados


Evaluación

  • Quices 15%
  • Participación 10%
  • Examen 30%
  • Laboratorios 30%
  • Proyecto 15%

Notas


Recursos del Curso

Bibliografía


Calendario del curso

Semana Tema Material Actividades
Feb 5 1. Introducción Lecturas y recursos:
- [Russell21] Chap 1
- The must-watch TED Talks on AI from 2023
Feb 12 1.3 Agentes inteligentes
2.1 Agentes y Búsquedas
Clase asíncrona:
- Qué es un agente (video 1:53)
- Ejemplo robot Roomba (video 2:23)
- Ejemplo agente reflejo (video 2:21)
- PacMan reflejo (video 1:29)
- Tipos de agentes (video 3:47)
- Agentes que planean (video 7:23)
- Problemas de búsqueda (video 6:01)
- Ejemplo viaje a Rumania (video 4:19)
- Ejemplo PacMan (video 10:56)
- Grafo del espacio de estados (video 3:13)
- Arbol de búsqueda (video 4:53)
- Algoritmos de búsqueda (video 3:47)
Lecturas y recursos
- [Russell21] Chap 2, Sect 3.1-3.2 (slides)
- [CS188-Berkeley] Planning agents (slides)
Práctica 2
Feb 19 2.2 Búsqueda no informada
2.3 Búsqueda informada
Clase asíncrona:
- Búsqueda en profundidad (DFS) (video 6:55)
- Propiedades algoritmos de búsqueda (video 8:14)
- Propiedades DFS (video 2:45)
- Búsqueda en amplitud (BFS) (video 3:20)
- Propiedades BFS (video 6:57)
- DFS iterativa (video 1:55)
- Búsqueda costo uniforme (UCS) (video 3:36)
- Problema de los pancakes (video 6:27)
- Demo UCS (video 0:56)
- Búsqueda informada (video 7:03)
- Ejemplo heurísticas (video 3:32)
- Búsqeuda voraz (video 5:51)
- A* (video 9:47)
- Terminación A* (video 4:48)
- Heurísticas admisibles (video 10:57)
Lecturas y recursos
- [Russell21] Sect 3.3-3.6
- [CS188-Berkeley] Uninformed search (slides)
- [CS188-Berkeley] A* Search and Heuristics (slides)
Práctica 3
Feb 26 4.1 Python para machine learning Clase asíncrona:
- [ai4eng] Trabajando con los materiales del curso
- [ai4eng] Talleres y plataforma de autocorrección
- [ai4eng] Introducción a Python para ML
LAB 01.01 - Practice submission (notebook, video)
LAB 01.02 - Metrics (notebook, video)
LAB 02.01 - Python (notebook, video)
LAB 02.02 - Numpy (notebook)
LAB 02.03 - Pandas (notebook)
LAB 02.04 - Card trick (notebook, video)
Mar 4 3.1 Qué es el machine learning
3.2 Aprendizaje supervisado
3.3.1 Modelos lineales
Clase asíncrona:
Introducción a machine learning (slides):
- 1. Kepler y Brahe (video )
- 2. Datos y ML (video )
- 3. 4 paradigmas de la ciencia (video )
- 4. Definición e historia (video )
- 5. Aprendizaje supervisado (video )
- 6. Aprendizaje no supervisado (video )
- 7. Otros tipos de aprendizaje (video )
- 8. Ejemplos de aplicación (video )
- 9. El proceso de ML (video )
- 10. Inducción de modelos a partir de datos(video )
- 11. Problemas mal condicionados (video )
- 12. Espacio de hipótesis y parsimonia (video )
Clasifición binaria usando un modelo lineal (notebook):
- 1. Un modelo sencillo de clasificación (video )
- 2. Función lineal (video )
- 3. Cómo distinguir entre dos clases (video )
- 4. Discriminación lineal (video )
- 5. Función de pérdida (video )
- 6. Implementación de la función de pérdida (video )
- 7. Gradiente descendente (video )
- 8. Algoritmo de gradiente descendente (video )
- 9. Tamaño del paso (video )
- 10. Cálculo del gradiente (video )
- 11. Gradiente descendente en batch (video )
- 12. Gradiente descendente estocástico (video )
- 13. Función de predicción aprendida (video )
Recursos adicionales:
[Russell21] Sect 19.1, 19.2, 19.6 (slides)
Carl Sagan, La armonía de los mundos
Práctica 4
Mar 11 4.2 Construcción de modelos a partir de datos Clase asíncrona:
- [ai4eng] Generación de modelos
LAB 03.01 - Model generation (notebook, video)
LAB 03.02 - Time series model (notebook, video)
Práctica 4.5
Mar 18 3.3.2 Modelos probabilísticos Clase asíncrona:
- 1. Introducción (video)
- 2. Probabilidad condicional (video)
- 3. Teorema de Bayes (video)
- 4. Aplicación del teorema de Bayes (video)
- 5. Teorema de Bayes y clasificación (video)
- 6. Clasificadores Bayesianos (video)
- 7. Clasificador Naïve Bayes (video)
- 8. Naïve Bayes entrenamiento (video)
- 9. Estimación atributos discretos (video)
- 10. Estimación atributos continuos (video)
- 11. Predicción (video)
- 12. Corrección de estimación (video)
Recursos adicionales:
[Russell21] Chapter 12 (slides 49-60)
[CS188-Berkeley] Naïve Bayes 1 (slides) (video)
[CS188-Berkeley] Naïve Bayes 2 (slides) (video)
Práctica 5
Abr 1-8 4.3 Exploración y preparación de datos Clase asíncrona:
- [ai4eng] Gestión de datos
LAB 04.01 - Cleaning data (notebook, video)
LAB 04.02 - Building datasets (notebook, video)
Abr 15 3.3.3 Arboles de decisión Clase asíncrona:
- 1. Problema de clasificación del restaurante (video)
- 2. Arboles de decisión (video)
- 3. Expresvidad (video)
- 4. Espacio de búsqueda (video)
- 5. Intuición del algoritmo (video)
- 6. Algoritmo de inducción árboles de decisión(video)
- 7. Selección del nodo raiz (video)
- 8. ¿Cómo medir la información? (video)
- 9. Entroía (video)
- 10. Cálculo de la entropía (video)
- 11. Ganancia de información (video)
- 12. Probabilidades a partir de los datos (video)
- 13. Entropía ponderada (video)
- 14. Selección de atributos (video)
Recursos adicionales:
[Russell10] Sect 19.3 (slides)
Práctica 6
Abr 22 4.4 Evaluación de modelos
4.5 Selección de modelos
Clase asíncrona:
- [ai4eng] Gestión de modelos
LAB 05.01 - Prediction impact (notebook, video)
LAB 05.02 - Model evaluation (notebook, video)
Abr 29 3.3.4 Redes neuronales Clase asíncrona:
- 1. Perceptrón (video)
- 2. Función AND (video)
- 3. Función de activación y umbral (video)
- 4. Función XOR (video)
- 5. Clase MLPClassifier en Scikit-Learn (video)
- 6. Ejemplo red neuronal (video)
- 7. Neural Network Playground 1 (video)
- 8. Neural Network Playground 2 (video)
- 9. Optimización aleatoria de parámetros (video)
Recursos adicionales:
Notebook: Redes Neuronales
[Russell10] Sect 18.6 (slides)
[Alp10] Chap 11 (slides)
Neural Network Playground
Práctica 7
May 6 4.6 Redes neuronales y Tensorflow Clase asíncrona:
- [ai4eng] Diseño de algoritmos
LAB 07.01 - Optimization for ML (notebook, video)
LAB 07.02 - Neural networks (notebook, video)
May 13 3.4 Aprendizaje no supervisado
3.4.1 Reducción de la dimensionalidad
3.4.2 Clustering
Clase asíncrona:
Recursos adicionales:
May 20 4.8 Desarrollo de modelos no supervisados Clase asíncrona:
Recursos adicionales:
May 27 Clase asíncrona:
Recursos adicionales: