You are on page 1of 60

Inteligencia Artificial

MTI. Jos Rebrindanard Rubalcava Lpez

Unidad 5

Aplicaciones con tcnicas de IA

Plan de la unidad
1. 2. 3. 4. 5. 6. Robtica Redes Neuronales artificiales Visin artificial Lgica difusa Procesamiento del lenguaje natural Sistemas expertos

Robtica

Conceptos bsicos Clasificacin Desarrollos actuales

Robot
Agentes fsicos que realizan tareas manipulando el mundo fsico. Para lograr esto estn dotados de actuadores
Piernas Ruedas Pinzas

Estn equipados con sensores, para poder realizar mediciones del entorno que los rodea

Categoras de los Robot


Manipuladores
Brazos robticos ensambladores

Mviles
Se mueven en su entorno Robots de exploracin Aviones no tripulados

Humanoides
Asimo por ejemplo

Sensores
Son la interface de percepcin entre el robot y el ambiente. Existen dos categoras:
Pasivos
Como las cmaras, son dispositivos que capturan seales que son generadas por otras fuentes en su ambiente

Activos
Como los sonares, son sensores que envan seales al ambiente y miden las seales que llegan de regreso

2 clasificacin
Tanto sensores activos y pasivos se pueden clasificar en tres categoras:
1. Sensores de Rango
Visin Estreo (mltiples cmaras desde diferentes puntos de vista) Laser Sensores de contacto GPS

2.

Sensores de localizacin

3.

Sensores propioceptivos

Informan al robot sobre su propio movimiento Acelermetros Sensores de fuerza Sensores de torque

Percepcin
El proceso de percepcin es aquel en el que el robot toma las mediciones del ambiente y las pone en trminos internos para interpretar localmente.

Redes neuronales

Conceptos bsicos Clasificacin Desarrollos actuales y aplicaciones

Las RN son un modelo natural basado en el comportamiento de las redes neuronales naturales. Son un intento por simular de manera cercana el funcionamiento real de la funcin cognitiva del ser humano

En 1943 McCulloch y Pitts desarrollan un modelo que simulaba la funcin de una neurona.

En el modelo de McCulloch y Pitts se simula el comportamiento de las neuronas por medio de lo siguiente:
Entradas Pesos Funcin de activacin salidas

La entrada de la neurona es:

La funcin de activacin es dada por el umbral Oi (output i)


-1 if Si< i 1 if Si i

Si = wij xj

Con esto demostraron que se poda bajo esta estructura generar compuertas lgicas (AND, OR, NOT) Esta primera arquitectura se le conoca como perceptrn simple

La capacidad
Las redes neuronales se volvieron mas potentes que muchos paradigmas de la IA, las aplicaciones en las que se pueden usar son las siguientes:
Aprendizaje Clasificacin Almacenar informacin

El aprendizaje de la red se realiza a partir del ajuste de los pesos de las neuronas Como requisito a diferencia de las neuronas biolgicas las artificiales requieren que sus entradas sean sncronas, no as, las redes biolgicas que usan la suma de espacio temporal.

Estructura de las RN

El modelo multicapa (anterior) difiere del modelo del perceptrn simple, la diferencia es que de manera intermedia contiene varias capas ocultas. Un perceptrn de dos capas puede encontrar regiones poligonales, uno de tres o ms capas puede discernir regiones arbitrarias Perceptrn multicapa

Las redes neuronales multicapa pueden entender patrones ms complejos

Adaline
Muchos problemas no son de clasificacin, la naturaleza de sus salidas cambia, este usa reales en vez de enteros y vuelve el problema un solucionador general. Widrow y Hoff en 1960 crean ADAptative LInear NEuron, el modelo es idntico al perceptrn

El aprendizaje incluye la diferencia entre el valor real producido XP y el que debera de sacar dP. La regla delta | dP-YP|

Funciones de activacin
La funcin de activacin puede ser de varios tipos normalmente los mas usados son tres:
Lineal Sigmoidea Tangente hiperblica

Los valores de activacin normalmente van de los valores 0 a 1 o de -1 a 1

Visin

Conceptos bsicos Desarrollos actuales y aplicaciones

Usos
Clasificacin de objetos Reconocimiento de caractersticas en el espacio Filtrado de informacin a travs de imgenes Obtener informacin del entorno

La visin artificial o comprensin de imgenes describe la deduccin automtica de la estructura y propiedades del mundo del mundo tridimensional, a partir de una o varias imgenes bidimensionales

Esquema formal para un sistema de visin por computadora.

Processing como herramienta para el desarrollo de aplicaciones de visin es muy bueno, te aado algunos ejemplos muy simples para entender el concepto. Descarga Processing de su pagina descomprime y aade estos Sketch

Cargar la imagen de lo que tenemos en la web cam


