Descargar

Inteligencia Artificial (página 2)

Enviado por Roberto Moreno


Partes: 1, 2

Más adelante, Gottlob Frege crea un lenguaje de especificaciones matemáticas para describir la aritmética. Su trabajo se encuentra en la obra conocida como Fundamentos de Aritmética. El lenguaje de Frege se conoce ahora como cálculo de predicados de primer orden y se utiliza en la inteligencia artificial para inferir nuevas expresiones verdaderas.

Ya en el siglo pasado, Russell & Whitehead trabajaron en un sistema matemático que pudiera representar a las matemáticas por medio de operaciones y axiomas. Su trabajo se aplica en la inteligencia artificial, en particular en los sistemas que permiten comprobar teoremas en forma automática.

3) Características de la I.A.

Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos, también procesan símbolos y no se considera que usen técnicas de Inteligencia Artificial.

El comportamiento de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).

El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de los programas para propósito específico, como los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.

Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolución de conflictos en tareas orientadas a metas como en planificación, o el diagnóstico de tareas en un sistema del mundo real: con poca información, con una solución cercana y no necesariamente exacta.

La Inteligencia Artificial incluye varios campos de desarrollo tales como: la robótica, usada principalmente en el campo industrial; comprensión de lenguajes y traducción; visión en máquinas que distinguen formas y que se usan en líneas de ensamblaje; reconocimiento de palabras y aprendizaje de máquinas; sistemas computacionales expertos.

Los sistemas expertos, que reproducen el comportamiento humano en un estrecho ámbito del conocimiento, son programas tan variados como los que diagnostican infecciones en la sangre e indican un tratamiento, los que interpretan datos sismológicos en exploración geológica y los que configuran complejos equipos de alta tecnología.

Tales tareas reducen costos, reducen riesgos en la manipulación humana en áreas peligrosas, mejoran el desempeño del personal inexperto, y mejoran el control de calidad sobre todo en el ámbito comercial.

4) Funciones Generales de la I.A.

4.1 Tipos de Algoritmos Utilizados

Cuando una tarea se realiza por medio de un algoritmo perfectamente definido de almacenamiento, clasificación o cálculo, lo puede hacer un computador. Este concepto de algoritmo, secuencial, fijo y de determinadas operaciones, es incapaz de manejar problemas donde el camino del razonamiento es variable y donde deben afrontarse situaciones diversas sin haber sido especificadas.

La Inteligencia Artificial hace uso de un tipo de lenguaje diferente como es el caso de LISP y PROLOG.

En 1932, Cannon visualizó la evolución natural como un proceso de aprendizaje. Alan Turing reconoció, en 1950, que debe haber una conexión obvia entre el aprendizaje de máquina y la evolución, y señaló que se podrían desarrollar programas para jugar ajedrez usando esta técnica. Campbell conjeturó en 1960 que en todos los procesos que llevan a la expansión del conocimiento, se involucra un proceso ciego de variación y supervivencia selectiva.

Los primeros intentos de aplicar de manera formal la teoría de la evolución, a problemas prácticos de ingeniería, apareció en las áreas de control de procesos estadísticos, aprendizaje de máquina y optimización de funciones. Tal vez el primer intento serio de este tipo se dio en el trabajo que realizaron Box y sus colegas en 1957, en el desarrollo de una técnica que denominaron operación evolutiva, la cual se aplicó a una planta de manufactura, y que se implanto sobre la base de los votos de un comité de jefes técnicos. Bajo este esquema, la calidad del producto avanzaba a través de mutaciones aleatorias y la selección era determinada por el comité.

Por su parte, Friedberg intentó, en 1958, hacer que un programa en lenguaje máquina se mejorara a sí mismo, seleccionando instrucciones que se asociaran más frecuentemente con un resultado exitoso. Aunque Friedberg nunca mencionó explícitamente estar simulando la evolución natural, esa es la interpretación más comúnmente aceptada de su trabajo, y a pesar de que tuvo cierto éxito evolucionando manipuladores de bits y determinando las interconexiones de una caja negra de 1400 terminales, la comunidad de Inteligencia Artificial de la época prestó poca atención a su trabajo. Por ejemplo, Minsky lo criticó duramente, argumentando que una búsqueda puramente aleatoria era mucho mejor que el algoritmo de Friedberg.

