Story Transcript
¿QUÉ ES LA INTELIGENCIA ARTIFICIAL? Las definiciones de Inteligencia Artificial, o IA, varían considerablemente, tienden a enfatizar el peculiar interés del experto o del investigador que ofrece la definición. IA consta de dos ramas de investigación: una rama que intenta verter luz sobre la naturaleza de la inteligencia humana mediante su simulación o la simulación de sus componentes, con la meta eventual de reproducirla (o superarla); La otra rama intenta construir sistemas expertos que exhiben una conducta inteligente, indiferentemente de su parecido a la inteligencia humana. La más moderna escuela se relaciona particularmente con la construcción de herramientas inteligentes para asistir a los seres humanos en complejas tareas tales como la exploración del petróleo, la diagnosis médica, el análisis químico , y la identificación de fallos en las maquinarias. Otras actividades que caen bajo estas dos ramas de trabajo incluyen los intentos de construir sistemas con percepción visual, que entiendan el idioma natural, que demuestren las capacidades de aprendizaje en la máquina, sistemas que puedan manipular objetos (por ejemplo, los robots), sistemas que puedan realizar un aprendizaje inteligente y sistemas que jueguen. La inteligencia artificial surgió como una disciplina académica en una conferencia de 1956 en la universidad de Darmouth, New Hampire. El término fue inventado por John McCarthy, la mayoría de los primeros trabajos en AI, concernían a la construcción de programas para jugar de una manera inteligente. Los programas construidos ahora pueden ganar el 99% de todos los jugadores humanos , tales como el tic tac toc , las damas y, el ajedrez. Una rama de la AI apunta a crear la inteligencia (humana o no) en una forma computacional, un primer paso necesario es definir lo parámetros de esa meta. Los críticos han argumentado que la IA es una forma de alquimia moderna que se basa en la última metáfora de la mente, o en su manifestación física, como el cerebro. La computadora ha ganado supremacía como la última tecnología de nuestra edad, no es inesperado que se mire al cerebro como un ingenio de procesamiento de la información −una computadora con circuitos que no son de silicón− Así, los críticos de la IA creen que es improbable entender al cerebro y aún la mente en términos computacionales, porque hay pocas evidencias de que la IA se base en otra cosa que en la más reciente metáfora tecnológica de la mente. Para ellos, cualquier realización ocurrida en la IA es una patética parodia comparada a la riqueza, el poder, y la fluidez de la inteligencia que cada ser humano promedio despliega en el curso de la vida diaria. Muchos investigadores de la IA son inexorables en que la inteligencia humana es una actividad de manipulación de símbolos que se pueden simular totalmente o por lo menos, en parte, por medios computacionales. Como seres inteligentes, tenemos símbolos interiores o procesos que tienen referentes externos y significados asociados, y para manipular esos símbolos de manera que los gobernemos, llegamos a exhibir una conducta significante en un ambiente dinámico. Otro acercamiento a la identificación de lo que la inteligencia es, y por esto, cómo podemos acercarnos a su creación, se propuso en los años 50, por uno de los padres fundadores de la computación, Alan Turing. La prueba de Turing, como se le ha llamado, ha aparecido en formas incorrectas y alteradas en numerosos lugares. Por eso hemos optado por usar la representación original propuesta por Turing. Para empezar, imagine un juego entre tres jugadores, A, B, y C. A y B se sientan juntos en una habitación, sin 1
que C los vea, y quien conversa con ellos a través de la mecanografía de mensajes (Las formas modernas de este guión podrían incluir VDT). A es un hombre y B es una mujer, pero el sexo de C es inmaterial. C tiene que identificar cuál de sus interlocutores es A y cuál es B. Además, el papel de A es confundir a C, y el papel de B es minimizar la confusión de C. La pregunta de Turing es: ¿Qué pasará cuando una máquina toma el lugar de A en este juego? La sugerencia hecha por Turing es que cualquier máquina es capaz de tomar el lugar de A sin que C se dé cuenta, debe tener una fuerte cercanía a la inteligencia. para simplificar un poco el guión, muchos han inferido generalmente que cualquier máquina que pueda convencerá un humanoide que tambien es un humano, debe ser capaz de pensamiento. Los programas son representaciones formales y son, por eso, ejecutables en cualquier forma de equipo computacional. Además, a causa de que los defensores de la IA argumentan que el cerebro es una forma de aparato computacional, el programa que se ejecuta dentro del cerebro, (el producto del cual es nuestra mente) debe poder ser ejecutado en otras formas de maquinaria computacional, tales como las computadoras digitales. Así para reproducir la mente, todo lo que requerimos es la naturaleza del programa que se ejecuta dentro del cerebro; podemos entonces correrlo en una computadora digital y replicar la mente. A causa de que para muchos comentaristas, el lenguaje es el signo principal de la inteligencia , necesitamos consagrar una atención más amplia en este punto, a las enormes dificultades que el lenguaje representa por los esfuerzos para entenderlo computacionalmente. De nuevo, como con nuestra habilidad para navegar alrededor de una habitación, para comprender un idioma necesitamos acumular una cantidad enorme de experiencia, oyéndolo, produciéndolo en una variedad de formas, y desarrollándolo formalmente a través de nuestros sistemas de educación. Cuando profiero la frase, `no puedo soportarlo más,' inmediatamente entendemos el contexto. Uno sabe por experiencia que no estoy hablando de un enorme, peludo y a veces peligroso mamífero, ni de la productividad de un árbol, ni de la capacidad de carga de una viga de acero. Tales significados múltiples podrían , por supuesto, estar cifrados en forma computacional (aunque esto sería tedioso y difícil), pero otras formas del idioma permanecen rebeldes a las computadoras. Por ejemplo si dije `no he hundido nunca a ningún estudiante de matemáticas de segundo año,' la implicación, es, por supuesto, que he enseñado tal curso y que lo he hecho así durante una considerable longitud de tiempo. También, si digo, `no me puedo presentar al examen. Mi doctor me ha dado un certificado médico' las implicaciones son que mi enfermedad me impide presentarme al examen, que el certificado médico es una forma de evidencia por este impedimento , y que posiblemente, se pueden hacer algunos arreglos de evaluación alternativos o que la ausencia de unos exámenes considerará en el contexto de mi enfermedad. HERRAMIENTAS DE LOS SISTEMAS MODERNOS Por lo general, al desarrollar sistemas expertos la programación se centra en los temas de inferencia y búsqueda heurística y depende esencialmente de la manipulación de símbolos: series de caracteres (como `nombres' que se emplean libremente para representar cualquier elemento del área) Los lenguajes de programación LISP y PROLOG son por excelencia los lenguajes comunes más empleados en la construcción de SE, aunque muchos lenguajes convencionales específicamente C se están volviendo habituales. LISP conceptualmente es un lenguaje funcional; cada instrucción en el lenguaje es una Descripción de una función. Conceptualmente, PROLOG es un lenguaje que se basa en la lógica; cada 2
instrucción del lenguaje es una expresión en una sintaxis de lógica formal. El procesamiento simbólico es importante en SE, debido a que las primitivas de conocimientos, se almacenan mediante el uso de representaciones simbólicas. Es útil que en los lenguajes de programación para SE puedan tratar libremente con `cosas' sin estar comprometido con la composición de dichas cosas. Los méritos relativos de LISP vs PROLOG vs otros lenguajes candidatos, son origen de continuos debates. Aunque el fundamento de estas argumentaciones es algunas veces de corte tradicional y geográfico más que técnico, es verdad que cada lenguaje es más apropiado para ciertas aplicaciones que otras. Adicionalmente, los lenguajes que son más populares (Como LISP en EEUU) tienen un gran apoyo en las herramientas establecidas para el desarrollo de software. En la medida que aumente la proporción del desarrollo de los SE, y según se construyan nuevas arquitecturas , es probable que se vuelvan populares nuevos lenguajes simbólicos. Se está orientando una considerable actividad investigativa hacia el desarrollo de lenguajes que combinan las características funcionales (LISP) y lógicas (PROLOG). A medida que tales lenguajes se vuelvan de uso corriente, es razonable esperar la evolución de herramientas de desarrollo más sofisticadas. El proceso de desarrollo de SE consiste de varias etapas básicas que son similares a las etapas típicas del ciclo de vida en ingeniería de software. Estas etapas son: identificación del problema, construcción de un prototipo, formalización, implantación, evaluación y evolución a largo plazo. Sin excepción, la primera tarea en el desarrollo, de cualquier SE es establecer que el problema propuesto sea apropiado y requiera ser solucionado, mediante un SE. Si el problema en consideración se puede describir en términos de definiciones y algoritmos explícitos, probablemente sea preferible desarrollar la solución de programación tradicional. si el problema no está bien identificado o demanda amplio criterio humano (como juzgar en un concurso artístico), es probable que sea demasiado complejo para un SE. Después de la selección de un problema apropiado, se construye un prototipo pequeño para ayudar en la compresión del problema completo y estimar la tarea de la construcción de la solución total el siguiente paso en el proceso de desarrollo es formalizar el enunciado del problema y diseñar completamente el SE. Después de la formalización se realiza la implantación. Esta consiste principalmente de un ciclo continuo de adquisición de conocimientos, actualización de la base de conocimientos y pruebas. Se entiende como fase de evaluación, que sigue a la implantación, la estimación de la proximidad del sistema de desarrollo experto. Después de la evaluación y entrega, el SE entra a un periodo de evolución a largo plazo. (según la experiencia que se vaya logrando con su empleo) y se revisa como respuesta a los cambios en los conocimientos del área. LENGUAJES DE CUARTA GENERACION La herramienta más elemental para el desarrollo de SE es un lenguaje de propósito general. Lisp ha sido y continua siendo el lenguaje más ampliamente empleado para el desarrollo de SE. Proporciona muchas características que Facilitan la tarea para la construcción de cualquier sistema de procesamiento simbólico. Más aun, Lisp se está volviendo más popular que la programación convencional, en particular, con el advenimiento del Commom Lisp El lenguaje de programación Prolog está ganando popularidad. Aunque su empleo como un lenguaje para el desarrollo de SE ha sido un poco menos que el Lisp. Prolog también es un lenguaje simbólico de propósito general, y por atener un método incorporado de búsqueda es un poco más especifico que Lisp. 3
hay también una tendencia creciente hacia el empleo de lenguajes más convencionales para el desarrollo de SE. Varios SE importantes se han desarrollado mediante Fortan [Weiss, 1984] y se han construido un gran número en lenguaje C. Existen varias desventajas para utilizar tales lenguajes, la más notoria su carencia de soporte para el procesamiento simbólico y para la administración de memoria automáticamente. Típicamente, se requiere más tiempo para construir un SE, empleando un lenguaje convencional que usando un lenguaje simbólico. Sin embargo, existen varias desventajas. Por ejemplo C por lo general correrá más rápido que Lisp en un equipo de propósito general −En algunos casos, mucho más rápido. C también está más extensamente disponible y tiene un soporte general amplio. Otra consideración muy práctica es que existe mayor disponibilidad de programadores proficientes en C que en Lisp. La última ventaja principal es que el hecho que el uso de C, posibilita al sistema final para integrarse en forma más fácil, con el software externo existente. FUTURO DE LOS SISTEMAS EXPERTOS Aunque, según se describió anteriormente, Permaid tiene éxito cuando se ve desde el punto de vista del análisis costo/beneficio, falla significativamente por la insuficiencia del material teórico de duplicar el desempeño del experto. En Permaid estas insuficiencias se presentan en varias áreas: • Análisis de nuevos problemas. El desempeño experto es denotado por la habilidad para responder a problemas nuevos y no previstos. Por ejemplo, en el caso de un problema funesto que ocurría una vez cada determinado número de meses se resiste a la solución de cualquier forma. Después de un análisis extenso e innovativo una persona experta determinó que la operación del dispositivo se vio afectada por el radar principal de una aeronave de carga cuando pasaba por un cierto punto del puerto. Permaid nunca hubiera podido resolver tal problema. • Problemas que se deben resolver a través del reconocimiento de la historia anterior de la instalación. Permaid no equipará la habilidad experta para resolver problemas mediante la aplicación de conocimientos que se basen en la remembranza de eventos pasados en la instalación objetivo. • Habilidad para responder a llamadas de ayuda en problemas parcialmente resueltos. Aunque, como se describió anteriormente, Permaid ofrece capacidades valiosas de iniciativas combinadas, no se aproxima a la habilidad de resolución del problema hasta la fecha y entonces, decidir que pasos se deben seguir a continuación. • Detectar la desinformación. Permaid no equipara la habilidad de experto para detectar la desinformación (un descuido por parte del ISM) • la relaciones con el cliente. La habilidad del experto para tratar con problemas de relaciones humanas (una parte no trivial de la tarea) no es afrontada por Permaid. Los actuales SE, aunque sean muy poderosos, y económicamente valiosos, no reproducen el desempeño experto. la comunidad de los SE parece estar moviéndose en tres direcciones respuesta a esta situación: 1.− El uso de técnicas de SE para desarrollar sistemas basados en PC que ataquen el segmento del nivel final inferior de problemas expertos (económicamente, un segmento muy valioso). 2.− La integración de SE con los sistemas de software existentes (para emplear las bases de datos existentes). 3.− El desarrollo de sistemas generalmente más inteligentes que suministren más fielmente el verdadero desempeño experto. 4
El desarrollo generalmente más inteligentes se requieren para enfrentar las necesidades de problemas expertos del segundo final más alto; para expandir el conjunto de problemas que puedan ser afrontados mediante el empleo de la tecnología de IA y para tratar con dominios en que el experto debe ser completamente remplazado para alcanzar el objetivo deseado. (Un ejemplo es un dominio en el cual el objetivo primario es remover el experto de un ambiente peligroso). La clave de dicho desarrollo es la investigación continua en técnicas de IA. El proyecto CYC (Lenat, 1986) de la Corporación de Microeléctronica y Tecnología Informática de Austin, Texas, constituye un ejemplo de tal investigación. CYC intenta captar el conocimiento general del sentido común mediante el desarrollo de una base general de conocimientos muy grande, que incluye todo el conocimiento (representado por marcos y redes) contenido en una enciclopedia de escritorio. La representación de este conocimiento tiene el propósito de reducir la fragilidad de los actuales SE (su tendencia a fallar precipitadamente en las condiciones límites) y a reducir grandemente la dificultad del proceso de adquisición de conocimientos. Los resultados de una investigación como esta puede posibilitar el desarrollo de sistemas que firmemente repliquen comportamientos que actualmente son considerados y permitan a las personas desplazarse hacia actividades aún más creativas y útiles. SISTEMAS EXPERTOS En esencia, los sistemas expertos son programas que encapsulan el conocimiento de un experto o de varios expertos en un dominio particular del conocimiento, en una forma computacionalmente procesable. Desde este conocimiento de base se pueden dibujar entonces inferencias que igualan o felizmente exceden las inferencias similares realizadas por los expertos humanos. Otras definiciones de un sistema experto que han sido ofrecidas en diferentes momentos, incluyen las siguientes: Un sistema experto es un sistema computacional que usa una representación de la experiencia humana en un dominio especializado, para realizar las funciones similares a aquellas normalmente realizadas por un experto humano en ese dominio. Un sistema experto es un sistema computacional que opera aplicado un mecanismo de inferencia a un cuerpo de experiencia especializada representado en la forma de conocimiento. Se han aplicado tales sistemas a muchas áreas de problema por ejemplo, el análisis de los componentes químicos (Dendral) el diagnostico y tratamiento de las enfermedades infecciosas (MYCIN), la configuración de sistemas computacionales para embarque (XCON), y la identificación de áreas probables para la exploración mineral y minería (Prospector). En cierto sentido, los sistemas expertos han estado alrededor nuestro, de una forma u otra, desde hace muchos años, como programas sofisticados; la diferencia es que el conocimiento de base encapsulado de un sistema experto no es sólo el del programador, sino la estructurada comprensión de reconocidos expertos en un particular dominio de problema. Verdaderamente, para la mayoría, los sistemas expertos son colecciones de reglas que han sido extraídas de un experto por un ingeniero del conocimiento y, que muy a menudo, aunque no exclusivamente, toman la forma de declaraciones tipo SI−ENTONCES. Por ejemplo suponga que quisiéramos construir un sistema experto para el diagnóstico de fallos en artefactos de motor a reacción (y tales sistemas existen), entonces algunas de las reglas que podríamos identificar podrían incluir las siguientes:
5
Semejantemente, en el caso de un sistema diagnóstico médico tal como Mycin. Por supuesto, las reglas del SI−ENTONCES, no son la única forma en la cual el conocimiento puede ser guardado en la base de conocimiento de un sistema experto. Otras formas incluyen redes semánticas, marcos, y la lógica del predicado, la naturaleza esencial de los sistemas expertos en aplicar métodos deductivos (y a menudo inductivos) a un cuerpo de conocimientos permanecen inalterables. Debemos notar también que el beneficio real de los sistemas expertos ocurre en aplicaciones de mucho mayor complejidad que ésta y que varios de tales sistemas pueden suministrar la intervención apropiada, la terapia, o los procedimientos de reparación para el caso particular en que nos encontramos. Para alcanzar este éxito, los sistemas expertos no solo usan una base de conocimiento y un artefacto de inferencia para operar sobre ese conocimiento, sino que también, usualmente, proporcionan una interfase explicativa que justifica sus conclusiones mediante la explicación de la línea del sistema de razonamiento con probabilidades pertinentes para cada una de las conclusiones que traza. Además, la mayoría del trabajo duro involucrado en la construcción de un sistema experto, no es tanto en el nivel de programación (aunque puede ser muy difícil) sino en la extracción de las reglas de los expertos humanos por el ingeniero del conocimiento. Muy a menudo, los expertos no conocen, conscientemente, las reglas que usan, y el ingeniero del conocimiento tiene que star experimentando en identificar un componente de la regla cuando aparece en la explicación de un experto. Además, las reglas de los expertos y los conocimientos a menudo entran en conflicto, no sólo a través de los expertos, sino incluso en el mismo experto. Por eso, resolver tales ruidos, es parte también de la tarea del ingeniero del conocimiento. Dado el crecimiento en el desarrollo y en el uso de sistemas expertos, particularmente ahora que las conchas (entornos del programa computacional) para edificar tales sistemas son bastante comunes, quizás sea apropiado hacer algunas preguntas acerca de los sistemas expertos y su relación con la IA. Por ejemplo, ¿ son los sistemas expertos inteligentes ? ¿ son parte de la inteligencia artificial en cualquier sentido insignificante ? ¿ QUÉ ES LA INTELIGENCIA ? Las lecciones aprendidas de estos esfuerzos han hecho surgir, también interesantes preguntas a cerca de la naturaleza de inteligencia humana y, verdaderamente, dónde yace exactamente la línea que divide la conducta inteligente y la que no lo es ( o Aún si tal línea existe). Varios críticos de la IA, por ejemplo, han planteado que la grosera aproximación computacional al juego de ajedrez perfilada previamente, apenas se podía llamar inteligencia. En cambio, los ponentes de IA argumentan que el criterio de inteligencia es constantemente (e injustamente) redibujado por los críticos, en cuanto ese criterio ha sido alcanzado. Por ejemplo, en una fase, la habilidad aritmética fue vista como una muestra de inteligencia, ahora que las computadoras pueden calcular millones de sumas más rápidamente que cualquier humano que haya vivido nunca, ya no es vista más como un requerimiento de la inteligencia. Semejantemente, el jugar al ajedrez fue visto una vez como una exigente actividad intelectual, ahora que las computadoras pueden derrotar fácilmente a una vasta mayoría de jugadores de ajedrez (aunque no a todos), esto, también, parece estar perdiendo su estado como prueba de inteligencia.
6
CUESTIONES ETICAS ¿ES LA INTELIGENCIA ARTIFICIAL UNA META ADECUADA? La promoción de la inteligencia artificial y la llegada de los sistemas expertos , proporciona una rica fuente de dilema éticos para los profesionales de la computación y para los usuarios. Por ejemplo, dado la magnitud en que ha sido apoyada la IA para propósitos militares, ¿Debemos cuestionarnos toda base ética de tal disciplina? O, a causa de que la mayoría de la investigación de todo género ha sido apoyada por el ejército, ¿Es la IA absolutamente culpable de ser más exitosa en ese sentido? También necesitamos ser más cuidadosos acerca de la creencia que surge de los planteamientos realizados por la llamada `Inteligencia Artificial', cuando van buscando que el gobierno apoye sus proyectos. Así muchas de sus promociones durante años han resultado ser tan exageradas, y al final solo humo , que la mayoría de los observadores de la IA, han aprendido a tomar las predicciones de la IA acerca de los desarrollos futuros en el área con gran escepticismo. Peor aún las propuestas más prácticas y aparentemente con los pies más en la tierra han perturbado los aspectos éticos. Por ejemplo, ¿No es peligroso apoyar, como Donald Michie hace, el uso de sistemas expertos para dar vederictos judiciales, administrar nuestras ciudades, quizá incluso, reemplazar nuestros gobiernos? Michie ha sido conocido por declarar que tales sistemas tendrían que ser enseñados a mentir, porque así es como los administradores reales (y ¿presumiblemente buenos?) trabajan. No se puede decir la verdad a todo el mundo, solo porque lo pidan, o así plantea este argumento. Verdaderamente, ¿Michie y Roy Johnston creen seriamente que los sistemas expertos resolverán algún día los problemas de desempleo, contaminación, crimen, guerra, sobrepoblación y terrorismo? ¿Qué debemos poner en tales planteamientos?¿Es solo otra tontería de los tecnócratas que no ven nunca la luz del día? Comentaristas tales como William Ascher han señalado claramente las limitaciones de los sistemas expertos en las aplicaciones políticas y administrativas, a causa de su comparativamente estrecha base de conocimientos y la dificultad envuelta en encapsular conceptos de alto nivel.
7