48
Desarrollo de Aplicaciones Móviles Sensibles al Contexto Lic. en Cs. de la Comp. e Ingeniería en Computación 5 – Aplicaciones Inteligentes Sensibles al Contexto: I Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1er. Cuatrimestre de 2016

Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads... · ¿Qué es “Inteligencia Artificial”? • Prueba de Turing pública y automática para diferenciar

  • Upload
    vandien

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Desarrollo de Aplicaciones Móviles

Sensibles al Contexto

Lic. en Cs. de la Comp. e Ingeniería en Computación

5 – Aplicaciones Inteligentes Sensibles al Contexto: I

Depto. de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur

1er. Cuatrimestre de 2016

Aplicaciones de Software• Las aplicaciones se desarrollan siguiendo un proceso de

software se inician con la determinación de la frontera del sistema, las entidades externas que aportan o reciben información del sistema y la descripción del mencionado flujo de datos.

• El análisis y el diseño de la aplicación desarrolla los procesos y datos que están dentro del borde especificado.

• El contexto es un simple “productor” de datos.

• Estos datos se ingresan al sistema por medio de un evento que genera un usuario (humano).

• La aplicación es una caja negra: el usuario introduce datos, el sistema los procesa de una forma programada y luego obtiene un resultado.

2

Aplicaciones Sensibles al Contexto• Las aplicaciones normales reaccionan al contexto de

manera indirecta: el usuario tiene que tomar la iniciativa de

informarle los cambios al sistema.

• Las aplicaciones sensibles al contexto deben reaccionarautomáticamente a los cambios en el contexto o ambiente donde se utilicen.

– La respuesta debe ser acorde a una situación particular.

• Necesidad de dotar a las aplicaciones de cierto grado de rasgos de comportamiento humano:

– incorporarle rasgos de inteligencia humana.

3

4

¿Qué es la INTELIGENCIA?

¿Qué es la Inteligencia?La capacidad de adquirir y aplicar conocimiento y habilidades.

Un ser inteligente exhibe las siguientes características:

• Actitudes mentales (creencias, deseos, intenciones).

• Capacidad de aprender.

• Capacidad para resolver problemas.

• Comprensión (incluyendo la habilidad de entender información inconsistente y ambigua).

• Capacidad de planeamiento (incluyendo la evaluación y consideración de alternativas).

• Entendimiento de los limites de su propio conocimiento y habilidades.

5

¿Qué es la Inteligencia?• Capacidad para distinguir situaciones similares.

• La capacidad de ser original, ser capaz de sintetizar conceptos y nuevas ideas, y ser capaz de desarrollar y usar analogías.

• Capacidad para generalizar conceptos: encontrar patrones en un conjunto de objetos o conceptos aparentemente diferentes.

• Capacidad para percibir y modelar el mundo en el que habita.

• Comprender y usar lenguaje (algún tipo de lenguaje).

6

7

¿Qué es la

INTELIGENCIA ARTIFICIAL?

Test de Turing

8

El interrogador intenta determina cuál es el humano y cuál es la máquina.

Testea la habilidad de las máquinas de exhibir comportamiento inteligente, o indistinguible del comportamiento humano.

¿Qué es “Inteligencia Artificial”?• Se considera que para pasar el “Turing test” una entidad

debería poseer capacidades de:

– Procesamiento de lenguaje natural

– Representación de conocimiento

– Razonamiento automático

– Aprendizaje (machine learning – aprendizaje de máquina)

• Para pasar completamente el “Turing Test”, debería tener además:

– Percepción (visión, audición, etc.)

– Robótica (manipulación del mundo físico)

9

¿Qué es “Inteligencia Artificial”?• Prueba de Turing pública y automática para diferenciar

máquinas de humanos):

– Este test es controlado por una máquina (con un algoritmo público), en lugar de por un humano como en el “Turing Test” -> Ejemplo similar: Pelicula “Exmachina”

• Captcha (o CAPTCHA): se trata de una prueba para determinar cuándo el usuario es o no humano.

– Consiste en que el usuario introduzca correctamente un conjunto de caracteres que se muestran en una imagen distorsionada que aparece en pantalla.