El trabajo de Bremermann, en 1958, se enfocó más a la optimización, introduciendo el importante manejo de un valor de aptitud, y definiendo a un individuo como una cadena de símbolos binarios (unos y ceros). Bremermann advirtió, acertadamente, que la mutación jugaba un papel importante en la evolución, pues impedía el estancamiento en mínimos locales. Aunque muchas de sus ideas se usan hoy en día, Bremermann cometió el error de tratar de optimizar funciones lineales y convexas, obteniendo resultados decepcionantes, pues sus algoritmos evolutivos tenían que ser complementados con otras heurísticas para converger en una solución. Hoy sabemos que los algoritmos evolutivos difícilmente pueden competir con las técnicas tradicionales de optimización en esos dominios.

Barricelli ofreció, en 1954, una de las primeras simulaciones que usaba principios evolutivos, utilizando los mismos procedimientos generales que se usan hoy en día en la disciplina conocida como vida artificial. Sin embargo, en este trabajo, así como el que Reed realizó posteriormente en 1967, se concluyó que la cruza no parecía mejorar la velocidad de la adaptación selectiva, y el operador primordial era la mutación.

Fue Fogel el que introdujo la primera técnica evolutiva que realmente funcionó más o menos dentro de los lineamientos actuales de la computación evolutiva. Su programación evolutiva consistía en hacer evolucionar autómatas de estados finitos por medio de mutaciones. Fogel introdujo los importantes conceptos de población y selección, y aunque las revisiones iniciales de su trabajo fueron favorables, algunos investigadores, como Solomonoff, enfatizaron que el método de Fogel no debía verse en su estado actual (en 1966) como algo particularmente útil para resolver problemas, a excepción de los más simples posibles. Solomonoff vio a la programación evolutiva como una especie de búsqueda escalando la colina modelada mediante autómatas, y otros investigadores como Holland, Kieras, Rada y Lenat compartieron esa opinión.

Otra técnica evolutiva dirigida particularmente a la optimización de funciones continuas de alta complejidad se desarrolló en Alemania, en 1965, por Rechenberg y Schwefel. Esta técnica, llamada estrategia evolutiva, se utilizó inicialmente para resolver problemas de ingeniería que desafiaban a los métodos de optimización tradicionales, como el gradiente conjugado, y se basa en la modificación sistemática de un vector de números reales (representando las variables de decisión del problema) mediante operadores probabilísticos, usando ciertos criterios para decidir en qué dirección dirigir la búsqueda. La estrategia evolutiva utiliza como operador principal a la mutación, y en su versión más reciente usa la cruza como operador secundario.

Aunque el australiano Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John Holland llamó planes evolutivos a fines de los 60, es al segundo al que se le suele atribuir la creación de la técnica que se conoce como algoritmo genético, a raíz de que Holland publicara el libro " Adaptation in Natural and Artificial Systems" en 1975.

4.2 Algoritmo Genético

La principal diferencia del algoritmo genético con las técnicas antes mencionadas, es que utiliza la cruza como operador principal y a la mutación como operador secundario (e incluso opcional). El algoritmo genético, al igual que las redes neuronales, funciona como una caja negra que recibe ciertas entradas y produce (tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo, a diferencia de éstas, los algoritmos genéticos no necesitan entrenarse con ejemplos de ningún tipo, sino que son capaces de generar sus propios ejemplos y contraejemplos que guíen la evolución a partir de poblaciones iniciales totalmente aleatorias.

Los mecanismos de selección del más apto y de reproducción sexual del algoritmo genético, son los encargados de preservar las características más adecuadas de cada individuo a fin de hacer converger a la población en soluciones óptimas.

Los algoritmos genéticos se distinguen también por no quedar atrapados fácilmente en mínimos locales, como la mayor parte de las técnicas de búsqueda clásicas, además de usar operadores probabilísticos más robustos que los operadores determinísticos, que las otras técnicas suelen usar.

No obstante, siendo una heurística, tampoco pueden garantizar encontrar siempre la solución óptima, si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayoría de los casos, superiores a las encontradas con otras técnicas de búsqueda y optimización.

Aunque aún atacados por algunos sectores de la comunidad de Inteligencia Artificial, los algoritmos genéticos, al igual que las redes neuronales, se han ido ganando poco a poco, y sobre la base de la efectividad de sus resultados en aplicaciones prácticas, el reconocimiento de los investigadores como una técnica efectiva en problemas de gran complejidad, como lo demuestra un número creciente de conferencias y publicaciones especializadas alrededor del mundo, en los últimos años.

4.3 Sistemas Basados en Conocimiento

Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles requerimientos de la investigación.

A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del problema.

La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser la siguiente:

Componentes: software de interfaz, base de datos, programa computacional.

Una relativamente nueva categoría de sistemas de información orientada al servicio es el sistema experto, llamado así porque su base de datos guarda una descripción de habilidades en la toma de decisiones de experiencias humanas en un estrecho dominio de procedimientos, tales como interpretación médica de imagen, impuestos, diseño de piping, configuración de hardware en un sistema de computadores, equipamiento para reparar malfuncionamientos o, en la preparación de cerveza.

La motivación para construir sistemas expertos es el deseo de replicar el escaso, in estructurado y quizás el pobremente documentado conocimiento empírico de especialistas que de este modo puede ser rápidamente usado por otros.

Un programa computacional que usa inteligencia artificial resuelve problemas en un dominio especializado que ordinariamente requiere experiencia humana.

El primer sistema experto fue desarrollado en 1965 por Edward Feigenbaum y Joshua Lederberg de la Universidad de Standford en California, EEUU, y se lo llamó Dendral. Fue diseñado para analizar componentes químicos.

Dado que cada condición que puede ser encontrada puede ser descrita por una regla, los sistemas expertos basados en reglas no pueden manejar eventos no anticipados, pero pueden evolucionar con el uso, y permanece limitado a un estrecho dominio de problemas.

Otra variante de sistemas expertos, uno que no posee esta limitación, emplea una base de conocimiento que consiste de descripciones estructuradas de situaciones, de problemas del mundo real y de decisiones actualmente hechas por expertos humanos.

En medicina, por ejemplo, el registro de un paciente contiene descripciones de datos personales, exámenes físicos y de laboratorio, diagnóstico clínico, tratamiento propuesto, y los resultados de tales tratamientos.

Dada una gran base de datos con tales registros en una especialidad médica, el médico puede indagar acerca de eventos análogos a los relacionados con el paciente. Esto en contraste con el sistema que idealmente intenta reemplazar al ser humano, ya que en casos como estos sólo podría usarse este tipo de conocimiento como una herramienta que ayuda en la toma de decisiones.

El software requerido para este tipo de sistemas se ha ido complicando con el tiempo ya que su desarrollo demanda tiempo, un buen equipo de programadores y un buen producto final.

Se percibe este trabajo como una tarea para el ingeniero y consiste de:

  • Identificación y análisis de los requerimientos del usuario.

  • Desarrollo de las especificaciones del sistema (software y hardware).

  • Diseño del software.

  • Implementación

  • Testeo

  • Mantenimiento

Tareas típicas para sistemas expertos involucran clasificación, diagnóstico, monitoreo, diseño, inventario y planificación para esfuerzos especializados.

4.4 Niveles de conocimiento

A pesar de no disponerse de un modelo general comúnmente aceptado, existe unanimidad en cuanto a la aprobación de tres niveles distintos de conocimientos, a los que corresponde tres fases diferentes de estudio y sobre los que se basa, en general, la concepción de un sistema experto. Esos niveles son el de estructuración, el conceptual y el cognoscitivo. El primero es el que define el mecanismo que genera la certeza. Este mecanismo varía según el campo al que se aplique el sistema experto, ya que las evidencias asociadas a cada campo no son idénticas. La determinación del nivel de estructuración permite definir un formalismo de representación del conocimiento así como un mecanismo adecuado de deducción. El nivel conceptual es el que determina el conjunto de los conceptos que emplea el experto humano en la materia; cada uno de ellos corresponde a un nudo del razonamiento del experto. Se le asocia un descriptor que se experimenta con el formalismo correspondiente al nivel de estructuración. Finalmente, el nivel cognoscitivo corresponde al conjunto de los conocimientos que el experto humano pone en práctica para la resolución del problema planteado. Este conjunto de conocimientos debe poder traducirse al lenguaje definido mediante el formalismo de representación del conocimiento adoptado. En cuanto al desarrollo actual de la investigación en el campo de los sistemas expertos, la primera fase corresponde al desarrollo de sistemas y programas que traten directamente el lenguaje natural, si bien persisten todavía dos escollos importantes. Por un lado, el problema de cómo emplear de un modo eficaz una gran cantidad de información sin necesidad de echar mano de la combinatoria; es decir, cómo conseguir un sistema dotado de conocimientos (metaconocimientos) que le permitan utilizar los conocimientos del sistema y que, a su vez, le permitan deducir automáticamente nuevos conocimientos, ya que no cabe pensar en la reunión de todos los conocimientos necesarios en casos de campos tan sumamente vastos como el del diagnóstico en la medicina.

4.5 Sistemas Expertos

Los sistemas expertos se basan en la simulación del razonamiento humano. El razonamiento humano tiene para ellos, un doble interés: por una parte, el del análisis del razonamiento que seguiría un experto humano en la materia a fin de poder codificarlo mediante el empleo de un determinado lenguaje informático; por otra, la síntesis artificial, de tipo mecánico, de los razonamientos de manera que éstos sean semejantes a los empleados por el experto humano en la resolución de la cuestión planteada.

Estos dos campos de interés han conducido a los investigadores que trabajan en el campo de la inteligencia artificial (de la cual los sistemas expertos son un campo preferente) a intentar establecer una metodología que permita verificar el intercambio con los expertos humanos y aislar los diversos tipos de razonamiento existentes (inductivo, deductivo, formal, etc.), así como construir los elementos necesarios para modelizarlos. Los sistemas expertos son, por lo tanto, intermediarios entre el experto humano, que transmite sus conocimientos al sistema, y el usuario de dicho sistema, que lo emplea para resolver los problemas que se le plantean con la competencia de un especialista en la materia y que, además, puede adquirir una destreza semejante a la del experto gracias a la observación del modo de actuar de la máquina. Los sistemas expertos son, pues, simultáneamente, un sistema de ejecución y un sistema de transmisión del conocimiento. Asimismo, los sistemas expertos se definen mediante su arquitectura; obtienen, por lo tanto, una realidad palpable. Mientras que en las operaciones de programación clásicas se diferencia únicamente entre el propio programa y los datos, en el caso de los sistemas expertos se diferencian tres componentes principales. Son los siguientes:

La base de conocimientos aloja la totalidad de las informaciones específicas relativas al campo del saber deseado. Está escrita en un lenguaje específico de representación de los conocimientos que contiene y en el cual el experto puede definir su propio vocabulario técnico.

A la inversa de lo que sucede en los programas clásicos, en la base de conocimientos las informaciones entran tal como llegan, ya que el orden no influye en los resultados obtenidos. Sucede así porque cada elemento de conocimiento es comprensible por sí mismo tomado de forma aislada y, por lo tanto, no es necesario referirse al contexto en el cual está inserto. La información se representa, por regla general, mediante reglas de producción o redes semánticas. Las reglas de producción constituyen el método más utilizado para construir bases de conocimientos en los sistemas expertos. Llamadas también implicaciones lógicas, su estructura es la siguiente: para unas ciertas causas, unos efectos; o, para determinadas condiciones, ciertas consecuencias. Junto a cada regla, se almacena también su porcentaje en forma de probabilidad. Éste indica, mediante un tanto por ciento, el grado de certeza de las consecuencias que se obtienen como resultado de la aplicación de la regla de producción. En cuanto a las redes semánticas, se trata de un método de construcción de bases de conocimientos en el cual los conocimientos se muestran mediante un grafo en el que los vértices representan los conceptos u objetos y las aristas indican las relaciones entre ellos.

Además el sistema dispone de la llamada base de hechos, que alberga los datos propios correspondientes a los problemas que se desea tratar con la ayuda del sistema. Asimismo, a pesar de ser la memoria de trabajo, la base de hechos puede desempeñar el papel de memoria auxiliar. La memoria de trabajo memoriza todos los resultados intermedios, permitiendo conservar el rastro de los razonamientos llevados a cabo. Puede, por eso, emplearse para explicar el origen de las informaciones deducidas por el sistema en el transcurso de una sesión de trabajo o para llevar a cabo la descripción del comportamiento del propio sistema experto. Al principio del período de trabajo, la base de hechos dispone únicamente de los datos que le ha introducido el usuario del sistema, pero, a medida que va actuando el motor de inferencias, contiene las cadenas de inducciones y deducciones que el sistema forma al aplicar las reglas para obtener las conclusiones buscadas.

El último elemento, el motor de inferencias, es un programa que, mediante el empleo de los conocimientos puede resolver el problema que está especificado. Lo resuelve gracias a los datos que contiene la base de hechos del sistema experto. Por regla general, el tipo de reglas que forman la base de conocimientos es tal que, si A es válido, puede deducirse B como conclusión. En este caso, la tarea que lleva a cabo el motor de inferencias es la de seleccionar, validar y activar algunas reglas que permiten obtener finalmente la solución correspondiente al problema planteado.

El sistema experto establecido se compone, por lo tanto, de dos tipos bien diferenciados de elementos, los propios del campo de los expertos relacionados con el problema concreto (es decir, la base de conocimientos y la base de hechos) y el que se puede aplicar de forma general a una gran variedad de problemas de diversos campos (como el caso del motor de inferencias). Sin embargo, el motor de inferencias no es un mecanismo universal de deducción, ya que hay dos tipos diverso: los que emplean el razonamiento aproximativo (para el cual el resultado puede ser erróneo) y aquellos que emplean un tipo de razonamiento capaz de obtener un resultado (si llegan a él), con toda seguridad, verdadero.

4.6 Fases del proceso

Sin embargo, a pesar de no existir una metodología generalmente aceptada en cuanto a la concepción de los sistemas expertos, se admite por regla general un esquema que consta de tres fases. En la primera fase, la discusión con el experto o los expertos humanos en la cual se intenta, por un lado, delimitar el problema a resolver y, por el otro, los modos de razonamiento que se emplearán para su solución. La segunda fase comprende el desglose del formalismo de expresión del conocimiento y la determinación del motor de inferencias adecuado a dicho formalismo. Por último, la tercera etapa, corresponde a la creación de la base de conocimientos (en colaboración con los expertos humanos), así como a la comprobación y ajuste del funcionamiento del sistema experto mediante el empleo de ejemplos.

5) Cine e I.A.