import processing.video.*; Capture webcam; void setup() { size(640,480); smooth(); println(Capture.list()); webcam= new Capture(this, width,height,60); webcam.start();

void draw() { background(255); image(webcam,0,0); } void captureEvent(Capture webcam) { webcam.read(); }

Filtro binario a la webcam


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. import processing.video.*; Capture webcam; int numPixels; int threshold; void setup() { size( 640, 480 ); smooth(); webcam = new Capture( this, width, height, 30); webcam.start(); numPixels = webcam.width * webcam.height; threshold = 127; } void draw() 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. if ( webcam.available() ) { webcam.read(); image( webcam, 0, 0 ); loadPixels(); for ( int i = 0; i < numPixels; i++ ) { float b = brightness( webcam.pixels[i] ); if ( b > threshold ) { pixels[i] = color( 255 ); } else { pixels[i] = color( 0 ); } } updatePixels(); } fill( 255, 0, 0 ); noStroke(); rect( 10, 10, 110, 20 ); fill( 255 ); { 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. text( "Threshold: " + threshold, 14, 24 ); } void keyPressed() { if ( key == CODED ) { if ( keyCode == UP ) { threshold++; } if ( keyCode == DOWN ) { threshold--; } } }

Busca objetos brillosos de la camara


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. import processing.video.*; Capture webcam; color trackColor; int trackR; int trackG; int trackB; int topLeftX; int topLeftY; int bottomRightX; int bottomRightY; int maxColorDifference; void setup() { size( 640, 480 ); webcam = new Capture( this, width, height ); webcam.start(); trackColor = color( 255 ); trackR = (trackColor >> 16) & 0xff; trackG = (trackColor >> 8) & 0xff; trackB = trackColor & 0xff; maxColorDifference = 40; topLeftX = width; topLeftY = height; bottomRightX = 0; bottomRightY = 0; } void draw() { if ( webcam.available() ) { webcam.read(); image( webcam, 0, 0 ); loadPixels(); int counter = 0; for ( int j = 0; j < webcam.height; j++ ) { 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. for ( int i = 0; i < webcam.width; i++ ) { color c = webcam.pixels[counter]; int r = (c >> 16) & 0xff; int g = (c >> 8) & 0xff; int b = c & 0xff; float colorDifference = dist( r, g, b, trackR, trackG, trackB ); if ( colorDifference < maxColorDifference ) { if ( i < topLeftX ) { topLeftX = i; } if ( j < topLeftY ) { topLeftY = j; } if ( i > bottomRightX ) { bottomRightX = i; } if ( j > bottomRightY ) { bottomRightY = j; } } counter++; } } updatePixels(); // draw tracking color fill( trackColor ); noStroke(); rect( 0, 0, 20, 20 ); noFill(); stroke( 0 ); strokeWeight( 2 ); rect( topLeftX, topLeftY, bottomRightX - topLeftX, bottomRightY - topLeftY ); // reset tracking points 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. } } topLeftX = width; topLeftY = height; bottomRightX = 0; bottomRightY = 0; void mousePressed() { trackColor = webcam.get( mouseX, mouseY ); trackR = (trackColor >> 16) & 0xff; trackG = (trackColor >> 8) & 0xff; trackB = trackColor & 0xff; }

Procesamiento del lenguaje

Conceptos bsicos Desarrollos actuales y aplicaciones

El Procesamiento natural del lenguaje son aquellos algoritmos que permiten que la computadora entienda el lenguaje natural y que lo genere Es una sub rama de la IA que busca que las computadoras entiendan las oraciones escritas como si fueran humanos

Lenguaje Natural
Es un sistema basado en un conjunto de smbolos (letras) y un conjunto de reglas (gramtica).
Los smbolos combinados generan sentido y nueva informacin Las reglas gobiernan la manipulacin de los smbolos.

Ejemplos: Espaol, Ingles, Hindi, Francs, Chino

Procesamiento de lenguaje natural

Entendimiento del lenguaje Natural (NLU) Generacin del lenguaje Natural (NLG)

Lenguaje formal
Smbolo: caracteres, letras, dgitos Alfabeto: El infinito conjunto de smbolos
B={0,1} el alfabeto compuesto de 0s y 1s

Cadenas o palabras: Es una secuencia finita de smbolos de un alfabeto: 1111 00101 Lenguaje: es un conjunto de palabras de un alfabeto, su uso se describe a travs de la gramtica del lenguaje.

Pasos del PLN


Anlisis lxico

En este se identifican las palabras que pertenecen a un lenguaje. En esta parte se divide el texto en Tokens

Anlisis Sintctico

En esta fase se revisa la estructura gramatical en la oracin, las palabras se comparan en una estructura para conocer su relacin, en esta parte se pueden rechazar oraciones mal formadas. el va tienda a muchacho la.

Anlisis Semntico

En esta fase se verifica el significado del mensaje desde el contexto

Integracin del discurso

El significado de una oracin puede depender de las oraciones que la preceden o influir en el significado de oraciones posteriores

Anlisis Pragmtico

Significa obtener la representacin del lenguaje dependiendo de la situacin, para esta fase se requiere de un conocimiento del mundo

El rbol
Entre las tcnicas de PLN (procesamiento del lenguaje natural) tenemos el rbol de derivacin, para poder lograr realizar el mismo se necesita poder conocer la clasificacin de las palabras dentro del lenguaje.

La estructura de las oraciones, de cada lenguaje es diferente, es decir no se ha podido construir un Interprete de todos los lenguajes, el traductor de google por ejemplo es de tipo estadstico no de este tipo. Cabe mencionar que el espaol es uno de los lenguajes mas complicados y con mayor cantidad de reglas gramaticales, pero solo se hablar de el con un acercamiento

Las parte de la oracin


Sustantivo: nombrar personas, animales y objetos. Adjetivo: califica al sustantivo definiendo sus cualidades Pronombre: yo, tu, el nosotros, etc. Se utiliza para sustituir al sustantivo Artculo: para definir el nombre el, la, lo, los, las.

Verbo: la parte de la oracin que designa la accin. Adverbio: es la parte de la oracin que amplia la accin del verbo, adjetivo u otro adverbio.
Juan lleg ms tarde que nunca Luis ha estudiado mucho el tren se retras demasiado

Preposicin: a, ante, bajo, cabe, con, contra, de, desde, en, entre, hacia, hasta, para, por, segn, sin, sobre, tras.
Lo juro ante Dios Maana ir a Acapulco

Conjuncin: la parte de la oracin que junta a dos oraciones, frases o palabras:


Juan y Enrique Permite que te lo diga Necesito dinero ya que he de comprar muchas cosas

Por ejemplo en espaol existen las siguientes composiciones (frases) de verbo, sustantivo, preposicin y otros, esto se conoce como categora frase (phrasal category):

nominal Sintagma que tiene como ncleo un sustantivo: ''aquel da lluvioso es un sintagma nominal. preposicional Sintagma nominal inserto en la oracin mediante una preposicin: ''de madera es un sintagma preposicional. verbal Sintagma que tiene como ncleo un verbo: ''comimos muy bien es un sintagma verbal.

La categora lxica es el equivalente a nuestros estados terminales en nuestra gramtica. Incluye todas las palabras que incluya el lenguaje y que encajen en estas categoras.
Sustantivo Verbo Adjetivo Adverbio otros

Una gramtica simple (la gramtica espaola es muy compleja) NP (frase nominal), VP (frase verbal), frase Proposicional(PP), S (oracin), D(artculo), N (sustantivo), V(verbo)
S FN FV FN N|DN|NN|NNN VP V NP|V|V NP NP N {todos los sustantivos del leng.} V{todos los verbos del leng.} D {el, la, los, etc.}

Un problema aunado a esto es la ambigedad del rbol de derivacin, es decir, la cantidad de rboles de produccin que se pueden generar no es nica (por ejemplo los lenguajes de programacin no son ambiguos). Como mencionamos anteriormente, uno de los problemas es que el lenguaje no es una cosa simple de regularizar, no es algo simple de manejar, se maneja mas por procesos biolgicos que por procesos deterministas (como una gramtica por ejemplo)

La estructura de la gramtica se vincula con nuestras gramticas de lenguajes y autmatas

Otros modelos (ESTADSTICOS)


Dentro de esta categora podemos encontrar modelos que no son lgicos como el modelo anterior. Son modelos basados en probabilidades Supongamos que tengo un conjunto de palabras. El modelo parte de determinar
P(W1, W2, W3,,Wn) iP(wi|wi-1 )

N-Grama
Supongamos que queremos calcular la probabilidad de una frase P( woe is me| )= 0.000000007
P(woe| i-1)=.0002 P(isi|woe i-1)=.07 P(mei|is i-1)=.0005

Parece una probabilidad muy baja pero no importa, la situacin es que suponemos que tenemos muchas palabras en nuestro universo de palabras.

Este modelo tambin se puede usar aplicado a letras y no a palabras, es importante conocerlas, un ejemplo:
Ingles Hello world Guten tag, welt Salam Dnya Espaol Alemn Francs Arabe

Podemos ver las probabilidades acorde a las secuencias de letras


En esta tabla aparecen muestras de diferentes textos y se cuantificaron en orden de aparicin en los mismos, se puede determinar a que lenguaje pertenecen? Con la tcnica N grama estamos hablando de Bi-grama

Con 3-grama

You might also like