viernes, 15 de enero de 2010

Sistemas inteligentes

La inteligencia artificial es una enorme rama de la ciencia de la computación encargada del estudio y desarrollo de elementos que tratan de replicar la inteligencia y el comportamiento inteligente de las personas en las computadoras, de hecho, John McCarthy, quién acuñó el término “Inteligencia Artificial” el año 1956, la define como “la ciencia e ingeniería de hacer máquinas inteligentes”. Teniendo en cuenta que la inteligencia es un término umbral que describe un estado mental en el que se han desarrollado diversas capacidades complejas, para simular o desarrollar en las máquinas este estado mental, estas máquinas tendrían que ser capaces de razonar, conocer, planificar, aprender, comunicarse, percibir y ser capaces de interactuar con su entorno. El gran objetivo, a largo plazo, de la inteligencia artificial es el desarrollo de un sistema capaz de exhibir todas estas habilidades de una forma conjunta y sobre una gran variedad de dominios, excediendo las habilidades de un ser humano.

La inteligencia artificial abarca en la actualidad un enorme campo de acción que van desde áreas de propósito general como la percepción y el aprendizaje a otras más específicas como el juego de ajedrez, la demostración de teoremas matemáticos, el diagnóstico de enfermedades, el diseño de dispositivos y la planificación de tareas. Esta disciplina ha recibido numerosas definiciones pero básicamente se pueden descomponer desde el punto de vista del pensamiento, en sistemas que piensan como humanos o que lo hacen racionalmente y desde el punto de vista de su comportamiento, en aquellos que actúan como humanos o que lo hacen racionalmente. Sus fundamentos están en la filosofía, la matemática y la lógica, la economía, la psicología, la neurociencia, la teoría de control y la lingüística. Las aplicaciones de la inteligencia artificial que mayor difusión han tenido son los sistemas de información basados en conocimiento y los sistemas expertos, cuyo estudio y desarrollo se ha denominado ingeniería del conocimiento y suele considerarse como una especialización de la ingeniería del software aplicada al desarrollo de sistemas inteligentes. Actualmente su expansión abarca lo que se denominan ontologías y su aplicación a la Web semántica.

Durante las décadas de los años 1970 y 1980 los investigadores en inteligencia artificial llegaron al convencimiento de que las metodologías generales de solución de problemas y más específicamente los algoritmos de búsqueda tradicionales eran insuficientes para resolver problemas de mediana complejidad, surgiendo la necesidad de incorporar conocimiento limitado a un particular dominio de interés. Para lograr el objetivo de transferir los conocimientos de un experto en un dominio se ha hecho necesario poder especificarlo formalmente, destacándose la lógica, los diagramas de redes semánticas, los marcos, los objetos y otros procedimientos para la representación del conocimiento. Pero este conocimiento estático de las relaciones causales no es suficiente para producir los resultados o su explicitación por medio de sucesivas transformaciones, que en general, pueden caracterizarse como nuevos conocimientos, siendo entonces necesario desarrollar algoritmos que produzcan las inferencias buscadas, recibiendo así la denominación genérica de algoritmos o motores de inferencia.

El razonamiento basado en la lógica y sus diferentes versiones de razonamiento exacto se vieron necesitados, durante las décadas de los años 1980 y 1990, de una adaptación a la incertidumbre y la inexactitud propia de los lenguajes naturales y los sistemas de conocimientos reales. En ésta oportunidad a la lógica formal se incorporaron los conceptos probabilísticos, estableciéndose métodos de razonamiento en condiciones de incertidumbre como las redes bayesianas y de razonamiento inexacto basado en los conjuntos difusos. La ingeniería del conocimiento se enfoca en la aplicación de los anteriores conceptos al desarrollo de los sistemas basados en el conocimiento en general y al de los sistemas expertos en particular, destacándose la necesidad de la adquisición del conocimiento así como su especificación, verificación, validación, diseño e implementación en sistemas informáticos o lenguajes apropiados para la construcción de bases de conocimiento para la toma de decisiones.

