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