Integración de sistemas de inteligencia artificial


La idea central de la integración de sistemas de inteligencia artificial es hacer que los componentes de software individuales , como los sintetizadores de voz , sean interoperables con otros componentes, como las bases de conocimientos de sentido común , para crear sistemas de IA más grandes, más amplios y más capaces. Los principales métodos que se han propuesto para la integración son el enrutamiento de mensajes o protocolos de comunicación que los componentes de software utilizan para comunicarse entre sí, a menudo a través de un sistema de pizarra de middleware .

La mayoría de los sistemas de inteligencia artificial implican algún tipo de tecnologías integradas, por ejemplo, la integración de tecnologías de síntesis de voz con la del reconocimiento de voz. Sin embargo, en los últimos años ha habido un debate cada vez mayor sobre la importancia de la integración de sistemas como un campo por derecho propio. Los defensores de este enfoque son investigadores como Marvin Minsky , Aaron Sloman , Deb Roy , Kristinn R. Thórisson y Michael A. Arbib . Una razón de la reciente atención que está atrayendo la integración de la IA es que ya se han creado varios sistemas de IA (relativamente) simples para dominios de problemas específicos (como visión por computadora , síntesis de voz)., etc.), y que integrar lo que ya está disponible es un enfoque más lógico para una IA más amplia que construir sistemas monolíticos desde cero.

El enfoque en la integración de sistemas, especialmente con respecto a los enfoques modulares, se deriva del hecho de que la mayoría de las inteligencias de escalas significativas se componen de una multitud de procesos y / o utilizan entradas y salidas multimodales . Por ejemplo, una inteligencia de tipo humanoide preferiblemente debería poder hablar usando síntesis de voz, escuchar usando reconocimiento de voz, entender usando un mecanismo lógico (o algún otro indefinido), y así sucesivamente. Para producir software artificialmente inteligente de inteligencia más amplia, es necesaria la integración de estas modalidades.

La colaboración es una parte integral del desarrollo de software, como lo demuestra el tamaño de las empresas de software y el tamaño de sus departamentos de software. Entre las herramientas para facilitar la colaboración de software se encuentran varios procedimientos y estándares que los desarrolladores pueden seguir para garantizar la calidad, confiabilidad y que su software sea compatible con el software creado por otros (como W3Cestándares para el desarrollo de páginas web). Sin embargo, la colaboración en los campos de la IA ha faltado, en su mayor parte no se ve fuera de las escuelas, departamentos o institutos de investigación respetados (y, a veces, tampoco dentro de ellos). Esto presenta a los profesionales de la integración de sistemas de IA con un problema sustancial y, a menudo, hace que los investigadores de IA tengan que 'reinventar la rueda' cada vez que quieren que una funcionalidad específica funcione con su software. Aún más dañino es el síndrome de "no inventado aquí", que se manifiesta en una fuerte reticencia de los investigadores de IA a aprovechar el trabajo de otros.

El resultado de esto en la IA es un gran conjunto de "islas de soluciones": la investigación de la IA ha producido numerosos componentes y mecanismos de software aislados que se ocupan de varias partes de la inteligencia por separado. Para tomar algunos ejemplos:

Con la creciente popularidad del movimiento del software libre , gran parte del software que se está creando, incluidos los sistemas de inteligencia artificial, está disponible para su explotación pública. El siguiente paso natural es fusionar estos componentes de software individuales en sistemas coherentes e inteligentes de naturaleza más amplia. Como la comunidad ya ha creado una multitud de componentes (que a menudo tienen el mismo propósito), la forma más accesible de integración es brindar a cada uno de estos componentes una manera fácil de comunicarse entre sí. Al hacerlo, cada componente por sí solo se convierte en un módulo que luego se puede probar en varios entornos y configuraciones de arquitecturas más grandes.


Un ejemplo de cómo se pueden utilizar varios módulos escritos en varios lenguajes de programación en varias computadoras en la integración de sistemas de IA