Glosario de Inteligencia Artificial y Agentes Inteligentes

– Operadores: Representables como estructuras de reglas con precondiciones y postcondiciones (consecuencias o acciones asociadas).

– Problema: Una situación que un individuo o un grupo quiere o necesita resolver y para la cual no dispone de un camino rápido y directo que lo lleve a la solución.

– Control: Buscar las soluciones a los problemas. Solucionar problema: Encontrar un camino en el espacio de estados que vaya desde el estado inicial a algún estado final, si este existe.

– Heurísticas: Criterios, métodos o principios para decidir cuál de entre diversos cursos de acción alternativos “promete” ser el más efectivo para alcanzar algún objetivo.

  • La heurística no debe sobreestimar el valor real, porque se pueden desechar caminos óptimos.
  • A más informada es una heurística, menos nodos tiende a expandir.
  • Interesa una heurística que no sobreestime el valor real (por tanto, ADMISIBLE), pero LO MÁS INFORMADA posible.
  • Dependen del problema e influyen en el rendimiento.

– Una heurística h*(n) se dice admisible: si asegura encontrar una solución óptima si esta existe.

– Funciones de Evaluación Heurísticas: Aglutinan el conocimiento acerca del dominio sobre el que se apoyará la decisión. Dos tipos:

  • Estima la “calidad” del estado E. Objetivo de las estrategias heurísticas.
  • Estima la “proximidad” a un estado final. Objetivo de las estrategias heurísticas.

– Búsqueda Informada: Utiliza conocimiento que va más allá de la definición del problema.

– Búsqueda no Informada: Son utilizadas cuando no se sabe del problema más que su estado inicial y su estado objetivo.

– Máximos Locales: Es un estado mejor que cualquier otro vecino, pero peor que otros más lejanos.

– Mesetas: Región del espacio de estados donde todos los estados tienen el mismo valor heurístico.

– Crestas: Región del espacio de estados que tiene algunos estados con mejor valor heurístico que los colindantes, pero a los que no se puede llegar por transiciones simples, es decir, aplicando un único operador.

– Algoritmo Minimax: Realizar una simulación limitada del juego con estrategia basada en considerar un adversario hipotético que juega con el siguiente comportamiento:

  • Se supone que sigue la misma estrategia del Jugador Problema, es decir, elige el movimiento que maximiza sus expectativas de victoria.
  • Posee la misma función de evaluación estática que el jugador problema.
  • Jugador MAX: maximiza valores de evaluación de sus sucesores. MAX hace el primer movimiento.
  • Jugador MIN: minimiza valores de evaluación de sus sucesores.
  • Objetivo: que MAX sea el ganador.
  • Características:
    • Completo: Sí, cuando el juego es finito.
    • Óptimo: Sí, cuando el adversario juega perfectamente.
    • Complejidad temporal: O(b^m)
    • Complejidad espacial: O(b.m)

– ¿Es posible extender la Estrategia MINIMAX a N Jugadores?: SÍ (Para cada nodo se construye un vector de evaluaciones con dimensión igual al número de jugadores).

– Árboles Alternados: Representación explícita de todas las secuencias de jugadas posibles para ambos jugadores en un árbol.

– Estrategia de Poda Alfa-Beta: Intentar modificar el procedimiento MINIMAX intentando evitar la generación de todas las alternativas, podando aquellas que sepamos que no van a mejorar los valores que ya hemos obtenido hasta el momento:

  • Generando y evaluando simultáneamente.
  • Arrastrando información adicional sobre el proceso.

– Triángulo de Sierpinski: El triángulo de Sierpiński es un fractal que se puede construir a partir de cualquier triángulo. (fractal: es un objeto geométrico cuya estructura básica, fragmentada o aparentemente irregular, se repite a diferentes escalas.)

– Árbol OR: Resolver el problema equivale a resolver el nodo raíz, lo que en el árbol OR se consigue si es posible resolver, al menos un nodo o problema terminal, es decir, al menos una ruta entre el nodo raíz y el terminal.

– Árbol AND: Resolver el problema equivale a resolver el nodo raíz, lo que en el árbol AND se consigue si es posible resolver todos los nodos terminales.

– Árbol And/Or: Resolver el problema equivale a resolver el nodo raíz, lo que en el árbol AND/OR se consigue si es posible resolver los nodos terminales necesarios para hacer ciertos todos los nodos hijos de los nodos intermedios AND y al menos un hijo de cada nodo intermedio OR.

– Solución base: Conjunto de nodos tal que se proporciona solución al nodo raíz.

Una entidad inteligente es aquella que es capaz de responder a su entorno, percibiendo, razonando, deduciendo y, por último, actuando acorde a su experiencia.

Un agente es un sistema capaz de actuar e influir en su entorno. Es un sistema que interactúa con el medio que lo rodea, percibiendo información a través de sensores, actuando mediante efectores y ejecutando tareas específicas para alcanzar ciertos objetivos. Es importante resaltar que un agente opera con el propósito de cumplir estos objetivos, los cuales pueden ser internos, como garantizar su supervivencia, o externos, como realizar tareas específicas, por ejemplo, limpiar el suelo. No se trata de diferenciar entre si algo es un agente o no, pensémoslo como una herramienta y ya.

:::::::::: Agente = Plataforma (soporte en el que se ejecuta el programa) + función (Programa)

– Percepciones: Elementos que le dan información para tomar decisiones.

– Acciones: Operadores (movimientos) que pueden realizar con la información adquirida.

– Objetivos (goals): Finalidad con la que se usa al agente (p. ej., limpiar el piso).

– Entorno: Espacio en el que convive con otros entes (personas, máquinas, obstáculos) y realiza su función.

:::::::::::: Tipos de entorno:

– Accesible: Información completa y precisa del estado del entorno.

– Determinista: Garantiza una acción concreta.

– Episódico: Comportamiento organizado en episodios.

– Estático: El entorno no varía sin el agente. ¬ Dinámico

– Discreto: Hay un límite de acciones y percepciones posibles. ¬ Continuo

:::::::::::::: fin

– Agente ideal: Dispone de una correspondencia de secuencias de entradas y salidas (conducta) que define cada acción ante una percepción. Los agentes también tienen un historial, en el que guardan la secuencia de conductas entre sí mismo y el entorno.

– Agente racional: Siempre hace lo correcto. Eso significa que siempre cumple sus objetivos y, por lo tanto, es efectivo. ¿Cómo sabemos que se ha cumplido un objetivo?

  • Explícitamente mediante una mera comprobación.
  • Implícitamente mediante las performance measures.

– Agente racional ideal: Para cada posible secuencia perceptual, maximiza su medida de rendimiento, basándose en las evidencias de dicha secuencia y su historial.

La racionalidad de un agente depende de la medida de rendimiento (que puede, en ocasiones, verse afectada negativamente por factores como el consumo energético, ruido, daño a personas…), de su historial perceptual, de su conocimiento del entorno y las posibles acciones. Además, está limitada por las capacidades disponibles, pues en casos en los que no disponga de suficientes datos o no tenga una acción disponible para actuar, se puede quedar bloqueado.

– Agente autónomo (A^2):

Autonomía:

  • Sentido débil: se comporta basándose en su experiencia, no solamente en lo que percibe.
  • Sentido fuerte: interactúa con su entorno de forma independiente. Tiene control de sus acciones y estado interno (p. ej., supervivencia).

Los agentes autónomos se clasifican en:

  • Situados: se relacionan con el mundo, pero no solo mediante descripciones abstractas de él.
  • Físicos: tienen un cuerpo definido con el que se relacionan con el mundo.

– Agente inteligente: Tiene una capacidad de acción autónoma flexible:

  • Reactividad: percibe el entorno y responde en un tiempo adecuado.
  • Proactividad: tiene iniciativa para cumplir sus objetivos.
  • Habilidad social: puede interactuar con otros agentes (y posiblemente humanos).

– Agente controlado por la tabla: Mantienen en memoria una tabla con todas las secuencias perceptuales posibles.

  • Ventajas: Podemos implementar la correspondencia deseada y puede parecer el Agente Inteligente.
  • Desventajas: Muy costoso (tabla muy grande), no es autónomo, no evoluciona, no se relaciona ni se adapta a cambios en el entorno.

– Agente de reflejo simple: Se pueden resumir las tablas representando ciertas porciones de asociaciones entrada-salida mediante reglas. A los agentes Reflejos Simples se les denomina también Agentes Estímulo-Respuesta. Vehículos de Braitenberg.

  • Ventajas: Reducción de dimensionalidad de las entradas: reducción del conjunto de variables que definen el vector de características (es parte del proceso de simplificación) y abstracción de comportamientos y agrupamiento.

– Agente reflejo con estado: Es una mejora del agente reflejo simple, ya que puede tomar decisiones usando la memoria y no sólo la percepción actual.

– Agente con objetivo: La diferencia con los anteriores agentes es que este tiene sus objetivos explícitos. Al tenerlo explícito, se considera constantemente el futuro, pues no se toman acciones a la ligera.

– Agentes basado en utilidad: Los objetivos son insuficientes para obtener conductas de alta calidad. Valora las distintas vías de llegar al objetivo. La utilidad es una función que hace corresponder un estado interno con un número (la felicidad del sistema). Esto ayuda al agente a tomar decisiones óptimas.

– Agentes reactivos: Son simples. Actúan sin memoria, sólo reaccionan con el estado actual y encaja (matches) con el entorno. Un comportamiento puede inhibir a otros (se define uno de defecto que se dispara con todas las entradas posibles pero que resulta inhibido por todos los otros comportamientos que se disparan).

– Técnica GOFAI: Utiliza el conocimiento para representar generalizaciones, siendo comprendido por quienes lo proporcionan. Se puede modificar para reflejar cambios en el entorno, y es utilizado en gran cantidad de situaciones gracias a que es tan genérico.

– Comportamiento Emergente: Capacidad en la que un sistema compuesto presenta más características que la suma de sus comportamientos individuales.

– Autómatas de Estados Finitos: Máquina abstracta que puede encontrarse en uno o varios estados diferentes predefinidos. El estado actual define cómo se comporta la máquina. Se divide en: Estructuras y clases /y/ Funciones y métodos.

– Mecanismo de coordinación: Recibe información de los sensores y decide qué se realizará. Dos clases:

  • Competitivos: “El ganador se lo lleva todo” y se ejecuta por arbitración.
  • Cooperativos: Permite generar combinación de salidas por votación o por suma.

– Arquitectura de Supresión: Estrategia de realización. Los comportamientos se ejecutan en paralelo y están organizados en capas jerárquicas. Las capas más inferiores pueden inhibir a las superiores. La toma de decisión se efectúa a través de módulos de conducta que ejecutan tareas.

– Red convulitiva: Es un tipo de red neuronal artificial donde las neuronas artificiales corresponden a campos receptivos de una manera muy similar a las neuronas en la corteza visual primaria.

– Descenso por el gradiente: Algoritmo que se utiliza para minimizar una función que mide el error de predicción del modelo en el conjunto de datos.

– Kernel: Es lo que se aplica en cada instancia de datos para mapear las observaciones no lineales originales en un espacio de mayor dimensión en el que se vuelven separables.

– Deep learning: Es un subconjunto del aprendizaje automático donde las redes neuronales artificiales aprenden de grandes cantidades de datos.

– Matriz de confusión: Es una herramienta que permite la visualización del desempeño de un algoritmo que se emplea en aprendizaje supervisado.

– Problemas de clasificación: Consiste en agrupar objetos de categorías similares.

– Neurona Artificial (Perceptrón): Consiste en una unidad de cálculo que admite como entrada un vector de características e⃗ cuyos valores se suman de forma ponderada mediante unos pesos w⃗ y, si esta suma supera un cierto umbral θ, genera un cierto valor de salida.

– Función sigmoide: Es utilizada como función de activación en lugar de la función «mayor o igual» ya que ofrece una ventaja importante: es derivable.

– Función de activación: Que transmite la información generada por la combinación lineal de los pesos y las entradas.

– Codificación one-hot: Se toma un vector de una dimensión igual al número de clases que haya, en este caso, 3. Todas las componentes del vector estarán a 0, excepto una que tendrá el valor 1 y que corresponderá con la clase que defina.

