Introducción a la computación ubicua

advertisement
Introducción a la computación
ubicua
Rosa Laura Zavala
University of Maryland, Baltimore County
Octubre 2011
Información del curso
 Lunes, Martes y Jueves - 17:00-19:00
 17 Octubre - 27 Octubre
 2 semanas, 6 sesiones
 Contacto: zavala.usc@gmail.com
Instructor
 Laura Zavala
 http://www.cs.umbc.edu/~rzavala/
 Experiencia e intereses



Sistemas Multiagentes: modelado de conductas, fusión de
información en sistemas cooperativos
Semantic Web: ontologías —razonamiento lógico
Computación ubicua: context-aware, smartphones, activity
recognition —razonamiento probabilístico
http://ebiquity.umbc.edu/research/area/id/11/Context-AwareComputing
 http://ebiquity.umbc.edu/project/html/id/92/Platys-From-Positionto-Place-in-Next-Generation-Networks

Presentación por parte de los estudiantes
Tu turno
 Nombre
 Estudios
 Intereses
 etc
Conferencias relevantes
 Ubicomp conference
 http://www.ubicomp.org
 Check out the programs at the past conferences
http://www.ubicomp.org/ubicomp2011/
 http://www.ubicomp.org/ubicomp2010/
 etc

 Other venues:
 http://www.pervasive2010.org/
Main-Frame Computers
(1960-1980): 1 digital
devices per 100 to 1000
persons
Mini-Computers
(1970-1990): 1 digital
devices per 10 to 100
person
Personal Computing
(1980 -2000): 1 digital
devices per 1 to 10
persons
Mobile Computing
(1990 -2010) : 1 to 10
digital devices per person
Internet Computing
(2000 -2020) : 10 to 100
digital devices per person
Ambient Intelligence
(2010 -2030) : 100 to
1000 digital devices per
person
This …
Main-Frame Computers
(1960-1980): 1 digital
devices per 100 to 1000
persons
Mini-Computers
(1970-1990): 1 digital
devices per 10 to 100
person
Personal Computing
(1980 -2000): 1 digital
devices per 1 to 10
persons
Mobile Computing
(1990 -2010) : 1 to 10
digital devices per person
Internet Computing
(2000 -2020) : 10 to 100
digital devices per person
Ambient Intelligence
(2010 -2030) : 100 to
1000 digital devices per
person
will become this
Computacion ubicua
 Mark Weiser, Xerox PARC, 1991
The third wave in computing, just now beginning. First were mainframes,
each shared by lots of people. Now we are in the personal computing era,
person and machine staring uneasily at each other across the desktop.
Next comes ubiquitous computing, or the age of calm technology, when
technology recedes into the background of our lives.
Computación ubicua
 Entornos saturados de sistemas y dispositivos
computacionales de una manera no intrusiva
 Personas interactuan con las computadoras y las
usan sin pensarlo ni notarlo
 La tecnología es “invisible” pero ofrece servicios
proactivos
 Va más allá del ámbito de las computadoras
personales

Cualquier objeto (ropa, carros, muebles), usuario, o dispositivo
tienen chips que los conectan a una red infinita de otros
dispositivos
Trabajos pioneros: dispositivos construídos
en Xerox PARC
Trabajos pioneros: Wearable devices

5 Acelerómetros biaxiales en un tablero

Usuarios realizan secuencias de actividades
pre-establecidas
Señales de los acelerómetros son almacenadas
Aprendizaje de máquina para detectar
actividades físicas


 Mean,
energy, frequency-domain entropy, and
correlation of acceleration data

Ling Bao and Stephen S. Intille, “Activity
Recognition from User-Annotated Acceleration
Data”, Massachusetts Institute of Technology
Trabajos pioneros: Active Badge
 Active Badge – At&T Labs Cambridge
 Localización de personas en una oficina
por medio del uso de un badge.
El badge emite señal infraroja cada 10
segundos
 Lectores en diferentes partes del edificio



Aplicación principal: remitir llamadas
telefónicas.
Andy Hopper, Andy Harter, Tom Blackie, “The Active Badge
System”, INTERCHI'93, Amsterdam, April 1993.
Trabajos pioneros: Shopping Assistant
 Shopping Assistant – AT&T
 Guía a los usuarios a través de la
