Desarrollo de Aplicaciones Móviles Sensibles al...

92
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 Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1er. Cuatrimestre de 2016

Transcript of Desarrollo de Aplicaciones Móviles Sensibles al...

Page 1: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

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

Universidad Nacional del Sur

1er. Cuatrimestre de 2016

Page 2: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 3: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 4: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

4

¿Qué es la INTELIGENCIA?

Page 5: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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

Page 6: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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

Page 7: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

7

¿Qué es la

INTELIGENCIA ARTIFICIAL?

Page 8: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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.

Page 9: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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

Page 10: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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

Page 11: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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.”

Page 12: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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

Page 13: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

¿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

Page 14: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 15: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Á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

Page 16: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 17: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 18: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 19: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 20: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 21: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 22: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 23: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 24: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 25: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 26: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 27: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 28: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 29: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 30: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 31: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 32: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 33: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 34: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 35: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 36: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 37: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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)

Page 38: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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.

• Cálculo de la distancia con ejemplos 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

Page 39: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 40: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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

Page 41: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Redes Neuronales Artificiales

• La red se estructura en capas.

• Los distintos algoritmos establecen: número de capas en la red y el cálculo del peso de cada neurona.

• Como mínimo existen una capa de entrada, una capa de salida y una capa intermedia.

41

Fuente foto: http://www.texample.net/tikz/examples/neural-network/

Page 42: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Redes Neuronales Artificiales• El proceso de aprendizaje consiste en obtener los pesos

asociados a cada neurona.

• Esta clase algoritmos es del tipo caja negra:

– el modelo construido es poco comprensible para el ser

humano.

42

Page 43: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Redes Neuronales Artificiales• El proceso de aprendizaje consiste en obtener los pesos

asociados a cada neurona.

43

Fuente foto: http://artint.info/html/ArtInt_183.html

Page 44: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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.

44

Page 45: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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.

45

Page 46: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

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.

46

Page 47: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Árboles de decision (clasificación)

• La estructura jerárquica de los árboles de decisión es una de sus características más salientes, la mayoría de los árboles se dibujan de arriba hacia abajo (desde la raíz a las hojas).

• La clasificación se hace moviéndose desde la raíz hasta las hojas:

– Se formulan una serie de preguntas en orden jerárquico y la decisión final sobre la clase se toma teniendo en cuenta las respuestas a las preguntas anteriores.

• Los árboles son altamente flexibles:

– habilidad de examinar los efectos de las variables predictivas, de a una por vez.

47

Page 48: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Árboles de decision (clasificación)

• La mayoría de los algoritmos de construcción de árboles de decisión funcionan de arriba – abajo (de la raíz a las hojas).

• El algoritmo arriba – abajo procede de la siguiente forma:

– Si se cumplen los criterios de parada terminar el proceso, el nodo creado se convierte en hoja.

– Si no se cumplen las condiciones de parada, entonces evaluar las posibles particiones (atributos) mediante una métrica y un criterio de selección.

– Elegir la mejor partición (según el valor de la métrica elegida) y crear tantos nodos hijos como valores tenga el atributo elegido.

– Continuar el proceso en forma recursiva con cada nodo hijo creado.

48

Page 49: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (ejemplo)

49

• 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

Page 50: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (ejemplo)

50

Page 51: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (outlook:sunny)

51

Page 52: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (outlook:overcast)

52

Page 53: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (outlook:rain)

53

Page 54: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (outlook:sunny -humidity)

54

Page 55: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (outlook:rain -humidity)

55

Page 56: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión (outlook:rain –wind?)

56

Page 57: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arboles de Decisión

57

Outlook

Sunny Overcast Rain

High Normal

Humidity Humidity

High Normal

No Yes Yes No

Page 58: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Reglas de Asociación

• Métodos para descubrir relaciones interesantes entre variables en bases de datos grandes [Agrawal93].

• Tarea de data mining surgió para solucionar el problema del “carrito de supermercado”.

– Las decisiones típicas que toma un gerente de supermercado son, por ejemplo, qué productos poner a la venta, cómo poner la mercadería en los estantes para maximizar la ganancia, etc.

– Para mejorar la calidad de tales decisiones se recurre generalmente a la historia.

