viernes, 30 de enero de 2009

Lógica Androide

El término “inteligencia artificial” se ha popularizado para designar a una disciplina incluida entre las ciencias de la computación. Tiene que ver con el esfuerzo que decenas de científicos de distintos países, especialmente de los Estados Unidos y de Europa Occidental, han venido realizando durante los últimos treinta años para dotar a las computadoras de inteligencia. Para que una computadora comience a merecer el nombre de inteligente, debe ser capaz de realizar acciones que, si realizadas por un ser humano, se diría que requieren inteligencia, como jugar ajedrez o mantener un diálogo con otro ser considerado también inteligente. Las computadoras pueden hacer lo que sus programadores les dicen, pero nada más; además, hagan lo que hagan, posiblemente nunca sabrán lo que están haciendo y nunca serán conscientes de lo que hacen. Y para ser inteligente se requiere ser capaz de elegir conscientemente el propio camino en la solución de problemas. El desarrollo de la inteligencia artificial, en esas máquinas, trajo consigo cambios en la lógica simbólica, bastante evidentes en lo que toca a los objetivos a seguir y los problemas a analizar, especialmente un tipo especial de lógica, la denominada lógica de los androides, la lógica de aquellas máquinas que simulan inteligencia humana.

En el afán de mimetizar al ser humano, pueden advertirse dos caminos separados pero vinculados estrechamente: la mimesis corporal o física, referida a la reproducción de las configuraciones del cuerpo humano, y la mimesis mental o cerebral, que se refiere a la reproducción de los mecanismos lógicos del cerebro humano. La mimesis del cuerpo halla su máquina arquetípica en el autómata antropomorfo; la mimesis del cerebro encuentra su máxima expresión en la inteligencia artificial. Ambos caminos se dan la mano en el autómata antropomorfo inteligente. Los autómatas antropomorfos inteligentes son máquinas dotadas de facultad intelectiva, que tienden al humano en apariencia o forma y que tienen en su interior los principios que rigen sus funciones, movimientos y decisiones. Ahora bien, las nuevas tecnologías aplicadas a la creación de autómatas antropomorfos inteligentes, tales como la biomedicina, biotecnología, ingeniería genética, biónica, nanotecnología, electrónica molecular, cibernética, etc., han permitido la inclusión, a un nivel genético, de partes biológicas en los componentes mecánicos, dando lugar a sistemas de naturaleza mixta con mayores grados de definición mimética. Los modernos autómatas antropomorfos inteligentes son autómatas antropomorfos inteligentes mejorados, merced a la utilización de las nuevas tecnologías; estos modernos autómatas encuentran su máxima expresión en el androide, que viene a ser un ente artificial detalladamente diseñado por medio de estas nuevas tecnologías que incorpora en su interior elementos biológicos y mecánicos asimilados en un nivel microbiológico, y cuya apariencia exterior y funcionamiento general lo convierten en casi indistinguible de su modelo humano. De este modo la tendencia a potenciar al ser humano por medio de artilugios mecánicos deriva, progresivamente, en una maquinización de lo humano. Y en la maquinización de lo humano radica la pérdida de fronteras entre ambos sistemas. La tendencia a simular artificialmente al ser humano deriva, progresivamente, en una humanización de la máquina: la pérdida de fronteras entre ambos sistemas radica en el acercamiento de las máquinas a los humanos. La entidad arquetípica de este tipo de integración es el androide, entidad idéntica, en su máxima expresión, al ser humano.

No existe una caracterización unívoca de la inteligencia artificial, y ni siquiera existe suficiente acuerdo entre los expertos acerca de si es una disciplina tecnológica o, además, se la debe considerar una ciencia. Sí hay acuerdo en que uno de sus objetivos consiste en el diseño y construcción de androides, es decir, en palabras de Marvin Minsky, de aquellas máquinas que se comporten de una manera que se calificaría como inteligente si fuera hecha por seres humanos. Este objetivo implica que la inteligencia artificial necesita hacer uso, entre otras cosas, de teorías acerca de procesos considerados generalmente como “mentales”; en particular de procesos de conocimiento tales como percibir, interpretar e inferir. Estas teorías surgen de la interrelación de diferentes disciplinas tales como la psicología, la lingüística, la neurología y la lógica simbólica.