tienda. Muestra productos en
oferta, busca productos de interés,
etc.
A. Asthana, M. Crauatts, and P. Krzyzanowski. 1994. An Indoor Wireless System
for Personalized Shopping Assistance. In Proceedings of the 1994 First Workshop
on Mobile Computing Systems and Applications (WMCSA '94). IEEE Computer
Society
Trabajos pioneros: Shopping Assistant
 Reconocimiento de
actividades rutinarias



Sensores RFID en los objetos
El usuario usa un reloj con una
antena que lee la señal RFID
Aprendizaje de máquina para
detectar la actividad del usuario de
acuerdo a los objetos en uso.
Donald Patterson, Dieter Fox, Henry Kautz, Matthai Philipose. Proceedings of the
IEEE International Symposium on Wearable Computers, 2055.
Dispositivos y
sensores en todas
partes
Dispositivos
computacionales
•
Menor tamaño
•
Mayor capacidad
de procesamiento
•
Mas baratos
Grandes cantidades
de información
disponible
Comunicaciones
inalámbricas
GPS
Phone
Payment
Smart toilet
Nike+
AMNH Museum
Guide
Grandes oporunidades para la
computación ubicua después de
varias transiciones tecnológicas
The next step is to make those devices aware of how humans work and to get them to adapt to their habits
Dos esfuerzos similares (traslapados)
 Pervasive computing
 Propuesto por IBM


M. Satyanarayan “Pervasive Computing: Vision and Challenges”, IEEE
Personal Communications, pp. 10-18, Agosto 2001
Enfocado en los sistemas mas que en el usuario

Devices with embedded technology and connectivity as computing devices
become progressively smaller and more powerful
 Ambient Intelligence
 Promovido por el grupo de consejo ISTAG de la Comisión Europea
 N. Shadbolt, Ambient Intelligence, IEEE Intelligent Systems, Vol. 2, No.3,
July/August 2003
 Usuarios (humanos) rodeados de dispositivos computacionales y redes de
dispositivos accesibles por interfaces inteligentes
 Centrado en el usuario

Interacciones de una manera natural
Retos/requisitos para computación ubicua
 Hardware no intrusivo

miniaturización, nanotecnología, dispositivos inteligentes, sensores
 Infraestructura de comunicación (Middleware)
 Redes dinámicas y masivas de dispositivos
computacionales y sensoriales

redes ad-hoc de sensores inalámbricos
 Interfaces de interacción naturales e inteligentes
 Conciencia del contexto (context-awareness)
 Robustez y seguridad
 Privacidad
 Sistemas de razonamiento y aprendizaje basados en IA
Computacion Ubicua es
interdisciplinaria
Human Computer
Interaction
Mobile Computing
Machine Learning
Data Mining
Recommender
Systems
Signal Processing
Context-Awareness
Distributed
Computing
Semantic Web
MAS
HCI (Interacción Humano Computadora)
 A discipline concerned with the design, evaluation
and implementation of interactive computing
systems for human use and with the study of major
phenomena surrounding them.
[ACM SIGCHI Curricula for Human-Computer Interaction]
http://old.sigchi.org/cdg/cdg2.html#2_1
 Some of the many problems addressed: visual
interface design, user modeling, speech recognition,
natural language understanding, computer graphics,
gesture recognition, data visualization.
Ubiquitous distraction?
HCI: cambios de paradigma
 Understanding HCI history is largely about
understanding a series of paradigm shifts
User
productivity
• 2000s
•
•
•
•
90s
80s
60s-70s
40s-50s
Interface becomes pervasive - RF tags, Bluetooth
technology, mobile devices, consumer electronics,
interactive (touch) screens, speech, gesture, and
writing recognition
Work setting - networked systems, groupware
Visual display units - GUIs, multimedia
Terminal level - command line
Hardware level - switch panels, batch processing,
punch cards
HCI: Diseño de interfaces de usuario
 Principios de diseño de interfaces:
 Recognize User Diversity
Online travel agent: businesses, families, schools, etc.
 Usage profiles, Task profiles, Frequency of tasks related to user
profiles



Follow the Eight Golden Rules
 Consistency, shortcuts, feedback, dialogues, undo, etc.
Prevent Errors
If an error is possible, someone will make it.
 Wizards, command correction, confirmation, etc.

http://media.pearsoncmg.com/aw/aw_shneiderma_dtui_4/chapter2.pdf
Conciencia del contexto
(context-awareness)
Sistemas
computacionales
que
• detectan,
• interpretan
• responden
a aspectos del
ambiente local
del usuario.
CONTEXTO
Propiedades ambientales relevantes o de
interés, participantes y actividades de los
participantes.
24
Health Monitoring
AMNH Explorer
Smart hospital bed
Affective Health
Car navigation
Changes to phone setting
Automatic tagging of
contextual information
Grocery shopping
assistant
Health Monitoring
Activity Logging
Social Proximity Detection
Nearby Places
University Life
Enhancement
Tour Guide
Affective Health
Context Aware Applications
Tagging Pictures
Devices more responsive to individual needs and help to
intelligently personalize apps and services.
 User Context
 Computing
Context
 Physical Context
 Time Context
Tipos de contextos
Como detectar el contexto
 Sensores
 GPS
 Luz ambiental
 Micrófono
 Video cámara
 Información de otras fuentes
 Calendario
 Redes sociales
 etc
Como interpretar el contexto
 Procesar señales de los sensores
 Combinar información disponible (sensores +
fuentes adicionales) y determinar el contexto actual

Modelos probabilísticos son comunmente usados para
reconocer situaciones

location + time + user’s calendar gives good idea of current
social situation (having a meeting, sitting in the class, waiting
in the airport, etc).
Como responder de acuerdo al contexto
jkembel :
April 24,
2003 :
AUI
 Presentación de información y servicios al usuario

E.g., nearby printers, car on map
 Execución automática de un servicio

E.g., car navigation that reroutes on missed turn, ring-changing
cell phone
 Tagging información contextual para posterior
recuperación for later retrieval

E.g., informal meeting notes collected during a meeting
28
29
 Detectar el
contexto
 Responder al
contexto


Provide
information
Perform an
action
 Pre-especificado
 Automatico y
Dinamico
Locale application for Android
smartphones
Preguntas
 Is all this information necessary?

Critical vs Relevant but not Critical
 Is all this information measurable?

Temperature? Location? People around? Social situation? Mood?
 How do we effectively infer characteristics of
situations and usefully supplement them with
technology?
 Can we use smartphones to sense every context aspect?
Are they always the best option?
Critical vs Relevant but not critical context
 Active context: influences the behavior of the
application

Location in a call forwarding application
 Passive context: context that is relevant but not
critical

Active map application: display location name and other
people in the room
Social issues in Ubicomp
 Privacy
 Potential for misuse
 How should users be informed of computer monitoring (Don’t be
invisible??)
 Is it ok to give up this privacy in some settings, healthcare
 Do we give the hackers too much power
 Security
 Constant monitoring take away personal responsibility
 What happens if I lose my data
Sistemas de recomendación
 Ayudan al usuario a seleccionar elementos de una
gran cantidad de opciones
 Dos paradigmas para la selección de elementos

basados en contenido


Sugerencias basadas en preferencias que ha mostrado el usuario
en el pasado
filtrado colaborativo

Sugerencias basadas en preferencias de usuarios con intereses
similares
Aprendizaje de máquina
"Find a bug in a program, and fix it, and the program
will work today. Show the program how to fix a bug,
and the program will work forever."
Oliver G. Selfridge, AI's Greatest Trends and Controversies
Aprendizaje de máquina
Picture
Name: Laura Zavala
 Conducta inteligente, adaptiva y robusta
 Programación “a mano” impráctica
 Mostrarle a la computadora como queremos que se
comporte y dejarla que se programe “sola”

Dada la estructura del programa, la computadora ajusta
muchos parámetros internos
Aprendizaje de máquina: Objetivo
 Sistemas capaces de optimizar un criterio de
desempeño usando datos de ejemplo o experiencia
pasada.
 Se dice que un programa aprende de una experiencia
E con respecto a una clase de tareas T y medida de
desempeño P, si su desempeño en las tareas en T, de
acuerdo con la medida P, mejora con E.
12 examples
~ 7000 possible cases
Model user decision process
when deciding whether or not
to wait for a table at a
restaurant
Two options: wait, leave (Yes,
No) (T, F)
Ten features
• Alternative available?
• Bar in restaurant?
• Is it Friday? Are we
hungry?
• How full is the restaurant?
How expensive?
• Is it raining?
• Do we have a reservation?
What type of restaurant is
it?
• What’s the purported
waiting time?
User past behavior
12 examples
~ 7000 possible cases
Aprendizaje de máquina: diferentes formas

Supervisado: Ejemplos de datos de entrada y resultado
deseado.


No Supervisado: Solo tenemos los datos (de entrada pero no
salida o resultado asociado


Clasificación, predicción
Agrupamiento
Por Reforzamiento: Aprender a seleccionar la acción correcta
por medio de recompensa/castigo conforme se ejecutan
acciones.

Navegación de robots
Representación
 Variables aleatorias para representar entradas,
salidas y estados internos


Discretas/categóricas
Continuas
 Un conjunto de asignaciones de valores a las
variables constituye un cas ejemplo

Xi ={x1, x2, x3, x4} es el vector que representa el ejemplo i
 Decision Trees
 Top-down
construction by
recursively selecting
“best attribute”
 Idea: a good attribute
splits the examples
into subsets that are
(ideally) “all positive”
or “all negative”
 Easy to derive rules
 Has been used for real
world applications
 Diagnosing breast
cancer
Learned User Model
http://archive.ics.uci.edu/ml
Ejemplo: Zoo dataset
http://archive.ics.uci.edu/ml/datasets/Zoo
Datos del Zoo dataset
Ejemplo
aima-python> python
>>> from learning import *
>>> zoo
<DataSet(zoo): 101 examples, 18 attributes>
>>> dt = DecisionTreeLearner()
>>> dt.train(zoo)
>>> dt.predict(['shark',0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0])
'fish'
>>> dt.predict(['shark',0,0,0,0,0,1,1,1,1,0,0,1,0,1,0,0])
'mammal’
Ejemplo
>> dt.dt
DecisionTree(13, 'legs', {0: DecisionTree(12, 'fins', {0:
DecisionTree(8, 'toothed', {0: 'shellfish', 1: 'reptile'}), 1:
DecisionTree(3, 'eggs', {0: 'mammal', 1: 'fish'})}), 2:
DecisionTree(1, 'hair', {0: 'bird', 1: 'mammal'}), 4:
DecisionTree(1, 'hair', {0: DecisionTree(6, 'aquatic', {0:
'reptile', 1: DecisionTree(8, 'toothed', {0: 'shellfish', 1:
'amphibian'})}), 1: 'mammal'}), 5: 'shellfish', 6:
DecisionTree(6, 'aquatic', {0: 'insect', 1: 'shellfish'}), 8:
'shellfish'})
Ejemplo
>>> dt.dt.display()
Test legs
legs = 0 ==> Test fins
fins = 0 ==> Test toothed
toothed = 0 ==> RESULT = shellfish
toothed = 1 ==> RESULT = reptile
fins = 1 ==> Test eggs
eggs = 0 ==> RESULT = mammal
eggs = 1 ==> RESULT = fish
legs = 2 ==> Test hair
hair = 0 ==> RESULT = bird
hair = 1 ==> RESULT = mammal
legs = 4 ==> Test hair
hair = 0 ==> Test aquatic
aquatic = 0 ==> RESULT = reptile
aquatic = 1 ==> Test toothed
toothed = 0 ==> RESULT = shellfish
toothed = 1 ==> RESULT = amphibian
Evaluación
>>> train_and_test(DecisionTreeLearner(), zoo, 0, 10)
1.0
>>> train_and_test(DecisionTreeLearner(), zoo, 90, 100)
0.80000000000000004
>>> train_and_test(DecisionTreeLearner(), zoo, 90, 101)
0.81818181818181823
>>> train_and_test(DecisionTreeLearner(), zoo, 80, 90)
0.90000000000000002
>>> cross_validation(DecisionTreeLearner(), zoo, 10, 20)
0.95500000000000007
>>> leave1out(DecisionTreeLearner(), zoo)
0.97029702970297027
Datos de entrenamiento y de prueba
 Datos de entrenamiento: X, Y inicialmente dadas
 Datos de prueba: Las X, Y que veremos en el futuro
 Objetivo: Buen desempeño en los datos que no
hemos visto

Cómo si no hemos visto los ejemplos
Cómo se aprende
 Overfitting


Memorizar los ejemplos
Salidas al azar en los demás
 Generalización




No se puede aprender sin generalizar
Suposiciones
No Free Lunch Theorem: Unbiased learner never can generalize
Habilidad de obtener pocos errores en los datos de prueba
Resources
 Python: http://www.python.org/
 Librerías para python: http://pypi.python.org/pypi/
 Código en python de el libro Artificial Intelligence
(http://aima.cs.berkeley.edu/) de Russell and Norvig

http://code.google.com/p/aima-python/
 IDLE Python (ambiente de desarrollo)

http://docs.python.org/library/idle.html
 Repositorio de datos de aprendizaje de máquina: ejemplos para
diferentes dominios


http://archive.ics.uci.edu/ml
http://archive.ics.uci.edu/ml/datasets/Zoo
Download