Tendencias de Desarrollo del Software Guía 09 –Inteligencia Artificial Guía 09 –Inteligencia Artificial Tendencias de Desarrollo del Software
24
21
Inteligencia Artificial
Introducción
En ciencias de la computación se denomina inteligencia artificial (IA) a la capacidad de razonar de un agente no vivo.
Él término "inteligencia artificial" fue acuñado formalmente en 1956 durante la conferencia de Darthmounth.
John McCarthy, acuñó el término y la definió: "Es la ciencia e ingeniería de hacer máquinas inteligentes, y especialmente programas de cómputo inteligentes." .
Los sistemas de IA actualmente son parte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia (ajedrez), videojuegos, áreas de control de sistemas, planificación automática, la habilidad de responder a diagnósticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones, percepciones y acciones que pueden ser obtenidas y producidas, respectivamente por sensores físicos y sensores mecánicos en máquinas, pulsos eléctricos u ópticos en computadoras, tanto como por entradas y salidas de bits de un software y su entorno
   Definiciones
Al carecer de una definición ajustada, la IA se ha tornado pragmática en tanto que define como sistema inteligente a aquel que se comporta como un hombre "inteligente", en las mismas circunstancias. El Test de Turing para establecer si una máquina es o no inteligente consiste en interrogarla por medio de una teletipo (sin contacto físico), el evaluador no debe poder discernir si el que responde es una máquina o una persona. En la práctica esta definición es evasiva y relega a la IA a la frontera de las ciencias de la computación, todo sistema de cómputo que en sus orígenes pudo ser considerado inteligente, al cabo de cierto tiempo deja de serlo (FORTRAN, Traductores, POO, S.E., PERCEPTRON).
Temas
Algoritmos genéticos (análogo al proceso de evolución de las cadenas de ADN).
Redes neuronales artificiales (análogo al funcionamiento físico del cerebro de animales y humanos). Las redes neuronales son implementadas en dispositivos de lógica programable (FPGAs) para su posterior aplicación
Razonamiento mediante una lógica formal análogo al razonamiento abstracto humano.
implementación de algoritmos de inteligencia artificial aplicados a robótica móvil, utilizando el entorno de programación Visual Studio.NET.
Reconocimiento de imágenes
Minirobots para exploración (Robot teleoperado para inspección y detección de fallas, minas, daños en el interior de cañerías, etc.)
Reconocimiento de voz
Entorno de trabajo y experimentación para el reconocimiento del habla humana Un entorno con 4 variables celulares y moleculares CGAT
Categorías de la inteligencia artificial
Stuart Russell y Peter Norvig diferencian estos tipos de la inteligencia artificial:5
Sistemas que piensan como humanos
Estos sistemas tratan de emular el pensamiento humano; por ejemplo las redes neuronales artificiales. La automatización de actividades que vinculamos con procesos de pensamiento humano, actividades como la Toma de decisiones, resolución de problemas, aprendizaje.
Sistemas que actúan como humanos
Estos sistemas tratan de actuar como humanos; es decir, imitan el comportamiento humano; por ejemplo la robótica. El estudio de cómo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor.7
Sistemas que piensan racionalmente
Es decir, con lógica (idealmente), tratan de imitar o emular el pensamiento lógico racional del ser humano; por ejemplo los sistemas expertos. El estudio de los cálculos que hacen posible percibir, razonar y actuar.
Sistemas que actúan racionalmente (idealmente)
Tratan de emular de forma racional el comportamiento humano; por ejemplo los agentes inteligentes .Está relacionado con conductas inteligentes en artefactos fisicos.
Escuelas
Inteligencia artificial convencional
Se conoce también como IA simbólico-deductiva. Está basada en el análisis formal y estadístico del comportamiento humano ante diferentes problemas:
Razonamiento basado en casos: Ayuda a tomar decisiones mientras se resuelven ciertos problemas concretos y aparte de que son muy importantes requieren de un buen funcionamiento.
Sistemas expertos: Infieren una solución a través del conocimiento previo del contexto en que se aplica y ocupa de ciertas reglas o relaciones.
Redes bayesianas: Propone soluciones mediante inferencia probabilística.
Inteligencia artificial basada en comportamientos: que tienen autonomía y pueden auto-regularse y controlarse para mejorar.
Smart process management: facilita la toma de decisiones complejas, proponiendo una solución a un determinado problema al igual que lo haría un especialista en la actividad.
Inteligencia artificial computacional
La Inteligencia Computacional (también conocida como IA subsimbólica-inductiva) implica desarrollo o aprendizaje interactivo (por ejemplo, modificaciones interactivas de los parámetros en sistemas conexionistas). El aprendizaje se realiza basándose en datos empíricos.
Historia
Aristóteles (384-322 a. C.) fue el primero en describir un conjunto de reglas que describen una parte del funcionamiento de la mente para obtener conclusiones racionales
En 1315 Ramon Llull en su libro Ars magna tuvo la idea de que el razonamiento podía ser efectuado de manera artificial.
En 1936 Alan Turing diseña formalmente una Máquina universal que demuestra la viabilidad de un dispositivo físico para implementar cualquier cómputo formalmente definido.
En 1943 Warren McCulloch y Walter Pitts presentaron su modelo de neuronas artificiales,
En 1955 Herbert Simon, Allen Newell y J.C. Shaw, desarrollan el primer lenguaje de programación orientado a la resolución de problemas, el IPL-11. Un año más tarde desarrollan el LogicTheorist, el cual era capaz de demostrar teoremas matemáticos.
En 1957 Newell y Simon continúan su trabajo con el desarrollo del General Problem Solver (GPS). GPS era un sistema orientado a la resolución de problemas.
En 1958 John McCarthy desarrolla en el Instituto de Tecnología de Massachusetts (MIT) el LISP. Su nombre se deriva de LISt Processor. LISP fue el primer lenguaje para procesamiento simbólico.
En 1959 Rosenblatt introduce el Perceptrón.
Robert K. Lindsay a finales de los 50 y comienzos de la década del 60 desarrolla «Sad Sam», un programa para la lectura de oraciones en inglés y la inferencia de conclusiones a partir de su interpretación.
En 1963 Quillian desarrolla las redes semánticas como modelo de representación del conocimiento.
En 1964 Bertrand Raphael construye el sistema SIR (Semantic Information Retrieval) el cual era capaz de inferir conocimiento basado en información que se le suministra. Bobrow desarrolla STUDENT.
A mediados de los años 60, aparecen los sistemas expertos, que predicen la probabilidad de una solución bajo un set de condiciones. Por ejemplo
DENDRAL, iniciado en 1965 por Buchanan, Feigenbaum y Lederberg, el primer Sistema Experto, que asistía a químicos en estructuras químicas complejas euclidianas,
MACSYMA, que asistía a ingenieros y científicos en la solución de ecuaciones matemáticas complejas.
Años 1968-1970 Terry Winograd desarrolló el sistema SHRDLU, que permitía interrogar y dar órdenes a un robot que se movía dentro de un mundo de bloques.
En 1968 Minsky publica Semantic Information Processing.
En 1968 Seymour Papert, Danny Bobrow y Wally Feurzeig desarrollan el lenguaje de programación LOGO.
En 1969 Alan Kay desarrolla el lenguaje Smalltalk en Xerox PARC y se publica en 1980.
En 1973 Alain Colmenauer y su equipo de investigación en la Universidad de Aix-Marseille crean PROLOG (del francés PROgrammation en LOGique) un lenguaje de programación ampliamente utilizado en IA.
En 1973 Shank y Abelson desarrollan los guiones, o scripts, pilares de muchas técnicas actuales en Inteligencia Artificial y la informática en general.
En 1974 Edward Shortliffe escribe su tesis con MYCIN, uno de los Sistemas Expertos más conocidos, que asistió a médicos en el diagnóstico y tratamiento de infecciones en la sangre.
En las décadas de 1970 y 1980, creció el uso de sistemas expertos, como MYCIN: R1/XCON, ABRL, PIP, PUFF, CASNET, INTERNIST/CADUCEUS, etc. Algunos permanecen hasta hoy (Shells) como EMYCIN, EXPERT, OPSS.
En 1981 Kazuhiro Fuchi anuncia el proyecto japonés de la quinta generación de computadoras.
En 1986 McClelland y Rumelhart publican Parallel Distributed Processing (Redes Neuronales).
En 1988 –La OMG - establece los lenguajes Orientados a Objetos
En 1997 Garry Kasparov, campeón mundial de ajedrez, pierde ante la computadora autónoma Deep Blue.
En el año 2009 ya hay en desarrollo sistemas inteligentes terapéuticos que permiten detectar emociones para poder interactuar con niños autistas.
En el año 2011 IBM desarrolló una supercomputadora llamada Watson , la cual ganó una ronda de tres juegos seguidos de Jeopardy, venciendo a sus dos máximos campeones, y ganando un premio de 1 millón de dólares que IBM luego donó a obras de caridad.
Anécdotas
Existen personas que al dialogar sin saberlo con un chatbot no se percatan de hablar con un programa, de modo tal que se cumple la prueba de Turing cuando se formuló:
“Existirá Inteligencia Artificial cuando no seamos capaces de distinguir entre un ser humano y una maquina en una conversación o propuesta formal”
Muchos de los investigadores sobre IA sostienen que «la inteligencia es un programa capaz de ser ejecutado independientemente de la máquina que lo ejecuta, sea computador o cerebro».
Críticas
Las principales críticas a la inteligencia artificial tienen que ver con su capacidad de imitar por completo a un ser humano.
Estas críticas ignoran que ningún humano individual tiene capacidad para resolver todo tipo de problemas.
Autores como Howard Gardner han propuesto que existen inteligencias múltiples.
Un sistema de inteligencia artificial debería resolver problemas. Por lo tanto es fundamental en su diseño la delimitación de los tipos de problemas que resolverá y las estrategias y algoritmos que utilizará para encontrar la solución.
Solución de problemas
En los humanos la capacidad de resolver problemas tiene dos aspectos:
los aspectos innatos y
los aspectos aprendidos.
Los aspectos innatos
permiten por ejemplo almacenar y recuperar información en la memoria y
Los aspectos aprendidos
permiten el saber resolver un problema matemático mediante el algoritmo adecuado.
Del mismo modo que un humano debe disponer de herramientas que le permitan solucionar ciertos problemas, los sistemas artificiales deben ser programados de modo tal que puedan resolver ciertos problemas.
La maquina de Turing
Muchas personas consideran que el test de Turing ha sido superado, citando conversaciones en que al dialogar con un programa de inteligencia artificial para chat no saben que hablan con un programa. Sin embargo, esta situación no es equivalente a un test de Turing, que requiere que el participante esté sobre aviso de la posibilidad de hablar con una máquina.
La habitación china
Otros experimentos mentales como la Habitación china de John Searle han mostrado cómo una máquina podría simular pensamiento sin tener que tenerlo, pasando el test de Turing sin siquiera entender lo que hace. Esto demostraría que la máquina en realidad no está pensando, ya que actuar de acuerdo con un programa preestablecido sería suficiente.
Tecnologías de apoyo
• Interfaces de usuario
• Visión artificial
• Smart process management (manejo de procesos inteligentes)
Aplicaciones de la inteligencia artificial
• Lingüística computacional
• Minería de datos (Data Mining)
• Proceso y automatización Industriales (Inmotica) y hogar (Domotica).
• En la Medicina
• Mundos virtuales
• Procesamiento de lenguaje natural (Natural Language Processing)
• Robótica y Andrótica
• Mecatrónica
• Sistemas de apoyo a la toma de decisiones
• Videojuegos
• Prototipos informáticos
• Análisis de sistemas dinámicos.
• Smart Process Management
• Simulación de multitudes
Algoritmos heurísticos
Algoritmos genéticos
Inteligencia artificial computacional (IAC)
La Inteligencia Computacional (también conocida como IA subsimbólica-inductiva) implica desarrollo o aprendizaje interactivo (por ejemplo, modificaciones interactivas de los parámetros en sistemas conexionistas). El aprendizaje se realiza basándose en datos empíricos.
Es una rama de la inteligencia artificial centrada en el estudio de mecanismos adaptativos para permitir el comportamiento inteligente de sistemas complejos y cambiantes.
Se presenta como una alternativa a la GOFAI ("Good Old-Fashioned Artificial Intelligence"), tratando de no confiar en algoritmos heurísticos tan habituales en la Inteligencia Artificial más tradicional.
Técnicas IAC
Dentro de la Inteligencia Computacional podemos encontrar técnicas como las
Redes Neuronales,
Computación Evolutiva,
Swarm Intelligence,
Sistemas Inmunes Artificiales
Sistemas difusos. También se relaciona con técnicas como los
Fractales,
Teoría del Caos,
Wavelets,
Autómata celular
Aprendizaje Automático
Sistemas Expertos
Realidad simulada
Redes Bayesianas
Teoría del caos
• Algoritmo hormiga
• Robótica evolutiva • Agentes Inteligentes
• Aprendizaje automático
• Red neuronal artificial
• Bot conversacional
• Sistema inteligente
• Cibernética
• Dr. Abuse
• Eliza
• Cerebro artificial
• Razonamiento automatizado
Bibliografía Recomendada
o A.Kvitca: Resolución de problemas con Inteligencia Artificial
o Barr,Feigenbaum: The handbook of Artificial Intelligence
o E.Rich: Artificial Inteligence
o Golzein,Carnota: Inteligencia Artificial aplicada
o N.Nilsson: Principles of Artificial Intelligence
o Sowa: Conceptual Structures
o Hartnell: Inteligencia Artificial
o Furtado: Paradigmas de Lenguajes de Programación
o Shell: Expert Systems Practical Int.
o Valente: Logo 1 y 2
o Borland: Turbo Prolog
o Barr,Feigenbaun: The Handbook of A. I.- Volumen 1
o Barr,Feigenbaun: The Handbook of A. I.- Volumen 2
o Berk: 10 Lisp
o Winston: Lisp
o Scott: The Robotic Revolution - Mulisp
o Nilsson: Problem Solving Method in A. I.
o Kowalsky: Logic for Problem Solving
o Winston: Artificial Intelligence
o Monro: Basic Básico
o OPS83
Manual
o Bratko
Prolog in A. I.
Volumen 1
o Bratko
Prolog in A. I.
Volumen 2
o Goldzein,Carnota
A. I. Aplicada
o Micro Expert
Manual
o Sowa
Conceptual Structures
o Anderson
Proving Program Correctness
o Minsky
Robotica
o Feigenbaum
La Quinta Generación
o Minsky
La Sociedad de la Mente
o Geneserth,Nilsson
Logical Fundations of A. I.
o Kandel
Fuzzy Mathematical Thecnics.
o Hughes,Cresswell
Introduction to Modal Logics
o Tim O’Shea
Advances in A.I.
o Naishtat
Lógica para Computación
o Bauer
Software Engineering
o Ward,Mellor
Structured Development for Real Time Systems
Volumen 1 y 2
o Jeffrey
The Logic of Decision
o Microsoft
Mulisp86
Manual
o Microsoft
Mulisp86
Manual
o Carnota
S. E. y Representación del Conocimiento
o Kvitca
Resolución de Problemas en A. I.
o Vidart
Programación Lógica y Funcional
o Takahashi
Introducao a P.O. O.
o Savadosvsky
Contucao de Interpretadores de L. N.
o Wirth
Pascal
o Martinez
Sistemas Expertos en OPS5
o Browton,Farrell
Expert Systems in OPS5
o Cox
Object Oriented Programming
o Dijktra
A Discipline do Programming
Reconocedores de Voz:
• Dr. Juan Prawda Witemberg;
Métodos y Modelos de Investigación de operaciones
Volumen 2;
Editorial México Limusa;1993
• A.T. Barucha Reid.;
Elements of the theory of Markov processes and their aplications.
McGraw Hill
1960
• Giuliano Carli and Roberto Gretter.;
A start-end point detection algorithm for a real time acoustic Front-End based on DSP32C VME Board.
IRST Istituto per la Ricerca Scientifica e Tecnologica.
• M. S. Ryan * and G. R.Nudd;
The Viterbi Algorithm.
Department of Computer Science
University of Warwick, Coventry; England.
February
1993
• Yoshua Bengio;
Markov Models for Secuential Data.
Neural Computing Surveys 2
129-162
1999.
• Joe Tebelskis;
Speech Recognition using Neural Networks.
School of Computer Science Carnegie Mellon University
Pittsburgh,Pennsylvania.
May
1995
• L.R. Rabiner;
A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition.
Proceedings of the IEEE, Vol 77, Nº 2
February
1989
• L. R. Rabiner and B.H Juang;
Fundamentals of Speech Recognition. Prentice Hall Kit para Procesamiento de Imagenes para Vision Artificial:
• Alberto Domingo Ajenjo;
Tratamiento Digital de Imágenes
1993
• David Young;
Hough Transforms , 1993, http://www.cogs.susx.ac.uk/users/davidy/teachvision/vision4.html Medición de distancias empleando franjas de Moire:
• Pablo Meilán, Anibal Laquidara y Mario Garavaglia.
Hidden grids, moiré patterns, and 3D metrology
2001.
• Mario Garavaglia y Anibal Laquidara.
Optoelectronic hidden grids and moiré patterns: basics and applications in distance measurement
Optical Engineering
2001.
• Alberto Domingo Ajenjo
Tratamiento digital de imágenes
1993.
Transformada de Hough
• Alberto Domingo Ajenjo
Tratamiento digital de imágenes
1993
• David Young
Hough Transforms
1993 Implementación de redes neuronales en FPGA
Gonzalez, Hernando
Redes Neuronales Artificiales
Carpio, Grau
VHDL: Lenguaje para sintesis y modelado de circuitos
Xilinix Databook
Altera Databook
Medición de distancias utilizando medios optoelectrónicos
Alberto Domingo Ajenjo
Tratamiento Digital de Imágenes
1993
Placa de E/S para puerto USB
Compac, Intel, Microsoft, NEC
Universal Serial Bus Specification
Revisión 1.1
September 1998.
Compac, Intel, Microsoft, NEC
HID Specification
1998.
Axelson, Jan
USB Complete
1999.
http://www.answermath.com/inteligencia-artificial.htm
http://www.secyt.frba.utn.edu.ar/gia/inicio.htm
www.dariolara.com www.dariolara.com
|