Download Inteligencia Artificial

Document related concepts

Inteligencia artificial wikipedia , lookup

Historia de la inteligencia artificial wikipedia , lookup

IA completo wikipedia , lookup

Efecto IA wikipedia , lookup

Aprendizaje automático wikipedia , lookup

Transcript
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