El paso de la teoría de los sistemas basados en conocimiento a la construcción de los mismos, requiere la adquisición de una fluida habilidad para realizar las tareas indicadas en el punto anterior, las que solo se logran a partir de una práctica sobre un lenguaje concreto, que soporte las diferentes formas de representación como la programación basada en reglas, la orientada a objetos o marcos, la funcional y la lógica. Además el motor de inferencia debe también proveer medios de control de diferentes estrategias de razonamiento y soportar mecanismos de incertidumbre y mantenimiento de la verdad como en el caso de los razonamientos no-monotónicos. Para una visión completa se requeriría el estudio de varias herramientas de programación simbólica o directamente de bajo nivel para construir las herramientas que den sustento a las diferentes teorías de la inteligencia artificial, pero desde un punto de vista del contexto de la ingeniería del conocimiento, se encara la solución a los problemas con las herramientas de libre disponibilidad en Internet. La adquisición del conocimiento a partir de expertos humanos, si bien necesaria e insustituible en muchas aplicaciones, ha presentado diversas dificultades que van desde la representación del sentido común hasta las excesivas demoras en la implementación y el mantenimiento de los sistemas. Ante estas dificultades han surgido las técnicas de adquisición automática del conocimiento.

Para asegurar el crecimiento de los sistemas basados en conocimiento se ha hecho necesario desarrollar técnicas que permitan evitar los errores de diseño del sistema y la adquisición del conocimiento, para lo cual se los debe verificar, es decir que se demuestra su consistencia y completitud, se los debe validar, o sea que se determina la corrección El aprendizaje automático ha sido una posterior repuesta a las dificultades para la adquisición humana del conocimiento y se basa en el aprendizaje de conceptos generales a partir de casos particulares. Algunas de las técnicas más conocidas son las de inducción de árboles de decisión, las redes neuronales y los algoritmos genéticos. Actualmente la aplicación de estas técnicas a grandes bases de datos ha dado lugar a los conceptos de minería de datos y de descubrimiento de conocimientos en grandes bases de datos aplicada a la construcción de bases de conocimientos en problemas de estrategias de negocios.

Un sistema inteligente es un sistema computacional o físico, en el cual se utilizan técnicas de inteligencia artificial. Existen muchos tipos de sistemas inteligentes, siendo los más complejos los que requieren desempeñarse en forma autónoma en ambientes dinámicos o cambiantes. Los sistemas inteligentes constituyen el campo de la informática en el que se estudian y desarrollan algoritmos que implementan algún comportamiento inteligente y su aplicación a la resolución de problemas prácticos. Entre los problemas abordados en este campo, está el de descubrir conocimientos a partir de una masa de información. Esto resulta una alternativa de solución a problemas que no pueden ser resueltos mediante algoritmos tradicionales, entre los cuales se pueden mencionar la especificación de condiciones asociadas a diagnósticos técnicos o clínicos, identificación de características que permitan reconocimiento visual de objetos, descubrimiento de patrones o regularidades en estructuras de información, entre otros.

Los sistemas inteligentes son meramente sistemas software que muestran un cierto comportamiento inteligente o interactúan de una forma más inteligente con su entorno que otros sistemas. Como se puede apreciar, la barrera entre un sistema software normal y un sistema inteligente queda un tanto difusa, al igual que la barrera entre los sistemas inteligentes y la inteligencia artificial. Ejemplos típicos de sistemas inteligentes son los motores de búsqueda, los sistemas de gestión de reglas de negocio, los sistemas que permiten que los coches aparquen solos, los controles difusos de las lavadoras, etc. Un sistema inteligente aprende durante su existencia, en otras palabras, siente su entorno y aprende, para cada situación que se presenta, cuál es la acción que le permite alcanzar sus objetivos. Actúa continuamente, en forma mental y externa, y al accionar alcanza sus objetivos más frecuentemente que lo que indica la casualidad pura. Consume energía y la utiliza para sus procesos interiores y para actuar.

La inteligencia artificial se ocupa de la “investigación básica”, que trata de mejorar la implementación de cada una de las habilidades relacionadas con la inteligencia. Los sistemas inteligentes se encargan de aplicar dicha investigación, tratando de solucionar problemas ya existentes o mejorar la forma de trabajar o calidad de vida de las personas, aplicando técnicas generalmente sacadas de la inteligencia artificial. Sin la inteligencia artificial no se habría llegado a contar con sistemas inteligentes, pero también es verdad que sin los sistemas inteligentes el impacto de los avances de la inteligencia artificial en la sociedad sería menor.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Noviembre 16 de 2009

No hay comentarios: