martes, 8 de julio de 2014

Agentes Artificiales: La Naturaleza del Entorno & Estructura y Fases de los Agentes


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ

CARRERA  INFORMÁTICA

SEMESTRE SEXTO                         PERÍODO ABR. – AGO. /2014


INTELIGENCIA ARTIFICIAL I



TEMA 2: AGENTES INTELIGENTES
* LA NATURALEZA DEL ENTORNO
* ESTRUCTURA Y FASES DE LOS AGENTES


AUTORA:
JENNIFER V. LÓPEZ ÁLAVA


FACILITADORA:
ING. HIRAIDA SANTANA


CALCETA,  JULIO 2014
INTRODUCCIÓN

En este capítulo aprenderemos acerca de la naturaleza del entorno de un agente,  la especificación del entorno de trabajo denominado REAS, así mismo las propiedades de los entornos de trabajo y las dimensiones que se utilizan, además de la estructura y los programas de los agentes, que son los agentes reactivos simples, basados en modelos, en objetivos y en utilidad, y también sobre los agentes que aprenden.
LA NATURALEZA DEL ENTORNO
Especificación del entorno de trabajo
El entorno de trabajo, para cuya denominación se utiliza el acrónimo REAS (Rendimiento, Entorno, Actuadores, Sensores). En el diseño de un agente, el primer paso debe ser siempre especificar el entorno de trabajo de la forma más completa posible.
Propiedades de los entornos de trabajo
El rango de los entornos de trabajo en los que se utilizan técnicas de IA es obviamente muy grande. Sin embargo, se puede identificar un pequeño número de dimensiones en las que categorizar estos entornos. Estas dimensiones determinan, hasta cierto punto, el diseño más adecuado para el agente y la utilización de cada una de las familias principales de técnicas en la implementación del agente. Primero se enumeran las dimensiones, y después se analizan varios entornos de trabajo para ilustrar estas ideas. Las definiciones dadas son informales.
        Totalmente observable vs. Parcialmente observable.
Si los sensores del agente le proporcionan acceso al estado completo del medio en cada momento, entonces se dice que el entorno de trabajo es totalmente observable. Un entorno de trabajo es, efectivamente, totalmente observable si los sensores detectan todos los aspectos que son relevantes en la toma de decisiones; la relevancia, en cada momento, depende de las medidas de rendimiento. Entornos totalmente observables son convenientes ya que el agente no necesita mantener ningún estado interno para saber qué sucede en el mundo. Un entorno puede ser parcialmente observable debido al mido y a la existencia de sensores poco exactos o porque los sensores no reciben información de parte del sistema.
        Determinista vs. Estocástico.
Si el siguiente estado del medio está totalmente determinado por el estado actual y la acción ejecutada por el agente, entonces se dice que el entorno es determinista; de otra forma es estocástico. En principio, un agente no se tiene que preocupar de la incertidumbre en un medio totalmente observable y determinista. Sin embargo, si el medio es parcialmente observable entonces puede parecer estocástico. Esto es particularmente cierto si se trata de un medio complejo, haciendo difícil el mantener constancia de todos los aspectos observados. Así, a menudo es mejor pensar en entornos deterministas o estocásticos desde el punto de vista del agente. Si el medio es determinista, excepto para las acciones de otros agentes, decimos que el medio es estratégico.
        Episódico vs. Secuencial.
En un entorno de trabajo episódico, la experiencia del agente se divide en episodios atómicos. Cada episodio consiste en la percepción del agente y la realización de una única acción posterior. Es muy importante tener en cuenta que el siguiente episodio no depende de las acciones que se realizaron en episodios previos. En los medios episódicos la elección de la acción en cada episodio depende sólo del episodio en sí mismo. Muchas tareas de clasificación son episódicas. En entornos secuenciales, por otro lado, la decisión presente puede afectar a decisiones futuras. Los medios episódicos son más simples que los secuenciales porque la gente no necesita pensar con tiempo.
        Estático vs. Dinámico.
Si el entorno puede cambiar cuando el agente está deliberando, entonces se dice que el entorno es dinámico para el agente; de otra forma se dice que es estático. Los medios estáticos son fáciles de tratar ya que el agente no necesita estar pendiente del mundo mientras está tomando una decisión sobre una acción, ni necesita preocuparse sobre el paso del tiempo. Los medios dinámicos, por el contrario, están preguntando continuamente al agente qué quiere hacer; si no se ha decidido aún, entonces se entiende que ha tomado la decisión de no hacer nada. Si el entorno no cambia con el paso del tiempo, pero el rendimiento del agente cambia, entonces se dice que el medio es semidinámico.
        Discreto vs. Continuo.
