![]() Ministerio de Cultura y Educación Universidad Nacional de San Luis Facultad de Ciencias Físico Matemáticas y Naturales Departamento: Informatica Área: Area V: Automatas y Lenguajes |
I - Oferta Académica | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
II - Equipo Docente | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
III - Características del Curso | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
IV - Fundamentación |
---|
La Inteligencia Artificial (IA) ha sido, históricamente, una componente clave en la formación general de un Licenciado en Ciencias de la Computación (CC). En este sentido, es importante remarcar el rol complementario que ambas disciplinas han tenido. La IA se basa en los fundamentos teóricos, algoritmos y técnicas desarrolladas en las CC. Al mismo tiempo, la IA ha impulsado nuevas investigaciones y avances en las CC, especialmente en áreas como el aprendizaje automático, el procesamiento de datos y la interacción humano-máquina. La intersección de estos dos campos por lo tanto, ha sido y es fundamental para el desarrollo y la aplicación efectiva de la IA en diversos dominios.
La inteligencia artificial (IA) estudia problemas que son difíciles o poco prácticos de resolver con enfoques algorítmicos tradicionales. Estos problemas, a menudo, remiten a aquellos que se considera que requieren la inteligencia humana para su resolución. En ese contexto, durante miles de años, hemos tratado de comprender cómo pensamos y actuamos, es decir, cómo nuestro cerebro, puede percibir, comprender, predecir y manipular un mundo mucho más grande y más complicado que él mismo. El campo de la IA, se ocupa no sólo de comprender, sino también de construir entidades inteligentes: máquinas que pueden calcular cómo actuar con eficacia y seguridad en una amplia variedad de situaciones nuevas. Las técnicas de IA son ahora omnipresentes en todas las áreas de la computación y proveen soporte a la mayoría de las aplicaciones que usamos diariamente como el correo electrónico, las redes sociales, la fotografía, los mercados financieros, los motores de búsqueda, traductores automáticos, sistemas de navegación satelital, sistemas recomendadores en plataformas que comparten contenidos y asistentes virtuales inteligentes. Estas técnicas también se utilizan en el diseño y análisis de agentes autónomos que perciben su entorno e interactúan racionalmente con él, como los vehículos autónomos y otros tipos de robots. Dado el impacto social que tecnologías como la IA pueden tener, las herramientas que la CC puede proveer para su desarrollo y aplicación son consideradas muy importantes en la formación de un Licenciado en Ciencias de la Computación. En este contexto, los contenidos de este curso cubren todos los tópicos de conocimiento fundamentales/obligatorios recomendados por la ACM/IEEE en el área de Sistemas Inteligentes (año 2013) y de Inteligencia Artificial (año 2023). Tradicionalmente, la IA ha incluido una combinación de enfoques simbólicos y subsimbólicos. Las soluciones que proporciona se basan en un amplio conjunto de esquemas de representación de conocimientos generales y especializados, mecanismos de resolución de problemas y técnicas de optimización. Estos enfoques se ocupan de la percepción (p. ej., reconocimiento de voz, comprensión del lenguaje natural, visión artificial), resolución de problemas (p. ej., búsqueda, planificación, optimización), actuación (p. ej., robótica, automatización de tareas y control), y las arquitecturas necesarias para soportarlos (por ejemplo, agentes únicos, sistemas multiagente, etc). El estudio de la Inteligencia Artificial prepara a los estudiantes para determinar cuándo un enfoque de IA es apropiado para un problema dado, identificar representaciones y mecanismos de razonamiento apropiados, implementarlos y evaluarlos con respecto tanto a su desempeño como a su impacto social más amplio. Si bien la amplitud temática de la IA sólo permite un tratamiento general de los principales aspectos involucrados, en este curso se cubre aquellos aspectos fundamentales vinculados a la historia de la IA, los distintos enfoques a la IA y los agentes inteligentes, la resolución de problemas, la representación de conocimiento y razonamiento lógico y con incertidumbre y el aprendizaje automático. De esta forma, sirve como base para cursos optativos de la licenciatura, relacionados a tópicos avanzados de la IA como "Agentes y Sistemas Multiagente", "Aprendizaje Automático y Minería de Datos" y "Metaheurísticas Poblacionales", entre otros. |
V - Objetivos / Resultados de Aprendizaje |
---|
Se presentan a continuación una serie de objetivos de carácter general, específicos y transversales que se pretende que alcancen los/las estudiantes a lo largo del dictado del curso.
Objetivos Generales: El principal objetivo del curso es introducir al alumno en los conceptos básicos fundamentales de la Inteligencia Artificial, poniendo el énfasis en aquellos aspectos directamente involucrados con la generación del comportamiento inteligente, como la resolución de problemas mediante búsqueda y la representación del conocimiento y razonamiento, la toma de decisiones bajo incertidumbre y el aprendizaje automático. También se busca analizar, desde un punto de vista crítico, los desarrollos históricos que han conducido a los actuales enfoques de IA, los distintos tipos de problemas que se han abordado con la IA y cuáles son los enfoques más efectivos que se han utilizado para su abordaje considerando el impacto económico, social y ético en el uso de estas tecnologías. Al finalizar el curso, se espera que el alumno pueda determinar cuándo un enfoque de IA es apropiado para un determinado problema e identificar las representaciones y mecanismos más apropiados para su abordaje, ponerlos en práctica y evaluarlos. Debería, además, poder extender sus conocimientos sobre los tópicos anteriores con bibliografía adecuada y mínima supervisión. Los objetivos específicos de este curso, se derivan de los asociados con los distintos tópicos fundamentales abordados: Objetivos Específicos: OE1. Analizar los distintos problemas abordados con la IA y los principales enfoques utilizados en su resolución, diferenciando el comportamiento humano versus racional, las características de los problemas, la naturaleza de los agentes y el impacto que las aplicaciones de IA tienen en la sociedad actual. OE2. Comparar representaciones del espacio de estados para distintos problemas de búsqueda basados en objetivo y el desempeño que en ellos tienen los algoritmos de búsqueda no informados y heurísticos más conocidos. OE3. Introducir los problemas de optimización y satisfacción de restricciones y las técnicas adecuadas para su resolución. OE4. Introducir las principales componentes de un agente basado en conocimiento, los pasos en un proceso de ingeniería del conocimiento, semánticas y ontologías, y representaciones del conocimiento basado en grafos de conocimiento. OE5. Introducir los principales conceptos vinculados al razonamiento con incertidumbre, las probabilidades y el razonamiento bayesiano, OE6. Modelizar problemas de decisión secuencial mediante el formalismo de MDPs y resolverlos con enfoques de aprendizaje por refuerzo adecuados. OE7. Introducir los principales conceptos del aprendizaje automático, del diseño de un sistema de aprendizaje automático y del aprendizaje supervisado en particular. En forma transversal a los objetivos antes enunciados, se buscará que el alumno analice críticamente los contenidos abordados, propiciando actividades de análisis de los marcos teóricos con la realidad del campo laboral. En ese contexto, se buscará integrar el trabajo grupal, colaborativo y la autonomía, en toda la secuencia didáctica propuesta. Los ejes específicos sobre los que se trabajará en las distintas unidades temáticas son los siguientes: - Identificación, formulación y resolución de problemas de informática - Utilización de técnicas y herramientas de aplicación en la informática - Generación de desarrollos tecnológicos y/o innovaciones tecnológicas - Fundamentos para el desempeño en equipos de trabajo - Fundamentos para la comunicación efectiva - Fundamentos para la acción ética y responsable - Fundamentos para evaluar y actuar en relación con el impacto social de su actividad en el contexto global y local - Fundamentos para el aprendizaje continuo |
VI - Contenidos |
---|
UNIDAD 1
Introducción a la Inteligencia Artificial. ¿Qué es la Inteligencia Artificial (IA)? Comportamiento humano vs. racional. Pensamiento humano vs. racional. El Test de Turing. La modelización cognitiva. Las "leyes del pensamiento" lógico. El agente racional. Historia de la IA. Estado del arte. Problemas abordados por la IA. Aplicaciones exitosas. UNIDAD 2 Introducción a los Agentes Inteligentes. Definición. Aspectos esenciales de un agente. Agentes como funciones. Agente Racional. Descripción PAES (Performance, Ambiente, Efectores, Sensores). Tipos de Agentes. Agentes reactivos. Agentes basados en objetivos. Agentes basados en utilidades. Agentes que aprenden. Ambientes: propiedades. Completa vs. parcialmente observable. Determinístico vs. estocástico. Episódico vs. secuencial. Estático vs. dinámico. Discreto vs. continuo. Único agente vs. multiagente. Conocido vs. desconocido UNIDAD 3 Resolución de Problemas y búsqueda. Agentes de resolución de problemas. Formulación de problemas. Ejemplos de problemas. Estrategias de búsqueda. Evaluación: completitud, optimalidad y complejidad. Métodos de búsqueda no informada. Principales algoritmos: búsqueda a lo ancho, en profundidad, con profundidad iterada, de costo uniforme. Métodos de búsqueda heurística. Principales algoritmos: primero el mejor (voraz), A*. Funciones heurísticas. Problemas de satisfacción de restricciones. Principales algoritmos. Enfoques con formulación incremental y con estado completo. Algoritmos de mejora iterativa. Enfoques Poblacionales (algoritmos genéticos, PSO, etc). UNIDAD 4 Agentes lógicos. Agentes basados en conocimiento. Representación y razonamiento (R y R). R y R en Lógica Proposicional y de Primer Orden. Planning. Ontologías y Grafos de Conocimiento. Representación y razonamiento con incertidumbre. Interpretación de las probabilidades. Sintaxis. Inferencia probabilística. Regla de Bayes. Inferencia Bayesiana. UNIDAD 5 Agentes basados en utilidad. Funciones de utilidad. Problemas de decisión secuencial. Incertidumbre en las acciones. El enfoque MDP. Algoritmos para resolver MDP's. Agentes basados en utilidad. Funciones de utilidad. Problemas de decisión secuencial. Incertidumbre en las acciones. Planning de lazo cerrado. El enfoque MDP. Algoritmos para resolver MDP's. Búsqueda en presencia de adversarios: algoritmos para juegos de dos personas. Introducción a los Sistemas Multiagentes. Sistemas colaborativos. Protocolos de Interacción para sistemas cooperativos. Planning multiagente. Protocolo de red de contratos. Sistemas de pizarra. Coordinación sin comunicación. Coordinación en sistemas reactivos. UNIDAD 6 Introducción al Aprendizaje Automático (AA). Aprendizaje como búsqueda. Aprendizaje supervisado, no supervisado y por refuerzo. Ejemplos. Redes Neuronales Artificiales. Aprendizaje profundo. Tareas de la minería de datos (categorización, clasicación, regresión, clustering, etc.). Aprendizaje Supervisado. Evaluación de un clasicador. Plataformas para el AA (scikitlearn, Pytorch, etc). Representación, entrenamiento y clasificación usando una plataforma de AA (ej. Scikit-Learn). Modelos Lineales. Aprendizaje por Refuerzo. |
VII - Plan de Trabajos Prácticos |
---|
Aspectos metodológicos de la enseñanza
En la actualidad, la mayoría del material bibliográfico relacionado a la Inteligencia Artificial, los Sistemas Inteligentes y el aprendizaje automático se organiza alrededor del concepto de “cuaderno interactivo de Python” (formato “.ipynb” por sus siglas en inglés). Este formato permite trabajar en entornos computacionales interactivos como Jupyter y Google Colaboratory con contenido que combina aspectos teóricos (en celdas de texto) y código (en celdas de código). Esto posibilita el dictado de los conceptos teóricos de un curso en simultáneo con la práctica y experimentación de los alumnos de dichos conceptos en forma “on-line”. De esta forma la división tradicional en “Teorías”, “Prácticas” y Prácticas de Máquina” (o Laboratorio) resulta limitada y es más pertinente hablar de “Trabajo Práctico” para referenciar a aquellas prácticas con ejercicios cuya resolución se realiza en lápiz y papel, “Práctico de Máquina” para referenciar a la resolución de ejercicios de programación completos y “Prácticas Interactivas de Programación” (PIP) para denominar aquellas prácticas que los alumnos realizan con los cuadernos interactivos y que pueden involucrar la ejecución, experimentación, visualización y/o modificación de las celdas de código provistas por los docentes. Es importante notar que estas PIPs pueden utilizarse tanto durante el dictado de las teorías como en la resolución de los ejercicios de un Trabajo Práctico. Actividades Prácticas – Unidades 1 y 2 Trabajo Práctico 1. Introducción a la Inteligencia Artificial y los Agentes Inteligentes Objetivo: cumplimentar el objetivo específico OE1. El práctico incluye ejercicios de análisis crítico y clasificación de distintas definiciones de la Inteligencia Artificial, y el relevamiento de problemas y aplicaciones actuales de la IA. Para este último caso, se deberá realizar un análisis grupal y discusión de cuáles son los aspectos éticos, legales y sociales que se deberían tomar en cuenta en el desarrollo de este tipo de sistemas. Luego se analizan estos problemas desde la perspectiva de la Descripción PAES (Performance, Ambiente, Efectores, Sensores) y se analiza en forma intuitiva, qué tipo de agente sería más adecuado para su resolución y cuáles son las herramientas tecnológicas disponibles hoy en día para su implementación. Para aquellos casos en que existan PIPs adecuadas disponibles, se propiciará la ejecución de la notebooks interactivas que permitan una mejor visualización de los conceptos involucrados. Tomando en cuenta los aspectos antes descriptos, se considera que estas actividades prácticas contribuyen a los siguientes ejes: - Identificación, formulación y resolución de problemas de ingeniería en sistemas de información/informática. - Utilización de técnicas y herramientas de aplicación en ingeniería en sistemas de información/informática. - Generación de desarrollos tecnológicos y/o innovaciones tecnológicas - Fundamentos para una actuación ética y responsable - Fundamentos para evaluar y actuar en relación con el impacto social de su actividad en el contexto global y local Respecto al eje de “Fundamentos para el aprendizaje continuo” el mismo se cumple para ésta y las restantes actividades, a partir de fomentar en el estudiante la búsqueda de información actualizada de las temáticas consideradas, el análisis crítico de las mismas, sus ventajas, desventajas y aplicaciones y el estudio de material adicional para un actualización continua de estos contenidos. Actividades Prácticas – Unidad 3 Trabajo Práctico 2. Búsqueda en Inteligencia Artificial Objetivo: cumplimentar el objetivo específico OE2. El práctico incluye ejercicios de formulación de distintos problemas “de juguete” y del mundo real como problemas de estado único, planteando distintas representaciones y evaluando las diferencias en cuanto al costo y la calidad de la solución obtenida por los distintos algoritmos no informados y heurísticos. Práctico de Máquina 1 Objetivo: cumplimentar el objetivo específico OE2 complementando los contenidos teóricos y la práctica realizada en el Trabajo Práctico 2 con el desarrollo y evaluación de distintas representaciones y algoritmos en la resolución de un problema de estado único a elección. Tomando en cuenta los aspectos antes descriptos, se considera que estas actividades prácticas contribuyen a los siguientes ejes: - Identificación, formulación y resolución de problemas de informática - Utilización de técnicas y herramientas de aplicación en la informática Trabajo Práctico 3. Optimización en problemas con y sin restricciones Objetivo: cumplimentar el objetivo específico OE3 Este práctico analiza cómo se integran las técnicas de optimización con potenciales restricciones en el contexto de un sistema de IA. Se modelizan problemas con este tipo de enfoque, y se analizan y comparan distintos algoritmos de búsqueda local y basados en población (como algoritmos genéticos y PSO), representaciones de las soluciones, funciones objetivos y restricciones, y su potencial aplicación en distintos dominios. Práctico de Máquina 2 Objetivo: cumplimentar el objetivo específico OE3 implementando y/o adaptando un algoritmo de optimización (simulated annealing, algoritmo genético, PSO). En este práctico se analizará la calidad de las soluciones obtenidas, el tiempo requerido para su obtención, el impacto de los (hiper)-parámetros seleccionados en los aspectos antes mencionados y potenciales mejoras en la representación de las soluciones y la función a optimizar. Tomando en cuenta los aspectos antes descriptos, se considera que estas actividades prácticas contribuyen a los siguientes ejes: - Identificación, formulación y resolución de problemas de informática - Utilización de técnicas y herramientas de aplicación en la informática Actividades Prácticas – Unidades 4 y 5 Trabajo Práctico 4. Representación y Razonamiento lógico y con Incertidumbre Objetivo: cumplimentar los objetivos específicos OE4 y OE5 El práctico incluye ejercicios de formulación de distintos problemas utilizando la lógica proposicional y de predicados comparando el poder expresivo de cada una de ellas para representar las distintas capacidades perceptivas y de razonamiento de un agente basado en conocimiento. También se evalúa cómo los métodos de inferencia disponibles en cada caso permiten derivar las conclusiones y las acciones de un agente cognitivo de alto nivel. En la segunda parte del práctico se analizan los distintos pasos en la Ingeniería de Conocimiento y la representación basada en tri-uplas y los grafos de conocimiento. Por último, la tercera parte del práctico se dedica a analizar el rol de las probabilidades y el razonamiento bayesiano en el análisis de situaciones con incertidumbre. Trabajo Práctico 5. Agentes basados en Utilidad Objetivo: cumplimentar el objetivo específico OE6 El impacto de la incertidumbre en las acciones del agente es modelizado mediante Procesos de decisión Markov (MDPs), analizándose distintos problemas del mundo real que pueden ser conceptualizados mediante este formalismo. Los ejercicios prácticos incluyen la definición de distintos problemas como MDPs, y la ejecución manual de algoritmos de programación dinámica (como Value Iteration) y de aprendizaje por refuerzo (como Q-Learning). Tomando en cuenta los aspectos antes descriptos, se considera que estas actividades prácticas contribuyen a los siguientes ejes: - Identificación, formulación y resolución de problemas de informática - Utilización de técnicas y herramientas de aplicación en la informática Actividades Prácticas – Unidad 6 Trabajo Práctico 6. Introducción al Aprendizaje Automático Objetivo: cumplimentar el objetivo específico OE7 Este práctico incluye ejercicios donde, dadas distintas tareas a resolver en un enfoque de IA, se analiza su potencial abordaje con técnicas de aprendizaje supervisado, no supervisado o por refuerzo. El práctico también incluirá PIPs con cuadernos interactivos, donde los alumnos podrán experimentar con distintas herramientas, bibliotecas y/o APIs vinculadas a los principales conceptos vistos en esta Unidad. Un aspecto que será especialmente tratado en los ejercicios, son las medidas previstas en las distintas etapas para evitar distintas formas de sesgos en la evaluación, en los algoritmos y en los datos de entrenamiento. Práctico de Máquina 3 Objetivo: cumplimentar el objetivo específico OE7, evaluando y/o adaptando algoritmos de aprendizaje supervisado. En este práctico de máquina, se pondrá especial énfasis en tareas supervisadas como regresión y clasificación. En el primer caso, se puede evaluar de qué manera en algoritmos de regresión como la regresión lineal, Ridge y Lasso impacta la variación de hiper-parámetros en aspectos como la complejidad el modelo, el sobre-ajuste y el sub-ajuste. Un análisis similar se puede realizar en métodos de clasificación como la regresión logística y las máquinas de vectores soporte. Tomando en cuenta los aspectos antes descriptos, se considera que estas actividades prácticas contribuyen a los siguientes ejes: - Identificación, formulación y resolución de problemas de informática - Utilización de técnicas y herramientas de aplicación en la informática - Fundamentos para la acción ética y responsable - Fundamentos para evaluar y actuar en relación con el impacto social de su actividad en el contexto global y local |
VIII - Regimen de Aprobación |
---|
Al comenzar el dictado de la materia se proveerá a los/las estudiantes el cronograma de las distintas instancias que conforman el proceso de evaluación continua.
El/la estudiante puede regularizar (para luego rendir el examen final) o promocionar tomando en cuenta las siguientes condiciones: A. Régimen para Estudiantes Regulares 1. Entregar, en tiempo y forma, y aprobar el 100% de las actividades prácticas requeridas por la cátedra. 2. Aprobar 1 evaluación parcial o alguna de sus 2 (dos) recuperaciones, según lo establecido en la normativa vigente. Dicha evaluación parcial se aprueba con una nota mínima de 7 (siete). 3. Contar con un porcentaje mínimo igual o superior al 70% de asistencia a clases teóricas y prácticas. B. Régimen para Estudiantes Promocionales 1. Ídem a lo requerido para estudiantes regulares, salvo el ítem 3., dado que se requiere un 80 % de asistencia a las clases teóricas y prácticas. 2. Responder preguntas teóricas, en las instancias de las actividades prácticas requeridas y en la evaluación parcial, con el objetivo de que el/la estudiante pueda corroborar el nivel de apropiación de los contenidos teóricos, favoreciendo de esta manera la formación continua. 3. Habiendo cumplimentado los ítems 1. y 2., el/la estudiante tendrá que desarrollar y aprobar un coloquio de carácter integrador oral o escrito que incluya el análisis y desarrollo de conceptos teóricos dictados en el curso. En la nota final de aprobación se contemplarán las distintas instancias propuestas (actividades prácticas y la evaluación parcial). En todas las instancias, la nota obtenida por el alumno debe ser igual a 7 o superior, incluido el coloquio de carácter integrador. C. El curso no admite rendir el examen final en condición de Libre. D. El examen final puede ser oral y/o escrito. |
IX - Bibliografía Básica |
---|
[1] “Artificial Intelligence: A Modern Approach”. S. Russell y P. Norvig. Pearson; 4ta. edición, 2020.
[2] “Artificial Intelligence: Foundations of Computational Agents”. D. Poole y A. Mackworth. Cambridge University Press, 2da. edición. 2017. [3] “Introduction to Artificial Intelligence”. Wolfgang Ertel. Springer. 2da. edición. 2017. [4] “The Knowledge Graph Cookbook - Recipes that work”. Andreas Blumauer and Helmut Nagy. Monochrom. 1ra. edición, 2020. [5] “The book of why: the new science of cause and effect”. Judea Pearl, Dana Mackenzie. Basic Books. 2018. [6] “Bayesian Analysis with Python”. Osvaldo Martin. 2da. edición. Packt Publishing. 2018 [7] Apunte de la Cátedra de Procesos de Decisión Markov. |
X - Bibliografia Complementaria |
---|
|
XI - Resumen de Objetivos |
---|
El principal objetivo del curso es introducir al alumno en los conceptos básicos fundamentales de la Inteligencia Artificial, poniendo el énfasis en aquellos aspectos directamente involucrados con la generación del comportamiento inteligente, como la resolución de problemas mediante búsqueda, representación de conocimiento y razonamiento, la toma de decisiones bajo incertidumbre y el aprendizaje automático
|
XII - Resumen del Programa |
---|
Inteligencia Artificial, conceptos básicos e historia. Agentes. Tipos de Agentes. Agentes de resolución de problemas. Búsqueda ciega y heurística. Problemas de satisfacción de restricciones. Agentes basados en conocimiento. Representación y razonamiento. Sistemas de razonamiento lógico. Planning. Incertidumbre. Razonamiento probabilístico. Agentes basados en utilidades. Introducción a los Sistemas Multiagentes. Aprendizaje Automático.
|
XIII - Imprevistos |
---|
|
XIV - Otros |
---|
- Correos electrónicos de contacto de los docentes:
Marcelo Luis Errecalde: merreca@email.unsl.edu.ar Leticia Cagnina: lcagnina@email.unsl.edu.ar Edgardo Ferretti: iferretti@email.unsl.edu.ar |