– Para convertir este volumen gigantesco de datos en información útil para la toma de decisión, se necesitan algoritmos con importante énfasis en la eficiencia.

58

Page 59: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Reglas de Asociación

• Ejemplo tipo de regla de asociación: el 90 % de las

compras que incluyen pan y manteca, también incluyen

leche.

• El antecedente de esta regla consiste en los productos pan y manteca, y el consecuente es el producto leche.

• El número 90 % es el factor de confianza de la regla.

• Se pueden buscar reglas que tengan un determinado producto en el antecedente o en el consecuente.

• Se podría determinar las “mejores” K reglas que tengan un producto determinado en el consecuente:

– Una de las medidas podría ser la confianza de la regla.

59

Page 60: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Criterios para selección de reglas

• Restricciones sintácticas: establecen los ítems que pueden aparecer en una regla:

– Además restringir el lugar donde debe aparecer los ítems, la cantidad de elementos en el antecedente (consecuente).

• Restricciones de soporte: cantidad de operaciones que “soportan” la regla.

– Se define como la fracción de transacciones que contienen los productos del antecedente y los del consecuente -> significación estadística.

– Además, por ejemplo, si el soporte no es lo suficientemente grande, significa que la regla no se debe considerar porque no vale la pena. Tal vez sean situaciones anómalas que no sirven para tomar una decisión a nivel general -> detectar anomalías: las reglas con bajo soporte.

60

Page 61: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Soporte vrs. Confianza

• Soporte: significancia estadística.

• Confianza: medida de la fortaleza de la regla.

• Sea una regla con el formato: X ⇒ Y, X es el antecedente y Y es el consecuente de la regla. X y Y son conjuntos de ítems.

soporte(X) = (cantidad de transacciones que tienen los elementos del conjunto X) / (cantidad total de transacciones).

soporte(X ⇒ Y) = (cantidad de transacciones que incluyen los ítems presentes en X y Y) / (cantidad total de transacciones) = soporte(X∪Y).

confianza(X ⇒ Y) = soporte(X ⇒ Y) / soporte(X).

61

Page 62: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

62

Algunos Frameworks

que incluyen IA para

Aplicaciones Sensibles al

Contexto

Page 63: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

• Framework de reconocimiento semántico de contextos en tiempo real:

– teniendo en cuenta el “ruido” en los datos y un entorno de cambio permanente.

• Las principales entidades del framework son: el administrador de contextos, el servicio de reconocimiento de contextos y la aplicación.

• El corazón del sistema es el administrador de contextos, el cual controla todo el flujo de la información.

• Se apoya en tres dispositivos de software:

– servidor de recursos, servicio de reconocimiento de contextos y el servicio de detección de cambios.

63

Page 64: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

• El servidor de recursos:

– toma la lectura de sensores,

– evalua su consistencia y

– los transformar en valores semánticos preestablecidos.

• Utiliza lógica difusa: una forma de lógica multi-valuada en la que lo valores de verdad de las variables pueden tomar cualquier valor en 0 y 1.

– Se usa para manipular el concepto de verdad parcial, dondeel valor de verdad está en un rango entre completamenteverdad y completamente falso.

– Juan es 0.8 alto, no es lo mismo que decir que Juan es alto con probabilidad 0.8.

64

Page 65: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

• El servicio de reconocimiento de contextos tiene la misión

de inferir, por medio de un algoritmo de clasificación, un

aspecto de contexto de alto nivel.

• El servicio de detección de cambio se utiliza para

administrar el mecanismo de avisos.

– Cuando un contexto de bajo nivel de detalle cambia, le avisa

al administrador de contexto para que este a su vez le

indique al servicio de reconocimientos que vuelva a inferir el

aspecto de contexto de alto nivel.

• La aplicación puede operar utilizando aspecto contextos de

alto nivel sin necesidad de saber el proceso subyacente.

65

Page 66: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

66

Page 67: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

• Entre las tareas más importantes de este framework, se

destaca el manejo de la incertidumbre inherente a todo

proceso de medición: usa lógica difusa.

• La estructura del framework permite crear y manejar

contextos compuestos y jerarquía de contextos.

• El servicio de reconocimiento de contextos está basado en

un algoritmo de clasificación de tipo estadístico, como lo es

el clasificador naive-bayes.

67

Page 68: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

• Este clasificador funciona bien en inferencia de contextos:

– Robusto: se refiere a su capacidad de obtener resultados razonables aún en presencia de incertidumbre en los valores y/ó ausencia de datos.

– Maneja incertidumbre: permite modelar la incertidumbre en los datos como evidencia virtual (lógica difusa).

– Eficiencia computacional: los procesos de aprendizaje e inferencia tienen complejidad lineal respecto del número de casos. Muy fácil implementación.

– No requiere información adicional: esto significa que el algoritmo sólo necesita conocer los datos de la clasificación, no necesita ningún conocimiento previo.

68

Page 69: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003]

69

Page 70: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Korpipaa2003] Puntos débiles

70

• La utilización del algoritmo Naive Bayes para inferir un contexto de alto nivel. – Este modelo no genera reglas de inferencia, por lo tanto es

poco inteligible para los usuarios.

– La precisión del método no es un punto fuerte, la eficacia depende del cumplimiento de las fuertes simplificaciones propuestas.

– La simplificación más fuerte es la hipótesis de independencia condicional entre las variables utilizadas para inferir.

– El algoritmo necesita como parámetro las probabilidades a priori de las clases: en general se asume una distribución uniforme, lo cual puede no ser la realidad.

• La estructura no permite utilizar otro algoritmo de aprendizaje e inferencia.

Page 71: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Cheverst 2003]

• Sistema que tiene una conducta “inteligente” dependiendo

del cambio producido en el ambiente.

• Extrae patrones de comportamiento en base a la historia

de uso por parte del usuario:

– Por ej, se puede determinar que un usuario tiene una reunión

en forma regular identificando patrones recurrentes en la

historia de contexto del usuario (el contexto está formado por

los aspectos de locación, calendario, etc.).

• La identificación de patrones se realiza utilizando técnicas

de machine learning.-> Aprender automáticamente las

reglas de conducta.71

Page 72: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Cheverst 2003]

• La incertidumbre es el problema más importante a resolver:

– el sistema puede no comportarse como el usuario desea;

– es inevitable; minimizar impacto incorporando un dispositivo

que explique la conducta inferida.

• Las fuentes de incertidumbre en este tipo de sistemas son:

– en el sensado del ambiente, y

– en la interpretación de contextos de alto nivel derivados de

contextos de bajo nivel.

72

Page 73: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Cheverst 2003]

• Utiliza un algoritmo basado en árboles de decisión para

predecir la conducta del usuario dada su historia.

– Este tipo de algoritmo sirve para mostrar a un humano el

conocimiento aprendido por la máquina.

• El reconocimiento de una base de datos que almacena la

historia y otra que almacena las reglas de comportamiento.

73

Page 74: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitecturas de Sistemas Sensibles al Contexto

• Criterios de evaluación de arquitectura:

– nivel de abstracción del contexto,

– modelo de comunicación,

– sistema de razonamiento,

– extensibilidad y

– reusabilidad.

74

Page 75: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Cheverst 2003] Puntos débiles

• La arquitectura propuesta está limitada a un algoritmo de

aprendizaje e inferencia -> − sistema de razonamiento,

− − extensibilidad, − − reusabilidad

• No se reconoce una capa de servicios en la arquitectura ->

− − extensibilidad (y − grado de abstracción)

• Los aspectos de contexto se consideran datos. Esto limita

la separación de conceptos de adquisición de datos y

entrega de servicios -> − extensibilidad, − reusabilidad

• Los aspectos de contexto se tratan como simples datos ->

− − − grado de abstracción del contexto.75

Page 76: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Diab2007]

• Utiliza una base de conocimiento modelada como objeto: permite agregarle comportamiento inherente a la misma, por ejemplo, distintos métodos de inferencia (y de poda).

• Los aspectos de contexto se modelan como objetos: esto permite incorporarles conducta.

• Utiliza un repositorio de casos modelado como objetos: los casos de aprendizaje se almacenan en una estructura con funcionalidad propia.

– permite separar los ejemplos de su utilización.

– El objeto brinda servicios de conteo a los distintos algoritmos de aprendizaje.

76

Page 77: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Diab2007]

• Usa lógica difusa: permite adoptar aspectos de contexto con dominio continuo o discretos y modelar la incertidumbre.

• Utiliza una capa de servicios: el enfoque propuesto propone brindar los servicios correspondientes.

• Utiliza algoritmo de aprendizaje basado en árbol de

decisión incremental: inteligibilidad y mantenimiento de las reglas de comportamiento para la inferencia de los aspectos de contexto de alto nivel.

• Se comporta como un sensor de alto nivel: considera a los aspectos de contexto de alto nivel de la misma manera que uno de bajo nivel en la capa de servicios.

77

Page 78: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Diab2007] Arquitectura

78

Page 79: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

[Diab2007] Arquitectura

• Control principal: su objetivo es coordinar todos los subsistemas.

• Aprendizaje: este módulo tiene como objetivo extraer un modelo que represente los ejemplos de aprendizaje.

• Control de sensores: tiene como objetivo relacionar los sensores con los aspectos de contexto y formar el ejemplo para clasificación.

• Repositorio de casos: este módulo tiene como objetivo proporcionar servicios de conteo a los algoritmos de aprendizaje.

• Inferencia: este módulo tiene como objetivo inferir el valor del aspecto de contexto de alto nivel.

79

Page 80: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Sensado

• Objetivo: tomar los datos de los sensores y convertirlos en objetos para ser procesados (inferencia o aprendizaje).

• Consta de dos objetos:

– Control de sensores: el objeto que coordina el proceso de sensado.

– Sensores: objetos que recogen valores directamente del ambiente.

• El control de sensores almacena una lista de sensores con los cuales debe comunicarse y saber la relación que existe entre cada sensor y el aspecto de contexto que mide.

• Los atributos de inferencia representan los aspectos de

contexto atómicos y el atributo clase es el aspecto de contexto derivado no determinístico.

80

Page 81: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Sensado

• El control de sensores implementa un mecanismo de dependencias para administrar la llegada de nueva evidencia por intermedio de los sensores:

– cada sensor es “observado” (en los términos de patrones) por el control de sensores, y a su vez el control de sensores es “observado” por el control principal.

• Cuando un sensor cambia su estado, envía a su “observador”, el control de sensores, un mensaje de actualización.

• El parámetro del mensaje es el mismo sensor, esto permite al control de sensores identificar el sensor que cambió de valor.

81

Page 82: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Sensado

• Luego de recibir el mensaje de cambio de estado por parte de un sensor, el control convierte los datos crudos de sensores en un caso admisible por el algoritmo de inferencia:

– Se toman todos los atributos designados para inferir y busca qué sensor lo mide a cada uno.

– Una vez que se identifica el sensor relacionado con cada atributo, le pide al atributo que convierta el valor “crisp”, proveniente del sensor, en un valor fuzzy.

• El caso enviado a inferir estará formado por el valor fuzzy

correspondiente a cada atributo de inferencia.

82

Page 83: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Sensado

• Cuando el control de sensores termina de armar un caso

para inferir, se envía un mensaje a sí mismo para avisar

que formó el caso.

• Dado que el control de sensores es “observado” por el

control principal, se desencadena un mecanismo de

dependencia que finaliza en la clasificación del caso.

• Este proceso es el nexo entre el mecanismo de sensado y

el mecanismo de inferencia, administrado por el control de

sensores.

83

Page 84: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Aprendizaje

• Objetivo: de construir un modelo con fines predictivos en base a la evidencia suministrada:

– El modelo cambia a medida que se va incorporando mayor evidencia.

– Las reglas de comportamiento se modifican durante la ejecución de la aplicación.

• Algoritmo de aprendizaje: un árbol de decisión difuso.

• La arquitectura permite modificar el algoritmo, o más aún, utilizar otro algoritmo de aprendizaje.

84

Page 85: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Inferencia

• Objetivo: obtener, en forma no determinística, el valor del aspecto de contexto de alto nivel que le corresponde a los aspectos de contexto atómicos tomados desde los sensores.

• Consta de la base de reglas y las reglas (modelo).

– La base de reglas está formada por reglas;

