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 |
---|
Este curso trata sobre los aspectos principales de la Inteligencia Artificial (IA) y los Sistemas Inteligentes (SI). La Inteligencia Artificial (IA) es un término genérico que abarca el estudio y creación de entidades (máquinas y sistemas informáticos) que abordan problemas que se considera que requieren la inteligencia humana para su resolución y que involucran habilidades tales como la percepción, la representación del conocimiento, el aprendizaje y la toma de decisiones. Estos problemas suelen ser difíciles o poco prácticos de resolver con enfoques algorítmicos tradicionales. Los Sistemas inteligentes (SI), por otra parte, son un área dentro de la IA que se enfocan en el diseño, desarrollo e implementación de sistemas que exhiben un comportamiento inteligente en dominios o contextos específicos. Para ello, un SI utilizará en su diseño técnicas y arquitecturas adecuadas para lograr distintos grados de flexibilidad (reactividad, pro-actividad y sociabilidad), autonomía, adaptatividad y aprendizaje. Para lograr estas capacidades el diseño de un SI puede involucrar aspectos tales como percepción, planificación y acción, representación de conocimiento y razonamiento, resolución de problemas y búsqueda, incertidumbre, utilidades y aprendizaje automático.
El enfoque adoptado en nuestro caso se basa en el concepto de agente inteligente. Desde esta perspectiva, el desarrollo de SIs se centra en el análisis, diseño y construcción de agentes autónomos. Un agente es un sistema de software y/o máquina física provisto de sensores y efectores que le permiten interactuar directamente con un ambiente (virtual o físico). Un agente inteligente debería ser capaz de percibir su ambiente, y actuar racionalmente en pos de sus objetivos de diseño, interactuando cuando fuera necesario con otros agentes artificiales y/o humanos. El énfasis en este curso estará puesto en las aplicaciones de las técnicas de la IA y en los aspectos de ingeniería involucrados en el desarrollo de los SIs. En este contexto, los casos de estudio incluirán diversas áreas tales como los sistemas basados en conocimiento, optimización con meta-heurísticas, sistemas bio-inspirados, agentes de software inteligentes, procesamiento de lenguaje natural, aprendizaje automático, minería de datos, robótica adaptativa inteligente, procesamiento intensivo de conocimiento en la Web, etc. |
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 y los Sistemas Inteligentes, 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. Al finalizar el curso, se espera que el alumno pueda determinar cuándo un enfoque o arquitectura de sistema inteligente es apropiado para un determinado problema, identificar las representaciones y mecanismos más adecuados para su abordaje, ponerlos en práctica y evaluarlos. Por último, los conocimientos adquiridos deberían servir de base para aquellos alumnos que deseen extender sus conocimientos de los contenidos abordados, y profundizar en aspectos más avanzados de los sistemas inteligentes, como por ejemplo: Procesamiento de Lenguaje Natural, Scheduling, Robótica, Explotación de datos (Data Mining), Sistemas Multiagente, etc. 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. Analizar el uso de SIs en problemas de optimización (con y sin restricciones) y las técnicas adecuadas para su resolución. OE4. Introducir los principales conceptos del aprendizaje automático, del diseño de un sistema de aprendizaje automático y del aprendizaje supervisado en particular. OE5. 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. OE6. Modelizar problemas de decisión secuencial mediante el formalismo de MDPs y resolverlos con enfoques de aprendizaje por refuerzo adecuados. OE7. Identificar y analizar las principales áreas de aplicación de los SIs y otras arquitecturas tradicionales en el desarrollo de este tipo de sistemas. 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 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 |
---|
Contenidos mínimos: Arquitecturas de sistemas inteligentes. Arquitecturas reactivas, basadas en modelos, basadas en objetivos y basadas en utilidades. Agentes físicos y de software. Arquitecturas Híbridas. Arquitecturas basadas en comportamientos. Coordinación de comportamientos. Arquitecturas BDI. Sistemas de aprendizaje automático.
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 Introducción al Aprendizaje Automático. Aprendizaje como búsqueda. Aprendizaje supervisado, no supervisado y por refuerzo. Ejemplos. Redes Neuronales Artificiales. Aprendizaje profundo. Plataformas para el aprendizaje automático. Ejemplos: scikitlearn, TensorFlow, Keras, Pytorch. UNIDAD 5 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. Ontologías. Razonando en la Web. La Web semántica. UNIDAD 6 Agentes basados en utilidad. Funciones de utilidad. Problemas de decisión secuencial. Incertidumbre en las acciones. El enfoque MDP. Algoritmos para resolver MDP's. Aprendizaje por Refuerzo. Unidad 7 Aplicaciones. Herramientas para la Web Inteligente. Minería de datos y de la Web. Optimización en la industria. Otras arquitecturas clásicas de agentes inteligentes. Arquitecturas Híbridas. Arquitecturas basadas en comportamientos. Coordinación de comportamientos. Arquitecturas BDI. |
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 los objetivos específicos 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 los SI. 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 integración en SIs para 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 – Unidad 4 Trabajo Práctico 4. Introducción al Aprendizaje Automático Objetivo: cumplimentar el objetivo específico OE4 Este práctico incluye ejercicios donde, dadas distintas tareas a resolver en un SI, 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 2 Objetivo: cumplimentar el objetivo específico OE4, 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 Actividades Prácticas – Unidades 4 y 5 Trabajo Práctico 5. Representación y Razonamiento lógico Objetivo: cumplimentar el objetivo específico 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. Trabajo Práctico 6. 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 |
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 Machine Learning with Python". Andreas C. Müller y Sarah Guido. O’Reilly Media, Inc., 2017. [4] "Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow". Aurélien Géron. 2da. Edición. O’Reilly Media, Inc., 2019. [5] "Machine Learning". Tom Mitchell. McGraw-Hill Series in Computer Science, 1997. [6] "Deep Learning". Ian Goodfellow and Yoshua Bengio and Aaron Courville. Mit Press, 2016. |
X - Bibliografia Complementaria |
---|
[1] “Introduction to Data Mining”. P. Tan, M. Steinbch y V. Kumar. Pearson, 2005.
[2] "Deep Reinforcement Learning Hands-On". M. Lapam. Second Edition. 2020. Packt Publishing |
XI - Resumen de Objetivos |
---|
El principal objetivo del curso es introducir al alumno en los conceptos básicos fundamentales de la Inteligencia Artificial y los Sistemas Inteligentes, 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 |
---|
Introducción a la Inteligencia Artificial y los Sistemas Inteligentes, conceptos básicos e historia. Agentes. Tipos de ambientes y arquitecturas de agentes. Agentes de resolución de problemas. Búsqueda ciega y heurística. Problemas de satisfacción de restricciones. Aprendizaje Automático. Agentes basados en conocimiento. Representación y razonamiento. Sistemas de razonamiento lógico. Agentes basados en utilidades. Aplicaciones. Otras arquitecturas de agentes. Arquitecturas basadas en Compotamientos. Arquitecturas BDI.
|
XIII - Imprevistos |
---|
Vias de comunicación:
http://sistemasinteligentes.dirinfo.unsl.edu.ar/ Prof. responsable - Marcelo Errecalde: merreca@email.unsledu.ar Prof. Coresponsable - Leticia Cagnina: lcagnina@email.unsledu.ar |
XIV - Otros |
---|
|