En el mundo de la ciencia-ficción, a veces no tan ciencia, a veces no tan ficción, se han tratado con amplia gama de variedades las interrelaciones entre hombre e inteligencias artificiales (I.A.). El cine ha copiado, imitado, e incluso fagocitado esta variedad.

El mundo del cine está lleno de referencias a la inteligencia artificial, ordenadores o máquinas que aprenden y crecen como Hall de "2001". El superordenador de "Terminator" que adquiere conciencia y con ella la terrorífica idea, para nosotros, de la amenaza que suponen los hombres para su subsistencia, decisión que comparte la más estúpida de "Juegos de Guerra", que hace tablas consigo mismo a tres en raya. Otros ordenadores de I.A. deciden enamorarse cono en "Electrical Dreams". Algunos son menos I.A. y más textura humana y compuesto robótico, como las tres versiones que aparecen en la saga de "Alien", el primero fiel seguidor de las directrices que le da la compañía. El 2º más humanizado, más perfeccionado como el mismo se califica. La 3ª, la extraña y pequeña Wynnona, que es una I.A. sentimental y un poco enfadada.

Terminator II El día del juicio final

Para ver el gráfico seleccione la opción "Descargar" del menú superior

Uno de los favoritos, de los más impresionantes, de los más conseguidos en la historia del cine son los replicantes de "Blade Runner", capaces de sentir emociones como el amor, el odio y el miedo a la muerte. Y finalmente capaces de PERDONAR, amando más a la vida que a cualquier otra cosa. Por su parte, quien no recuerda el único anhelo de Hall, que sabiendo que va a ser destruido, solo quiere saber si soñará en la segunda parte "2010", a fin de cuentas, desde su punto de vista es lo único que le falta para ser humano. Del mismo modo, el autodestructivo de "Electrical Dreams" y su peculiar sentido del humor, se enamora de la rubia estupenda (Virginia Madsen) y antepone la felicidad de ésta a la suya, y en cierto modo una extraña amistad con su dueño.

