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