– cada regla tiene un antecedente y un consecuente, este último representado por el atributo clase.

– El antecedente de cada regla está constituido por condiciones unidas por el operador de conjunción (AND).

– Una condición está formada por el par [variable lingüística -valor lingüístico].

85

Page 86: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Subsistema de Inferencia

• La base de reglas recibe la estructura árbol resultado del

aprendizaje y armar el sistema de reglas correspondiente.

• Las reglas se ordenan por clase para mejorar el proceso de

inferencia.

• Cada vez que se crea una regla se definen sus métricas

más importantes (soporte, confianza y factor de certeza).

• Las métricas se obtienen de analizar las hojas del árbol.

86

Page 87: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Repositorio de casos

• El repositorio de casos es un objeto que se encarga de:

– mantener los casos completos (almacena los ejemplos de aprendizaje) y

– brindar servicios de conteo al algoritmo de aprendizaje.

• Un caso esta constituido por una instancia de cada atributo de inferencia y una instancia de un atributo clase.

• Un caso es completo cuando tiene presente el valor para cada atributo de inferencia y el valor del atributo clase.

• Los casos para inferencia, armados por el control de sensores, carecen del valor del atributo clase, ya que el mismo se establece en la fase de inferencia.

87

Page 88: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Repositorio de casos

• El algoritmo de aprendizaje envía al repositorio de casos

una colección de condiciones para evaluar una partición y

un “t-norm” (un operador de conjunción utilizado en lógica

difusa).

• El repositorio de casos envía a cada caso el mensaje

calcular conteo individual, teniendo como parámetro la

colección de condiciones y un t-norm.

• El caso implementa esta funcionalidad calculando el grado

de correspondencia entre el caso y la colección de

condiciones enviada.

88

Page 89: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Control Principal

• Coordina el funcionamiento del sistema funciona como un

“Mediator” en los términos de patrones de diseño.

• Almacena en sus variables de instancia los objetos:

“Algoritmo árbol”, “Control de sensores”, “Base de reglas”,

“Repositorio de casos”, los “Atributos de inferencia” y

“Atributo clase”.

• Todos estos objetos, excepto los atributos de inferencia y

el atributo clase, se crean una sola vez y forman la

estructura estable del sistema.89

Page 90: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Arquitectura: Control Principal

• Cuando el control de sensores envía un caso al control

principal, este ejecuta las llamadas necesarias para

clasificar dado el caso y el método de inferencia como

parámetros.

• El método clasificar del control principal (en subsistema de

inferencia) devuelve los valores lingüísticos del atributo

clase, cada uno tiene asociado el grado de

correspondencia.

• Luego de recibir la clase correcta para cada ejemplo, el

control principal llama al algoritmo de aprendizaje con el

nuevo ejemplo como parámetro.

90

Page 91: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

ReferenciasParte de esta presentación fue tomada de:

- [Diab2007] Diab, José Carlos. Inteligencia en aplicaciones sensibles a contexto.

Tesis Magíster en Ingeniería del software Universidad Nacional de La Plata Facultad de Informática - http://sedici.unlp.edu.ar/handle/10915/4073

- [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.

91

Page 92: Desarrollo de Aplicaciones Móviles Sensibles al Contextomvm/CAIA-2016/downloads/Clases/Computacion... · “Turing Test” -> Ejemplo similar: Pelicula“Exmachina” • Captcha

Referencias- [Korpipaa2003] Panu Korpipaa, Jani Mantyjarvi, Juha Kela, Heikki Keranen,

and Esko-Juhani Malm. Managing Context Information in Mobile Devices. IEEE

Pervasive Computing 2, 3 (July 2003), 42-51.

- [Cheverest2003] Byun, Hee Eon, and Keith Cheverst. "Supporting Proactive ‘Intelligent’Behaviour: the Problem of Uncertainty." In Proceedings of the UM03

Workshop on User Modeling for Ubiquitous Computing, pp. 17-25. 2003.

- [Agrawal93] Rakesh Agrawal, Tomasz Imieliński, and Arun Swami. 1993. Mining association rules between sets of items in large databases. SIGMOD

Rec. 22, 2 (June 1993), 207-216.

92