monografia laboratorio de ia
DESCRIPTION
recopilación de los conceptos de laboratorio de inteligencia artificialTRANSCRIPT
ContenidoINTELIGENCIA ARTIFICIAL.............................................................................................................2
1. INTRODUCCIÓN................................................................................................................2
2. DEFINICIÓN.......................................................................................................................2
3. HISTORIA DE LA INTELIGENCIA ARTIFICIAL.......................................................................4
4. MARCO TEORICO..............................................................................................................6
4.1. INTELIGENCIA DE LAS MÁQUINAS............................................................................6
4.2. DEFINICIÓN DE SISTEMAS INTELIGENTES.................................................................6
4.3. ELEMENTOS DE LA INTELIGENCIA ARTIFICIAL...........................................................7
4.4. APLICACIONES DE LA INTELIGENGIA ARTIFICIAL.......................................................8
4.4.1. ROBÓTICA.........................................................................................................8
4.4.2. PROCESAMIENTO DE LENGUAJES NATURALES...............................................12
4.4.3. RECONOCIMIENTO DE PATRONES..................................................................14
4.4.4. SISTEMAS EXPERTOS.......................................................................................18
4.4.4.1. APRENDIZAJE AUTOMATICO.......................................................................20
4.4.4.2. MODELOS DE APRENDIZAJE........................................................................20
4.4.4.3. TIPOS DE APRENDIZAJE...............................................................................21
4.4.5. DISTINCIÓN ENTRE APRENDIZAJE SUPERVISADO Y NO SUPERVISADO...........23
4.4.6. BUSQUEDAS EN INTELIGENCIA ARTIFICIAL.....................................................24
4.4.6.1. ARBOL.........................................................................................................24
4.4.6.2. RECORRIDO DE ARBOLES............................................................................24
4.4.6.3. BUSQUEDA EN PROFUNDIDAD...................................................................25
4.4.6.4. BÚSQUEDA EN ANCHURA...........................................................................26
4.4.6.5. ALGORITMOS DE BUSQUEDA A*................................................................26
5. BIBLIOGRAFIA.................................................................................................................28
1
INTELIGENCIA ARTIFICIAL
1. INTRODUCCIÓN
Desde la aparición de las computadoras, se han ido
efectuando investigaciones científicas y tecnológicas con el fin de que éstas puedan
resolver y realizar algunas actividades propias de los seres humanos, y se ha logrado
automatizar muchos procesos consiguiendo eficiencia en el tiempo y recursos invertidos
para realizar cualquier tipo de actividad.[6]
Las primeras investigaciones sobre la IA fueron realizadas en el siglo XX, dada por una
sucesión de etapas o períodos alternativos de éxito y otros de abandono, donde ha
creado expectativas que no siempre son descubiertas o no tienen su fundamento
tecnológico. En la actualidad, vemos a esto como un enfoque que toma fuerza con el
pasar del tiempo debido a sus logros y avances en las últimas décadas.
2. DEFINICIÓNLa Inteligencia Artificial es una rama de la ciencia de la computación que comprende el estudio y creación de sistemas computarizados que manifiestan cierta forma de inteligencia: sistemas que aprenden nuevos conceptos y tareas, sistemas que pueden razonar y derivar conclusiones útiles acerca del mundo que nos rodea, sistemas que pueden comprender un lenguaje natural o percibir y comprender una escena visual, y sistemas que realizan otro tipo de actividades que requieren de inteligencia humana.Como toda disciplina de reciente creación, la IA no se encuentra unificada en términos de objetivos y métodos de investigación. Recientemente, parte de los esfuerzos de los investigadores en esta área se han dedicado a la definición de dichos objetivos y al recuento de las herramientas metodológicas utilizadas hasta ahora. Como resultado de este esfuerzo, que dista mucho de su conclusión, se han definido algunos acuerdos básicos sobre el área y sus estrategias. Por ahora, es suficientemente claro que el objetivo de la IA es el de entender la
naturaleza de la inteligencia a través del diseño de sistemas computacionales que la
exhiban. En forma más concreta, puede afirmarse que, en lo que ha transcurrido de su
corta historia, la
IA ha estado dirigida por tres objetivos generales:
El análisis teórico de las posibles explicaciones del comportamiento inteligente.
2
La explicación de habilidades mentales humanas.
La construcción de artefactos (computadoras) inteligentes.
Con estos propósitos en su agenda de investigación, los estudiosos de la IA han
recurrido al uso de cuatro diferentes estrategias metodológicas: el desarrollo de
tecnologías útiles en esta área, la simulación, el modelamiento, y la construcción de
teoría sobre la inteligencia artificial. El desarrollo de tecnologías de computación ha
sido una empresa titánica que los ingenieros en electrónica han tomado en sus manos,
sin embargo, sólo una pequeña parte de lo que se conoce como ciencia de la
computación puede incluirse dentro de la IA. No existe todavía un criterio preciso con
el cual distinguir cuándo un sistema computacional es un sistema de IA, pero el acuerdo
general es que cualquier máquina que desempeñe una función mental que tendría que
ser realizada por una inteligencia humana es un ejemplo de IA.
La simulación que se hace en IA ha intentado reproducir algunas de las características
inteligentes de los seres humanos. Estas reproducciones han buscado abiertamente la
similitud entre una computadora y los seres humanos. La elaboración de simulaciones
ha sugerido la posibilidad de explorar los procesos cognoscitivos humanos, sin embargo
los esfuerzos en esta línea, a diferencia del modelamiento, han estado dedicados a
producir comportamiento humano inteligente en las computadoras más que a entenderlo
o explicarlo.
El modelamiento, por otra parte, tiene como objeto la utilización de los sistemas de IA
para entender a la inteligencia humana. Ha sido tradicionalmente utilizado por
psicólogos y no tiene como requisito necesario el uso de computadoras, De hecho,
muchas de las teorías sobre cognición han utilizado modelos en computadoras sin hacer
referencia a ellas, por ejemplo, la teoría sobre memoria semántica o sobre
representación mental.
Finalmente, el trabajo teórico en IA ha abierto por primera vez la posibilidad de teorizar
sobre la inteligencia sin hacer necesariamente referencia a la inteligencia humana. Es
decir, se ha propuesto la formulación de una teoría de la inteligencia "pura".
3. HISTORIA DE LA INTELIGENCIA ARTIFICIALEl nacimiento real de la IA se produce para el año 1950, cuando Norbet Wiener
desarrolló el principio de la retroalimentación. Esta técnica consiste, por ejemplo, en la
tecnología del termostato, comparar la temperatura actual del entorno con la deseada y,
según los resultados, aumentarla o disminuirla. En 1955 Newell y Simon desarrollan la
Teoría de la lógica la cual permitió desarrollar un programa que exploraba la solución a
3
un problema utilizando ramas y nudos, seleccionando únicamente las ramas que más
parecían acercarse a la solución correcta de los problemas siendo éste el primer
programa inteligente basado en su modelo de procesamiento de información
Basándose en los estudios sobre memoria asociativa, el equipo Newell-Shaw-Simon
construyó los primeros lenguajes de procesamiento de información (IPL-I, IPL-II)
utilizados en el diseño de su "Logic Theorist Machine" que se convirtió en la primera
máquina "inteligente". Esta máquina fue capaz no sólo de memorizar y aprender, sitio
que consiguió demostrar de una manera original y "creativa", es decir no prevista por
sus creadores, algunos de los teoremas propuestos por Bertrand Russell en los
Principios (Russell and Whitehead, 1925).
En el año 1957 aparece la primera versión de “The General Problem Solver” (GPS), un
programa capaz de solucionar problemas de sentido común. El GPS utilizaba la teoría
de la retroalimentación de Wiener.Desde sus orígenes la IA se relacionó con juegos
como el ajedrez y las damas, probablemente debido a que los juegos de mesa
constituyen modelos de situaciones reales en las que hay que calcular, solucionar
problemas, tomar decisiones, corregir errores, recordar, etc. A pesar de que esta línea de
investigación ha sido casi totalmente abandonada en la actualidad, muchos de los
avances teóricos y metodológicos de la IA se deben a ella. Por ejemplo, Samuel diseñó
en 1961 un programa que jugaba damas y que era capaz de aprender de sus errores, es
decir, era capaz de adaptar su comportamiento en relación con eventos pasados. Lo más
controversial de este programa fue que, aunado a su capacidad de aprendizaje la de
memoria, con el tiempo consiguió derrotar invariablemente a su creador.
Hacia mediados de los sesenta la IA se convierte en un área en la que se interesan e
interactúan especialistas de diversas disciplinas: lógicos, psicólogos, matemáticos,
lingüistas, filósofos, etc. Uno de los grandes temas de IA en esta década fue el estudio
del lenguaje. En la mayoría de los estudios iniciales sobre el lenguaje, se atacó el
problema de diseñar una máquina que fuera capaz de traducir de un idioma a otro. El
énfasis se hizo en el análisis de la sintaxis, en lugar del significado, estrategia que se
abandonó relativamente pronto. Los investigadores interesados en esta área de la IA
pronto descubrieron que traducción no es lo mismo que transformación, y que, como
consecuencia de ello, de alguna manera la máquina tendría que "entender" un texto
4
antes de poder traducirlo. Los esfuerzos se orientaron hacia una definición de la
comprensión que pudiera simularse en una computadora.
Ya en el año 1970 se produce el advenimiento de los Sistemas Expertos. Los
Sistemas Expertos se han utilizado para ayudar a los médicos a diagnosticar
enfermedades e informar a los mineros a encontrar vetas de mineral. Al mismo tiempo,
en 1970. David Marr propone nuevas teorías sobre la capacidad de reconocimiento
visual de las diferentes máquinas
Para el 1986 las ventas de hardware y software relacionados con la IA se
contabilizan por 425,000.00 millones de dólares. Compañías como DuPont, General
Motors, y Boeing utilizan sistemas expertos a principios de la década de los 80 y éstos
sistemas expertos se convertirán en un standard a finales de la misma.
En los 90 la IA fue utiliza de forma efectiva en la Guerra del Golfo sobre sistemas de
misiles visores, los soldados y otros.
4. MARCO TEORICO
4.1. INTELIGENCIA DE LAS MÁQUINAS
La inteligencia es la capacidad que tienen los seres humanos, a diferencia de
otras especies, de aprender, procesar información y a partir de ello resolver problemas.
La inteligencia artificial tiene como modelo natural las funcionalidades inteligentes
del hombre, cuya motivación es intentar construir máquinas que pudieran pensar
como el hombre o por lo menos emular alguna de las capacidades que manifieste cierta
inteligencia.
A grandes rasgos se puede decir que la inteligencia artificial es una ciencia que intenta
crear programas para máquinas con el fin de imitar el comportamiento y la comprensión
humana para que sea capaz de aprender, reconocer y pensar.
5
4.2. DEFINICIÓN DE SISTEMAS INTELIGENTES
La definición de inteligencia en el diccionario de la lengua española: la
capacidad de adquirir y aplicar conocimiento. Ahora, un concepto algo más técnico y
claro de lo que es la inteligencia, se puede decir que es una propiedad del sistema que se
usa cuando los procedimientos de focalizar la atención, búsqueda combinatoria y
generalización son aplicados a la información de entrada en orden a producir la salida.
El sistema inteligente tiene la habilidad de actuar apropiadamente en su entorno con
incertidumbre, donde una acción adecuada es la que aumenta la probabilidad del éxito,
y el éxito es la consecución de los sub objetivos de comportamiento que respaldan el
último objetivo del sistema.
El estudio y desarrollo de sistemas inteligentes requiere significativos esfuerzos de
investigación multidisciplinario para integrar conceptos y métodos de distintas áreas.
Para considerar a una máquina o sistema inteligente, debe aprobar el test de Turing
(hombre y máquina realizan la misma tarea con el mismo resultado).
Por lo tanto, una máquina o sistema inteligente es el que realiza el proceso de analizar,
organizar y convertir los datos en conocimiento, donde el conocimiento del sistema es
información estructurada adquirida y aplicada para reducir la ignorancia o la
incertidumbre sobre una tarea específica.
4.3. ELEMENTOS DE LA INTELIGENCIA ARTIFICIALEn verdad, la inteligencia artificial consiste en la asimilación de los procesos
inductivos y deductivos del cerebro humano. Este intento de imitación se enfrenta a
duras restricciones del hardware. Una computadora no es un cerebro; su complejidad
electrónica se encuentra a una distancia abismal de la superior complejidad neurológica
cerebral. La inteligencia artificial acepta el reto de la imitación de los procesos del
cerebro aplicando mucho ingenio para aprovechar los medios de que se dispone y que se
elaboran.
Sea cual sea la aplicación de que se trate, la lA se sustenta sobre los dos
elementos siguientes:
Estrategias de comportamiento inteligente.
Saber.
6
Estos elementos forman una construcción coherente: son forma y contenido, estructura
y materia. El primer elemento es el de las estrategias de comportamiento inteligente; se
conjuga en la disposición de reglas para formular buenas inferencias o conjeturas y,
también, en su utilidad para la búsqueda de una solución a la cuestión o tarea planteada.
De esta forma, las estrategias son la parte estructural o formal.
Por oposición, el segundo elemento significa lo material o el contenido, y, por
tanto, varía en cada caso de un modo más profundo; se trata del saber. En realidad, no se
puede pretender reunir el saber, sino los saberes. Por ejemplo, cada sistema experto
posee en memoria todos los conocimientos distintivos que tendría un especialista en la
materia, sea un médico, un abogado o un químico. El saber que se recoge tiene un
carácter especializado y alcanza un volumen conceptual considerable.
4.4. APLICACIONES DE LA INTELIGENGIA ARTIFICIAL Robótica.
Procesamiento de Lenguaje Natural.
Reconocimiento de Patrones.
Sistemas Expertos
Tutores Inteligentes.
Manipulación Inteligente de Base de Datos.
Programación Automática.
Visión Computarizada.
4.4.1. ROBÓTICAEl RIA (Robot Institute of America) define al robot como "un manipulador
multifuncional reprogramable, diseñado para mover materiales, partes, herramientas o
dispositivos especializados a través de movimientos variables programados para la
performance de una variedad de labores".
Esta definición indudablemente no abarca todas las posibilidades de aplicación
presente y futuras de los robots y a nuestro parecer, el robot es a la producción, lo que el
computador es para el procesamiento de datos, es decir una nueva y revolucionaria
concepción del sistema productivo cuyos alcances recién comienzan a percibirse en los
países altamente industrializados. Realmente los robots, no incorporan nada nuevo a la
tecnología en general, la novedad radica en la particularidad de su arquitectura y en los
objetivos que se procura con los mismos.
El trabajo del robot se limita generalmente a pocos movimientos repetitivos de
sus ejes, estos son casi siempre 3 para el cuerpo y 3 para la mano o puño, su radio de
7
acción queda determinado por un sector circular en el espacio donde éste alcanza a
actuar. Cuando las partes o piezas a manipular son idénticas entre ellas y se presentan en
la misma posición, los movimientos destinados a reubicar o montar partes se efectúan
mediante dispositivos articulados que a menudo finalizan con pinzas.
CRONOGRAMA SOBRE LA HISTORIA DE LA ROBÓTICA
FECHA DESARROLLO
SigloXVIII. A mediados del siglo XVIII J. de Vaucanson construyó varias muñecas
mecánicas de tamaño humano que ejecutaban piezas de música
1801 J. Jaquard invento su telar, que era una máquina programable para la
urdimbre
1805 H. Maillardet construyó una muñeca mecánica capaz de hacer dibujos.
1946 El inventor americano G.C. Devol desarrolló un dispositivo controlador
que podía registrar señales eléctricas por medio magnéticos y
reproducirlas para accionar una máquina mecánica. La patente
estadounidense se emitió en 1952.
1951 Trabajo de desarrollo con teleoperadores (manipuladores de control
remoto) para manejar materiales radiactivos. Patente de Estados Unidos
emitidas para Goertz (1954) y Bergsland (1958).
1952 Una máquina prototipo de control numérico fue objetivo de
demostración en el Instituto Tecnológico de Massachusetts después de
varios años de desarrollo. Un lenguaje de programación de piezas
denominado APT (Automatically Programmed Tooling) se desarrolló
posteriormente y se publicó en 1961.
1954 El inventor británico C. W. Kenward solicitó su patente para diseño de
8
robot. Patente británica emitida en 1957.
1954 G.C. Devol desarrolla diseños para Transferencia de artículos
programada. Patente emitida en Estados Unidos para el diseño en 1961.
1959 Se introdujo el primer robot comercial por Planet Corporation. Estaba
controlado por interruptores de fin de carrera.
1960 Se introdujo el primer robot ‘Unimate’’, basada en la transferencia de
articulaciones programada de Devol. Utilizan los principios de control
numérico para el control de manipulador y era un robot de transmisión
hidráulica.
1961 Un robot Unimate se instaló en la Ford Motors Company para atender
una máquina de fundición de troquel.
1966 Trallfa, una firma noruega, construyó e instaló un robot de pintura por
pulverización.
1968 Un robot móvil llamado ‘Shakey’’ se desarrollo en SRI (standford
Research Institute), estaba provisto de una diversidad de sensores así
como una cámara de visión y sensores táctiles y podía desplazarse por el
suelo.
1971 El ‘Standford Arm’’, un pequeño brazo de robot de accionamiento
eléctrico, se desarrolló en la Standford University.
1973 Se desarrolló en SRI el primer lenguaje de programación de robots del
tipo de computadora para la investigación con la denominación WAVE.
Fue seguido por el lenguaje AL en 1974. Los dos lenguajes se
desarrollaron posteriormente en el lenguaje VAL comercial para
Unimation por Víctor Scheinman y Bruce Simano.
1974 ASEA introdujo el robot Irb6 de accionamiento completamente
eléctrico.
1974 Kawasaki, bajo licencia de Unimation, instaló un robot para soldadura
por arco para estructuras de motocicletas.
1974 Cincinnati Milacron introdujo el robot T3 con control por computadora.
1975 El robot ‘Sigma’’ de Olivetti se utilizó en operaciones de montaje, una
de las primitivas aplicaciones de la robótica al montaje.
1976 Un dispositivo de Remote Center Compliance (RCC) para la inserción
9
de piezas en la línea de montaje se desarrolló en los laboratorios Charles
Stark Draper Labs en Estados Unidos.
1978 El robot T3 de Cincinnati Milacron se adaptó y programó para realizar
operaciones de taladro y circulación de materiales en componentes de
aviones, bajo el patrocinio de Air Force ICAM (Integrated Computer
Aided Manufacturing).
1978 Se introdujo el robot PUMA (Programmable Universal Machine for
Assambly) para tareas de montaje por Unimation, basándose en diseños
obtenidos en un estudio de la General Motors.
1979 Desarrollo del robot tipo SCARA (Selective Compliance Arm for
Robotic Assambly) en la Universidad de Yamanashi en Japón para
montaje. Varios robots SCARA comerciales se introdujeron hacia 1981.
1980 Un sistema robótico de captación de recipientes fue objeto de
demostración en la Universidad de Rhode Island. Con el empleo de
visión de máquina el sistema era capaz de captar piezas en orientaciones
aleatorias y posiciones fuera de un recipiente.
1981 Se desarrolló en la Universidad de Carnegie-Mellon un robot de
impulsión directa. Utilizaba motores eléctricos situados en las
articulaciones del manipulador sin las transmisiones mecánicas
habituales empleadas en la mayoría de los robots.
1982 IBM introdujo el robot RS-1 para montaje, basado en varios años de
desarrollo interno. Se trata de un robot de estructura de caja que utiliza
un brazo constituido por tres dispositivos de deslizamiento ortogonales.
El lenguaje del robot AML, desarrollado por IBM, se introdujo también
para programar el robot SR-1.
1983 Informe emitido por la investigación en Westinghouse Corp. Bajo el
patrocinio de National Science Foundation sobre un sistema de montaje
programable adaptable (APAS), un proyecto piloto para una línea de
montaje automatizada flexible con el empleo de robots.
1984 Robots 8. La operación típica de estos sistemas permitía que se
desarrollaran programas de robots utilizando gráficos interactivos en una
computadora personal y luego se cargaban en el robot.
10
CARACTERÍSTICAS DE LOS ROBOTS
Versatilidad: Potencialidad estructural de ejecutar tareas diversas y/o ejecutar una
misma tarea de forma diversa. Esto impone al robot una estructura mecánica de
geometría variable.
Autoadaptibilidad al entorno: Significa que un robot debe, por sí solo, alcanzar su
objetivo (ejecutar su tarea) a pesar de las perturbaciones imprevistas del entorno a lo
largo de la ejecución de su tarea. Esto supone que el robot sea consciente de su entorno
y que por lo tanto posea sentidos artificiales.
4.4.2. PROCESAMIENTO DE LENGUAJES NATURALESDEFINICIÓN
Es un campo de las computación, inteligencia y lingüística que estudia las interacciones
entre las computadoras y el lenguaje humano. El PLN se ocupa de la formulación e
investigación de mecanismos eficaces computacionalmente para la comunicación entre
personas y máquinas por medio de lenguajes naturales. El PLN no trata de la
comunicación por medio de lenguajes naturales de una forma abstracta, sino de diseñar
mecanismos para comunicarse que sean eficaces computacionalmente que se puedan
realizar por medio de programas que ejecuten o simulen la comunicación. Los modelos
aplicados se enfocan no sólo a la comprensión del lenguaje de por sí, sino a aspectos
generales cognitivos humanos y a la organización de la memoria. El lenguaje natural
sirve sólo de medio para estudiar estos fenómenos. Hasta la década de 1980, la mayoría
de los sistemas de PNL se basaban en un complejo conjunto de reglas diseñadas a mano.
A partir de finales de 1980, sin embargo, hubo una revolución en PNL con la
introducción de algoritmos de aprendizaje para el procesamiento del lenguaje.
COMPONENTES
Análisis morfológico. El análisis de las palabras para extraer raíces, rasgos
flexivos, unidades léxicas compuestas y otros fenómenos.
Análisis sintáctico. El análisis de la estructura sintáctica de la frase mediante
una gramática de la lengua en cuestión.
Análisis semántico. La extracción del significado de la frase, y la resolución de
ambigüedades léxicas y estructurales.
11
Análisis pragmático. El análisis del texto más allá de los límites de la frase, por
ejemplo, para determinar los antecedentes referenciales de los pronombres.
Planificación de la frase. Estructurar cada frase del texto con el fin de expresar
el significado adecuado.
Generación de la frase. La generación de la cadena lineal de palabras a partir
de la estructura general de la frase, con sus correspondientes flexiones,
concordancias y restantes fenómenos sintácticos y morfológicos.
APLICACIONES
Síntesis del discurso
Análisis del lenguaje
Comprensión del lenguaje
Reconocimiento del habla
Síntesis de voz
Generación de lenguajes naturales
Traducción automática
Respuesta a preguntas
Recuperación de la información
Extracción de la información
4.4.3. RECONOCIMIENTO DE PATRONESDEFINICIÓN
El reconocimiento de patrones es la ciencia que se encarga de la descripción y
clasificación (reconocimiento) de objetos, personas, señales, representaciones, etc. Esta
ciencia trabaja con base en un conjunto previamente establecido de todos los posibles
objetos (patrones) individuales a reconocer. El margen de aplicaciones del
reconocimiento de patrones es muy amplio, sin embargo las más importantes están
relacionadas con la visión y audición por parte de una máquina, de forma análoga a los
seres humanos. El esquema de un sistema de reconocimiento de patrones consta de
varias etapas relacionadas entre sí (los resultados de una etapa pueden modificar los
12
parámetros de etapas anteriores). La figura 2.1 muestra un esquema general de un
sistema de reconocimiento de patrones, en el cual el sensor tiene como propósito
proporcionar una representación factible de los elementos del universo a ser
clasificados. Es un sub-sistema crucial ya que determina los límites en el rendimiento de
todo el sistema. La Extracción de Características es la etapa que se encarga, a partir del
patrón de representación, de extraer la información discriminatoria eliminando la
información redundante e irrelevante. El Clasificador es la etapa de toma de decisiones
en el sistema. Su rol es asignar los patrones de clase desconocida a la categoría
apropiada.
SISTEMA BASICO DE RECONOCIMIENTO DE PATRONES
Un sistema completo de reconocimiento de patrones incluye un sensor que recoja
fielmente los elementos del universo a ser clasificado, un mecanismo de extracción de
características cuyo propósito es extraer la información útil, eliminando la información
redundante e irrelevante, y finalmente una etapa de toma de decisiones en la cual se
asigna a la categoría apropiada los patrones de clase desconocida a priori.
Sensor
El sensor es el dispositivo encargado de la adquisición de datos. Ha de ser capaz de
transformar magnitudes físicas o químicas, llamadas variables de instrumentación, en
magnitudes eléctricas. Las variables de instrumentación dependen del tipo de sensor y
pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración,
inclinación, desplazamiento, presión, fuerza, torsión, humedad, etc.
13
Extracción de características
Es el proceso de generar características que puedan ser usadas en el proceso de
clasificación de los datos. En ocasiones viene precedido por un preprocesador de la
señal, necesario para corregir posibles deficiencias en los datos debido a errores del
sensor, o bien para preparar los datos de cara a posteriores procesos en las etapas de
extracción de características o clasificación.
Las características elementales están explícitamente presentes en los datos adquiridos y
pueden ser pasados directamente a la etapa de clasificación. Las características de alto
orden son derivadas de las elementales y son generadas por manipulaciones o
transformaciones en los datos.
Selección de variables
Consiste en seleccionar cuál es el tipo de características o rasgos más adecuados para
describir los objetos. Para ello, se deben localizar los rasgos que inciden en el problema
de manera determinante.
Esta etapa también puede ser diseñada dentro de la clasificación.
La selección de variables puede diferenciarse según los objetivos buscados:
Para la clasificación: la selección de características relevantes, a partir del
conjunto total de características que describen a los objetos, se hace con dos
motivos fundamentales: mejorar la clasificación o aumentar la velocidad
de procesamiento.
Para la representación: decidir qué características representan mejor a cierto
tipo de objetos.
Estrategias de selección de variables:
wrapper: la selección de características se hace usando información del
mecanismo de clasificación.
filter: la selección se hace con un criterio independiente del clasificador.
Incluye algunos métodos como:
14
Tablas de decisión: le busca un subconjunto mínimo de variables que no
introduzca confusión entre clases.
ID3: le crea un árbol de decisión y se selecciona un conjunto de variables
que permita discriminar entre clases.
Teoría de testores: le buscan todos los subconjuntos de variables
discriminantes minimales, con estos se evalúa la relevancia de cada variable
y se seleccionan aquellas con mayor relevancia.
APLICACIONES
Los sistemas de reconocimiento de patrones tienen diversas aplicaciones. Algunas de las
más relevantes y utilizadas actualmente son:
Previsión meteorológica: poder clasificar todos los datos meteorológicos según
diversos patrones, y con el conocimiento a priori que tenemos de las diferentes
situaciones que pueden aparecer nos permite crear mapas de predicción automática.
Reconocimiento de caracteres escritos a mano o a máquina: es una de las
utilidades más populares de los sistemas de reconocimiento de patrones ya que los
símbolos de escritura son fácilmente identificables.
Reconocimiento de voz: el análisis de la señal de voz se utiliza actualmente en
muchas aplicaciones, un ejemplo claro son los teleoperadores informáticos.
Aplicaciones en medicina: análisis de biorritmos, detección de irregularidades en
imágenes de rayos-x, detección de células infectadas, marcas en la piel...
15
Reconocimiento de huellas dactilares: utilizado y conocido por la gran mayoría,
mediante las huellas dactilares todos somos identificables y con programas que
detectan y clasifican las coincidencias, resulta sencillo encontrar correspondencias.
Reconocimiento de caras: utilizado para contar asistentes en una manifestación o
simplemente para detectar una sonrisa, ya hay diferentes cámaras en el mercado con
esta opción disponible.
Interpretación de fotografías aéreas y de satélite: gran utilidad para propuestas
militares o civiles, como la agricultura, geología, geografía, planificación urbana...
Predicción de magnitudes máximas de terremotos.
Reconocimiento de objetos: con importantes aplicaciones para personas con
discapacidad visual.
Reconocimiento de música: identificar el tipo de música o la canción concreta que
suena.
4.4.4. SISTEMAS EXPERTOSDEFINICIÓN
En teoría, los sistemas expertos son capaces de razonar siguiendo pasos comparables a
los que sigue un especialista (médico, biólogo, geólogo, matemático, etc.), cuando
resuelve un problema propio de su disciplina. Por ello el creador de un sistema experto
debe comenzar por identificar y recoger, del experto humano, los conocimientos que
éste utiliza: conocimientos teóricos, pero sobre todo los conocimientos empíricos
adquiridos en la práctica.
El estudio y desarrollo de los sistemas expertos (SES) comenzó a mediados de la década
del 60. Entre 1965 y 1972 fueron desarrollados varios de estos sistemas, muchos de
ellos tuvieron un alcance muy limitado, otros como mycin, dendral y prospector,
constituyeron la base histórica del SES y aún en la actualidad son de gran interés para
los investigadores que se dedican al estudio y construcción de los mismos.
Los sistemas expertos o especializados constituyen una instrumentalización de la IA
muy útil. Son sistemas que acumulan saber perfectamente estructurado, de tal manera
que sea posible obtenerlo gradualmente según las situaciones. Aquí desaparece el
16
concepto de información en favor del de saber. Un sistema experto no es una biblioteca
que aporta información, sino un consejero o especialista en una materia, de ahí que
aporte saber, consejo experimentado.
Un sistema experto es un sofisticado programa de computadora. Posee en su memoria y
en su estructura una amplia cantidad de saber y, sobre todo, de estrategias para
depurarlo y ofrecerlo según los requerimientos. Ello convierte al sistema (software-
hardware) en un especialista en la materia para lo que está programado; se utiliza como
apoyo o elemento de consulta para investigadores, médicos, abogados, geólogos, y otros
profesionales. En la actualidad existe un gran número de sistemas expertos repartidos
entre los campos más activos de la investigación y de la profesionalidad.
Un ejemplo sería INTERNIST, un sistema experto en medicina. La medicina atrae, por
el momento, buena parte de la atención de los diseñadores de sistemas y cuenta con el
mayor número de programas. El sistema INTERNIST contempla el diagnóstico de las
enfermedades de medicina interna u hospitalaria. Fue desarrollado en la universidad
norteamericana de Pittsburg en 1 977.
En los centros médicos que disponen de dicho sistema, el médico acude a la consola de
la computadora después de haber reconocido al paciente y haber realizado los análisis
que cree pertinentes. Entonces la máquina solicita al médico información sobre el
paciente, y se establece una conversación a través de la pantalla y el teclado, similar a la
que se establecería entre un médico y un reputado especialista al que se acude para
contrastar un diagnóstico.
La computadora recibe el historial médico del enfermo, los síntomas y los resultados de
pruebas y análisis. Con esta información, el sistema experto relaciona los datos de
forma muy elaborada y comienza por desechar posibles diagnósticos hasta que llega a
los que parecen más probables. Finalmente, elige uno y lo da a conocer con todo el
detalle del proceso. Luego justifica su elección y el porqué de la posible enfermedad:
cuadro clínico, historial, tratamiento, posibilidades de error, etc.
La elaboración de los sistemas expertos exige el despliegue de un amplio equipo de
ingenieros de lA y una larga tarea de organización del saber. El equipo trabaja con algún
especialista en la materia de la aplicación; en el caso del INTERNIST, con brillantes y
especializados médicos. Estos especialistas son denominados «informantes». La meta
consiste en plasmar computacionalmente los «pasos» que el informante sigue para
descartar unos diagnósticos y escoger el más acertado. Ello requiere pacientes sesiones
17
para trasvasar el conocimiento del médico especialista a una programación que ha de
incluir procedimientos de diagnóstico y conocimientos de enfermedades.
Por ser los SES programas basados en conocimiento, la programación de SES incluye
como aspecto fundamental la programación del conocimiento, la cual hace uso de la
representación explícita del conocimiento a utilizar por el sistema y de su interpretación
y manipulación lógica por medio de mecanismos de inferencia, que permitan deducir
nuevo conocimiento a partir del que ya se conoce.
4.4.4.1. APRENDIZAJE AUTOMATICO
En ciencias de la computación el aprendizaje automático o aprendizaje de
máquinas es una rama de la inteligencia artificial cuyo objetivo es desarrollar
técnicas que permitan a las computadoras aprender. De forma más concreta, se
trata de crear programas capaces de generalizar comportamientos a partir de una
información no estructurada suministrada en forma de ejemplos. Es, por lo
tanto, un proceso de inducción del conocimiento. En muchas ocasiones el
campo de actuación del aprendizaje automático se solapa con el de la
estadística, ya que las dos disciplinas se basan en el análisis de datos. Sin
embargo, el aprendizaje automático se centra más en el estudio de la
complejidad computacional de los problemas. Muchos problemas son de clase
NP-hard, por lo que gran parte de la investigación realizada en aprendizaje
automático está enfocada al diseño de soluciones factibles a esos problemas. El
aprendizaje automático puede ser visto como un intento de automatizar algunas
partes del método científicomediante métodos matemáticos.
El aprendizaje automático tiene una amplia gama de aplicaciones, incluyendo
motores de búsqueda, diagnósticos médicos, detección de fraude en el uso de
18
tarjetas de crédito, análisis del mercado de valores, clasificación de secuencias
de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica.
4.4.4.2. MODELOS DE APRENDIZAJE
El aprendizaje automático tiene como resultado un modelo para resolver una
tarea dada. Entre los modelos se distinguen:
• Los modelos geométricos, construidos en el espacio de instancias y que
pueden tener una, dos o múltiples dimensiones. Si hay un borde de decisión
linear entre las clases, se dice que los datos son linealmente separables. Un
límite de decisión linear se define como w * x = t, donde w es un vector
perpendicular al límite de decisión, x es un punto arbitrario en el límite de
decisión y t es el umbral de la decisión
• Los modelos probabilísticos, que intentan determinar la distribución de
probabilidades descriptora de la función que enlaza a los valores de las
características con valores determinados. Uno de los conceptos claves para
desarrollar modelos probabilísticos es la estadística bayesiana.
• Los modelos lógicos, que transforman expresan las probabilidades en
reglas organizadas en forma de árboles de decisión.
Los modelos pueden también clasificarse como modelos de agrupamiento y modelos de
gradiente. Los primeros tratan de dividir el espacio de instancias en grupos. Los
segundos, como su nombre lo indican, representan un gradiente en el que se puede
diferenciar entre cada instancia. Clasificadores geométricos como las máquinas de
vectores de apoyo son modelos de gradientes
4.4.4.3. TIPOS DE APRENDIZAJE
Los diferentes algoritmos de Aprendizaje Automático se agrupan en una taxonomía en
función de la salida de los mismos. Algunos tipos de algoritmos son:
Aprendizaje supervisado
El algoritmo produce una función que establece una correspondencia entre las entradas
y las salidas deseadas del sistema. Un ejemplo de este tipo de algoritmo es el problema
de clasificación, donde el sistema de aprendizaje trata de etiquetar (clasificar) una serie
19
de vectores utilizando una entre varias categorías (clases). La base de conocimiento del
sistema está formada por ejemplos de etiquetados anteriores. Este tipo de aprendizaje
puede llegar a ser muy útil en problemas de investigación biológica, biología
computacional y bioinformática.
Aprendizaje no supervisado
Todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado
tan sólo por entradas al sistema. No se tiene información sobre las categorías de esos
ejemplos. Por lo tanto, en este caso, el sistema tiene que ser capaz de reconocer patrones
para poder etiquetar las nuevas entradas.
Aprendizaje semi supervisado
Este tipo de algoritmos combinan los dos algoritmos anteriores para poder clasificar de
manera adecuada. Se tiene en cuenta los datos marcados y los no marcados.
Aprendizaje por refuerzo
El algoritmo aprende observando el mundo que le rodea. Su información de entrada es
el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus
acciones. Por lo tanto, el sistema aprende a base de ensayo-error.
Transducción
Similar al aprendizaje supervisado, pero no construye de forma explícita una función.
Trata de predecir las categorías de los futuros ejemplos basándose en los ejemplos de
entrada, sus respectivas categorías y los ejemplos nuevos al sistema.
Aprendizaje multi-tarea
Métodos de aprendizaje que usan conocimiento previamente aprendido por el sistema
de cara a enfrentarse a problemas parecidos a los ya vistos. El análisis computacional y
de rendimiento de los algoritmos de aprendizaje automático es una rama de la
estadística conocida como teoría computacional del aprendizaje.
20
El aprendizaje automático las personas lo llevamos a cabo de manera automática ya que
es un proceso tan sencillo para nosotros que ni nos damos cuenta de cómo se realiza y
todo lo que implica. Desde que nacemos hasta que morimos los seres humanos llevamos
a cabo diferentes procesos, entre ellos encontramos el de aprendizaje por medio del cual
adquirimos conocimientos, desarrollamos habilidades para analizar y evaluar a través de
métodos y técnicas así como también por medio de la experiencia propia. Sin embargo,
a las máquinas hay que indicarles cómo aprender, ya que si no se logra que una máquina
sea capaz de desarrollar sus habilidades, el proceso de aprendizaje no se estará llevando
a cabo, sino que solo será una secuencia repetitiva. También debemos tener en cuenta
que el tener conocimiento o el hecho de realizar bien el proceso de aprendizaje
automático no implica que se sepa utilizar, es preciso saber aplicarlo en las actividades
cotidianas, y un buen aprendizaje también implica saber cómo y cuándo utilizar
nuestros conocimientos.
Para llevar a cabo un buen aprendizaje es necesario considerar todos los factores que a
este le rodean, como la sociedad, la economía, la ciudad, el ambiente, el lugar, etc. Por
lo tanto, es necesario empezar a tomar diversas medidas para lograr un aprendizaje
adecuado, y obtener una automatización adecuada del aprendizaje.
4.4.5. DISTINCIÓN ENTRE APRENDIZAJE SUPERVISADO Y NO SUPERVISADO
El aprendizaje supervisado se caracteriza por contar con información que especifica
qué conjuntos de datos son satisfactorios para el objetivo del aprendizaje. Un ejemplo
podría ser un software que reconoce si una imagen dada es o no la imagen de un rostro:
para el aprendizaje del programa tendríamos que proporcionarle diferentes imágenes,
especificando en el proceso si se trata o no de rostros.
En el aprendizaje no supervisado, en cambio, el programa no cuenta con datos que
definan que información es satisfactoria o no. El objetivo principal de estos programas
suele ser encontrar patrones que permitan separar y clasificar los datos en diferentes
grupos, en función de sus atributos. Siguiendo el ejemplo anterior un software de
aprendizaje no supervisado no sería capaz de decirnos si una imagen dada es un rostro o
no pero sí podría, por ejemplo, clasificar las imágenes entre aquellas que contienen
rostros humanos, de animales, o las que no contienen. La información obtenida por un
algoritmo de aprendizaje no supervisado debe ser posteriormente interpretada por una
persona para darle utilidad.
21
APLICACIONES
Motores de búsqueda
Diagnóstico médico
Detección de fraudes con el uso de tarjetas de crédito
Análisis del mercado de valores
Clasificación de secuencias de ADN
Reconocimiento del habla
Robótica
Minería de datos
Big Data4.4.6. BUSQUEDAS EN INTELIGENCIA ARTIFICIAL
4.4.6.1. ARBOL
En ciencias de la computación y en informática, un árbol es una estructura de
datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos
conectados). Un nodo es la unidad sobre la que se construye el árbol y puede
tener cero o más nodos hijos conectados a él. Se dice que un nodo a es padre de
un nodo b si existe un enlace desde a hasta b (en ese caso, también decimos que
b es hijo de a). Sólo puede haber un único nodo sin padres, que llamaremos raíz.
Un nodo que no tiene hijos se conoce como hoja. Los demás nodos (tienen padre
y uno o varios hijos) se les conoce como rama.
TIPOS DE ARBOLES
Árboles Binarios
Árbol de búsqueda binario auto-balanceable
Árboles AVL
Árboles Rojo-Negro
Árbol AA
Árbol de segmento
Árboles Multicamino
Árboles B (Árboles de búsqueda multicamino
autobalanceados)
Árbol-B+
Árbol-B*
22
4.4.6.2. RECORRIDO DE ARBOLES
En ciencias de la computación, el recorrido de árboles refiere al proceso de visitar de
una manera sistemática, exactamente una vez, cada nodo en una estructura de datos de
árbol (examinando y/o actualizando los datos en los nodos). Tales recorridos están
clasificados por el orden en el cual son visitados los nodos. Los siguientes algoritmos
son descritos para un árbol binario, pero también pueden ser generalizados a otros
árboles.
RECORRIDO
Comparado a las estructuras de datos lineales como las listas enlazadas y arreglos
unidimensionales, que tienen un método canónico de recorrido, las estructuras
arborescentes pueden ser recorridas de muchas maneras diferentes. Comenzando en la
raíz de un árbol binario, hay tres pasos principales que pueden ser realizados y el orden
en la cual son realizados define el tipo de recorrido. Estos pasos (en ningún orden
particular) son: ejecución de una acción en el nodo actual (referido como “visitando” el
nodo), recorriendo al nodo hijo de la izquierda, y recorriendo al nodo hijo de la derecha.
Así el proceso más fácilmente descrito a través de la recursión.
Los nombres dados para un estilo particular de recorrido vienen de la posición del
elemento de raíz con respecto a los nodos izquierdo y derecho. Imagine que los nodos
izquierdo y derecho son constantes en espacio, entonces el nodo raíz pudiera colocarse a
la izquierda del nodo izquierdo (pre-orden), entre el nodo izquierdo y derecho (in-
orden), o a la derecha del nodo derecho (post-orden).
Con el fin de ilustrar, se asume que los nodos izquierdos tienen siempre prioridad sobre
los nodos derechos. Este ordenamiento puede ser invertido mientras el mismo orden sea
asumido para todos los métodos de recorrido.
4.4.6.3. BUSQUEDA EN PROFUNDIDAD
Una Búsqueda en profundidad (en inglés DFS o Depth First Search) es un algoritmo
que permite recorrer todos los nodos de un grafo o árbol (teoría de grafos) de manera
ordenada, pero no uniforme. Su funcionamiento consiste en ir expandiendo todos y cada
uno de los nodos que va localizando, de forma recurrente, en un camino concreto.
Cuando ya no quedan más nodos que visitar en dicho camino, regresa (Backtracking),
de modo que repite el mismo proceso con cada uno de los hermanos del nodo ya
23
procesado.Análogamente existe el algoritmo de búsqueda en anchura (BFS o Breadth
First Search).
4.4.6.4. BÚSQUEDA EN ANCHURA
En Ciencias de la Computación, Búsqueda en anchura (en inglés BFS - Breadth First
Search) es un algoritmo para recorrer o buscar elementos en un grafo (usado
frecuentemente sobre árboles). Intuitivamente, se comienza en la raíz (eligiendo algún
nodo como elemento raíz en el caso de un grafo) y se exploran todos los vecinos de este
nodo. A continuación para cada uno de los vecinos se exploran sus respectivos vecinos
adyacentes, y así hasta que se recorra todo el árbol.
Formalmente, BFS es un algoritmo de búsqueda sin información, que expande y
examina todos los nodos de un árbol sistemáticamente para buscar una solución. El
algoritmo no usa ninguna estrategia heurística.
Si las aristas tienen pesos negativos aplicaremos el algoritmo de Bellman-Ford en
alguna de sus dos versiones.
4.4.6.5. ALGORITMOS DE BUSQUEDA A*
El algoritmo de búsqueda A* (pronunciado "A asterisco" o "A estrella") se clasifica
dentro de los algoritmos de búsqueda en grafos. Presentado por primera vez en 1968 por
Peter E. Hart, Nils J. Nilsson y Bertram Raphael, el algoritmo A* encuentra, siempre y
cuando se cumplan unas determinadas condiciones, el camino de menor coste entre un
nodo origen y uno objetivo.
PROPIEDADES
Como todo algoritmo de búsqueda en amplitud, A* es un algoritmo completo: en caso
de existir una solución, siempre dará con ella.
Si para todo nodo n del grafo se cumple g(n) = 0, nos encontramos ante una búsqueda
voraz. Si para todo nodo n del grafo se cumple h(n) = 0, A* pasa a ser una búsqueda de
coste uniforme no informada.
Para garantizar la optimización del algoritmo, la función h(n) debe ser heurística
admisible, esto es, que no sobrestime el coste real de alcanzar el nodo objetivo.
De no cumplirse dicha condición, el algoritmo pasa a denominarse simplemente A, y a
pesar de seguir siendo completo, no se asegura que el resultado obtenido sea el camino
24
de coste mínimo. Asimismo, si garantizamos que h(n) es consistente (o monótona), es
decir, que para cualquier nodo n y cualquiera de sus sucesores, el coste estimado de
alcanzar el objetivo desde n no es mayor que el de alcanzar el sucesor más el coste de
alcanzar el objetivo desde el sucesor.
COMPLEJIDAD COMPUTACIONAL
La complejidad computacional del algoritmo está íntimamente relacionada con la
calidad de la heurística que se utilice en el problema. En el caso peor, con una heurística
de pésima calidad, la complejidad será exponencial, mientras que en el caso mejor, con
una buena h'(n), el algoritmo se ejecutará en tiempo lineal. Para que esto último suceda,
se debe cumplir que h'(x) \le g(y) - g(x) + h'(y) donde h' es una heurística óptima para el
problema, como por ejemplo, el coste real de alcanzar el objetivo.
COPLEJIDAD EN MEMORIA
El espacio requerido por A* para ser ejecutado es su mayor problema. Dado que tiene
que almacenar todos los posibles siguientes nodos de cada estado, la cantidad de
memoria que requerirá será exponencial con respecto al tamaño del problema.
5. BIBLIOGRAFIA
Luis Mª Gonzalo, Inteligencia Humana e Inteligencia Artificial, Madrid, 1987. ISBN 84-
7118-490-7
25
Víctor Gómez Pin, Entre lobos y autómatas. La causa del hombre, Espasa, Madrid,
2006. ISBN 978-84-670-2303-9
Adaraga Morales P., Zaccagnini Sancho J. L., Psicología e inteligencia artificial,
Editorial Trotta, Madrid, 1994. ISBN 84-87699-77-4
Alberto García Serrano, Inteligencia Artificial. Fundamentos, práctica y aplicaciones.,
Editorial RC Libros, 2012. ISBN 978-84-939450-2-2
Inteligencia artificial en Internet Movie Database
26