– Función de activación softmax: Es parecida a la sigmoide, ésta también convierte cualquier valor a un valor entre cero y uno. La diferencia está en que la función softmax no trabaja sobre un valor sino sobre un vector. De esta forma, convierte todas las componentes de un vector en valores entre cero y uno, pero, además, garantiza que la suma de todos estos valores sea 1.

– Mini-batch: Tomar una muestra pequeña de un conjunto y calcular la media muestral. Si la muestra es suficientemente variada y amplia obtendremos un valor muy aproximado a la media real pero con mucho menos esfuerzo.

– Keras: Es una API escrita en Python que nos permite de una forma rápida y cómoda configurar y entrenar redes neuronales.

– Modelo: La estructura principal de Keras es el modelo, lo cual es una forma de organizar y conectar capas de neuronas. El tipo de modelo más simple es el modelo secuencial, que es una pila lineal de capas.

– Estocástico: Calcular el error sobre todo el conjunto de muestras en cada iteración sino sobre un subconjunto aleatorio de ellos.

– Convolucion: Es un operador matemático que se define como la integral del producto de dos funciones donde una de ellas está desplazada una distancia t.

– Capas convolutivas: En este tipo de capas, cada neurona de una capa está conectada solo a un conjunto de salidas de la capa anterior. Además, las capas convolutivas esperan una disposición bidimensional de las entradas, no lineal.

– Maxpooling: El objetivo es reducir la muestra de una representación de entrada, reduciendo su dimensionalidad y permitiendo que se hagan suposiciones sobre las características contenidas en las subregiones agrupadas.

– Dropout: Consiste en deshabilitar temporalmente un porcentaje aleatorio de las neuronas de una capa.

– ReLU: Significa que si la entrada es un valor mayor que 0, la salida será ese mismo valor. Pero si la entrada es negativa la salida será 0. Esta es una función predilecta en la composición de redes convolutivas ya que ofrece muy buenos resultados empíricos.

– Early stopping: Límita el número de épocas con las que queremos que el modelo entrene, a partir de una condición de parada.

– Operador de Sobel: Es una técnica utilizada en el procesamiento de imágenes, particularmente en el área de la detección de bordes. Es una aproximación discreta y diferencial que se utiliza para calcular la magnitud del gradiente de la intensidad de una imagen en cada punto.

– Detector de Bordes de Canny: Es un algoritmo popular de procesamiento de imágenes para la detección eficaz de bordes. Las etapas principales del algoritmo son:

  • Paso 1: Conversión a Escala de Grises
  • Paso 2: Reducción de Ruido. La detección de bordes es susceptible al ruido en la imagen.
  • Paso 3: Gradiente de Intensidad de la Imagen. El Detector de Canny encuentra los bordes donde hay un cambio abrupto en la intensidad de los píxeles.
  • Paso 4: Supresión de No Máximos. Después de aplicar el filtro gaussiano y encontrar los gradientes de la imagen, cada píxel en la imagen de gradientes representa la magnitud del cambio de intensidad en esa ubicación.
  • Paso 5: Binarización con Histéresis. El algoritmo utiliza dos umbrales para detectar bordes fuertes y bordes débiles.

– Detector de Líneas de Hough: Es una técnica de procesamiento de imágenes y visión por computador para la detección de líneas rectas. Esta técnica es particularmente robusta para detectar líneas incluso cuando están rotas o un poco distorsionadas. Los pasos para la detección de líneas utilizando la transformada de Hough son:

  • Paso 1: Preprocesamiento de la Imagen
  • Paso 2: Espacio de Hough. Una línea en el espacio de la imagen puede representarse como y = mx + b, pero esta representación tiene problemas cuando se trata de líneas verticales.
  • Paso 3: Acumulador. Para cada píxel de borde en la imagen binaria y para cada ángulo θ posible (de unos previamente determinados), se calcula el valor correspondiente de ρ y se incrementa un contador en un acumulador bidimensional (un array donde los ejes son θ y ρ).
  • Paso 4: Umbralización. Después de haber llenado el acumulador, se examina para encontrar los valores locales máximos. Se establece un umbral para decidir qué valores en el acumulador representan líneas.
  • Paso 5: Extracción de Líneas. Los valores de ρ y θ que superan el umbral son los que representan las líneas en la imagen.
  • Paso 6: Post-Procesamiento. En algunos casos, puede haber múltiples detecciones de la misma línea debido al ruido. Un paso de post-procesamiento puede involucrar la fusión de líneas que son muy cercanas entre sí y que tienen ángulos similares.