La distinción entre discreto y continuo se puede aplicar al estado del medio, a la forma en la que se maneja el tiempo y a las percepciones y acciones del agente.
        Agente individual vs. Multiagente.
La distinción entre el entorno de un agente individual y el de un sistema multiagente puede parecer suficientemente simple. Sin embargo hay algunas diferencias sutiles. Primero, se ha descrito que una entidad puede percibirse como un agente, pero no se ha explicado qué entidades se deben considerar agentes. La distinción clave está en identificar si el comportamiento B está mejor descrito por la maximización de una medida de rendimiento cuyo valor depende del comportamiento de A. Los problemas en el diseño de agentes que aparecen en los entornos multiagente son a menudo bastante diferentes de los que aparecen en entornos con un único agente; en algunos entornos competitivos parcialmente observables el comportamiento estocástico es racional ya que evita las dificultades de la predicción.
Como es de esperar, el caso más complejo es el parcialmente observable, estocástico, secuencia, dinámico, continuo y multiagente. De hecho, suele suceder que la mayoría de las situaciones reales son tan complejas que sería discutible clasificarlas como realmente deterministas. A efectos prácticos, se deben tratar como estocásticas. Hay que tener en cuenta que las respuestas no están siempre preparadas de antemano.
Otras entradas de la tabla dependen de cómo se haya definido el entorno de trabajo. Muchos entornos son, también, episódicos si se observan desde un nivel de abstracción más alto que el de las acciones individuales del agente
Estructura de los agentes
El trabajo de la IA es diseñar el programa agente implemente la función del agente que proyecta las percepciones en las acciones. Se asume que este programa se ejecutará en algún tipo de computador con sensores físicos y actuadores, lo cual se conoce como arquitectura:
Agente = arquitectura + programa
Obviamente, el programa que se elija tiene que ser apropiado para la arquitectura. Si el programa tiene que recomendar acciones como Caminar, la arquitectura tiene que tener piernas. En general, la arquitectura hace que las percepciones de los sensores estén disponibles para el programa, ejecuta los programas, y se encarga de que los actuadores pongan en marcha las acciones generadas.
Programas de los agentes
Los programas de los agentes tienen la misma estructura: reciben las percepciones actuales como entradas de los sensores y devuelven una acción a los  actuadores. Hay que tener en cuenta la diferencia entre los programas de los agentes, que toman la percepción actual como entrada, y la función del agente, que recibe la percepción histórica completa. Los programas de los agentes reciben sólo la percepción actual como entrada porque no hay nada más disponible en el entorno; si las acciones del agente dependen de la secuencia completa de percepciones, el agente tendría que recordar las percepciones.
El Agente-Dirigido-Mediante tabla hace lo que nosotros queremos: implementa la función deseada para el agente. El desafío clave de la IA es encontrar la forma de escribir programas, que en la medida de lo posible, reproduzcan un comportamiento racional a partir de una pequeña cantidad de código en vez de a partir de una tabla con un gran número de entradas.
Los cuatro tipos básicos de programas para agentes que encarnan los principios que subyacen en casi todos los sistemas inteligentes.
        Agentes reactivos simples.
        Agentes reactivos basados en modelos.
        Agentes basados en objetivos.
        Agentes basados en utilidad. Después se explica, en términos generales, cómo convertir todos ellos en agentes que aprendan.
Agentes reactivos simples
El tipo de agente más sencillo es el agente reactivo simple. Estos agentes seleccionan las acciones sobre la base de las percepciones actuales, ignorando el resto de las percepciones históricas
Los agentes reactivos simples tienen la admirable propiedad de ser simples, pero poseen una inteligencia muy limitada.
Los bucles infinitos son a menudo inevitables para los agentes reactivos simples que operan en algunos entornos parcialmente observables.
Salir de los bucles infinitos es posible si los agentes pueden seleccionar sus acciones aleatoriamente. Por tanto, un agente reactivo simple con capacidad para elegir acciones de manera aleatoria puede mejorar los resultados que proporciona un agente reactivo simple determinista.
Agentes reactivos basados en modelos
La forma más efectiva que tienen los agentes de manejar la visibilidad parcial es almacenar información de las partes del mundo que no pueden ver. O lo que es lo mismo, el agente debe mantener algún tipo de estado interno que dependa de la historia percibida y que de ese modo refleje por lo menos alguno de los aspectos no observables del estado actual.
La actualización de la información de estado interno según pasa el tiempo requiere codificar dos tipos de conocimiento en el programa del agente. Primero, se necesita alguna información acerca de cómo evoluciona el mundo independientemente del agente. Segundo, se necesita más información sobre cómo afectan al mundo las acciones del agente. Este conocimiento acerca de «cómo funciona el mundo», tanto si está implementado con un circuito booleano simple o con teorías científicas completas, se denomina modelo del mundo. Un agente que utilice este modelo es un agente basado en modelos.
Agentes basados en objetivos
El conocimiento sobre el estado actual del mundo no es siempre suficiente para decidir qué hacer. En otras palabras, además de la descripción del estado actual, el agente necesita algún tipo de información sobre su meta que describa las situaciones que son deseables. El programa del agente se puede combinar con información sobre los resultados de las acciones posibles (la misma información que se utilizó para actualizar el estado interno en el caso del agente reflexivo) para elegir las acciones que permitan alcanzar el objetivo.
En algunas ocasiones, la selección de acciones basadas en objetivos es directa, cuando alcanzar los objetivos es el resultado inmediato de una acción individual. En otras ocasiones, puede ser más complicado, cuando el agente tiene que considerar secuencias complejas para encontrar el camino que le permita alcanzar el objetivo.
Hay que tener en cuenta que la toma de decisiones de este tipo es fundamentalmente diferente de las reglas de condición-acción descritas anteriormente, en las que hay que tener en cuenta consideraciones sobre el futuro. En los diseños de agentes reactivos, esta información no está representada explícitamente, porque las reglas que maneja el agente proyectan directamente las percepciones en las acciones.
Aunque el agente basado en objetivos pueda parecer menos eficiente, es más flexible ya que el conocimiento que soporta su decisión está representado explícitamente y puede modificarse.
El comportamiento del agente basado en objetivos puede cambiarse fácilmente para que se dirija a una localización diferente.
Agentes basados en utilidad
Las metas por si solas no son realmente suficientes para generar comportamiento de gran calidad en la mayoría de los entornos. Las metas sólo proporcionan una cruda distinción binaria entre los estados de «felicidad» y «tristeza», mientras que una medida de eficiencia más general debería permitir una comparación entre estados del mundo diferentes de acuerdo al nivel exacto de felicidad que el agente alcance cuando se llegue a un estado u otro. Como el término «felicidad» no suena muy científico, la terminología tradicional utilizada en estos casos para indicar que se prefiere un estado del mundo a otro es que un estado tiene más utilidad que otro para el agente.
Una función de utilidad proyecta un estado (o una secuencia de estados) en un número real, que representa un nivel de felicidad. La definición completa de una función de utilidad permite tomar decisiones racionales en dos tipos de casos en los que las metas son inadecuadas. Primero, cuando haya objetivos conflictivos, y sólo se puedan alcanzar algunos de ellos (por ejemplo, velocidad y seguridad), la función de utilidad determina el equilibrio adecuado. Segundo, cuando haya varios objetivos por los que se pueda guiar el agente, y ninguno de ellos se pueda alcanzar con certeza, la utilidad proporciona un mecanismo para ponderar la probabilidad de éxito en función de la importancia de los objetivos.
Por tanto, un agente que posea una función de utilidad explícita puede tomar decisiones racionales, y lo puede hacer con la ayuda de un algoritmo de propósito general que no dependa de la función específica de utilidad a maximizar. De esta forma, la definición «global» de racionalidad (identificando como racionales aquellas funciones de los agentes que proporcionan el mayor rendimiento) se transforma en una restricción «local» en el diseño de agentes racionales que se puede expresar con un simple programa.
Agentes que aprenden
Se han descrito programas para agentes que poseen varios métodos para seleccionar acciones. Hasta ahora no se ha explicado cómo poner en marcha estos programas de agentes. Turing (1950), en su temprano y famoso artículo, consideró la idea de programar sus máquinas inteligentes a mano. Estimó cuánto tiempo podía llevar y concluyó que «Sería deseable utilizar algún método más rápido». El método que propone es construir máquinas que aprendan y después enseñarlas. En muchas áreas de IA, éste es ahora el método más adecuado para crear sistemas novedosos. El aprendizaje tiene otras ventajas, como se ha explicado anteriormente: permite que el agente opere en medios inicialmente desconocidos y que sea más competente que si sólo utilizase un conocimiento inicial.
Un agente que aprende se puede dividir en cuatro componentes conceptuales. La distinción más importante entre elemento de aprendizaje y elemento de  actuación es que el primero está responsabilizado de hacer mejoras y el segundo se responsabiliza de la selección de acciones externas. El elemento de actuación es lo que anteriormente se había considerado como el agente completo: recibe estímulos y determina las acciones a realizar. El elemento de aprendizaje se realimenta con las críticas sobre la actuación del agente y determina cómo se debe modificar el elemento de actuación para proporcionar mejores resultados en el futuro.
El diseño del elemento de aprendizaje depende mucho del diseño del elemento de actuación. La crítica indica al elemento de aprendizaje qué tal lo está haciendo el agente con respecto a un nivel de actuación fijo. La crítica es necesaria porque las percepciones por sí mismas no prevén una indicación del éxito del agente. Es por tanto muy importante fijar el nivel de actuación. Conceptualmente, se debe tratar con el como si estuviese fuera del agente, ya que este no debe modificarlo para satisfacer su propio interés. El último componente del agente con capacidad de aprendizaje es el generador de problemas. Es responsable de sugerir acciones que lo guiaran hacia experiencias nuevas e informativas. Lo interesante es que si el elemento de actuación sigue su camino, puede continuar llevando a cabo las acciones que sean mejores, dado su conocimiento.
Pero si el agente está dispuesto a explorar un poco, y llevar a cabo algunas acciones que no sean totalmente optimas a corto plazo, puede descubrir acciones mejores a largo plazo. El trabajo del generador de problemas es sugerir estas acciones exploratorias. Esto es lo que los científicos hacen cuando llevan a cabo experimentos.
Los casos más simples incluyen el aprendizaje directo a partir de la secuencia percibida. La observación de pares de estados sucesivos del entorno puede permitir que el agente aprenda cómo evoluciona el mundo, y la observación de los resultados de sus acciones puede permitir que el agente aprenda que hacen sus acciones.
En resumen, los agentes tienen una gran variedad de componentes, y estos componentes se pueden representar de muchas formas en los programas de agentes, por lo que, parece haber una gran variedad de métodos de aprendizaje. Existe, sin embargo, una visión unificada sobre  un tema fundamental. El aprendizaje en el campo de los agentes inteligentes puede definirse como el proceso de modificación de cada componente del agente, lo cual permite a cada componente comportarse más en consonancia con la información que se recibe, lo que por tanto permite mejorar el nivel medio de actuación del agente.
CIERRE
En la IA el entorno de trabajo de un agente está determinado por las REAS que significan Rendimiento, Entorno, Actuadores, y Sensores, en el cual el diseño de un agente, debe ser siempre especificar el entorno de trabajo, las propiedades de los entornos de trabajo que se utilizan técnicas de IA es muy grandes pero para poder identificarlas existe un pequeño número de dimensiones en las que categorizar estos entornos, las mismas que determinan, , el diseño más adecuado para el agente y la utilización de cada una de las familias principales de técnicas en la implementación del agente, como son si el agente es dinámico o estático, determinista o estocástico, si es total o parcialmente observable, etc. Luego definimos que la estructura de un agente es igual a la arquitectura más el programa. Y los programas de los agentes tienen la misma estructura que es la de recibir las percepciones actuales como entradas de los sensores y devuelven una acción a los  actuadores, en los programas de agentes también se clasifican diferentes tipo de agentes como son el tipo de agente reactivo simple que es el más sencillo y este tipo de agentes seleccionan las acciones sobre la base de las percepciones actuales, ignorando el resto de las percepciones históricas; los Agentes reactivos basados en modelos que son la forma más efectiva que tienen los agentes de manejar la visibilidad parcial es almacenar información de las partes del mundo que no pueden ver; los Agentes basados en objetivos son el conocimiento sobre el estado actual del mundo no es siempre suficiente para decidir qué hacer; el Agentes basados en utilidad que determina que las metas por si solas no son realmente suficientes para generar comportamiento de gran calidad en la mayoría de los entornos; los Agentes que aprenden en los cuales se han descrito programas para agentes que poseen varios métodos para seleccionar acciones.

BIBLIOGRAFÍA

Russell, S, y Norving P. 2004. Inteligencia Artificial Un Enfoque Moderno. 2da ed.  Cap. 2. Pág. 37-62.