Inteligencia Artificial

Universidad de Las Palmas de Gran Canaria

Python

Python será nuestro lenguaje en esta asigntura. Es un lenguaje que sigue el paradigma imperativo, es de sintaxis sencilla y legible, interpretado, multiplataforma y de tipado dinámico. Si tienes Linux o Mac OS ya lo tienes por defecto en tu ordenador. Si usas Windows puedes descargarlo desde www.python.org. Hay muchos libros y tutoriales en Internet para aprender Python, éste está muy bien.

Como editor de código usaremos PyCharm.


Búsquedas

Los algoritmos de búsqueda llevan a cabo el descubrimiento de caminos, preferiblemente óptimos, en grafos. Aprenderemos cómo llevar a cabo búsquedas de diferentes formas: primero en profundidad, primero en anchura, con profundidad limitada... Una característica de estos métodos es que pueden ser informados, es decir, la búsqueda la orientan en función de información que se tiene sobre el problema en particular. Al modo en cómo utilizamos esta información para mejorar la búsqueda es a lo que denominamos heurística.

Prácticas

Referencias


Redes neuronales

Las redes neuronales artificiales son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso biológico. Se trata de un sistema de interconexión de neuronas que colaboran entre sí para producir un estímulo de salida.

Apuntes

PyTorch

Enlace a los notebooks

Prácticas

Ejercicios y exámenes

Referencias


Aprendizaje por refuerzo

El aprendizaje por refuerzo es un área del aprendizaje automático inspirada en la psicología conductista, cuya ocupación es determinar qué acciones debe escoger un agente en un entorno dado con el fin de maximizar alguna noción de "recompensa" o premio acumulado.

Apuntes

  • Aprendizaje por refuerzo 1
  • Aprendizaje por refuerzo 2
  • Aprendizaje por refuerzo 3
  • Prácticas

    Referencias


    Sistemas basados en reglas

    Los sistemas basados en reglas trabajan mediante la aplicación de reglas, comparación de resultados y aplicación de las nuevas reglas basadas en situación modificada. También pueden trabajar por inferencia lógica dirigida, bien empezando con una evidencia inicial en una determinada situación y dirigiéndose hacia la obtención de una solución, o bien con hipótesis sobre las posibles soluciones y volviendo hacia atrás para encontrar una evidencia existente (o una deducción de una evidencia existente) que apoye una hipótesis en particular.

    Apuntes

    Apuntes de lógica

    Apuntes de Prolog (Ejercicios)

    Apuntes de CLIPS

    Apuntes de lógica difusa.

    Prácticas

    Entorno de desarrollo CLIPS. (Ejemplos, Notebook Clips & Python), (Código Clips & Python)

    Entorno de desarrollo SWI-Prolog. (Ejemplos). (Ejercicio práctico).

    Librería Python para lógica difusa scikit-fuzzy. (Ejemplo)


    Computación evolutiva

    La computación evolutiva es una rama de la inteligencia artificial que involucra problemas de optimización combinatoria. Se inspira en los mecanismos de la evolución biológica.

    Apuntes

    Prácticas

    Código de ejemplo de algoritmos genéticos - Práctica de la asignatura
    Código de ejemplo de programación genética
    Código de ejemplo de enjambres de partículas
    Código de ejemplo de simulated annealing

    Referencias


    Redes Bayesianas

    Una Una red bayesiana es un modelo de grafo probabilístico que representa un conjunto de variables aleatorias y sus dependencias condicionales a través de un grafo acíclico dirigido. Por ejemplo, una red bayesiana puede representar las relaciones probabilísticas entre enfermedades y síntomas. Dados los síntomas, la red puede ser usada para computar la probabilidad de la presencia de varias enfermedades.

    Apuntes

    Práctica

    Enunciado de la práctica

    Planificación

    La planificación es el proceso de generar un plan de acción para lograr un objetivo específico en un entorno dado. La planificación es un componente importante en muchos sistemas de inteligencia artificial, incluyendo sistemas robóticos, sistemas de control de procesos industriales y sistemas de asistencia personal.

    Apuntes


    Machine Learning

    El aprendizaje automático (del inglés, "Machine Learning") es el subcampo de las ciencias de la computación y una rama de la inteligencia artificial cuyo objetivo es desarrollar técnicas que permitan a las computadoras aprender. De forma más concreta, se trata de crear programas capaces de generalizar comportamientos a partir de una información suministrada en forma de ejemplos. Es, por lo tanto, un proceso de inducción del conocimiento.

    Apuntes

    Prácticas

    Práctica: clasificador bayesiano de análisis de opinión en comentarios de la IMDB. y Dataset IMDB

    Procesamiento del Lenguaje Natural (NLP)

    Apuntes

    1. Introducción
    2. Modelos estadísticos del lenguaje
    3. Indexación y recuperación de información
    4. Estrategias de clasificación
    5. Modelos del lenguaje basados en redes neuronales artificiales

    Exámenes

  • Preguntas de examen
  • Referencias

    Misc.