– ¿Qué es la resolución de problemas por reducción? ¿Cuántas soluciones existen? ¿Con qué estructura se representan?: Es una técnica en la que se divide el problema principal en subproblemas más pequeños. Se organizan en árboles AND, OR o ambos, donde los nodos son un problema o un conjunto de estos. Los nodos pueden ser terminales, que no se pueden descomponer, o terminales primitivos, donde ya hay una solución. Estos problemas pueden depender unos de otros para ser resueltos (soluciones dependientes) o no (soluciones independientes).

– Explica los conceptos de Entropía y Ganancia de Información en los árboles de clasificación:

  • Entropía: Podría definirse como incertidumbre. Nos indica cuán dispares son las probabilidades a la hora de clasificar una muestra. Cuando cada clase tiene valores muy alejados, la entropía es baja, pues no hay incertidumbre sobre su clasificación, mientras que, cuando los valores son muy cercanos, la entropía es alta.
  • Ganancia de información: La ganancia de información mide la reducción de incertidumbre (entropía) tras dividir los datos según un atributo, ayudando a seleccionar el mejor para construir un árbol de decisión. Sin embargo, favorece atributos con muchos valores únicos (sesgo). Para corregirlo, se usa el Gain Ratio, que ajusta la ganancia dividiéndola por la entropía del particionado, penalizando divisiones desequilibradas o poco útiles.

– ¿Qué es el overfitting o sobreajuste?: Se produce cuando un modelo se ajusta o acostumbra demasiado a unas características concretas, de forma que le cuesta clasificar muestras ligeramente distintas de aquellas con las que ha entrenado debido a una paupérrima capacidad de generalización.

– Conceptos de Agente y Agente Autónomo, Qué se entiende por Racionalidad Limitada. ¿Existe relación entre este concepto y el de heurística? ¿Qué es un Agente Reactivo? ¿Qué es la Arquitectura de Supresión (Subsumption) para Agentes? Poner un ejemplo ¿Por qué los agentes se implementan como hilos (threads) en los lenguajes que disponen de tal recurso? Justificar las respuestas:

Un agente es un sistema que es capaz de percibir el entorno a través de sensores y responder mediante acciones, buscando cumplir su objetivo. Un agente autónomo tiene dos sentidos; en su sentido débil es aquel que toma decisiones no solo basado en las percepciones sino también en su experiencia, y en su sentido fuerte que toma decisiones independientemente y posee el control de sus acciones y estado interno.

Se entiende por racionalidad limitada la restricción de capacidades perceptuales y de acción de un agente. Se relaciona con el concepto de heurística, ya que simplifica el proceso de decisión, permitiendo aprovechar sus limitadas capacidades.

Un agente es reactivo cuando actúa sin memoria, responde únicamente al estado actual y encaja en el entorno.

Es una estrategia de realización del mecanismo de coordinación que permite ejecutar comportamientos en paralelo, organizados jerárquicamente. Comportamientos de nivel inferior pueden inhibir a comportamientos superiores. Un ejemplo, el recolector visto en clase.

Para que sean independientes y reactivos. Los estímulos o percepciones serán respondidos sin ser afectados por otros agentes.

– ¿Qué son las funciones de activación?: Algunos ejemplos serían ReLu, sigmoide, softmax. Se basa en modificar las salidas de las neuronas (logits) para introducir la no linealidad, permitiendo que el modelo aprenda relaciones complejas.

– ¿Qué es una matriz de confusión?: Matriz que refleja el rendimiento de un modelo de redes neuronales de clasificación. Los valores en la diagonal principal representan el total de muestras clasificadas correctamente. Fuera de la diagonal principal, se encuentran todas aquellas muestras que no fueron clasificadas adecuadamente en sus clases.