Inteligencia Artificial En la Inteligencia Artificial (IA) se pueden observar, a grandes rasgos, dos enfoques diferentes: - La concepción de IA como el intento de desarrollar una tecnología capaz de suministrar al ordenador capacidades de razonamiento o discernimiento similares, o aparentemente similares a las de la inteligencia humana. - La concepción de IA como investigación relativa a los mecanismos de inteligencia humana, que emplea el ordenador como herramienta de simulación para la validación de teorías. El primer enfoque es por lo general el más práctico, se centra en los resultados obtenidos, en la utilidad, y no tanto en el método. En este enfoque se encuadran, por ejemplo, los Sistemas Expertos. Son temas claves en esta dirección la representación y la gestión del conocimiento. Los autores más representativos de este enfoque son McCarthy y Minsky, del MIT. El segundo enfoque está orientado a la creación de un sistema artificial que sea capaz de realizar los procesos cognitivos humanos. Desde este punto de vista no es tan importante la utilidad del sistema creado (qué hace), como lo es método empleado (cómo lo hace). Como aspectos fundamentales de este enfoque se pueden señalar el aprendizaje y la adaptabilidad. Ambo presentan gran dificultad para ser incluidos en un sistema cognitivo artificial. Esta orientación es propia de Newell y Simon, de la Carnegie Mellon University. Es obligado indicar que frecuentemente ambas posturas no se pueden distinguir, ni siquiera en muchos trabajos de los autores mencionados como significativos en cada una de ellas. Inteligencia Artificial Farid Fleifel Tapia [email protected] Indice: • Buscando una definición para la IA • Entidades inteligentes • Ausencia de Algoritmos Buscando una definición para la IA Definir la Inteligencia Artificial es una tarea realmente complicada. Desde que se acuñara este término en la Conferencia de Darthmouth de 1956, se han propuesto muchas definiciones distintas que en ningún caso han logrado la aceptación sin reservas de toda la comunidad investigadora.. Ello puede deberse a la insuficiente formalización de la materia, que impide un asentamiento firme de las bases de esta ciencia. Tanto es así que en ocasiones los expertos ni siquiera coinciden en la adecuación de ciertos problemas al tratamiento mediante técnicas de inteligencia Artificial, es decir, algunas veces ni siquiera se tiene la seguridad de que un problema dado deba ser estudiado dentro de esta disciplina. Por suerte esto está cambiando, y cada vez más, las técnicas de IA, además de adquirir una base formal acorde con las necesidades de la materia, están dejando de ser "curiosidades académicas con mucho futuro pero poca aplicación en el presente", para pasar a ser uno de los motores que impulsan la industria de la computación, con inversiones crecientes año tras año. Las posibilidades desde luego son asombrosas, pero no hay que dejar volar la imaginación más de lo necesario. Las "máquinas pensantes" puede que lleguen a existir alguna vez, pero no están a la vuelta de la esquina ni mucho menos. La IA es una ciencia nueva que debe andar mucho camino todavía. De lo que podemos estar seguros es de que los primeros pasos están siendo prometedores. Podríamos decir sin temor a errar que la IA es la rama de la ciencia de la computación que centra sus esfuerzos en la consecución de sistemas inteligentes, pero esta definición es tan vaga que, no aclara realmente ni cuáles son los objetivos de esta ciencia ni cuáles los métodos que se deben aplicar para alcanzar esos objetivos. En estos dos puntos es en los que hallamos la controversia. Entidades inteligentes En primer lugar, ¿Qué es lo que se quiere decir cuando se afirma que el objetivo de la IA es la consecución de sistemas o "entidades" inteligentes?. ¿Para que una entidad sea considerada inteligente basta con que se comporte inteligentemente, o además debe razonar de forma inteligente? Puede que la diferencia entre las dos posibilidades parezca sutil a primera vista, pero tiene más importancia de la que parece. Por ejemplo, un programa de ajedrez actúa inteligentemente, pero en esencia no puede decirse que razone, ya que lo único que hace es explorar un gran número de posibles jugadas -millones en cada turno-, aplicando una función de evaluación que dice lo buena o mala que es cada una de esas jugadas, teniendo en cuenta para ello el número de piezas de cada jugador en el tablero y el valor ponderado de las mismas. A partir de esta información, en cada turno se elige la mejor de las jugadas obtenidas. En contraposición, los Grandes Maestros de ajedrez sólo analizan unas pocas decenas de jugadas posibles en cada movimiento, y sin embargo hasta el momento las máquinas de ajedrez, con su gran potencia de cálculo lo han tenido complicado para vencerles. La diferencia estriba en la forma de analizar las jugadas por parte del Maestro humano y de la máquina. La máquina es pura fuerza bruta. Analiza todas o la mayor parte de las posibilidades, sin tener en cuenta en primera instancia la viabilidad de las mismas en el contexto del juego. El Gran Maestro humano no es tan bueno en la exploración intensiva de jugadas, pero realiza mucho mejor la tarea de eliminar de su consideración las líneas de juego poco prometedoras, una tarea mucho más complicada y que exige de una comprensión y visión del juego que las máquinas no han conseguido emular todavía. Llegados a este punto podemos admitir que un programa de ajedrez de última generación actúa de forma inteligente, ya que su juego es de un nivel más alto que el de la mayoría de las personas, pero ¿Es realmente inteligente? Como veremos más adelante los filósofos de la IA tienen varias respuestas para estas incógnitas. Nosotros de momento nos pondremos una meta relativamente humilde y diremos que una técnica de IA es aquella que se utiliza para lograr que un programa se comporte de forma inteligente, sin tener en cuenta la "forma de razonamiento" subyacente a los métodos que se apliquen para lograr ese comportamiento. Aquí vuelve a surgir un dilema. Según esta definición, a primera vista parecería que casi cualquier problema resoluble por computador podría encuadrarse en el campo de la inteligencia artificial. Por ejemplo, supongamos que nos aplicamos en resolver el problema de la división de dos números racionales. Una simple calculadora de bolsillo resuelve este problema sin mayores complicaciones, y lo hace tan bien como un ser humano, dando una respuesta inteligente, o más bien congruente, a nuestras peticiones. Sin embargo, nadie diría que las calculadoras aplican técnicas de IA para realizar las divisiones, como parece sugerir en principio nuestra definición, de modo que tendremos que cambiarla o al menos retocarla. La solución definitiva llegará tras la definición de un par de términos fundamentales, tarea que abordamos a continuación. El problema de la división puede resolverse aplicando una especie de receta con unos pasos bien definidos, que siempre funciona y que todo el mundo aprende en los primeros años de colegio. En la ciencia de la computación a estas recetas que sirven para resolver problemas se les llama algoritmos, término acuñado en honor del matemático árabe Al-Kwarizmi, que entre otras cosas compiló una lista de estas recetas, aplicables a diferentes problemas algebraicos. Pues bien, cuando alguien aplica uno de estos algoritmos, en esencia no está actuando inteligentemente. Cualquiera puede encontrar la respuesta correcta, ya que basta con seguir las reglas al pie de la letra. Para entender esto basta con remontarnos a los primeros años de escuela, cuando aprendimos a dividir. A la mayoría nos ocurrió en un principio que aprendimos la receta y descubrimos sorprendidos que aún sin saber exactamente lo que estábamos haciendo, si aplicábamos las reglas al pie de la letra obteníamos la solución correcta. No hay que ser especialmente inteligente para saber dividir. Sólo hay que tener la capacidad de memorizar unas cuantas reglas y aplicarlas siempre de la misma forma, cosa que un ordenador es capaz de hacer mucho mejor que las personas. Los problemas como el de la división, que tienen una solución algorítmica conocida y eficaz, no son el objetivo de la IA. No importa lo complicado que sea el problema ni cuántas reglas haya que memorizar y aplicar. Si el problema puede resolverse de forma exacta por medio de un algoritmo, consideraremos que no hay inteligencia implicada en la resolución del mismo. Ausencia de Algoritmos Los problemas realmente complicados a los que se enfrenta el ser humano son aquellos para los cuales no existe algoritmo conocido, bien porque no se haya descubierto aún, o porque definitivamente no exista -hay problemas para los que se sabe que no existe un algoritmo que los resuelva. Hablaremos de ellos más adelante-. Pongamos como ejemplo el problema del cálculo de la primitiva o "integral" de una función, Este es un problema para el que no existe algoritmo. Existen unas reglas que pueden seguirse para obtener la primitiva de ciertas funciones con unas determinadas características, pero no existe un algoritmo genérico que nos diga qué pasos hay que seguir para, partiendo de una función cualquiera, hallar su primitiva. Los matemáticos se basan en ciertas reglas que generalmente funcionan, o que en muchos casos sirven para reducir la complejidad del problema, convirtiendo funciones complicadas en otras más sencillas que sí son capaces de integrar. Sin embargo la aplicación de estas reglas no garantiza la obtención de una solución en todos los casos. Las reglas de este tipo, que tratan de orientarnos hacia la solución en problemas no algorítmicos son llamadas heurísticas. Estas reglas son tan concretas como las dadas en los algoritmos. La diferencia reside en el hecho de que nada nos garantiza que la aplicación de una heurística nos lleve un paso más cerca de la solución de un problema. Además, se da la situación de que en muchas ocasiones existe una gran cantidad de heurísticas que son aplicables a un mismo estado del problema, con lo cual la elección de la más adecuada para cada caso puede ser un factor determinante en la obtención de la solución. Estos son los problemas realmente complejos y que necesitan de verdadera inteligencia y originalidad para su resolución. No hay algoritmos conocidos que nos permitan descubrir teoremas matemáticos, diagnosticar enfermedades, componer música con armonía y gracia o comprender una frase escrita en un lenguaje natural como el español o el inglés, aunque sí haya ciertas heurísticas que la gente aplica para realizar estas tareas, incluso a veces sin darse cuenta. Estas son cosas que las personas hacen sin saber realmente cómo las hacen ni qué pasos siguen en todos los casos, por mucha introspección a la que se sometan. Y estas son las tareas de las que se ocupa la IA. De modo que a la vista de todos estos nuevos datos, redefiniremos nuestro concepto de IA de la siguiente forma: Diremos que la IA es la rama de la ciencia de la computación que estudia la resolución de problemas no algorítmicos mediante el uso de cualquier técnica de computación disponible, sin tener en cuenta la forma de razonamiento subyacente a los métodos que se apliquen para lograr esa resolución. Se observará que, a diferencia de la definición anterior, en esta no se menciona explícitamente el comportamiento inteligente de las técnicas de IA. Esto es así porque se asume que cualquier proceso computacional capaz de resolver instancias de un problema no algorítmico por fuerza debe dar la apariencia de un comportamiento inteligente. Esta definición puede parecer un tanto críptica para un no iniciado, y además no tiene garantías de ser aceptada por toda la comunidad de investigadores de IA. Por lo tanto, y para complementarla, vamos a presentar, sin comentarlas, algunas definiciones algo menos formales, dadas por diferentes investigadores en IA, que son compatibles en gran medida con la dada por nosotros, pero considerando otros puntos de vista. La IA es: El arte de crear máquinas con capacidad de realizar funciones que realizadas por personas requieren de inteligencia. (Kurzweil, 1990). El estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor. (Rich, Knight, 1991). La rama de la ciencia de la computación que se ocupa de la automatización de la conducta inteligente (Luger y Stubblefield, 1993). Un campo de estudio que se enfoca a la explicación y emulación de la conducta inteligente en función de procesos computacionales (Schalkoff, 1990). Una vez definida la IA como rama de la ciencia de la computación, deberíamos tener en cuenta los métodos que se seguirán para lograr los objetivos que nos hemos propuesto. El sustrato de la IA lo forman las máquinas de cómputo y proceso de datos digitales, ya que estas máquinas son los dispositivos de procesamiento de información más complejos y potentes que ha desarrollado el ser humano, y la actividad intelectual es en esencia un proceso de manipulación y análisis de información. Lo cual no quiere decir que la utilización de otros paradigmas de procesamiento esté descartada. Es más, teniendo en cuenta el tremendo rendimiento que nuestro cerebro, lento, analógico y asíncrono, obtiene en estas tareas de procesamiento de información, quizás deberíamos considerar otras posibilidades. Las redes neuronales, paradigma de computación muy en boga últimamente, exploran este camino, tratando de remedar el funcionamiento del cerebro humano hasta cierto nivel, y consiguiendo espectaculares resultados que auguran un futuro lleno de posibilidades. EL ALCANCE DE LA INTELIGENCIA ARTIFICIAL No es posible dar una definición de universalmente aceptable de la IA, pero lo que se puede hacer es es dar una lista de los procesos que generalmente pueden ser llamados IA si son programados en un computadora. La lista no es exhaustiva, pero cubre las áreas principales. SOLUCION DE PROBLEMA EN GENERAL. Esto es no simplemente programar una maquina para resolver problemas específicos tales como hallar las soluciones de una ecuación de segundo grado, sino crear un sistema capaz de hallar métodos para solucionar problemas. PERCEPCION. Las maquinas serán capaces de reaccionar a su entorno e influenciarlo mediante sensores y dispositivos de interacción como con el exterior. La visión ya se ha llevado a cabo en una escala limitada mediante aparatos de televisión y dispositivos para la percepción de imágenes sintetizadores que permiten al ordenador comunicarse mediante el lenguaje hablado en la salida y no escrito como se ha hecho hasta ahora, con el uso de pantallas o impresoras. Algunos de los progresos conseguidos con el desarrollo de circuitos integrados permitirán al computados aceptar ordenes y datos especializados, también mediante la utilización del lenguaje hablado. COMPRENSION DEL LENGUAJE NATURAL. La necesidad de comunicarse con los computadoras mediante un lenguaje ensamblador o en uno de los lenguajes especializados de alto nivel ha impedido a los no especialistas hacer un uso que no sea superficial de los ordenadores. APRENDIZAJE, DEMOSTRACION DE TEOREMAS, JUEGOS. Todos estos campos requieren cierta capacidad de mejorar la experiencia. La busqueda de algoritmo que permitan incorporar esta capacidad a un sistema a un sistema es una de las características básicas de la investigación en IA. SISTEMAS EXPERTOS. Para algunas persona los terminos IA y sistemas expertos son sinonimos. Muchos de los sistemas expertos existentes actualmente consisten en grandes bases de conocimientos, creadas para almacenar la información de que se dispone expertos humanos en varios campos y a las que se aplica una serie de reglas de manipulación expresadas en en lenguajes especificos . La diagnosis medica, la ingenieria quimica, la exploración geologica y el diseño de computadoras han proporcionado material para el diseño de sisteams expertos de gran éxito. Con el nacimiento de la Revolución Industrial, muchas fábricas tuvieron gran aceptación por la automatización de procesos repetitivos en la línea de ensamblaje. La automatización consiste, principalmente, en diseñar sistemas capaces de ejecutar tareas repetitivas hechas por los hombres, y capaces de controlar operaciones sin la ayuda de un operador humano. El término automatización también se utiliza para describir a los sistemas programables que pueden operar independientemente del control humano. La mayoría de las industrias has sido automatizadas o utilizan tecnología para automatizar algunas labores; en la industria de la telefonía, marcación, transmisión y facturación esta completamente automatizados. Pero no todas las industrias requieren el mismo grado de automatización. La agricultura es una industria difícil de automatizar, y con esto se ha vuelto más mecanizada, esencialmente en el procesamiento y empaque de comida. De manera similar, los doctores pueden dar consulta asistiéndose en una computadora, pero finalmente el doctor, y no la computadora, termina por dar el diagnóstico final al paciente. Los robots comenzaron a aparecer en este proceso de automatización industrial hasta la aparición de las computadoras en los 40’s. Estos robots computarizados, están equipados con pequeños microprocesadores capaces de procesar la información que le proveen los sensores externos y así es como el robot puede tomar cambiar o mantener una operación en ejecución, a esto se le llama retroalimentación, y forma parte de la Cibernética. La retroalimentación es esencial en cualquier mecanismo de control automático, ya que ayuda a controlar los factores externos que le afecten en la correcta ejecución de sus operaciones normales. LENGUAJE DE LA IA. Los lenguajes de programación tradicionales no se han adaptado bien a las aplicaciones en IA. Se han usado ampliamente lenguajes como Prolog, basados en la lógica y Lips que tiene una superior capacidad en el procesamiento de listas, pero hay muchos mas lenguajes diseñados especialmente para algunas aplicaciones concretas. HARDWARE PARA LA IA. El diseño tradicional de hardwere no ha conseguido alcanzar, en gran medida el fin propuesto por la IA. Las tecnicas de IA requieren acceso rápido a bancos de memoria, enormes según los estandares tradicionales y, por tanto, las velocidades de proceso son demasiado lentas para las aplicaciones mas exigentes. La antigua idea de solucionar un problema paso a paso mediante la ejecución de una secuencia de instrucciones esta cediendo al paso a la idea del procesamiento en paralelo, en le cual un conjunto de procesadores trabajan simultaneamente en la diferentes partes del problema. Según otros rumbos tomados se propone la inclusión de compiladores en hardwere mas que en software, y la obtención de un microcodigo para procesadores en un lenguaje lógico como el Prolog . ROBOTICA. La ciencia de la robotica implica diferentes tecnicas de IA. La idea de un robot "listo" con la capacidad de aprender por experiencia es el tema central de teorías e investigaciones en IA. El robot debe ser capaz de comunicarse en lenguaje natural y debe poder realizar tareas que requieran qe el equivalente a la iniciativa y la originalidad, esto implica que el robot debe llegar a realizar , tra un periodo de aprendizaje cosas para las cuales no estaba inicialmente programado, a diferencia de los robots que se utilizan actualmente en la aplicación industrial, los cuales no son más que meros automatas. La idea global en la inteligencia artificial estuvo desacreditada durante varios años debido parcialmente , al excesivo optimismo por parte de la primera teoria pero , mayormente causado por la exageración y el sensacionalismo de algunos de sus divulgadores. Los primeros robots creados en toda la historia de la humanidad, no tenían más que un solo fin: entretener a sus dueños. Estos inventores se interesaban solamente en conceder los deseos de entretener a quien les pedía construir el robot. Sin embargo, estos inventores se comenzaron a dar cuenta de que los robots podía imitar movimientos humanos o de alguna criatura viva. Estos movimientos pudieron ser mecanizados, y de esta manera, se podía automatizar y mecanizar algunas de las labores más sencillas de aquellos tiempos. El origen del desarrollo de la robótica, se basa en el empeño por automatizar la mayoría de las operaciones en una fábrica; esto se remonta al siglo XVII en la industria textil, donde se diseñaron telares que se controlaban con tarjetas perforadas. CIBERNETICA. La cibernética es una ciencia interdisciplinaria, tratando con sistemas de comunicación y control sobre organismos vivos, máquinas u organizaciones. El término es una derivación del vocablo griego kybernetes que significa gobernador o piloto, y fué aplicado por primera vez en 1948 a la teoría del control de mecanismos por el matemático americano Norbet Wiener. En el cuerpo humano, el cerebro y el sistema nervioso funcionan para coordinar la información, la cual es utilizada para determinar el futuro curso de una acción; controlar los mecanismos para la autocorrección en máquinas que sirven con un propósito similar. Este principio es conocido como retroalimentación, el cual es fundamental en el concepto de automatización. La cibernética también se aplica al estudio de la psicología, servomecanismo, economía, neuropsicología, ingeniería en sistemas y al estudio de sistemas sociales, el término cibernética no es muy utilizado para describir por separado a un campo de estudio, y muchas de las investigaciones en el campo ahora se centran en el estudio y diseño de redes neuronales artificiales. LA INGENIERIA DEL CONOCIMIENTO La ingeniería del conocimiento es una de las especialidades que necesitan los modernos métodos de la IA. Como se dijo anteriormente, algunos aspectos importantes del conocimiento son intangibles e inexplicables; el trabajo de los ingenieros del conocimiento consiste en parte en extraer este tipo de conocimiento de los expertos humanos y en parte en codificar el conocimiento así obteniendo, de manera que pueda ser procesada por un sistema. El problema es que el ingeniero del conocimiento no es un experto en el campo que intenta programar, mientras que el experto en el tema no tiene experiencia programando, y en cualquier otro caso este ultimo usa muchas partes importantes de su conocimiento de manera subconsciente, por lo que es incapaz de proporcionar la información de manera voluntaria aunque así lo desee. El proyecto Japones de quinta generación La investigación y el desarrollo japoneses de nueva tecnología están dirigidos por la unión de la industria y el gobierno en el instituto para la nueva generación de Tecnología de computadoras (ICOT). La investigación se desarrolla principalmente en tres campos: hardwere, sofwere y aplicaciones. Los investigadores en el campo del hardwere están concentrados en una arquitectura de computadoras que se caracteriza por la inferencia secuencial, inferencia en paralelo y el desarrollo de maquinas para bases datos afines. El grupo de software esta investigando sobre un lenguaje que sea el núcleo del proyecto, esté incluye sistema operativo, lenguaje natural y representación del conocimiento. El tercer grupo combina los resultados de los dos primeros grupos en la labor sobre sistemas de gestión de bases de datos afines y sistemas expertos y para conseguir validar la teoría propuestas por el resto del grupo. En contraste en las aproximaciones que se han realizado en otra partes del mundo , los Japoneses están tratando de formular una nueva teoría unificada para todo el campo de representación y procesamiento de la información. Ya hemos visto que existen numerosas aproximaciones diferentes que pueden asimilarse a las diferentes ramas de la IA. Pero solo si se aceptan estas aproximaciones incluyéndolas en una estrategia global, el numero de opciones se reducirá y los japoneses creen que de este modo aumentaran las oportunidades para lograr una estrategia global coherente. El mayor logro desarrollado en los primeros cuatro años del proyecto ha sido una maquina basada en el conocimiento y que ha sido llamada Delta que comprende un sistema de inferencia , un sistema de conocimiento, un sistema de software y un sistema para el desarrollo de prototipos de software. Las maquinas para bases de datos afines tienen acceso a algo así como unos 20 gigabytes de almacenamiento y en las etapas iniciales se encontraron algunos problemas debido al uso de las maquinas convencionales que se basan en un procesamiento secuencial y que se incluyeron como compromiso con la reconocida necesidad de efectuar un procesamiento en paralelo a gran escala. Se estima que las maquinas de inferencia que se necesitan al final del proyecto deberán ser capaces de ejecutar 10 LIPS y esta potencia de procesamiento sólo será proporcionada por el equivalente de 1000 procesadores trabajando en paralelo. El programa ELIZA Casi cada publicación famosa en la IA menciona el programa ELIZA que fue escrito a finales de los sesenta por el profesor Joseph Weizenbaum de Massachusetts Institute of Technology (MIT). El progrma fue diseñado como una ayuda al análisis del lenguaje y el profesor J. W. Lo llamo así en honor a la muchacha que aparece en la obra de G. B. Shaw, que comenzó como una vendedora callejera de flores y su vida se transformo cuando el profesor de dicción le enseño a hablar un correcto ingles, quien asumió esta tarea como parte de una apuesta. Un elemento muy importante del mensaje de Shaw era que aunque Eliza continuaba siendo la misma persona, con las misma virtudes y defectos antes y después de su transformación, la gente la veía de un manera deferente, como una señorita bien vestida y con un acento culto, en contraste con la desastrada vendedora de flores que hablaba de una forma vulgar. Podemos obtener la moraleja de esta historia y observar que aunque un programa sea muy complejo la computadora sigue siendo una acumulación inanimada de dispositivos electrónicos y que, aunque algunos de los resultados puedan ser sorprendentes la maquina es capaz de ejecutar únicamente las tareas para las cuales fue exactamente programada y nada más. El programa MYCIN La especialización de en cualquier actividad requiere un gran conocimiento de asociado. El proceso para poder practicar una cierta actividad depende de la asimilación de esta conocimiento. Un conjunto de hechos constituyen una gran parte del conocimiento basico sobre un tema, pero son igualmente importantes la destreza que se puede adquirir con la experiencia, las ideas generales en algunos casos acerca de lo que es una buena practica y el arte de tomar un decisión acertada basándose en información incompleta. Esto resulta tan importante para el aprendizaje de cualquier materia o para que el estudiante de cualquier ciencia adquiera los aspectos sutiles del tema, como aprender las premisas básicas. En la creación de un sistema experto hay una parte bastante inmediata de codificación de los hechos conocidos sobre un tema; la parte mas difícil, conocida como modelización de la maestría, consiste en la formulación y aplicación de reglas extraídas de la experiencia que se posee en el tema. En cualquiera de los casos el sistema esta constituido por una base de conocimientos que proporcionan los hechos y un motor de inferencia para desarrollar las deducciones lógicas y tomar decisiones (algunas veces acompañadas de un porcentaje de probabilidad acerca de la corrección de las deducciones ), basadas en los hechos y reglas conocidas. El programa MYCIN publicado por E. Schortcliffe en 1976 es un sistema que diagnostica enfermedades infecciosas, en particular infecciones sanguíneas. MYCIN lo usan médicos en practicas para obtener ayuda en sus diagnósticos, a su vez el sistema se actualiza con los hechos y reglas de inferencia que proporsionan los especialistas. El programa DENDRAL DENDRAL es un programa experto de análisis químico y se ha aplicado con mucho éxito en muchos lugares del mundo. DENDRAL soluciona un problema de ingenieria química en tres fases. En primer lugar, el programa infiere cualquier posible restricción sobre la solución basándose en el conocimiento que posee en su base de datos. A continuación permite a los usuarios añadir cualquier otro tipo de restricción y finalmente genera y comprueba una lista de posibles soluciones, que imprime en orden de preferencia. DENDRAL se escribió originalmente en LIPS, pero ha sido reprogramado para ser usado en varias maquinas diferentes de entre las que se destaca la implementación realizada sobre un PDP-10 en Edimburgo. Este programa basado en la estrategia de "planificar, generar y comprobar" se usa en las universidades y en las industrias de Estados Unidos y en Europa y representa una de las aplicaciones practicas de la IA que mas éxito ha conseguido de entre las desarrolladas hasta la fecha. Inteligencia Artificial: Simbólico versus Subsimbólico Manuel de la Herrán Gascón http://www.manuherran.com "¡Tachaaan! Señoras y señores: he aquí la lavadora inteligente, ..." ¿Cómo? ¿Lavadora? ¿Alguien ha dicho Java? Ya sabemos que Java era originariamente un lenguaje para electrodomésticos, pero esta vez no se trata de eso. Este artículo trata de otra cosa. El título podría haber sido "La Inteligencia Artificial (IA) ha muerto" o "Lo de la IA ya no se lo cree nadie". Tenía que ocurrir. Ahora, si alguien califica su creación informática de inteligente, se fruncen ceños de desconfianza, cuando no se provoca risa. Rodeados como estamos de edificios inteligentes donde si no hace calor, hace frío; automóviles inteligentes que insisten en que nos pongamos un cinturón de seguridad estropeado, y semáforos inteligentes en perenne madurez y sin caer del guindo, ha llegado un momento en el que decir que nuestro programa es inteligente sólo lo descalifica. La culpa la tienen, por supuesto, la televisión, la publicidad y las lavadoras automáticas. Confirmándose una vez más el éxito indiscutible del iterado cliché de la vecina elogiando las camisas de su marido, los comerciales informáticos no dudaron en aplicar similares atribuciones a sus productos. Los jabones pasaron del superblanco al ultrablanco. Nuestros programas, con idéntica lógica, de ser Sistemas Expertos o Agentes Inteligentes, a usar tecnología IntelliSense (un tipo de ayuda sensible en el que trabaja Microsoft). También han salido ya las lavadoras con Fuzzy Logic, concretamente la nueva Eco-Lavamat de AEG. No dudo que sea una fantástica lavadora. Probablemente la capacidad de manejar conceptos difusos mediante Lógica Borrosa le confiera alguna ventaja; tal vez la de distinguir la ropa sucia de la muy sucia y de la extremadamente sucia. Pocas cosas hay tan borrosas como una camiseta blanca después de diez días de travesía por el monte, sin mas agua que la de la cantimplora. Poco importa, en definitiva, el nombre del jabón, se trata de que lave. ¿Y ya lava? No está mal. ¿Y es inteligente? Pues vaya, depende... Pero bueno, ¿Es que cada uno tiene derecho a llamar IA a lo que le dé la gana? Pues claro que sí. Esto ocurre porque nadie sabe aún qué demonios es la IA. Yo quiero mostrar en primer lugar mi definición predilecta, mediante una inspirada conversación de bar, real como la vida misma. -...y acabo de terminar un programa inteligente. -Comento bajito, para que no me oiga nadie más, claro. -¿Te refieres a un programa de IA? -Me responde- ¡Eso es imposible! Ésta es mi oportunidad de alargar un poco más la noche, y llenar de nuevo el vaso de cerveza vacío. Sin vacilar comienzo la habitual argumentación. -Bueno, hay gente que opina que nunca se podrá imitar la mente humana, pero... -¡No, No! -Me corta enseguida- Todo eso me lo creo. ¡Lo que digo que es imposible es que lo hayas hecho tú! ¡Acabáramos! La IA son los últimos descubrimientos, las nuevas tecnologías, los límites de la computación. La IA es una frontera en continuo movimiento. Y claro está, parece obvio que todo esto no es posible en manchego: si no lo leo en inglés, no me lo creo. Hay otras definiciones más aceptadas: la IA trata de construir máquinas con comportamiento aparentemente inteligente. El hombre es un ser inteligente. ¿Lo son los animales? ¿Lo son las células? ¿Acaso son necesarias células de algún tipo para que se produzca comportamiento inteligente? Podemos decir que en torno a la respuesta a estas preguntas surgen los dos grandes bloque enfrentados en la materia: el enfoque simbólico o Top-Down, también llamado IA clásica, y el enfoque subsimbólico (BottomUp), llamado a veces conexionista. Los simbólicos simulan directamente las características inteligentes que se pretenden conseguir. Como modelo de mecanismo inteligente a imitar, lo mejor que tenemos y más a mano es el Hombre (que tal vez no sea gran cosa, todo hay que decirlo). Desde este punto de vista, poco interesa simular los razonamientos de los animales, y mucho menos simular procesos celulares. El boom de los Sistemas Expertos, ahora de capa caída, fue producido por este planteamiento. Las principales corrientes en IA son la simbólica y la subsimbólica Para los constructores de sistemas expertos, es fundamental la representación del conocimiento humano y debemos a ellos los grandes avances en este campo. Realizando una gran simplificación, se debe incluir en un sistema experto dos tipos de conocimiento: "conocimiento acerca del problema particular" y "conocimiento acerca de cómo obtener más conocimiento a partir del que ya tenemos". Para el primero existen técnicas como los Frames (marcos) que fueron los padres de lo que hoy conocemos como Programación Orientada a Objetos. El segundo es llamado también mecanismo de inferencia y requiere además de un método de búsqueda que permita tomar decisiones, como por ejemplo, seleccionar la regla a aplicar del conjunto total de posibles reglas. Esto puede parecer lo más sencillo, pero suele ser lo más difícil. Se trata de elegir y elegir bien, pero sin demorarse varios millones de años en hacerlo. Como ejemplo representativo de la rama simbólica llevada al extremo tenemos el proyecto Cyc de Douglas B. Lenat, con un sistema que posee en su memoria millones de hechos interconectados. Según Lenat, la inteligencia depende del numero de reglas que posee el sistema, y "casi toda la potencia de las arquitecturas inteligentes integradas provendrá del contenido, no de la arquitectura". Para él, los investigadores que esperan poder resolver con una única y elegante teoría todos los problemas de inferencia y representación de conocimientos, padecen celos de la física: ansían una teoría que sea pequeña, elegante, potente y correcta. Los esfuerzos de la otra rama de la IA, los subsimbólicos, se orientan a simular los elementos de mas bajo nivel que componen o intervienen en los procesos inteligentes, con la esperanza en que de su combinación emerja de forma espontánea el comportamiento inteligente. Los ejemplos más significativos probablemente sean las Redes Neuronales Artificiales y los Algoritmos Genéticos. Aunque parezcan un fenómeno reciente, estos paradigmas no son más jóvenes que los Sistemas Expertos de la IA clásica, simplemente tuvieron menor publicidad y financiación. En cualquier caso, pasaron desapercibidos. El Primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts. El Perceptrón de Rosenblat apareció en 1959, produciendo una gran y breve expectación que quedó pronto en el olvido, y J. H. Holland introdujo la idea de los Algoritmos Genéticos en los años sesenta. Las grandes ventajas de estos sistemas son la autonomía, el aprendizaje y la adaptación, conceptos todos ellos relacionados. Las peleas y críticas entre los dos planteamientos fueron casi tan intensas como ridículas. Pero podían ser entretenidas. A veces se encendían los ánimos, como en una competición deportiva, y en cierto modo era divertido, seguro que mucho más que el fútbol. Se preguntará el lector con qué postura me identifico yo. Precisamente, me he visto envuelto en discusiones, defendiendo ambas alternativamente, llegando finalmente a la conclusión obvia, desenlace de la trama. Tras la resaca del auge de la IA simbólica, todos los éxitos fueron cosechados por los subsimbólicos, y el "pasarse al otro bando", al menos en ciertos aspectos, se convirtió en una actitud habitual. Pero como era de esperar, finalmente vemos triunfar el sentido común de aprovechar las grandes cualidades de una u otra postura, o de ambas, en sistemas combinados. Pregunta final Inteligencia Artificial? Carlos Gershenson [email protected] http://www.cogs.sussex.ac.uk/users/carlos/jlagunez ¿Pero qué es inteligencia? Parece ser que cada quién tiene su propia definición(1). La que más me agrada nos fue sugerida por el Dr. Mario Lagunez: "Para que podamos decir que algo es inteligente, primero, ese algo tiene que hacer una acción. Y después, una tercera persona, juzga si la acción fue inteligente o no". Aunque la definición en sí es recursiva, la prefiero a la de "inteligencia es la habilidad de sacar buenas calificaciones en exámenes de inteligencia". Bueno, pero podemos pasarnos una eternidad discutiendo sobre este punto (desde el argumento aristotélico de que la inteligencia es cualidad del hombre), y ése no es el punto. Por lo menos ahora. Bueno, en vista de los problemas que hay para definir inteligencia, hagamos lo que siempre se ha hecho, y supongamos que no se necesita definirla "porque es bien conocida de todos.(2)" Entonces digamos que la inteligencia artificial es el arte de imitar la inteligencia humana. Ya que tenemos una idea de inteligencia artificial,(3) podemos revisar qué avances ha tenido, desde que fue propuesta en 1956 (McCarthy convocó a un congreso en Dartmouth, y durante el congreso se forjó el término "inteligencia artificial". Asistieron, entre otros, Minsky, Simon y Newell). Ya las bases habían sido puestas por Wiener y Rosenblueth (1943, Behavior, Purpose and Teleology, más adelante el primero en Cybernetics, 1948) y por McCulloch y Pitts (1954, A Logical Calculus of the Ideas Environment in Nervous Activity). Después se empezaron a desarrollar distintas técnicas para modelar la inteligencia. Sistemas Expertos, Lógica Difusa (Zadeh, 1965), Redes Neuronales (retomando las ideas de McCulloch y Pitts), Algoritmos Genéticos (evolución artificial), Agentes Inteligentes (Inteligencia Artificial Distribuida), y muchas otras ramas con menor popularidad (Machine Learning, Theorem Proving). Además estas "ramas" se entremezclan para atacar problemas con sistemas híbridos (como redes neurodifusas, etc.). Últimamente ha surgido un debate sobre si la inteligencia artificial ha dado (o dará) todo lo que prometía en un principio. Aunque muchas metas fueron demasiado ambiciosas (la "quinta generación" de los japoneses, por ejemplo), indudablemente ha resuelto una infinidad de problemas que hubiese sido mucho más complicado (o imposible) resolver de otra forma. Otro punto es que estas ciencias son demasiado nuevas y "difusas" como para que pueda haber una definición formal y concisa sobre los planes y metas a mediano y largo plazo de la inteligencia artificial. Como se vio, cada quién cree en cosas distintas, y es muy difícil llegar a un consenso. Algunas de las metas a mediano(4) plazo son, entre muchas, el control de tráfico en vías rápidas, resumen de textos (summarization), búsqueda de información inteligente, asistentes digitales personales (PDA´s). De hecho ya hay muchos prototipos de estos sistemas, sólo falta que funcionen fuera de una simulación. Estos avances, obviamente se basan en las tendencias ya establecidas, haciéndoles modificaciones cuando es necesario, o algunas veces creando una nueva rama. Pero a largo plazo, (¡aquí es donde podemos especular!), los avances chocan más con los límites éticos, morales y filosóficos, que con los tecnológicos. ¿Las máquinas podrán ser más inteligentes que sus creadores? Algunos dirían que una máquina no sabe más que el que la hizo. ¿Pero si le enseñamos a aprender? ¿No es lo que sucede cuando decimos que "el alumno supera al maestro"? Tomemos, por ejemplo, un sistema que prueba teoremas. Los primeros de este tipo fueron creados en los 60´s. ¿Se podrá hacer un sistema, que, dados los axiomas de un sistema (sea la aritmética), deduzca todos sus teoremas, habidos y por haber, y demostrarlos? ¿Quién utilizaría tal cantidad de información? Definitivamente, una máquina tendría que comprenderla. Pero hasta ahora todas las computadoras son electrónicas, y basadas en el modelo de la máquina de Turing. Y todo lo que podemos hacer con ellas. ¿Qué no habrá otros tipos de computadoras (biológicas, químicas, atómicas), otros modelos de máquinas? ¡Y hay quienes dicen que la ciencia esta llegando a su fin! (Tal vez para el hombre tal y como lo conocemos). Tal vez a fin de cuentas sí podamos demostrar la razón en términos de razón. Dándole toda la vuelta a la ciencia. Con las matemáticas explicar la física, con ésta la química, con esta la biología, con ésta la psicología, con ésta la filosofía, con esta las matemáticas. ¿A pesar de Gödel finalmente podremos decir que la ciencia sí es completa (o por lo menos, cíclica, y se comprende a sí misma). Aunque es posible que las "máquinas" hagan esto antes que "nosotros", podemos decir bien que es nuestra obra. Así como la naturaleza (o como algunos le llaman, Dios) nos hizo a los hombres. A fin de cuentas lo que hacen nuestros hijos es fruto de cómo los criamos. Pero, citando a Fernando Contreras: "¿Algún día el hombre será prescindible? Y las máquinas nos harán lo que le hicimos a Dios." 1. El lenguaje puede verse como un enorme sistema de ecuaciones simultáneas, en donde cada palabra es una variable, definida en términos de otras palabras (variables). Pero para que el sistema tenga solución, hay palabras que "tienen un significado per se". Como amor, lenguaje, fe, razón, ser, inteligencia, etc. Es por eso que es un poco iluso tratar de definir estas palabras en términos de otras palabras, pero aún así lo hacemos. ¿O alguien propone algo mejor? 2. Sir Isaac Newton, acerca de la definición de espacio, tiempo y movimiento Sir W. C. Dampier, Historia de la Ciencia y la Filosofía. 3. ¿Las ideas son más importantes que las definiciones? 4. Hay que aprovechar las medidas difusas