darwin phones: the evolution of sensing and inference on mobile phones emiliano miluzzo *, cory t....
TRANSCRIPT
Darwin Phones: the Evolution of Sensing and Inference on
Mobile Phones
Emiliano Miluzzo*, Cory T. Cornelius*, Ashwin Ramaswamy*, Tanzeem Choudhury*, Zhigang Liu**,
Andrew T. Campbell*
* CS Department – Dartmouth College** Nokia Research Center – Palo Alto
[email protected] Miluzzo
[email protected] Miluzzo
evolution of sensing and inferenceon mobile phones
[email protected] Miluzzo
[email protected] Miluzzo
[email protected] Miluzzo
[email protected] Miluzzo
[email protected] Miluzzo
ok… so what ??
[email protected] Miluzzo
[email protected] Miluzzo
density
[email protected] Miluzzo
accelerometer
digital compass
microphone
WiFi/bluetooth GPS
….
light sensor/camera
sensing
[email protected] Miluzzo
accelerometer
digital compass
microphone
WiFi/bluetooth GPS
light sensor/camera
gyroscope
air quality /pollution sensor
sensing….
[email protected] Miluzzo
- 600 MHz CPU
- up to 1GB application memory
hardware
computation capability is increasing
[email protected] Miluzzo
application distribution
[email protected] Miluzzo
application distribution
deploy apps onto millions of phones at
the blink of an eye
[email protected] Miluzzo
application distribution
collect huge amount of data for research
purposes
deploy apps onto millions of phones at
the blink of an eye
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
we want to push intelligence to the
phone
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
preserve the phone user experience
(battery lifetime, ability to make calls, etc.)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
- sensing
- run machine learning algorithms locally
(feature extraction + inference)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
- sensing
- run machine learning algorithms locally
(feature extraction + inference)
run machine learningalgorithms (learning)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
store and crunch big data(fusion)
run machine learningalgorithms (learning)
- sensing
- run machine learning algorithms locally
(feature extraction + inference)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
run machine learningalgorithms (learning)
store and crunch big data(fusion)
3 to 5 years from now our phones will be as powerful as a - sensing
- run machine learning algorithms locally
(feature extraction + inference)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
run machine learningalgorithms (learning)
store and crunch big data(fusion)
3 to 5 years from now our phones will be as powerful as a - sensing
- run machine learning algorithms locally
(feature extraction + inference)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
run machine learningalgorithms (learning)
store and crunch big data(fusion)
3 to 5 years from now our phones will be as powerful as a - sensing
- run machine learning algorithms locally
(feature extraction + inference)
[email protected] Miluzzo
cloud infrastructure
cloud - backend support
- Sensing
- run machine learning algorithms locally
(feature extraction + learning + inference)
run machine learningalgorithms (learning)
store and crunch big data(fusion)
3 to 5 years from now our phones will be as powerful as a
[email protected] Miluzzo
societal scale sensing
global mobile sensor network
reality mining using mobile phones
will play a big role in the future
end of PR – now darwin
Emiliano Miluzzo [email protected]
a small building block towards the big vision
Emiliano Miluzzo [email protected]
[email protected] Miluzzo
from motes to mobile phones
[email protected] Miluzzo
evolution of sensing and inferenceon mobile phones
from motes to mobile phones
[email protected] Miluzzo
evolution of sensing and inferenceon mobile phones
from motes to mobile phones
darwin
- classification model evolution
- classification model pooling
- collaborative inference
[email protected] Miluzzo
microphone
camera
GPS/WiFi/cellular
air quality pollution
sensing apps
social context
audio / pollution / RF fingerprinting
image / video manipulation
darwin applies distributed computing and collaborative inference concepts to
mobile sensing systems
darwin
- classification model evolution
- classification model pooling
- collaborative inference
why darwin?
[email protected] Miluzzo
train classification model X in the lab
mobile phone sensing today
why darwin?
[email protected] Miluzzo
deploy classifier X
mobile phone sensing today
train classification model X in the lab
why darwin?
[email protected] Miluzzo
train classification model X in the lab deploy classifier X
train classification model X’ in the lab
mobile phone sensing today
why darwin?
[email protected] Miluzzo
deploy classifier X
deploy classifier X’
mobile phone sensing today
train classification model X’ in the lab
train classification model X in the lab
why darwin?
[email protected] Miluzzo
train classification model X in the lab deploy classifier X
deploy classifier X’
a fully supervised approach doesn’t
scale!
mobile phone sensing today
train classification model X’ in the lab
why darwin? a same classifier does not scale to multiple
environments (e.g., quiet and noisy env)
[email protected] Miluzzo
why darwin? a same classifier does not scale to multiple
environments (e.g., quiet and noisy env)
[email protected] Miluzzo
why darwin? a same classifier does not scale to multiple
environments (e.g., quiet and noisy env)
[email protected] Miluzzo
why darwin? a same classifier does not scale to multiple
environments (e.g., quiet and noisy env)
[email protected] Miluzzo
darwin creates new classification models transparently from the user
(classification model evolution)
[email protected] Miluzzo
why darwin?
ability for an application torapidly scale to many devices
darwin re-uses classification models when possible
(classification model pooling)
[email protected] Miluzzo
why darwin?
leverage the large ensemble of in-situ resources
darwin exploits spatial diversity and co-operate to alleviate the “sensing context”
problem(collaborative inference)
[email protected] Miluzzo
darwin design
[email protected] Miluzzo
speaker recognition (subject to audio noise, sensing context, etc.)
[email protected] Miluzzo
darwin phases
[email protected] Miluzzo
darwin phases
initial training (derive model seed)
classification model evolution
supervised
unsupervised
[email protected] Miluzzo
darwin phases
initial training (derive model seed)
classification model evolution
classification model pooling
supervised
unsupervised
[email protected] Miluzzo
darwin phases
initial training (derive model seed)
classification model evolution
classification model pooling
collaborative inference
supervised
unsupervised
[email protected] Miluzzo
classification model training
sensed event
filtering (silence suppression +
voicing)
[email protected] Miluzzo
classification model training
sensed event
filtering (silence suppression +
voicing)
featureextraction(MFCC)
[email protected] Miluzzo
classification model training
filtering (silence suppression +
voicing)
featureextraction(MFCC)
modeltraining(GMM)
model
baseline
sensed event
send model + baseline back to phone
send MFCC tobackend to train the model
backend
[email protected] Miluzzo
classification model training
phone: feature extraction(low
computation)
backend
backend: model training (high
computation)
[email protected] Miluzzo
classification model evolution
phone: determines when to evolve
training sampled
[email protected] Miluzzo
classification model evolution
phone: determines when to evolve
match?
YES
do not evolve
[email protected] Miluzzo
classification model evolution
phone: determines when to evolve
match?
NO
evolve(train new model using
backend as before)
[email protected] Miluzzo
classification model pooling
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker C’s model
Speaker B’s modelSpeaker B’s model
Speaker C’s model
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker C’s model
Speaker B’s modelSpeaker B’s model
Speaker C’s model
we have two options
1. train a new classifier for each speaker (costly for power, inference delay)
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker C’s model
Speaker B’s modelSpeaker B’s model
Speaker C’s model
we have two options
1. train a new classifier for each speaker (costly for power, inference delay)
2. re-use already available classifiers
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker C’s model
Speaker B’s modelSpeaker B’s model
Speaker C’s model
we have two options
1. train a new classifier for each speaker (costly for power, inference delay)
2. re-use already available classifiers
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker C’s model
Speaker B’s modelSpeaker B’s model
Speaker C’s model
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker B’s model
Speaker C’s model
Speaker C’s model
Speaker B’s model
Speaker A’s model
Speaker C’s model
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker B’s model
Speaker C’s model
Speaker C’s model
Speaker B’s model
Speaker A’s model
Speaker C’s model
Speaker A’s model
Speaker B’s model
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker B’s model
Speaker C’s model
Speaker C’s model
Speaker A’s model
Speaker B’s model
Speaker B’s model
Speaker A’s model
Speaker C’s model
[email protected] Miluzzo
classification model pooling
Speaker A’s model
Phone A Phone B
Phone C
Speaker B’s model
Speaker C’s model
Speaker C’s model
Speaker A’s model
Speaker B’s model
Speaker B’s model
Speaker A’s model
Speaker C’s model
ready to run the collaborative inference algorithm
- local inference first- final inference later
[email protected] Miluzzo
collaborative inference
1. local inference (running independently in parallel on each mobile phone)
two phases
[email protected] Miluzzo
collaborative inference
1. local inference (running independently in parallel on each mobile phone)
two phases
2. final inference (after collecting Local Inference results, to get better confidence about the final classification result)
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!local inference (LI)
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!local inference (LI)
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!local inference (LI)
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
local inference (LI)
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
local inference (LI)
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!local inference (LI)
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
speaker A speaking!!!local inference (LI)
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
individual classification can be misleading!
final inference (FI)
[email protected] Miluzzo
collaborative inference
Phone A Phone B
Phone C
each phone gathers LI results
A’s LI results
C’s LI results
B’s LI results
A’s LI results A’s LI results
C’s LI results C’s LI results
B’s LI resultsB’s LI results
final inference (FI)
[email protected] Miluzzo
collaborative inferenceon each phone
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
[email protected] Miluzzo
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
xxx
xxx
final inference (FI)
collaborative inferenceon each phone
[email protected] Miluzzo
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
xxx
xxx
FI results (normalized):Confidence (A speaking) = 1 Confidence (B speaking) =
0.12Confidence (C speaking) =
0.002
=
final inference (FI)
collaborative inferenceon each phone
[email protected] Miluzzo
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
xxx
xxx
=FI results (normalized):Confidence (A speaking) = 1 Confidence (B speaking) =
0.12Confidence (C speaking) =
0.002
final inference (FI)
collaborative inferenceon each phone
[email protected] Miluzzo
A’s LI results:Prob(A speaking) = 0.65Prob(B speaking) = 0.25Prob(C speaking) = 0.10
C’s LI results:Prob(A speaking) = 0.30Prob(B speaking) = 0.67Prob(C speaking) = 0.03
B’s LI results:Prob(A speaking) = 0.79Prob(B speaking) = 0.11Prob(C speaking) = 0.10
xxx
xxx
=
collaborative inference compensates the inaccuracies of individual
inferences
FI results (normalized):Confidence (A speaking) = 1 Confidence (B speaking) =
0.12Confidence (C speaking) =
0.002
final inference (FI)
collaborative inferenceon each phone
[email protected] Miluzzo
evaluation
[email protected] Miluzzo
evaluation
C/C++ &
implemented on Nokia N97 andiPhone in support of a speaker
recognition app
[email protected] Miluzzo
evaluation
C/C++ &
unix server
implemented on Nokia N97 andiPhone in support of a speaker
recognition app
[email protected] Miluzzo
evaluation
C/C++ &
unix server
lightweight reliable protocol to transfer models from the server
and between phones
implemented on Nokia N97 andiPhone in support of a speaker
recognition app
[email protected] Miluzzo
evaluation
C/C++ &
UDP multicast protocol to distribute
local inference results between phones
implemented on Nokia N97 andiPhone in support of a speaker
recognition app
[email protected] Miluzzo
experimental scenarios
up to eight people in conversation in three different scenarios (quiet indoor, down the
street, in a restaurant)
[email protected] Miluzzo
some numerical results
[email protected] Miluzzo
indoor quiet scenario
8 people talking around a table
collaborative inference + classification model evolution
boost the performance of a mobile sensing app
[email protected] Miluzzo
impact of the number of mobile phones
[email protected] Miluzzo
impact of the number of mobile phones
[email protected] Miluzzo
impact of the number of mobile phones
[email protected] Miluzzo
impact of the number of mobile phones
[email protected] Miluzzo
impact of the number of mobile phones
the larger the number of mobile phones collaborating, the better the final inference result
[email protected] Miluzzo
battery lifetime Vs inference responsiveness
[email protected] Miluzzo
battery lifetime Vs inference responsiveness
[email protected] Miluzzo
battery lifetime Vs inference responsiveness
smart duty-cycling techniques and machine learning algorithms with better performance in
terms of energy usage on mobile phones need to be identified
[email protected] Miluzzo
a quick recap
smartphone’s are everywhere, let’s exploit their collective sensing and
computation capabilities
[email protected] Miluzzo
a quick recapsmartphone’s are everywhere – let’s exploit
their collective sensing and computation capabilities
smartphone sensing opens up new frontiers: applications can be spread and
big data collected at unprecedented scale enabling endless research
opportunities
[email protected] Miluzzo
a quick recapsmartphone’s are everywhere – let’s exploit
their collective sensing and computation capabilities
continuous sensing is still challenging; efficient mobile sensing requires to
preserve the phone user experience (need for energy efficient ML algorithms
and smart duty-cycling techniques)
smartphone sensing opens up new frontiers: applications can be spread and big data collected at
unprecedented scale enabling endless research opportunities
[email protected] Miluzzo
a quick recapsmartphone’s are everywhere – let’s exploit
their collective sensing and computation capabilities
continuous sensing is still challenging; efficient mobile sensing requires to preserve the phone user
experience (need for energy efficient ML algorithms and smart duty-cycling techniques)
ML algorithms should perform reliably in the wild
smartphone sensing opens up new frontiers: applications can be spread and big data collected at
unprecedented scale enabling endless research opportunities
[email protected] Miluzzo
a quick recapsmartphone’s are everywhere – let’s exploit
their collective sensing and computation capabilities
continuous sensing is still challenging; efficient mobile sensing requires to preserve the phone user
experience (need for energy efficient ML algorithms and smart duty-cycling techniques)
ML algorithms should perform reliably in the wild
smartphone sensing opens up new frontiers: applications can be spread and big data collected at
unprecedented scale enabling endless research opportunitiesok I think I’m done…
[email protected] Miluzzo
a quick recapsmartphone’s are everywhere – let’s exploit
their collective sensing and computation capabilities
continuous sensing is still challenging; efficient mobile sensing requires to preserve the phone user
experience (need for energy efficient ML algorithms and smart duty-cycling techniques)
ML algorithms should perform reliably in the wild
smartphone sensing opens up new frontiers: applications can be spread and big data collected at
unprecedented scale enabling endless research opportunitiesbut please bear in mind…
[email protected] Miluzzo
Mobile Phone Sensing is the Next Big Thing!