Las primeras ideas concretas acerca de cómo debían ser las máquinas inteligentes dieron nueva forma a viejas ideas presentes en la edad moderna, tales como la concepción de Hobbes del razonamiento como cómputo y la idea de Leibnitz de un “cálculo racional”. Este enfoque, además de ser el más tradicional, es también el más relevante desde el punto de vista de la lógica. Constituye lo que John Haugeland denomina “inteligencia artificial buena y al viejo estilo”, para la cual la inteligencia y el pensamiento se reducen a series de cómputos o cálculos. Dentro de esta tradición se destaca la “hipótesis del sistema de símbolos físicos” de los investigadores Newell y Simon. Según esta hipótesis, la inteligencia se explica en términos de reglas de entrada y salida que controlan la conducta del sistema y de reglas de procesamiento interno de información. Tanto las computadoras como la mente humana son sistemas físicos de símbolos, con una base material diferente en cada caso, pero que operan según los mismos principios computacionales. Obviamente, esta concepción es independiente de los problemas físicos específicos que puedan tener tanto las mentes naturales como las máquinas artificiales. Así, un sistema físico de símbolos consta de instancias de símbolos físicamente relacionados. Una sucesión de procesos permite crear nuevos símbolos y modificar o destruir los viejos. Esta concepción recibió una fuerte influencia de la lógica simbólica, tal como se había desarrollado en la primera mitad del siglo veinte. En efecto, la hipótesis del sistema físico de símbolos adopta muchos elementos de la versión vulgarizada de los sistemas formales como sistemas de reglas puramente sintácticas que operan sobre conjuntos de símbolos sin significado.

Nils Nilsson ofreció en un artículo escrito el año 1991, una descripción adecuada de las máquinas inteligentes, en la cual se tipifican la información que estas pueden obtener y los procesos para obtenerla. Los presupuestos de Nilsson fueron los siguientes: (1) Las máquinas inteligentes tendrán conocimiento de su entorno. (2) Las máquinas inteligentes más versátiles representarán gran parte del conocimiento acerca de su entorno de manera declarativa, es decir, por medio de cadenas de símbolos que se interpretan como enunciados. (3) En las máquinas más versátiles, el lenguaje en el que se representa el conocimiento declarativo debe ser al menos tan expresivo como el lenguaje de la lógica de predicados de primer orden. Además Nilsson distinguía en las máquinas inteligentes un conocimiento declarativo y un conocimiento procedimental. El conocimiento declarativo está dado por cadenas de símbolos que se interpretan como enunciados, supuestamente verdaderos, acerca de un medio ambiente externo a la máquina. El conocimiento procedimental está constituido por funciones que le permiten a la máquina manejar símbolos, tomar decisiones e interactuar con el medio ambiente. De este modo, Nilsson describe a los androides como máquinas de estado finito cuyos estados son conjuntos de enunciados. Las transiciones entre un estado y otro se encuentran gobernadas por el conocimiento procedimental de la máquina. Una función sobre el conjunto de enunciados y las entradas que recibe la máquina contiene mecanismos inferenciales como sus componentes. Otra función sobre los estados de la máquina gobierna sus acciones sobre el medio. Si bien es cierto que estos androides deben mucho a la lógica simbólica, también es cierto que han influido en ella. La influencia ha tenido lugar de diferentes formas, tanto en los problemas a resolver, como en los métodos para resolverlos, y también en la comprensión acerca de la naturaleza de la inferencia deductiva, alcanzando aspectos esenciales de la lógica tales como la caracterización de sistemas lógicos y la adopción de herramientas formales para analizar sus propiedades.

De esta manera los sistemas lógicos pasan a estar “realizados”, por así decirlo, en máquinas determinadas que poseen determinados procedimientos computacionales. Las deducciones o demostraciones en los sistemas deben llevarse a cabo, entonces de una manera efectiva, conforme los recursos de los que disponga la máquina. Esto lleva a tomar seriamente en cuenta, además de los métodos de demostración según diferentes sistemas deductivos, los mecanismos de búsqueda que permiten a la máquina construir efectivamente demostraciones. Aquí juegan un papel primordial aspectos como la factibilidad y la eficiencia y conceptos cuantitativos de constructibilidad. La situación es análoga a la que presenta la “matemática computacional”, en la que, por ejemplo, es importante especificar aquellas funciones computables que sean realmente factibles.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Septiembre 15 de 2008

Agentes Inteligentes

La inteligencia artificial puede considerarse como una de las disciplinas más nuevas, la que trata de “desarrollar sistemas que piensen y actúen racionalmente”. En los últimos años la inteligencia artificial ha ido evolucionando, quizás con mayor celeridad que otras disciplinas. Todo esto ha llevado a que la inteligencia artificial abarque una gran cantidad de áreas, desde algunas muy generales como razonamiento, búsqueda, etc. a otras más específicas como los sistemas expertos, algoritmos genéticos, redes neuronales, sistemas de diagnóstico, etc. Podría indicarse, sin lugar a dudas, que la inteligencia artificial puede ser aplicada a infinidad de disciplinas científicas y es que la misma es susceptible de aparecer allí donde se requiera el intelecto humano. A fines del siglo pasado, al interior de la inteligencia artificial, ha surgido un nuevo paradigma conocido como el “paradigma de agentes”, el cual está tomando un gran auge entre los investigadores. Dicho paradigma aborda el desarrollo de entidades que puedan actuar de forma autónoma y razonada. Si se retoma la definición dada anteriormente donde se considera a la inteligencia artificial como un medio para el desarrollo de sistemas que piensen y actúen racionalmente, se puede pensar que la inteligencia artificial, en su conjunto, trata realmente de construir dichas entidades autónomas e inteligentes.

Un agente es todo aquello que puede considerarse que percibe su ambiente mediante sensores y que responde o actúa en tal ambiente por medio de efectores. Los agentes humanos tienen ojos, oídos y otros órganos que le sirven de sensores, así como manos, piernas, boca y otras partes de su cuerpo que le sirven de efectores. En el caso de agentes robóticos, los sensores son sustituidos por cámaras infrarrojas y los efectores son reemplazados mediante motores. En el caso de un agente de software, sus percepciones y acciones vienen a ser la cadena de bits codificados. En este contexto, un agente inteligente es un programa de computadora que es capaz de hacer lo que se haría si las personas tuvieran el suficiente tiempo para hacerlo, o de forma más adecuada “un tipo de programa computacional que, por encargo de un usuario u otro programa, realiza de forma autónoma tareas que requieren cierto grado de inteligencia y aprendizaje”.

Un agente inteligente, es una entidad capaz de percibir su entorno, procesar tales percepciones y responder o actuar en su entorno de manera racional, es decir, de manera correcta y tendiendo a maximizar un resultado esperado. En este contexto la racionalidad es la característica que posee una elección de ser correcta, más específicamente, que tiende a maximizar un resultado esperado. El concepto de racionalidad es más general y por ello más adecuado que inteligencia, para describir el comportamiento de los agentes inteligentes. Por este motivo es mayor el consenso en denominarlos agentes racionales. Un agente inteligente puede ser una entidad física o virtual. Si bien el término agente racional se refiere a agentes artificiales en el campo de la inteligencia artificial, también puede considerarse agentes racionales a los animales y al hombre. El significado del concepto “agente inteligente” es una cuestión muy discutida donde no se encuentra un acuerdo general. Sin embargo, existe una serie de características asociadas a los agentes inteligentes a partir de las cuales puede ofrecerse una definición que sería aceptada por la mayoría de los investigadores. Primero, se puede decir que un agente software es un programa con capacidad de actuar de forma autónoma en el entorno donde se encuentre, con la finalidad de conseguir los objetivos para los cuales fue diseñado. Por autonomía se entiende la capacidad de actuar de forma independiente y autosuficiente, sin la intervención humana o de otros agentes y teniendo su propio control. Sin embargo, los sistemas autónomos no son nuevos, existen muchos programas con esta característica que pueden clasificarse como agentes, aunque no como agentes inteligentes.

Para que un agente pueda llamarse inteligente además de autónomo tiene que ser flexible. El término flexible en la autonomía del agente engloba las siguientes características: (1) Sensible o reactivo. El agente tiene que percibir su entorno, el cual puede ser el mundo físico, un usuario, una colección de agentes, Internet, etc., además de responder en un tiempo adecuado ante los cambios que se produzcan en dicho entorno. (2) Oportunista o pro-activo. El agente no sólo ha de reaccionar frente a su entorno, sino que tiene que aprovechar aquellas situaciones que puedan darse en dicho entorno si éstas favorecen la consecución de sus objetivos, ofreciendo una conducta de iniciativa propia. (3) Social. El agente también tiene que ser capaz de interactuar, cuando lo considere oportuno, con otros agentes y humanos con el objetivo de completar sus actividades o ayudar a la realización de las tareas de los otros. Con estas características queda definido el concepto de agente inteligente. Sin embargo, estos agentes pueden poseer, además, otras características adicionales como son la movilidad y adaptabilidad. Por movilidad se entiende la capacidad del agente de moverse de un entorno a otro por decisión propia. La adaptabilidad o aprendizaje puede definirse como la capacidad del agente de reaccionar ante una misma situación de formas diferentes con el objetivo de encontrar los comportamientos óptimos orientados a la resolución de cada uno de los diferentes problemas.

Las características que un programa computacional debe poseer para ser considerado un agente inteligente, en opinión de los expertos, son: (1) Autonomía. Se refiere a que el agente debe tener control sobre sus propias acciones y ser capaz de lanzar acciones independientemente del usuario. (2) Capacidad de reacción. Con la cual los agentes pueden detectar cambios en su entorno y reaccionar en función de éstos. (3) Comunicación. Con esta característica el agente es capaz de interactuar con los usuarios y otros agentes. (4) Logro de metas. Los agentes tienen un propósito determinado y actúan en consecuencia hasta conseguirlo. Otras características de los agentes inteligentes reseñadas en la mayoría de la literatura en este ámbito son: (1) Dinamismo. Con la cual, los agentes deberían ser capaces de funcionar independientemente del espacio y el tiempo. (2) Adaptabilidad. Referida a que los agentes aprenden y cambian su conducta basándose en las experiencias previas. (3) Continuidad temporal. Que se refiere a que los agentes no deberían parar o reanudar su actividad para ciertas tareas, más bien su funcionamiento debería ser un proceso continuo. (4) Movilidad. Los agentes se pueden transportar de una máquina a otra e, incluso, entre diferentes arquitecturas y plataformas.

Como consecuencia de una definición diáfana de agente inteligente, diferentes autores han propuesto una gran variedad de taxonomías o clasificaciones. A continuación se presenta una doble clasificación que pretende aclarar la tipología de agentes inteligentes basados tanto en el ámbito en el que actúan como en las tareas que llevan a cabo. Por una parte, en cuanto a su ámbito de actuación se clasifican en: (1) Agentes de escritorio, que son agentes de sistema operativo, agentes de aplicaciones y otros. (2) Agentes de Internet, referidos como agentes de búsqueda, agentes de filtrado y recuperación de información, agentes de notificación, agentes móviles y otros. (3) Agentes de Internet, que son los agentes cooperativos, agentes de bases de datos, agentes de automatización de procesos y otros. Por otra parte, en cuanto a su función se clasifica a los agentes en las siguientes tipologías: Agentes de interfaz, agentes de filtrado, agentes de navegación, agentes consejeros y otros.

Como cierre comentar que desafortunadamente muchas de las tecnologías existentes son inadecuadas para construir aplicaciones complejas y sistemas distribuidos. Se requieren nuevas herramientas para construir esos sistemas complejos, en ese sentido el software de agentes inteligentes representa una buena solución para implementar sistemas de procesamiento de información complejos, sin embargo no es apropiado para implementar todas las clases de aplicaciones. Teniendo en mente que los atributos de un agente inteligente son: (1) En el caso de un agente se necesita ejecución autónoma, comunicación con otros agentes y usuarios y supervisión del estado del entorno de ejecución. (2) En el caso de un agente Inteligente este debe ser capaz de utilizar símbolos y abstracciones, capaz de explorar cantidades significantes del dominio del conocimiento y capaz de adaptarse a un comportamiento orientado a objetivos. (3) Cuando se trata de un agente verdaderamente Inteligente este debe ser capaz de aprender de su entorno, capaz de tolerar errores y capaz de comunicarse usando un lenguaje natural. Un software verdaderamente inteligente posee las capacidades del software de agentes: autonomía, comunicabilidad y percepción, además de las capacidades del software inteligente: habilidad para explorar el conocimiento, tolerar errores, aprender y razonar en tiempo real y comunicarse en un lenguaje apropiado.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Septiembre 8 de 2008