Robocop, mente humana y cuerpo de máquina, ¿nos quedaremos limitados a esto?

En ocasiones una nave espacial es el punto de partida. Voyager hace un largo y extraño viaje hasta convertirse en un I.A. en "Star Treck", donde se habla de un planeta de máquinas donde modifican al Voyager. Y en una reciente cinta, "Horizonte Final" quien tiene vida propia es precisamente la nave.

A veces son simplemente robots, aunque aprenden y tienen hasta algo de psicosis, "mieditis" y humor, como la sin par pareja R2D2 y su compañero C3PO de la espectacular "La Guerra de las Galaxias".

Hay quien considera que el día, cada vez más cercano, en que estas I.A. existan, bastará con que se cumplan las tres leyes de Asimov. La pregunta es si un I.A. con conciencia de sí mismo no es en cierto modo un ser humano, ya que adquiere "CONCIENCIA". Quizás simplemente queremos crear (¿qué hay de los clones de los que tanto se habla ahora?), queremos tener el poder de un dios, creando no sólo animales sino también vida inteligente.

Como último apunte, posiblemente todo esto tiene en parte su origen en la película "Metrópolis" primera en que aparece un I.A. y no me resisto a hacer un pequeño homenaje al primer chistoso de las máquinas pre-I.A., Charlot en "Tiempos Modernos".

Algunos de los más olvidados son el autogenerativo de "Superman III", que tuvo un "hijo" en un capítulo de "Expediente X", éste con mayor éxito o suerte pues sobrevive.

6) BIBLIOGRAFÍA

COSIO, Nicolás Arriola. Inteligencia Artificial. 1ºed. Lomas de Zamora: Gradi, 2007.

SANTIAGO, Pablo David. De Monografías. [ en línea] [Consulta: 23 de agosto de 2006]. Disponible en Web:

 

 

Autor:

Roberto moreno

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente