Representación del conocimiento y razonamiento.

Compartir Imprimir Citar
Campo de inteligencia artificial

Representación y razonamiento del conocimiento (KRR, KR&R, KR²) es el campo de la inteligencia artificial (IA) dedicada a representar información sobre el mundo en una forma que un sistema informático pueda usar para resolver tareas complejas como diagnosticar una condición médica o tener un diálogo en un lenguaje natural. La representación del conocimiento incorpora hallazgos de la psicología sobre cómo los humanos resuelven problemas y representan el conocimiento para diseñar formalismos que harán que los sistemas complejos sean más fáciles de diseñar y construir. La representación del conocimiento y el razonamiento también incorpora hallazgos de la lógica para automatizar varios tipos de razonamiento, como la aplicación de reglas o las relaciones de conjuntos y subconjuntos.

Los ejemplos de formalismos de representación del conocimiento incluyen redes semánticas, arquitectura de sistemas, marcos, reglas y ontologías. Los ejemplos de motores de razonamiento automatizado incluyen motores de inferencia, probadores de teoremas y clasificadores.

Historia

El primer trabajo en la representación del conocimiento computarizado se centró en los solucionadores de problemas generales, como el sistema General Problem Solver (GPS) desarrollado por Allen Newell y Herbert A. Simon en 1959. Estos sistemas incluían estructuras de datos para la planificación y la descomposición. El sistema comenzaría con una meta. Luego descompondría ese objetivo en subobjetivos y luego se dispondría a construir estrategias que pudieran lograr cada subobjetivo.

En estos primeros días de la IA, también se desarrollaron algoritmos de búsqueda generales como A*. Sin embargo, las definiciones de problemas amorfos para sistemas como el GPS significaban que solo funcionaban para dominios de juguetes muy limitados (por ejemplo, el 'mundo de los bloques'). Para abordar los problemas que no son de juguetes, los investigadores de IA como Ed Feigenbaum y Frederick Hayes-Roth se dieron cuenta de que era necesario enfocar los sistemas en problemas más limitados.

Estos esfuerzos condujeron a la revolución cognitiva en psicología y a la fase de la IA centrada en la representación del conocimiento que resultó en sistemas expertos en las décadas de 1970 y 1980, sistemas de producción, lenguajes de marco, etc. En lugar de solucionadores de problemas generales, la IA cambió su centrarse en sistemas expertos que podrían igualar la competencia humana en una tarea específica, como el diagnóstico médico.

Los sistemas expertos nos brindaron la terminología que todavía se usa hoy en día, donde los sistemas de IA se dividen en una base de conocimientos, con hechos sobre el mundo y reglas, y un motor de inferencia, que aplica las reglas a la base de conocimientos para responder preguntas y resolver problemas. En estos primeros sistemas, la base de conocimiento tendía a ser una estructura bastante plana, esencialmente afirmaciones sobre los valores de las variables utilizadas por las reglas.

Además de los sistemas expertos, otros investigadores desarrollaron el concepto de lenguajes basados en marcos a mediados de la década de 1980. Un marco es similar a una clase de objeto: es una descripción abstracta de una categoría que describe cosas en el mundo, problemas y posibles soluciones. Los marcos se usaron originalmente en sistemas orientados a la interacción humana, p. comprender el lenguaje natural y los entornos sociales en los que varias expectativas predeterminadas, como pedir comida en un restaurante, reducen el espacio de búsqueda y permiten que el sistema elija las respuestas adecuadas a las situaciones dinámicas.

No pasó mucho tiempo antes de que las comunidades marco y los investigadores basados en reglas se dieran cuenta de que había una sinergia entre sus enfoques. Los marcos eran buenos para representar el mundo real, descritos como clases, subclases, ranuras (valores de datos) con varias restricciones sobre los valores posibles. Las reglas eran buenas para representar y utilizar una lógica compleja como el proceso para hacer un diagnóstico médico. Se desarrollaron sistemas integrados que combinaban marcos y reglas. Uno de los más poderosos y conocidos fue el Knowledge Engineering Environment (KEE) de 1983 de Intellicorp. KEE tenía un motor de reglas completo con encadenamiento hacia adelante y hacia atrás. También tenía una base de conocimiento completa basada en marcos con disparadores, ranuras (valores de datos), herencia y paso de mensajes. Aunque el paso de mensajes se originó en la comunidad orientada a objetos en lugar de en la IA, los investigadores de IA también lo adoptaron rápidamente en entornos como KEE y en los sistemas operativos para máquinas Lisp de Symbolics, Xerox y Texas Instruments.

La integración de marcos, reglas y programación orientada a objetos fue impulsada en gran medida por empresas comerciales como KEE y Symbolics derivadas de varios proyectos de investigación. Al mismo tiempo que esto ocurría, había otra línea de investigación que tenía un enfoque menos comercial y estaba impulsada por la lógica matemática y la demostración automatizada de teoremas. Uno de los idiomas más influyentes en esta investigación fue el idioma KL-ONE de mediados de los 80. KL-ONE era un lenguaje de marcos que tenía una semántica rigurosa, definiciones formales para conceptos como una relación Is-A. KL-ONE y los lenguajes que fueron influenciados por él, como Loom, tenían un motor de razonamiento automatizado que se basaba en la lógica formal en lugar de las reglas SI-ENTONCES. Este razonador se llama el clasificador. Un clasificador puede analizar un conjunto de declaraciones e inferir nuevas afirmaciones, por ejemplo, redefinir una clase para que sea una subclase o una superclase de alguna otra clase que no se haya especificado formalmente. De esta forma, el clasificador puede funcionar como un motor de inferencia, deduciendo nuevos hechos a partir de una base de conocimiento existente. El clasificador también puede proporcionar verificación de consistencia en una base de conocimiento (que en el caso de los lenguajes KL-ONE también se conoce como ontología).

Otra área de investigación de la representación del conocimiento fue el problema del razonamiento de sentido común. Una de las primeras cosas que aprendimos al tratar de crear software que pudiera funcionar con el lenguaje natural humano fue que los humanos recurrimos regularmente a una amplia base de conocimientos sobre el mundo real que simplemente damos por sentado, pero que no es del todo obvio para un agente artificial.. Principios básicos de la física del sentido común, causalidad, intenciones, etc. Un ejemplo es el problema del marco, que en una lógica impulsada por eventos debe haber axiomas que establezcan que las cosas mantienen su posición de un momento a otro a menos que sean movidas por algún elemento externo. fuerza. Para hacer un verdadero agente de inteligencia artificial que pueda conversar con humanos usando lenguaje natural y pueda procesar declaraciones y preguntas básicas sobre el mundo, es esencial representar este tipo de conocimiento. Uno de los programas más ambiciosos para abordar este problema fue el proyecto Cyc de Doug Lenat. Cyc estableció su propio lenguaje Frame e hizo que un gran número de analistas documentaran varias áreas de razonamiento de sentido común en ese lenguaje. El conocimiento registrado en Cyc incluía modelos de sentido común de tiempo, causalidad, física, intenciones y muchos otros.

El punto de partida para la representación del conocimiento es la hipótesis de la representación del conocimiento formalizada por primera vez por Brian C. Smith en 1985:

Cualquier proceso inteligente mecánicamente encarnado estará compuesto por ingredientes estructurales que a) nosotros como observadores externos naturalmente tomamos para representar un relato proposicional del conocimiento de que el proceso global exhibe, y b) independiente de tal atribución semántica externa, jugar un papel formal pero causal y esencial en la engendración del comportamiento que manifiesta ese conocimiento.

Actualmente, una de las áreas más activas de investigación en representación del conocimiento son los proyectos asociados a la Web Semántica. La Web Semántica busca agregar una capa de semántica (significado) sobre la Internet actual. En lugar de indexar sitios web y páginas a través de palabras clave, la Web Semántica crea grandes ontologías de conceptos. La búsqueda de un concepto será más efectiva que las búsquedas tradicionales de solo texto. Los lenguajes de marcos y la clasificación automática juegan un papel importante en la visión de la futura Web Semántica. La clasificación automática brinda tecnología a los desarrolladores para proporcionar orden en una red de conocimiento en constante evolución. Definir ontologías que sean estáticas e incapaces de evolucionar sobre la marcha sería muy limitante para los sistemas basados en Internet. La tecnología clasificadora brinda la capacidad de lidiar con el entorno dinámico de Internet.

Proyectos recientes financiados principalmente por la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) han integrado clasificadores y lenguajes de marco con lenguajes de marcado basados en XML. El marco de descripción de recursos (RDF) proporciona la capacidad básica para definir clases, subclases y propiedades de objetos. Web Ontology Language (OWL) proporciona niveles adicionales de semántica y permite la integración con motores de clasificación.

Resumen

La representación del conocimiento es un campo de la inteligencia artificial que se centra en el diseño de representaciones informáticas que capturan información sobre el mundo que se puede utilizar para resolver problemas complejos.

La justificación de la representación del conocimiento es que el código de procedimiento convencional no es el mejor formalismo para resolver problemas complejos. La representación del conocimiento hace que el software complejo sea más fácil de definir y mantener que el código de procedimiento y puede usarse en sistemas expertos.

Por ejemplo, hablar con expertos en términos de reglas comerciales en lugar de código reduce la brecha semántica entre usuarios y desarrolladores y hace que el desarrollo de sistemas complejos sea más práctico.

La representación del conocimiento va de la mano con el razonamiento automatizado porque uno de los propósitos principales de representar explícitamente el conocimiento es poder razonar sobre ese conocimiento, hacer inferencias, afirmar nuevos conocimientos, etc. Prácticamente todos los lenguajes de representación del conocimiento tienen un razonamiento o motor de inferencia como parte del sistema.

Una compensación clave en el diseño de un formalismo de representación del conocimiento es la que existe entre la expresividad y la practicidad. El último formalismo de representación del conocimiento en términos de poder expresivo y compacidad es la lógica de primer orden (FOL). No hay formalismo más poderoso que el que usan los matemáticos para definir proposiciones generales sobre el mundo. Sin embargo, FOL tiene dos inconvenientes como formalismo de representación del conocimiento: facilidad de uso y practicidad de implementación. La lógica de primer orden puede resultar intimidante incluso para muchos desarrolladores de software. Los lenguajes que no tienen el poder formal completo de FOL aún pueden proporcionar casi el mismo poder expresivo con una interfaz de usuario que es más práctica de entender para el desarrollador promedio. El problema de la practicidad de la implementación es que FOL en cierto modo es demasiado expresivo. Con FOL es posible crear declaraciones (por ejemplo, cuantificación sobre conjuntos infinitos) que harían que un sistema nunca terminara si intentara verificarlas.

Por lo tanto, un subconjunto de FOL puede ser más fácil de usar y más práctico de implementar. Esta fue una motivación impulsora detrás de los sistemas expertos basados en reglas. Las reglas IF-THEN proporcionan un subconjunto de FOL pero uno muy útil que también es muy intuitivo. La historia de la mayoría de los primeros formalismos de representación del conocimiento de IA; desde las bases de datos hasta las redes semánticas, los probadores de teoremas y los sistemas de producción pueden verse como varias decisiones de diseño sobre si enfatizar el poder expresivo o la computabilidad y la eficiencia.

En un artículo clave de 1993 sobre el tema, Randall Davis del MIT describió cinco roles distintos para analizar un marco de representación del conocimiento:

La representación del conocimiento y el razonamiento son una tecnología habilitadora clave para la Web Semántica. Los lenguajes basados en el modelo Frame con clasificación automática proporcionan una capa de semántica sobre la Internet existente. En lugar de buscar a través de cadenas de texto como es típico hoy en día, será posible definir consultas lógicas y encontrar páginas que correspondan a esas consultas. El componente de razonamiento automatizado en estos sistemas es un motor conocido como clasificador. Los clasificadores se centran en las relaciones de subsunción en una base de conocimiento en lugar de reglas. Un clasificador puede inferir nuevas clases y cambiar dinámicamente la ontología a medida que se dispone de nueva información. Esta capacidad es ideal para el espacio de información en constante cambio y evolución de Internet.

La Web Semántica integra conceptos de representación del conocimiento y razonamiento con lenguajes de marcas basados en XML. El marco de descripción de recursos (RDF) proporciona las capacidades básicas para definir objetos basados en el conocimiento en Internet con características básicas como las relaciones Is-A y las propiedades de los objetos. El lenguaje de ontología web (OWL) agrega semántica adicional y se integra con razonadores de clasificación automáticos.

Características

