A computer-implemented method, comprising: obtaining a global model for a particular activity, the global model derived based on input data representing multiple observations associated with the particular activity performed by a collection of users operating one or more respective computing devices, wherein the global model is a trainable computational model and wherein the multiple observations include sensor measurements of one or more of an orientation, a motion or a velocity of the respective computing devices while the collection of users are performing the particular activity; determining, using the global model, expected data representing an expected observation associated with the particular activity performed by a particular user; receiving, by a computing device operated by the particular user, particular data representing an actual observation associated with the particular activity performed by the particular user, wherein the actual observation includes sensor measurements of one or more of an orientation, a motion or a velocity of the computing device while the particular user is performing the particular activity; determining, by the computing device and using (i) the expected data and (ii) the particular data, residual data of the particular user; and deriving a trained local model of the particular user based on the residual data, wherein deriving the trained local model comprises using the residual data to update the global model, and wherein the trained local model is configured to classify the particular activity, wherein the particular activity includes: walking or running. obtaining a global model for a particular activity, the global model derived based on input data representing multiple observations associated with the particular activity performed by a collection of users operating one or more respective computing devices, wherein the global model is a trainable computational model and wherein the multiple observations include sensor measurements of one or more of an orientation, a motion or a velocity of the respective computing devices while the collection of users are performing the particular activity; determining, using the global model, expected data representing an expected observation associated with the particular activity performed by a particular user; receiving, by a computing device operated by the particular user, particular data representing an actual observation associated with the particular activity performed by the particular user, wherein the actual observation includes sensor measurements of one or more of an orientation, a motion or a velocity of the computing device while the particular user is performing the particular activity; determining, by the computing device and using (i) the expected data and (ii) the particular data, residual data of the particular user; and deriving a trained local model of the particular user based on the residual data, wherein deriving the trained local model comprises using the residual data to update the global model, and wherein the trained local model is configured to classify the particular activity, wherein the particular activity includes: walking or running.