Sistemas Inferenciales

La inteligencia artificial es algo que fascina a muchas personas, especialmente aquellas que creen que las computadoras serán capaces de concebir por sí mismas lo que para los seres humanos algunas veces es complejo: la planificación, la toma de decisiones, el razonamiento abstracto, la eliminación de juicios subjetivos, y otras tareas complejas. Una vez hecho esto, el paso al autoaprendizaje sería la meta. Pero por la evolución de la tecnología y el creciente incremento de capacidad en las computadoras personales, comienzan a emerger programas que muestran características de inteligencia. Por ende, la posibilidad de construir una máquina que pueda rivalizar o superar la capacidad de razonamiento del cerebro humano potencia la imaginación del ser humano.

La lógica es tanto el arte como la ciencia de la demostración. Enseña a inferir correctamente y explica y analiza el por qué de esa corrección. La lógica menciona qué es obtener buenas conclusiones a partir de la información inicial y permite escudriñar la estructura más profunda de la razón. Un ideal de la lógica es entender la inferencia correcta tan bien que incluso sea posible dar recetas, procedimientos automáticos para que cualquier agente, humano o no, pueda tener garantizada la corrección lógica en su manera de procesar la información. La solución de la mayor parte de los problemas puede considerarse una actividad intelectual de generación y selección de soluciones alternativas, dentro de una gama de soluciones posibles. Inspirándose en el modelo mental, la inteligencia artificial persigue metas como la del razonamiento simbólico. Puesto que una inferencia corresponde a una etapa elemental de razonamiento, la capacidad de razonamiento de una computadora de este tipo se mide en “inferencias lógicas por segundo” y en sus múltiplos, de modo que una “inferencia lógica por segundo” corresponde a una inferencia silogística por segundo. Se estima habitualmente que una operación de inferencia necesita de cien a mil pasos, de modo que una “inferencia lógica por segundo” equivale de cien a mil instrucciones por segundo.

Se puede definir a un sistema experto como una aplicación informática que permite resolver problemas pertenecientes a un dominio específico, altamente especializado, de la manera en que lo haría un ser humano experto en dicho dominio. Un sistema experto se compone principalmente de una base de conocimiento, un motor de inferencia y una interfaz de diálogo con el usuario. El proceso de construir un sistema experto se estudia en la ingeniería del conocimiento. La construcción típicamente involucra una forma especial de interacción entre el constructor del sistema experto, llamado ingeniero del conocimiento, uno o más expertos en el área del problema y los usuarios. El ingeniero del conocimiento debe entender ampliamente el mecanismo de inferencia del sistema experto y poseer excelente habilidad de comunicación interpersonal para extraer de un experto el conocimiento necesario. Los ingenieros del conocimiento son analistas de sistemas y “técnicos psicólogos” quienes se encargan de deducir cómo manejan los expertos el conocimiento y la información; entienden cómo un experto desarrolla y aplica teorías, deducciones, lógicas y procesos; llega a las reglas básicas y hechos no obvios que el experto maneja además de trasladar la información hacia alguna estructura para que el sistema la entienda. Las reglas de expertos en el trabajo por un buen número de años, denominadas heurísticas, se derivan al realizar una exhaustiva observación en esas personas expertas. Junto con el conocimiento general, a manera de hechos, las reglas disponibles en libros y las heurísticas se almacenan en una base de conocimiento, compuesta de hechos y reglas, además que el software especializado se encarga de aplicar dichas reglas para deducir conocimiento.

