Intr. a los Sistemas Inteligentes

2020-I


Descripción del Curso

Profesor

Fabio A. González
Carrera de Ingeniería de Sistemas y Computación
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 Aprendizaje de máquina

3.1 Qué es aprendizaje de máquina

3.2 Aprendizaje supervisado

3.2.1 Clasificación lineal

3.2.2 Modelos probabilísticos (regresión logística, Naïve Bayes)

3.2.3 Clasificación no lineal (k-nn, árboles de decisión)

3.2.4 Support Vector Machines

3.2.5 Random Forest

3.2.6 Redes Neuronales

3.2.7 Deep learning

3.3 Aprendizaje no supervisado

3.3.1 Reducción de la dimensionalidad

3.3.2 Clustering

3.4 Aprendizaje por refuerzo


Evaluación

  • Quices 25%
  • Examen 30%
  • Prácticas 10%
  • Entregas EDL Coursera 20%
  • Proyecto 15%

Notas


Recursos del Curso

Bibliografía


Calendario del curso

Semana Tema Material Actividades
Mar 2 1. Introducción [Russell10] Chap 1 (slides)
[AI-edX] Introduction to AI (slides) (video)
Inteligencia Artificial, Fabio González The Wonderful and Terrifying Implications of Computers That Can Learn, Jeremy Howard, TED
Mar 9 1.3 Agentes inteligentes
[Russell10] Chap 2 (slides)
Mar 16 2.1 Agentes y Búsquedas
2.4 Búsqueda no informada
Video clase 16/03/2020
Video clase 18/03/2020
[AI-edX] Agents and Search (slides) (video)
[Russell10] Chap 3 (slides) and Chap 4 (slides)
Search algorithms notebook from AIMA
Práctica 1
Mar 23 2.5 Búsqueda informada
Video clase 25/03/2020
Video clase 30/03/2020
[Russell10] Chap 3 (slides) and Chap 4 (slides)
[AI-edX] A* Search and Heuristics (slides) (video)
Search algorithms notebook from AIMA
Taller 1
Mar 30 3.1 Qué es aprendizaje de máquina
3.2 Aprendizaje supervisado
Video clase 1/04/2020
[Russell10] Sect 18.1, 18.2, 18.6 (slides)
An Introduction to Machine Learning (slides)
Notebook: Clasificación binaria usando un modelo lineal
Abr 13-20 3.2.1 Clasificación lineal
3.2.2 Modelos probabilísticos (regresión logística, Naïve Bayes)
Video clase 13/04/2020
Video clase 15/04/2020
Video clase 20/04/2020
Video clase 22/04/2020
[Russell10] Sect 18.6 (slides) 20.2 (slides)
Naïve Bayes (slides 49-60)
Notebook: Clasificación Lineal y Evaluación del Desempeño
Abr 27 3.2.3 Clasificación no lineal (k-nn, árboles de decisión)
Video clase 27/04/2020
Video clase 29/04/2020
[Russell10] Sect 18.3 (slides)
Notebook: Clasificación no lineal, complejidad y sobreajuste
May 4 3.2.4 Support vector machines
Video clase 4/05/2020
[Russell10] Sect 18.9 (slides)
Notebook: Máquinas de vectores de soporte y selección de modelos
May 4 3.2.5 Random Forest
[Russell10] Sect 18.10 (slides)
Notebook: Random Forests y exploración aleatorizada
May 11 3.2.6 Redes neuronales
Video clase 11/05/2020
Video clase redes neuronales (2018-2)
[Russell10] Sect 18.6 (slides)
[Alp10] Chap 11 (slides)
Neural Network Playground
Notebook: Redes Neuronales
Notebook: Neural Networks in Keras
May 18-Jun 1 3.2.7 Deep learning
Video clase DL 1 (2018-2)
Video clase DL 2 (2018-2)
Video clase DL 3 (2018-2)
Introduction to Deep Learning and Applications (slides)
Representation Learning and Deep Learning Tutorial
Notebook: CNN for image classification in Keras
Jun 8 3.2.7 Deep learning
Video clase 10/06/2020
Deep learning frameworks (slides)
Introduction to TensorFlow (Jupyter notebook)
Neural Networks in Keras (Jupyter notebook)
Jun 15 3.3 Aprendizaje no supervisado
3.3.2 Clustering (agrupamiento)
Video clase agrupamiento (2018-2)
[Alp10] Chap 7 (slides)
K-Means
Notebook: Agrupamiento
Jun 22 3.3.1 Reducción de la dimensionalidad
Video clase reducción de la dimensionalidad (2018-2)
Intro to PCA (slides)
A tutorial on principal component analysis (pdf)
Reducción de la dimensionalidad con PCA (notebook)
July 6 Final Project

Entregables Deep Learning Coursera

El objetivo es cursar y aprobar tres cursos de la línea de especialización en Deep Learning. Para cada curso se deben completar los cuestionarios y tareas de programación. A continuación se listan las diferentes entregas que se deben hacer en las fechas especificadas.

Para cada entrega se debe sacar una captura de pantalla de la sección de Calificaciones donde aparezca la nota respectiva de los cuestionarios y tareas de programación de la entrega, donde además aparezca su nombre. Igualmente, deben incluir una copia de de los notebooks correspondientes a las tareas de programación. Todo esto debe ir en un archivo zip nombrado como entrega-n-unalusername.zip, donde unalusername es el nombre de usuario asignado por la universidad. No se deben incluir archivos de datos, imágenes, etc.

Los archivos deben enviarse a través del File Request correspondiente antes de la media noche de la fecha límite. Envíos fuera de la hora límite no serán tenidos en cuenta.

Curso 1: Neural Networks and Deep Learning

  • Entrega 1 (17/05/2020):
    • Cuestionarios: 1, 2
    • Tareas de Programación: 1, 2
    • Link: file request
  • Entrega 2 (24/05/2020):
    • Cuestionarios: 3, 4
    • Tareas de Programación: 3, 4
    • Link: file request

Curso 2: Improving Deep Neural Networks

  • Entrega 3 (31/05/2019):
    • Cuestionarios: 1
    • Tareas de Programación: 1, 2, 3
    • Link: file request
  • Entrega 4 (7/06/2019):
    • Cuestionarios: 2, 3
    • Tareas de Programación: 4, 5
    • Link: file request

Curso 3: Structuring Machine Learning Projects

  • Entrega 5 (14/06/2019):