– Se supone que una máquina (aún) no es capaz de comprender e introducir la secuencia de forma correcta por lo que solamente un humano podría hacerlo (texto sacado de http://es.wikipedia.org/wiki/Captcha)

10

¿Qué es “Inteligencia Artificial”?

• Es una rama de la ciencia de la computación.

• John McCarthy junto con un grupo de científicos se juntaron en 1956 para hablar de este problema y acuñaron el término “Inteligencia Artificial”.

11

John McCarthy

John McCarthy dijo: “IA es la ciencia y la ingeniería de crear máquinas inteligentes, especialmente programas de computadora inteligentes.”

¿Qué podemos esperar de la IA?

12

Sistemas que

PIENSAN como

humanos

Sistemas que

PIENSAN

racionalmente

Sistemas que

SE

COMPORTAN

racionalmente

Sistemas que

SE

COMPORTAN

como humanos

¿Qué podemos esperar de la IA?• Sistemas que PIENSAN como humanos: objetivo es

entender cómo funciona la mente humana.

– Este tipo de IA busca desarrollar una teoría complete y exacta tanto del “hardware” humano (cuerpo/cerebro)

como del “software” (la mente).

– Ésta es el área de las ciencias cognitivas -> Inteligencia

artificial dura.

• Pensar racionalmente: el proceso de pensar esta gobernado por un conjunto de reglas formales.

– Para Aristóteles, “pensar” es un proceso y puede ser formalizado.

• Comportarse racionalmente: actuar de manera tal que permita alcanzar un conjunto de metas deseadas.

13

Sistemas que PIENSAN como humanos

• “Pensamiento” racional vs. “Comportamiento” racional:

– A veces no existe una acción racional que se pueda realizar.

– Algunos actos racionales no provienen de una inferencia racional: por ejemplo una acción refleja.

• Sistemas que SE COMPORTAN como humanos: sistemas que actúan como si fueran inteligentes.

– Por ejemplo realizan tareas cognitivas complejas pero no tienen consciencia propia.

– Se la conoce como inteligencia artificial débil.

14

Áreas dentro de la IAIA es un área muy grande, que incluye entre otros campos:

• Representación de Conocimiento

• Razonamiento

• Planeamiento

• Aprendizaje

• Robótica

• Sistemas de Visión

• Ciencias Cognitivas

• Procesamiento de Lenguaje Natural

15

IA Simbólica• Conjunto de métodos de IA basados en representaciones

simbólicas de alto nivel de los problemas, la lógica y búsqueda:

– Muchos aspectos de la inteligencia pueden alcanzarse con la manipulación de símbolos.

• Una de las formas más exitosas de IA simbólica se desarrollo en la década de los 80’: sistemas expertos los cuales usan una red de reglas de producción.

– Las reglas de producción conectan símbolos en una relación similar a un condicional (If-Then).

– Los sistemas expertos procesan las reglas para hacer deducciones y determinar que información adicional se necesita, usando símbolos entendible por los humanos.

16

IA No Simbólica• IA simbólica trata de codificar la mayor cantidad de

conocimiento (entendible por un humano) del dominio de

aplicación como sea posible en el sistema que se está

construyendo.

• Al contrario, la rama no simbólica, (conocida como “libre de

conocimiento”) ve la inteligencia como que no necesita

conocimiento experto o de especialistas, sólo la capacidad

de aprender (de la manera que sea posible).

• Esta área incluye los algoritmos genéticos, las redes

neuronales, colonias de hormigas y otras tecnologías

biológicamente inspiradas.

17

Sistemas Sensibles al Contexto• Una aplicación sensible al contexto se caracteriza por

tener:

– Mecanismos de sensores: utilizados para conocer y

advertir los cambios en el ambiente.

– Mecanismo de decisión: este está compuesto por una

serie de reglas del tipo “SI ocurre esta situación

ENTONCES tomar esta acción”.

18

IA en Sistemas Sensibles al Contexto• Es necesario emular/reproducir por medio de un dispositivo

de software, la inteligencia de un ser humano para:

– identificar cambios en el contexto,

– determinar el significado de los mismos,

– determinar si la medición es consistente y

– reaccionar en forma coherente (a lo esperado por el

usuario).

19

IA en Sistemas Sensibles al Contexto• Es necesario emular/reproducir por medio de un dispositivo

de software, la inteligencia de un ser humano para:

Identificar cambios en el contexto

Determinar el significado del mismo

20

Consolidación de Aspectos del Contexto

IA en Sistemas Sensibles al Contexto• Es necesario emular por medio de un dispositivo de

software, la inteligencia de un ser humano para:

Determinar si la medición es consistente

Reaccionar en forma coherente.

21

Comportamiento guiado porRazonamiento:

• Representación de conocimiento

• Maquina de inferencia

• Manejo de Inconsistencia e Incertidumbre

IA en Sistemas Sensibles al Contexto• Es necesario emular/reproducir por medio de un dispositivo

de software, la inteligencia de un ser humano para:

Identificar cambios en el contexto

Determinar la significación del mismo

22

Consolidación de Aspectos del Contexto

Consolidación de Aspectos del Contexto• El contexto de una aplicación se descompone en entidades

atómicas llamadas aspectos de contexto.

• Un aspecto de contexto registra una parte del contexto general y está ligado a uno o más sensores.

• Por ejemplo, el contexto de una aplicación está integrado por los aspectos de contexto: locación y tiempo.

– El aspecto locación se conecta a un sensor que identifique un lugar, por ejemplo un dispositivo GPS.

– El aspecto tiempo se conecta a un sensor que es en realidad un reloj.

23

Consolidación de Aspectos del Contexto

• Aspectos de contexto se pueden clasificar según el origen de los datos en:

– Sensados: toman datos directamente desde sensores. Elaboración mínima de los datos del sensor: validación de datos de entrada y asignación de una etiqueta. Por ejemplo, el aspecto de contexto “momento del día” toma la hora del sensor (reloj) y lo convierte en un valor semántico “noche”, cuando la hora se encuentra en el rango [20, 24].

– Derivados: hacen una agregación de datos. Toman datos procedentes de sensores o de otros aspectos derivados y producen un aspecto resultante mediante la ejecución de un proceso (una función matemática simple o incluir un algoritmo complejo relacionado con la inteligencia artificial).

24

Aspectos de Contexto Determinísticos

• El valor de un aspecto de contexto determinísticos se

consigue mediante un método de cálculo conocido, no hay

incertidumbre.

• Por ejemplo, si el aspecto de contexto “nivel de humo”

toma el valor “alto” y el aspecto de contexto “temperatura”

toma el valor “alto”, entonces el aspecto de contexto

“estado” de la oficina es “anormal”.

25

Aspectos de Contexto No Determinísticos

• El valor de un aspecto de contexto no determinístico se

consigue aplicando un algoritmo de inferencia, existe

incertidumbre.

• Generalmente se utiliza un algoritmo de inteligencia

artificial:

– La mayoría de estos algoritmos están basados en la

estadística y operan sobre datos históricos.

26

Aspectos de Contexto No Determinísticos

• Por ejemplo, una aplicación es sensible a un aspecto de

contexto “situación social”.

• Este aspecto deriva de otros aspectos como:

– locación, para determinar en que sala está cada persona;

– el tiempo, para saber si es mañana, tarde o noche y

– la fecha, para saber si es temporada de trabajo o vacaciones.

• Usando estos aspectos un algoritmo puede determinar si la

“situación social” toma los valores: “reunión de trabajo”,

“reunión por tomar clase” o “reunión irregular”.

27

Aspectos de Contexto No Determinísticos

• La aplicación podría inferir que el valor del aspecto “situación social” es “reunión irregular” y disparar una alarma al personal de seguridad, ya que podría tratarse de un robo.

• La inferencia se basa en episodios históricos.

– Por ejemplo, históricamente se observa que las “reuniones

irregulares” se producen cuando el aspecto locación es “centro de cómputos”, el aspecto tiempo es “noche” y el aspecto temporada es “vacaciones”.

• El algoritmo va a utilizar este aprendizaje cuando tenga que inferir el valor del aspecto “situación social”.

• Este valor se infiere con un cierto grado de incertidumbre.28

Reconocimiento Automático de Patrones (RAP)

• Es una rama del aprendizaje de máquina (machine

learning).

• Se enfoca en el reconocimiento de patrones e irregularidades en los datos: asignar una etiqueta a un

valor de entrada.

• Algoritmos de RAP apuntan a proveer una respuesta

razonable para cualquier input posible, y realizar el matching más probable de las entradas, teniendo en cuenta su desviación estadística.

• Existen dos tipos de machine learning (y por lo tanto de reconocimiento de patrones): supervisada y no

supervisada.

29

Aprendizaje Supervisado

• Es la tarea de inferir una función a partir de un conjunto de datos de entrenamiento etiquetados.

• Los datos de entrenamiento consisten de un conjunto de ejemplos: pares (objeto, valor), el valor (señal

supervisadora) es la clase a la corresponde el objeto (en general el objeto es un vector).

• Un algoritmo de aprendizaje supervisado analiza los datos de entrenamiento e infiere una función que puede usarse para clasificar datos nuevos (no vistos antes).

• El algoritmo requiere generalizar la información de los datos de entrenamiento a situaciones no conocidas de una manera “razonable”.

30

Aprendizaje No Supervisado

• Es la tarea de inferir una función para describir la estructura escondida a partir de datos sin etiquetar.

• Dado que los ejemplos provistos no están etiquetados, no hay error o señales de recompense para evaluar las soluciones potenciales.

• Los algoritmos más comunes corresponden a: métodos de clustering y modelos de redes neuronales, entre otros.

• Clustering: es la tarea de agrupar conjuntos de objetos de manera que los objetos en el mismo grupo (un cluster) son más similares entre sí que lo que son con respecto a objetos en otros grupos (clusters).

31

RAP en aplicaciones sensibles a contexto

• Algoritmos de clasificación son ejemplo de RAP (supervisado): reproducir el proceso que un humano realiza para distinguir entre objetos.

• Podemos usar clasificación para resolver el problema de Consolidación de Aspectos del Contexto.

• La entrada es un conjunto de ejemplos (clase definida), y se busca que el algoritmo construya un modelo que permita encontrar la clase a un ejemplo con clase desconocida.

• El ejemplo es una tupla (o un vector):

– En una tupla se tiene uno o más atributos inferidos (variables independientes) y un atributo clase (variable dependiente).

32

Tipos de algoritmos de clasificación

• Algoritmos de caja negra: énfasis en obtener alto grado de precisión en el proceso de inferencia.

– los modelos producidos son generalmente complejos y difíciles de entender.

• Algoritmos de caja blanca: énfasis está puesto en una representación inteligible del conocimiento obtenido por medio de los datos.

– La precisión en la respuesta es un aspecto secundario.

– Los árboles de decisión las redes bayesianas son ejemplos de este tipo de algoritmos.

33

Clasificadores Bayesianos• Representa el conocimiento cualitativo del modelo

mediante un grafo dirigido acíclico [Bielza2014]: – El conocimiento se especifica mediante relaciones de

independencia/dependencia entre las variables que componen el modelo.

• El aprendizaje se expresa mediante tablas de probabilidad condicionales (y se aplica el Teorema de Bayes). – Cada nodo de la red debe tener una tabla de probabilidades

condicionales vinculadas al nodo padre.

– Un clasificador basado en redes bayesianas utiliza la probabilidad a priori del atributo clase y las probabilidades condicionales de los atributos de inferencia, para obtener la probabilidad a posteriori del atributo clase.

34

Clasificadores Bayesianos• Etapas del aprendizaje de redes bayesianas [Acid 1997] [Kruse 1998]:

– Aprendizaje de la estructura

– Aprendizaje de los parámetros

• El aprendizaje de la estructura es a partir de ejemplos:

– Estructura dada por elicitación del conocimiento de expertos

– Algoritmos basados en scoring.

– Algoritmos basados en la identificación de independencia

condicional

• La estructura obtenida por expertos es la más sencilla si existe buena comunicación entre los analistas y los expertos.

35

Clasificadores Bayesianos• Los algoritmos basados en scoring buscan la estructura

que maximice o minimice una función.

• Los algoritmos basados en independencia condicional

obtienen la mejor red, identificando relaciones de

independencia condicional entre nodos.

– Se consigue por medio de pruebas estadísticas.

• El aprendizaje de parámetros se refiere a encontrar las

tablas de probabilidad condicional.

– Simplemente se debe usar las frecuencias relativas obtenidas

mediante el conjunto de datos de aprendizaje.

36

Clasificadores Bayesianos (Ejemplo)• Considerar las siguientes 5 variables aleatorias:

– B: ocurre un robo en la casa - E: ocurre un terremoto en la casa

– A: suena la alarma - J: John llama para denunciar la alarma

– M: Mary llama para denunciar la alarma

37

• Nuestra aplicación quiere determinar si el contexto es “ocurre un robo

en la casa”.

• Para esto intenta computar: “la

probabilidad de

que B sea

verdadero dado

que J y M son verdaderos”:

P(B|J,M)

Clasificadores basados en distancia• Este tipo de clasificador se basa en el cálculo de la

distancia entre los ejemplos de aprendizaje y el ejemplo a clasificar [Yang2005].

• La idea central es que la clase de un ejemplo a clasificar,

será la misma que la del ejemplo de aprendizaje más

cercano.

• Varias propuestas para el cálculo de “distancia”, la más conocida es la distancia Euclidea.

• El cálculo de la distancia con ejemplos están formados por atributos nominales, se debe establecer una convención:

– Por ej., la distancia entre dos valores nominales es 0 cuando son iguales, y 1 en caso contrario.

38

Clasificadores basados en distancia• El algoritmo más popular de este tipo es el K-neighbors.

– La regla del vecino más próximo simplemente asigna la clase del ejemplo más próximo (1-nearest neighbor).

– Una variante de este método consiste en asignar la clase mayoritaria entre los K vecinos más próximos.

– La determinación del valor de K conveniente, cantidad de vecinos a tener en cuenta, es el principal problema de este tipo de algoritmos.

• Los algoritmos basados en distancia no construyen un modelo de aprendizaje, la tarea de clasificación se realiza procesando todo el conjunto de ejemplos de aprendizaje -> no es un modelo razonable en la práctica.

39

Redes Neuronales Artificiales• Este método usa una forma de modelo matemático basado

en la operación del cerebro humano [Zhang2000].

• La neurona es el elemento más simple responsable del procesamiento de la información.

• La neurona artificial simula las funciones básicas de una natural pero es mucho más simple, tiene menos conexiones.

• Sistemas interconectados de “neuronas” que intercambianmensajes entre ellas.

• Las conecciones tienen asociado un valor numérico (peso) que puede tunnearse basandose en la experiencias.

40

Redes Neuronales Artificiales

• La red se estructura en capas. Los distintos algoritmos que corresponden a este método establecen el número de capas que debe tener la red y el cálculo del peso que tiene cada neurona. Como mínimo existen una capa de entrada, una capa de salida y una capa intermedia.

41

Redes Neuronales Artificiales• La red ejecuta la clasificación dividiendo los datos en

regiones usando hiper-planos (pueden ser no lineales).

• El proceso de aprendizaje consiste en obtener los pesos

asociados a cada neurona.

• Esta clase algoritmos es del tipo caja negra, ya que el

modelo construido es poco comprensible para el ser

humano.

42

Redes Neuronales Artificiales

• Modelo básico (regla de Hebb): "Cuando el axón de una

célula A está lo suficientemente cerca para excitar a una

célula B, y toma parte repetidamente en el proceso de

disparo de dicha célula, se produce algún tipo de cambio

metabólico en una de las células (o en las dos), que hace

que la eficacia con la que A disparaba a B se vea

incrementada“

• Los pesos que unen a dos neuronas aumentan si se

activan a la vez y disminuyen si se activan en distinto

momento.

43

Arboles de Decisión

• Este tipo de métodos utiliza el aprendizaje inductivo:

– dado un conjunto de ejemplos preclasificados, establece

una generalización para clasificar nuevos ejemplos.

• Los algoritmos de esta clase utilizan la estrategia “divide y

triunfarás” para generar un árbol de decisión a partir de un

subconjunto de datos de entrenamiento.

• El esquema básico de estos algoritmos consiste en partir el

conjunto de ejemplos en conjuntos más puros (ejemplos

con igual clase) utilizando una restricción por vez.

44

Arboles de Decisión

• Encontrar un árbol de decisión que revele una estructura del dominio, y por lo tanto tenga poder predictivo:

– Se necesita un gran número de casos en cada hoja, y cada hoja debe tener la menor cantidad posible de casos de distinta clase.

– La idea es buscar el árbol más pequeño que cubra los ejemplos de aprendizaje.

• Los algoritmos más representativos de este método de clasificación son: SPRINT, SLIQ, ID3, C4.5.

• La mayor ventaja es la inteligibilidad del modelo construido:

– Las reglas de predicción se pueden extraer fácilmente desde el árbol.

45

Arboles de Decisión (ejemplo)

46

• La aplicación sensa los siguientes datos: es sábado, son las 16 hrs, el usuario esta en movimiento constante.

• La aplicación desea determinar si el contexto del usuario es “jugando tenis”.

• Supongamos que consta además con estos datos históricos:

• Construir un árbol de decisión tomando Play

como atributo de

clasificación.

Clasificar la nueva situación:

Sunny, mild, normal, weak

Arboles de Decisión (ejemplo)

47

Referencias- José Carlos Diab, “Inteligencia en aplicaciones sensibles a contexto” Tesis

Magister en Ingeniería de Software, Universidad Nacional de Plata.

- [Janikow 1994] Exemplar learning in fuzzy decision trees. C. Z. Janikow. Mathematics and computer science, University of Missouri. 1994.

- [Acid 1997] An algorithm for learning probabilistic belief networks. Silvia Acid, Luis Campos. Universidad de Granada, España.

- [Kruse 1998] Data mining with graphical models. Rudolf Kruse, Christian Borgelt. University of Magdeburg, Germany.

- [Bielza2014] Concha Bielza and Pedro Larrañaga. 2014. Discrete Bayesian

Network Classifiers: A Survey. ACM Comput. Surv. 47, 1, Article 5.

- [Yang2005] Liu Yang, Distance Metric Learning: A Comprehensive Survey, 2005.

- [Zhang 2000] G. P. Zhang. 2000. Neural networks for classification: a survey. Trans. Sys. Man Cyber Part C 30, 4 (November 2000), 451-462.

48