El enfoque más común para representar el dominio del conocimiento que se requiere para un sistema experto son las reglas de producción. Estas pueden ser referidas como reglas “situación-acción” o “si-entonces”. De esta forma y con bastante frecuencia, una base de conocimiento está constituida principalmente de reglas, las cuales son invocadas por un emparejamiento de patrones con las particularidades de las tareas circunstanciales que van apareciendo en la base de datos global. Las reglas en una base de conocimientos representan el dominio de hechos y las reglas heurísticas de un buen juicio de acciones a tomar cuando se llega a situaciones específicas. La fuerza de un sistema experto yace en el conocimiento específico del dominio del problema. Casi todos los sistemas existentes basados en reglas contienen un centenar de ellas y generalmente se obtienen de entrevistas con expertos durante un largo tiempo. En cualquier sistema experto las reglas se conectan una a otra por enlaces de asociación para formar redes de reglas. Una vez que son ensambladas tales redes, se tiene la representación sustancial de un cuerpo de conocimientos.

Generalmente, un experto tiene muchas reglas en el sentido común o empíricas por lo que el soporte suele ser incompleto para la evidencia que se dispone. En tales casos una técnica consiste en vincular valores numéricos a cada regla para indicar el grado de certidumbre que ésta tiene. En esta operación, propia de los sistemas expertos, los valores de certidumbre se combinan unos a otros a través de la red, considerando también la certidumbre de los datos de entrada del problema, para llegar finalmente a un valor de certidumbre correspondiente a la solución final.

El modelo de problema solución y sus métodos organizan y controlan las etapas que se van tomando para la resolución de problemas. Un modelo muy poderoso y común es el de encadenar las reglas “situación-acción” con el fin de formar alguna línea de razonamiento. Si el encadenamiento se inicia a partir de un conjunto de condiciones y se mueve hacia alguna conclusión, el método se llama encadenamiento hacia adelante y, en su caso contrario, el encadenamiento es hacia atrás. Un problema de encadenamiento hacia adelante, sin una apropiada heurística de poda, derivará muchas soluciones da las cuales no todas son necesarias. En el caso del encadenamiento hacia atrás, es necesario también trabajar con una heurística apropiada, con la finalidad de poder manejar submetas conjuntivas. En general, para atacar el problema de conjunción, es necesario encontrar un caso en donde todas las submetas interactuantes se satisfagan. Pero con frecuencia una búsqueda de tal naturaleza proporciona una explosión combinatoria de posibilidades. Es por esta razón, que el dominio apropiado de la heurística y su esquema inferencial deben ser encontrados para cada tipo de problemas, para que de esta manera se tenga un sistema experto eficaz y eficiente.

En realidad el conocimiento de una tarea es el que domina el curso de las etapas que se van tomando para la solución del problema. En algunos casos cuando el conocimiento es bastante abstracto, como en el caso del dominio de un modelo simbólico, la inferencia que se produce del modelo de abstracción a relaciones menos abstractas, se denomina modelo de “manejo de inferencias”. Siempre y cuando sea posible moverse de las relaciones simbólicas más abstractas a relaciones menos abstractas, se estará generando expectativas y, en este contexto, el comportamiento del problema-solución es denominado “manejo de expectativas”. Con frecuencia se tiene que la solución de los problemas trabaja hacia arriba; es decir, de los detalles o de los datos del problema específico a niveles más altos de abstracción. En este caso, las etapas en esta dirección se llaman “manejo de datos”. Si en la etapa siguiente se elige en base de algún dato nuevo con base a la última etapa tomada dentro del problema-solución, entonces la actividad es llamada “manejo de eventos”.

Se encuentra ampliamente aceptado que un sistema experto consiste de tres componentes principales: (1) un conjunto de reglas, (2) una base de datos global y (3) un intérprete de reglas. Las reglas actúan por medio de patrones dentro de la base de datos global y dependen de la dirección de búsqueda, la cual se empareja en ambos lados con las reglas a través de la situación o mediante la acción. La aplicación de las reglas cambian el estado del sistema y por consiguiente la base de datos, habilitando algunas reglas y deshabilitando algunas otras. El interprete de reglas usa una estrategia de control para encontrar las reglas disponibles y decidir que regla debe aplicar. Las estrategias básicas de control usualmente son las siguientes: (1) de arriba hacia abajo, para el manejo de metas y (2) de abajo hacia arriba, para el manejo de datos. En el caso de una combinación de ambas estrategias, es necesario un proceso de convergencia parecido al de relajación para unir las líneas opuestas de razonamiento en algún punto intermedio y así poder ofrecer una solución al problema.


Guillermo Choque Aspiazu
http://www.eldiario.net/
Septiembre 1 de 2008