En 1985, Ron Brachman clasificó los problemas centrales para la representación del conocimiento de la siguiente manera:

Ingeniería de ontologías

En los primeros años de los sistemas basados en el conocimiento, las bases de conocimiento eran bastante pequeñas. Las bases de conocimiento que estaban destinadas a resolver problemas reales en lugar de hacer demostraciones de prueba de concepto necesitaban centrarse en problemas bien definidos. Entonces, por ejemplo, no solo el diagnóstico médico como un tema completo, sino el diagnóstico médico de ciertos tipos de enfermedades.

A medida que aumentaba la escala de la tecnología basada en el conocimiento, se hizo evidente la necesidad de bases de conocimiento más grandes y de bases de conocimiento modulares que pudieran comunicarse e integrarse entre sí. Esto dio lugar a la disciplina de la ingeniería de ontologías, diseñando y construyendo grandes bases de conocimiento que podrían ser utilizadas por múltiples proyectos. Uno de los principales proyectos de investigación en esta área fue el proyecto Cyc. Cyc fue un intento de construir una enorme base de conocimientos enciclopédicos que contendría no solo conocimientos de expertos, sino también conocimientos de sentido común. Al diseñar un agente de inteligencia artificial, pronto se dio cuenta de que representar el conocimiento del sentido común, el conocimiento que los humanos simplemente dan por sentado, era esencial para crear una IA que pudiera interactuar con los humanos utilizando el lenguaje natural. Cyc estaba destinado a abordar este problema. El lenguaje que definieron se conocía como CycL.

Después de CycL, se han desarrollado varios lenguajes de ontología. La mayoría son lenguajes declarativos y son lenguajes de marco o se basan en lógica de primer orden. La modularidad, la capacidad de definir límites alrededor de dominios específicos y espacios problemáticos, es esencial para estos lenguajes porque, como dijo Tom Gruber, "Toda ontología es un tratado, un acuerdo social entre personas con un motivo común para compartir".; Siempre hay muchos puntos de vista en competencia y diferentes que hacen imposible cualquier ontología de propósito general. Una ontología de propósito general tendría que ser aplicable en cualquier dominio y unificar diferentes áreas de conocimiento.

Hay una larga historia de trabajo que intenta construir ontologías para una variedad de dominios de tareas, por ejemplo, una ontología para líquidos, el modelo de elementos agrupados ampliamente utilizado para representar circuitos electrónicos (por ejemplo), así como ontologías para tiempo, creencia, e incluso la propia programación. Cada uno de estos ofrece una manera de ver alguna parte del mundo.

El modelo de elementos agrupados, por ejemplo, sugiere que pensemos en los circuitos en términos de componentes con conexiones entre ellos, con señales que fluyen instantáneamente a lo largo de las conexiones. Esta es una vista útil, pero no la única posible. Surge una ontología diferente si necesitamos prestar atención a la electrodinámica en el dispositivo: aquí las señales se propagan a una velocidad finita y un objeto (como una resistencia) que antes se veía como un componente único con un comportamiento de E/S ahora puede tener que pensarse de como un medio extendido a través del cual fluye una onda electromagnética.

Por supuesto, las ontologías se pueden escribir en una amplia variedad de lenguajes y notaciones (por ejemplo, lógica, LISP, etc.); la información esencial no es la forma de ese lenguaje sino el contenido, es decir, el conjunto de conceptos que se ofrecen como forma de pensar el mundo. En pocas palabras, la parte importante son las nociones como conexiones y componentes, no la elección entre escribirlos como predicados o construcciones LISP.

El compromiso adquirido al seleccionar una u otra ontología puede producir una visión marcadamente diferente de la tarea en cuestión. Considere la diferencia que surge al seleccionar la vista de elementos agrupados de un circuito en lugar de la vista electrodinámica del mismo dispositivo. Como segundo ejemplo, el diagnóstico médico visto en términos de reglas (p. ej., MYCIN) se ve sustancialmente diferente de la misma tarea vista en términos de marcos (p. ej., INTERNISTA). Donde MYCIN ve el mundo médico como compuesto de asociaciones empíricas que conectan el síntoma con la enfermedad, INTERNIST ve un conjunto de prototipos, en particular enfermedades prototípicas, que se compararán con el caso en cuestión.