WO2016032777A1 - Localized learning from a global model - Google Patents

Localized learning from a global model Download PDF

Info

Publication number
WO2016032777A1
WO2016032777A1 PCT/US2015/045346 US2015045346W WO2016032777A1 WO 2016032777 A1 WO2016032777 A1 WO 2016032777A1 US 2015045346 W US2015045346 W US 2015045346W WO 2016032777 A1 WO2016032777 A1 WO 2016032777A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
expected
determining
user
particular user
Prior art date
Application number
PCT/US2015/045346
Other languages
French (fr)
Inventor
Daniel Ramage
Jeremy Gillmor KAHN
Original Assignee
Google Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Inc. filed Critical Google Inc.
Priority to JP2016575656A priority Critical patent/JP6386107B2/en
Priority to CN201580033188.2A priority patent/CN106471527B/en
Priority to KR1020167036311A priority patent/KR101967415B1/en
Priority to EP15754390.1A priority patent/EP3186751A1/en
Publication of WO2016032777A1 publication Critical patent/WO2016032777A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/1396Protocols specially adapted for monitoring users' activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Definitions

  • This specification relates to evaluating a global model to determine user- specific characteristics.
  • a global model is typically generated to predict characteristics associated with an activity.
  • a typical global model is generated by training a model using data collected from a collection of users.
  • a global model for an activity or a behavior may be trained by a server system using population-level data collected from a collection of users.
  • the global model may be distributed to a user device.
  • the global model may be evaluated locally on the user device to predict characteristics associated with the activity or the behavior for a user of the user device.
  • the predicted characteristics may be compared with observed user-specific characteristics to generate a difference between local observations and the prediction of those observations.
  • the difference may represent the user's individual signature, and may be used to train a user- specific model.
  • one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of 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; 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; 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 local model of the particular user based on the residual data.
  • Determining the residual data using (i) the expected data and (ii) the particular data may include determining the residual data based on a difference between the expected data and the particular data.
  • the actions may include determining, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, where the particular expected data determined by the local model substantially matches the particular data.
  • the local model may be derived by the computing device.
  • the actions may include transmitting, from the computing device to one or more remote computers, the local model of the particular user as a representation of the particular user.
  • Deriving the local model of the particular user may include transmitting, from the computing device to one or more remote computers, the residual data, and deriving the local model by the one or more remote computers.
  • the global model may include a first vector space constructed by first multiple principal axes
  • the local model may include a second vector space constructed by second multiple principal axes that are different from the first multiple principal axes.
  • the actions may include obtaining a second global model for a second activity that is different from the particular activity, the second global model derived based on second input data representing multiple observations associated with the second activity performed by a collection of users; determining, using the second global model, second expected data representing an expected observation associated with the second activity performed by the particular user; receiving, by the computing device operated by the particular user, second particular data representing an actual observation associated with the second activity performed by the particular user; and determining, by the computing device and using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
  • Deriving the local model of the particular user may include deriving the local model of the particular user based at least on (i) the residual data and (ii) the second residual data.
  • Advantageous implementations may include one or more of the following features.
  • the difference between local observations and the expected observations may be determined locally on the user device, and therefore may protect user privacy.
  • the user-specific characteristics or the difference between local observations may be determined locally on the user device, and therefore may protect user privacy.
  • a more accurate local model for the user may be trained using the user-specific characteristics or the difference.
  • the local model may be transmitted to the remote server to represent the user without disclosing actual observations of the user to the remote server, and therefore may further protect user privacy.
  • implementations of this and other aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.
  • a system of one or more computers can be so configured by virtue of software, firmware, hardware, or a combination of them installed on the system that in operation cause the system to perform the actions.
  • One or more computer programs can be so configured by virtue of having instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
  • FIG. 1 A is a block diagram of an example system.
  • FIG. 1 B is a block diagram of an example system that can use residual data to train a local model for the user.
  • FIG. 1 C is a block diagram of an example system that can use the residual data to authenticate the identity of the user.
  • FIG. 2 is a block diagram of an example system that can use residual data of multiple activities to train a local model for the user.
  • FIG. 3 is a flow chart illustrating an example process for deriving a local model.
  • FIG. 4 is a flow chart illustrating an example process for deriving a local model based on principal component analysis.
  • FIG. 1A is a block diagram of an example system 100.
  • the system 100 can be used evaluate a global model to determine an expected observation for a user activity.
  • the system 100 can also be used to determine residual data based on a comparison between the expected observation and an actual observation.
  • a global model refers to a model trained using population-level data from a collection of users operating one or more respective computing devices.
  • the global model may be transmitted to, and evaluated locally on, a particular computing device for a particular user.
  • a comparison between the expected observation predicted by the global model and the actual observation of the user provides the residual data that may represent a unique characteristic of the user.
  • the system 100 includes a client device 1 10, a computing system 120, and a network 130.
  • the computing system 120 may be a remote server system that provides a representative global model 144 based on a trained global model 142 to the client device 1 10.
  • the computing system 120 includes a model training module 140 for deriving a trained global model 142 to provide a population- level baseline for one or more activities or behaviors associated with a group of training users.
  • the functions performed by the computing system 120 can be performed by individual computer systems or can be distributed across multiple computer systems.
  • the client device 1 10 can be, for example, a desktop computer, laptop computer, a tablet computer, a wearable computer, a cellular phone, a smart phone, a music player, an e-book reader, a navigation system, or any other appropriate computing device.
  • the client device 1 10 may include one or more sensors for measuring one or more characteristics of a user of the client device 1 10.
  • the client device 1 10 may include an accelerometer, a GPS receiver, a gyroscope, a magnetometer, a microphone, a touch panel, a camera, a user operation (e.g., keyboard, application usage, etc.), or any other appropriate sensors.
  • an observation of an activity of a user includes a combination of one or more measured characteristics from the user during the activity. In some implementations, an observation may include a combination of one or more measured characteristics, as processed by one or more software modules or engines. Examples of an activity include walking, running, driving, texting, talking on the phone, recording photographs, recording videos, or any other activities that the client device 1 10 may measure.
  • a client device 1 may receive a representative global model 144 from the computing system 120, where the representative global model 144 may be a compressed or simplified version of the trained global model 142.
  • the client device 1 10 includes a residual module 150 for determining residual data 158.
  • the client device 1 10 may store the
  • the residual data 158 may be used to train a local model for the user 102 to provide a more accurate representation of the user 102.
  • the network 130 can be wired or wireless or a combination of both.
  • the network 130 can include, for example, a wireless cellular network, a wireless local area network (WLAN) or Wi-Fi network, a Third Generation (3G) or Fourth
  • 4G Generation (4G) mobile telecommunications network
  • a wired Ethernet network a private network such as an intranet
  • a public network such as the Internet, or any appropriate combination of networks.
  • FIG. 1 A also illustrates an example flow of data, shown in stages (A) to (F). Stages (A) to (F) may occur in the illustrated sequence, or they may occur in a suitable sequence that is different than in the illustrated sequence. In some implementations, one or more of the stages (A) to (F) may occur offline, where the computing system 120 or the client device 1 10 may perform computations when the client device 1 10 is not connected to the network 130.
  • the computing system 120 obtains a collection of population-level training data 122, and inputs the population-level training data 122 to a model training module 140.
  • the population-level training data 122 represents multiple observations collected by multiple client devices, where the observations are associated with one or more activities performed by each of a collection of users.
  • the population-level training data 122 may be stored and accessible by the computing system 120.
  • a client device may include one or more sensors for measuring an orientation, a location, a motion, a velocity, a typing pattern, phone usage, or other measurable parameters by the client device. These measurements may be correlated with an activity performed by a user of the client device to generate an observation for the activity.
  • the observations from multiple client devices may be aggregated to form the collection of population-level training data 122.
  • the population-level training data 122 may include a single observation performed by a user. In some other implementations, the population-level training data 122 may include multiple observations performed by the same user.
  • the population-level training data 122 may include a specific type of measured data associated with an activity. In some other implementations, the population-level training data 122 may include multiple types of measured data associated with an activity. In some implementations, the
  • population-level training data 122 may include data representing demographics of the collection of users. For example, the computing system 120 may select training data based on gender of the users for the population-level training data 122. In some implementations, the population-level training data 122 may be anonymous.
  • the population-level training data 122 may be normalized to a specified format. For example, training data collected from client devices manufactured by different manufacturers may be normalized to a standard format before aggregating into population-level training data 122. As another example, training data collected from client devices running different operating systems may be normalized to a standard format before aggregating into population- level training data 122.
  • multiple types of measured data may be normalized to a specific format. For example, multiple types of measured data associated with a specific activity for a user may be represented by a single vector. In some implementations, one or more weights may be assigned to one or more of the multiple types of measured data.
  • a model training module 140 of the computing system 120 uses the population-level training data 122 to train a global model, resulting in a trained global model 142.
  • the model training module 140 may train a global model based on principal component analysis (PCA).
  • PCA principal component analysis
  • a non-time-series global model may be trained based on stochastic gradient descent. Descriptions of an example non-time-series model can be found in "Wsabie: Scaling Up To Large Vocabulary Image Annotation" by Weston, et. al., Proceedings of the International Joint Conference on Artificial Intelligence, IJCAI (201 1 ).
  • a time-series global model such as a recurrent neural network may be trained using vector-valued population-level training data.
  • Descriptions of an example time-series model can be found in "Generating sequences with recurrent neural networks" by Graves, et. al., CoRR abs/1308.0850.
  • the global model is trained based on population-level training data 122 associated with a specific activity. In some other implementations, the global model is trained based on population-level training data 122 associated with multiple activities.
  • one or more objective functions 124 may be provided as input to the model training module 140.
  • an objective function 124 may be target vectors specified as the desired outputs that the trained global model should produce after training.
  • the objective function 124 may specify a threshold for optimizing the trained global model 142.
  • the objective function 124 may specify a minimum signal-to-noise ratio of the signal and noise variances for deriving the global model based on PCA.
  • the objective function 124 may provide one or more conditions for categorizing the population-level training data 122 in the trained global model 142.
  • the objective function 124 may specify first conditions for characterizing that the user is walking and may specify second conditions for characterizing that the user is running.
  • the model that satisfies the one or more objective functions 124 may be designated as the trained global model 142.
  • the parameters of the model training module 140 are adjusted automatically by the computing system 120. In some other implementations, the parameters of the model training module 140 are adjusted manually by an operator of the computing system 120.
  • a representative global model 144 based on the trained global model 142 is transmitted from the computing system 120 to the client device 1 10 through the network 130.
  • the representative global model 144 may be a compressed or simplified version of the trained global model 142, so that the representative global model 144 may include a portion of, or subset of, the trained global model 142.
  • the trained global model 142 is trained under PCA as a vector space with m orthogonal axes
  • the representative global model 144 may include a vector space with (m-1 ) orthogonal axes, where m is an integer greater than one.
  • a user 102 operating the client device 1 10 provides activity data 152 to the client device 1 10.
  • the activity data 152 may be data measured by one or more sensors on the client device 1 10 while the user 102 is performing the specific activity.
  • the activity data 152 includes a specific type of measured data associated with an activity.
  • the activity data 152 includes multiple types of measured data associated with an activity.
  • the client device 1 10 may verify with the user 102 to confirm that the user 102 has performed a specific activity. In some
  • the client device 1 10 stores the activity data 152.
  • the activity data 152 may include data measured over a single observation. Alternatively, the activity data 152 may include data measured over multiple observations. For example, the user 102 may jog with the client device 1 10 for a period of time over several days. The activity data 152 may include data measured during one run over one single day, or data measured during multiple runs over multiple days. [0035] The client device 1 10 may normalize the activity data 152 to a specific format. Additionally, one or more weights can be assigned to one or more
  • the client device 1 10 evaluates the representative global model 144 to determine expected output data 156.
  • the expected output data 156 represents a prediction of characteristics associated with an activity performed by the user 102.
  • the expected output data 156 may be a vector.
  • the representative global model 144 may be a model with a reduced-dimension vector space having (m-1 ) principal axes based on PCA, where data along each principal axis is Gaussian-distributed.
  • the representative global model 144 may determine an averaged vector in the reduced-dimension vector space, and then project the averaged vector back to the original vector space with m orthogonal axes.
  • the expected output data 156 may be the projected vector in the original vector space.
  • the client device 1 10 may input profile data of the user 102 to the representative global model 144 to determine expected output data 156. For example, the client device 1 10 may input the age of the user 102 to the representative global model 144 to determine expected output data 156 for the age group of the user 102. This determination is performed locally on the client device 1 10, and therefore the user's profile is not transmitted to the computing system 120.
  • the residual module 150 of the client device 1 10 compares the activity data 152 and the expected output data 156 from the representative global model 144, and determines residual data 158.
  • the residual data 158 represents a characteristic signature of the user 102.
  • the residual module 150 determines the residual data 158 by determining a difference between the activity data 152 and the expected output data 156.
  • the residual module 150 may determine the residual data 158 by determining a vector distance between a first vector representing the activity data 152 and a second vector representing the expected output data 156.
  • FIG. 1 B is a block diagram of the example system 100 that can use the residual data to train a local model for the user 102.
  • a model e.g., a global model or a local model
  • a local model may be trained to predict the vector valued f ⁇ i f(0 ⁇ :
  • a model may refer to a representational model that is not invertible, but an inference function g may be applied to the representation output by 3 ⁇ 4 ⁇ to estimate a pseudo-observation g(/3 ⁇ 4l).
  • a global model or a local model may be a neural network with multiple hidden layers such that it may be challenging to invert the output, but an inference function may be applied to the output to estimate the input observation.
  • the client device 1 10 includes a model training module 160 configured to train a local model that represents the user 102 more accurately than the representative global model 144.
  • the local model may be transmitted to the computing system 120 as a representation of the user 102 without disclosing actual data measured during the observations.
  • the privacy of the user 102 is protected because the actual observations are stored locally in the client device 1 10 and not transmitted to the computing system 120.
  • the user 102 may control the disclosure of the actual observations to the computing system 120.
  • FIG. 1 B also illustrates an example flow of data, shown in stages (G) to (I). Stages (G) to (I) may occur in the illustrated sequence, or they may occur in a suitable sequence that is different than in the illustrated sequence. In some implementations, one or more of the stages (G) to (I) may occur offline, where the computing system 120 or the client device 1 10 may perform computations when the client device 1 10 is not connected to the network 130.
  • stage (G) the client device 1 10 inputs the residual data 158, the representative global model 144, and one or more objective functions 162 to a model training module 160.
  • stage (H) the model training module 160 determines a trained local model 164 for the user 102.
  • the training process for the local model is similar to the training process for the global model.
  • the model training module 160 may use the residual data 158 to determine updated principal axes of the representative global model 144 that minimize the signal-to-noise ratio of the signal and noise variances from the actual observations.
  • the training process for the local model may use a different model class.
  • the model training module 160 may use the residual data 158 to determine a local model associated with a different activity.
  • the training process may occur when the user 102 is not operating the client device 1 10. Alternatively, or additionally, the training process may occur when the client device 1 10 is connected to a power outlet. In some implementations, the client device 1 10 performs the training process in a batch, where multiple local models may be trained for different activities. In some implementations, the client device 1 10 performs the training process immediately upon receiving the residual data 158. In some implementations, the client device 1 10 performs the training process periodically.
  • the model training module 160 updates the trained local model 164 over time. For example, if the user 102 takes a run each day, the residual module 150 may compare data representing the actual
  • the residual module 150 may determine updated residual data, where the model training module 160 may determine an updated local model accordingly. This process allows the client device 1 10 to capture postural or other changes that the user 102 may be experiencing over time.
  • the client device 1 10 transmits a representative local model 166 to the computing system 120.
  • the representative local model 166 is different from the trained local model 164.
  • the representative local model 166 is different from the trained local model 164.
  • representative local model 166 may be a compressed version of the trained local model 164.
  • the client device 1 10 may remove private information about the user 102 from the trained local model 164 to generate the representative local model 166.
  • the local model is trained by the computing system 120.
  • the client device 1 10 may transmit residual data 158 to the computing system 120, where the computing system 120 may use the residual data 158 as training data or an objective function in training an updated model to represent the user 102.
  • FIG. 1 C is a block diagram of an example system 101 that can use the residual data to authenticate an identity of the user.
  • the client device 1 10 may compare new residual data generated at later times with the residual data 158 to verify the identity of the user 102.
  • the client device 1 10 includes a verification module 170 configured to verify the identity of the user 102 based on the quirk of the user 102.
  • FIG. 1 C also illustrates an example flow of data, shown in stages (J) to (O). Stages (J) to (O) may occur in the illustrated sequence, or they may occur in a suitable sequence that is different than in the illustrated sequence. In some implementations, one or more of the stages (J) to (O) may occur offline, where the client device 1 10 may perform computations when the client device 1 10 is not connected to the network 130.
  • stage (J) the user 102 performs the activity and the client device 1 10 measures and collects second activity data 172.
  • the user 102 may hold the client device 1 10 at a specific orientation.
  • the client device 1 10 may measure the orientation of the client device 1 10 continuously or periodically.
  • the user 102 may move at a specific range of speed.
  • the client device 1 10 may measure the movement of the client device 1 10 continuously or periodically.
  • the user 102 may talk with one or more speech features.
  • the client device 1 10 may measure the user's utterance and analyze the speech features continuously or periodically.
  • the second activity 172 and the expected output data 156 are used as input to the residual module 150.
  • the residual module 150 determines second residual data 178
  • stage (M) the residual data 158 and the second residual data 178 are used as input to the verification module 180.
  • stage (N) the verification module 180 determines whether the second residual data 178 substantially matches the residual data 158 of the user 102. In some implementations, the second residual data 178 substantially matches the residual data 158 if the difference between the second residual data 178 and the residual data 158 satisfies a threshold condition.
  • the verification module 180 may output a verification result 182.
  • stage (O) the client device 1 10 may provide an indication that represents a verification result 182 to the user 102.
  • the client device 1 10 may send the user 102 a visual or audio indication that the verification is successful. In some other implementations, if the client device 1 10 has accepted the identity of the user 102, the client device 1 10 may continue its operations without presenting the verification result 182 to the user 102.
  • the client device 1 10 may send the user 102 a visual or audio indication that the verification is rejected. In some implementations, if the client device 1 10 has rejected the identity of the user 102, the client device 1 10 prompts the user 102 for another way of verifying the identity of the user 102. If the number of attempts exceeds a threshold, the client device 1 10 may disallow the user 102 from further attempting to verify the user's identity.
  • FIG. 2 is a block diagram of an example system 200 that uses residual data of multiple activities to train a local model for the user.
  • the computing system 120 may train a respective global model for each activity.
  • a comprehensive user model may be trained to represent a comprehensive profile of the user.
  • the client device 1 10 may use the comprehensive user model to classify various activities being performed by the user.
  • the client device 1 10 may identify a specific user among multiple potential users by the quirks of the specific user.
  • the system 200 includes a comprehensive model training module 207 configured to receive multiple residual data 201 a-201 n as input, and determine a user model 209 as output.
  • the user model 209 may be trained on a client device e.g., the client device 1 10 of FIG. 1 B.
  • the user model 209 may be trained on a computing system e.g., the computing system 120 of FIG. 1A.
  • the comprehensive model training module 207 receives one or more additional input signals 203 as input.
  • the input signals 203 may include one or more of data, models, objective functions, or other signals that the comprehensive model training module 207 may use to generate the user model 209.
  • the input signals 203 may include expected output data for one or more activities.
  • the input signals 203 may include the actual observations for one or more activities.
  • the input signals 203 may include one or more global models and/or one or more local models for one or more activities.
  • the comprehensive model training module 207 updates the user model 209 over time. For example, the comprehensive model training module 207 may update the user model 209 periodically. Alternatively in another example, the comprehensive model training module 207 may update the user model 209 in response to residual data for one or more activities being updated.
  • FIG. 3 is a flow diagram that illustrates an example process 300 for deriving a local model.
  • the process 300 may be performed by data processing apparatus, such as the client device 1 10 described above. Alternatively or additionally, the process 300 may be performed by the computing system 120 or another data processing apparatus.
  • the system obtains a global model for a particular activity (302).
  • the global model may be derived based on input data representing multiple observations associated with the particular activity performed by a collection of users.
  • the client device 1 10 may receive a representative global model 144 from the computing system 120.
  • the system determines, using the global model, expected data that represent an expected observation associated with the particular activity performed by a particular user (304).
  • the client device 1 10 may use the representative global model 144 to determine expected output data 156.
  • the system receives particular data representing an actual observation associated with the particular activity performed by the particular user (306).
  • the client device 1 10 may receive the activity data 152 from the user 102.
  • the system determines residual data using (i) the expected data and (ii) the particular data (308).
  • the residual module 150 may determine the residual data 158 based on the activity data 152 and the expected output data 156.
  • the system determines the residual data based on a difference between the expected data and the particular data. For example, if the expected output data 156 and the activity data 152 are vectors of equal dimensions, the residual module 150 may determine the residual data 158 based on a difference between the two vectors.
  • the system receives second particular data associated with the particular activity.
  • the client device 1 10 may receive the second activity data 172 from the user 102.
  • the system may determine second residual data using (i) the expected data and (ii) the second particular data.
  • the residual module 150 may determine second residual data 178 based on the second activity data 172 and the expected output data 156.
  • the system may determine that the second residual data does not substantially match the residual data.
  • the verification module 180 may determine that the second residual data 178 does not substantially match the residual data 158.
  • the second residual data 178 does not substantially match the residual data 158 if a difference between the second residual data 178 and the residual data 158 does not satisfy a threshold.
  • the system may determine that an identity of the particular user is not verified.
  • the verification module 180 may output the verification result 182, and notify the user that the identity of the user 102 is not verified.
  • the system derives a local model of the particular user based on the residual data (310).
  • the local model may be derived by a computing device.
  • the model training module 160 of the client device 1 10 may derive the local model 164.
  • the computing device may transmit the local model of the particular user to one or more remote computers as a representation of the particular user.
  • the client device 1 10 may transmit the
  • the computing device may transmit the residual data to one or more remote computers, where the local model may be derived by the one or more remote computers.
  • the client device 1 10 may transmit the residual data 158 to the computing system 120, where the model training module 140 of the computing system 120 may derive a local model for the user 102.
  • the system determines, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, where the particular expected data determined by the local model substantially matches the particular data.
  • the client device 1 10 may use the trained local model 164 to generate expected output data associated with an activity, where the expected output data substantially matches the activity data 152.
  • the particular expected data may be determined as substantially matching the particular data if a difference between the particular expected data and the particular data satisfies a threshold.
  • the system obtains a second global model for a second activity that is different from the particular activity.
  • the second global model may be derived based on second input data representing multiple observations associated with the second activity performed by multiple users.
  • the system may determine, using the second global model, second expected data representing an expected observation associated with the second activity performed by a user.
  • the system may receive, by a computing device operated by the particular user, second particular data representing an actual observation associated with the second activity performed by the particular user.
  • the system may determine, by the computing device and using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
  • the system may derive the local model of the particular user based at least on (i) the residual data and (ii) the second residual data.
  • the comprehensive model training module 207 may derive the user model 209 based on residual data 201 a-n.
  • FIG. 4 is a flow diagram that illustrates an example process 400 for deriving a local model based on principal component analysis.
  • the process 400 may be performed by data processing apparatus, such as the system 100 described above or another data processing apparatus.
  • the computing system 120 receives population-level training data (402). For example, for all the training users that have performed a specific activity, the respective client devices may have provided the computing system 120 with a total of n observations, where n is an integer equal to or greater than one. Each observation may include m types of measurements, where m is an integer equal to or greater than one.
  • the population-level training data may be constructed as an m- by-n matrix.
  • the computing system 120 maps the population-level training data to m- dimensional vector space, where m may be an integer greater than or equal to one (404). For example, by assigning each of the m types of measurements as a dimension, each of the n observations can be assigned to a vector with size m.
  • the computing system 120 may map the n vectors to a vector space with m orthogonal axes.
  • the computing system 120 determines one or more principal axes based on the mapped population-level training data (406). For example, using principal component analysis, the computing system 120 can find the eigenvectors of the covariance to determine the principal axes of the vector space.
  • the computing system 120 derives a global model with reduced vector space dimensions (408). For example, the computing system 120 may determine the variance along each of the principal axes. If the variance of a particular principal axis satisfies a threshold, the computing system 120 may determine that the data along the particular principal axis represent substantive data. If the variance of a particular principal axis does not satisfy a threshold, the computing system 120 may determine that the data along the particular principal axis represent noise, and the computing system 120 may remove the particular principal axis from the vector space to reduce the dimension of the vector space.
  • the computing system 120 may generate a global model with a vector space having (m- 1 ) principal axes. The n observations are mapped to the reduced vector space accordingly, where each vector has (m-1 ) elements.
  • the client device 1 10 receives the global model (410).
  • the client device 1 10 may receive the reduced vector space having (m-1 ) principal axes with n vectors as the global model.
  • the client device 1 10 determines expected data (412). For example, the client device may determine a mean vector using the n vectors in the reduced vector space. The mean vector has (m-1 ) elements. [0076] The client device 1 10 re-maps the expected data to m-dimensional vector space (414). For example, the client device 1 10 may re-map the mean vector back into the original vector space having m orthogonal axes. The re-mapped mean vector represents an expected pseudo-observation for a user performing the activity.
  • the client device 1 10 receives user data (416).
  • the client device 1 10 may receive an observation including m types of measuring data from the user 102 while the user 102 is performing the activity.
  • the client device 1 10 may receive k observations from the user 102, where k is an integer equal to or greater than one.
  • the client device 1 10 maps user data to the m-dimensional vector space (418). For example, the client device 1 10 may map the actual observations to the original vector space.
  • the client device 1 10 determines residual data (420). For example, the client device 1 10 may determine a vector distance between the mapped actual observations, and the re-mapped mean vector as the residual data.
  • the client device 1 10 derives the local model (422). For example, the client device 1 10 may use the vector distance as a training target in deriving the local model for the user 102.
  • Embodiments and all of the functional operations described in this specification may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification
  • Embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus.
  • the computer readable-medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of them.
  • the computer-readable medium may be a non- transitory computer-readable medium.
  • data processing apparatus encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
  • the apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
  • a propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.
  • a computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program does not necessarily correspond to a file in a file system.
  • a program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
  • a computer program may be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
  • the processes and logic flows may also be performed by, and apparatus may also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
  • mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
  • a computer need not have such devices.
  • a computer may be embedded in another device, e.g., a tablet computer, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few.
  • Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks;
  • magneto optical disks and CD-ROM and DVD-ROM disks.
  • the processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
  • embodiments may be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user may provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input.
  • Embodiments may be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user may interact with an implementation of the techniques disclosed, or any combination of one or more such back end, middleware, or front end components.
  • the components of the system may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN”) and a wide area network (“WAN”), e.g., the Internet.
  • the computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for 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; 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; 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 local model of the particular user based on the residual data.

Description

LOCALIZED LEARNING FROM A GLOBAL MODEL
BACKGROUND
[0001] This specification relates to evaluating a global model to determine user- specific characteristics.
[0002] A global model is typically generated to predict characteristics associated with an activity. A typical global model is generated by training a model using data collected from a collection of users.
SUMMARY
[0003] According to one innovative aspect of the subject matter described in this specification, a global model for an activity or a behavior may be trained by a server system using population-level data collected from a collection of users. The global model may be distributed to a user device. The global model may be evaluated locally on the user device to predict characteristics associated with the activity or the behavior for a user of the user device. The predicted characteristics may be compared with observed user-specific characteristics to generate a difference between local observations and the prediction of those observations. The difference may represent the user's individual signature, and may be used to train a user- specific model.
[0004] In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of 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; 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; 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 local model of the particular user based on the residual data. [0005] These and other implementations can each optionally include one or more of the following features. Determining the residual data using (i) the expected data and (ii) the particular data may include determining the residual data based on a difference between the expected data and the particular data. The actions may include determining, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, where the particular expected data determined by the local model substantially matches the particular data.
[0006] The local model may be derived by the computing device. The actions may include transmitting, from the computing device to one or more remote computers, the local model of the particular user as a representation of the particular user.
[0007] Deriving the local model of the particular user may include transmitting, from the computing device to one or more remote computers, the residual data, and deriving the local model by the one or more remote computers. The global model may include a first vector space constructed by first multiple principal axes, and the local model may include a second vector space constructed by second multiple principal axes that are different from the first multiple principal axes.
[0008] The actions may include obtaining a second global model for a second activity that is different from the particular activity, the second global model derived based on second input data representing multiple observations associated with the second activity performed by a collection of users; determining, using the second global model, second expected data representing an expected observation associated with the second activity performed by the particular user; receiving, by the computing device operated by the particular user, second particular data representing an actual observation associated with the second activity performed by the particular user; and determining, by the computing device and using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
[0009] Deriving the local model of the particular user may include deriving the local model of the particular user based at least on (i) the residual data and (ii) the second residual data. [0010] Advantageous implementations may include one or more of the following features. The difference between local observations and the expected observations may be determined locally on the user device, and therefore may protect user privacy. The user-specific characteristics or the difference between local
observations and the expected observations may be subsequently used to authenticate the user's identity. A more accurate local model for the user may be trained using the user-specific characteristics or the difference. The local model may be transmitted to the remote server to represent the user without disclosing actual observations of the user to the remote server, and therefore may further protect user privacy. By collecting local models trained on multiple client devices, a central server system can learn what systematic errors are made by the deployed global model. An improved global model could be trained taking into account the collected local models.
[001 1] Other implementations of this and other aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices. A system of one or more computers can be so configured by virtue of software, firmware, hardware, or a combination of them installed on the system that in operation cause the system to perform the actions. One or more computer programs can be so configured by virtue of having instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
[0012] The details of one or more implementations are set forth in the
accompanying drawings and the description below. Other potential features and advantages will become apparent from the description, the drawings, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] FIG. 1 A is a block diagram of an example system.
[0014] FIG. 1 B is a block diagram of an example system that can use residual data to train a local model for the user.
[0015] FIG. 1 C is a block diagram of an example system that can use the residual data to authenticate the identity of the user. [0016] FIG. 2 is a block diagram of an example system that can use residual data of multiple activities to train a local model for the user.
[0017] FIG. 3 is a flow chart illustrating an example process for deriving a local model.
[0018] FIG. 4 is a flow chart illustrating an example process for deriving a local model based on principal component analysis.
[0019] Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
[0020] FIG. 1A is a block diagram of an example system 100. The system 100 can be used evaluate a global model to determine an expected observation for a user activity. The system 100 can also be used to determine residual data based on a comparison between the expected observation and an actual observation. A global model refers to a model trained using population-level data from a collection of users operating one or more respective computing devices. The global model may be transmitted to, and evaluated locally on, a particular computing device for a particular user. A comparison between the expected observation predicted by the global model and the actual observation of the user provides the residual data that may represent a unique characteristic of the user.
[0021] The system 100 includes a client device 1 10, a computing system 120, and a network 130. In general, the computing system 120 may be a remote server system that provides a representative global model 144 based on a trained global model 142 to the client device 1 10. The computing system 120 includes a model training module 140 for deriving a trained global model 142 to provide a population- level baseline for one or more activities or behaviors associated with a group of training users. The functions performed by the computing system 120 can be performed by individual computer systems or can be distributed across multiple computer systems.
[0022] In the system 100, the client device 1 10 can be, for example, a desktop computer, laptop computer, a tablet computer, a wearable computer, a cellular phone, a smart phone, a music player, an e-book reader, a navigation system, or any other appropriate computing device. In some implementations, the client device 1 10 may include one or more sensors for measuring one or more characteristics of a user of the client device 1 10. For example, the client device 1 10 may include an accelerometer, a GPS receiver, a gyroscope, a magnetometer, a microphone, a touch panel, a camera, a user operation (e.g., keyboard, application usage, etc.), or any other appropriate sensors. In some implementations, an observation of an activity of a user includes a combination of one or more measured characteristics from the user during the activity. In some implementations, an observation may include a combination of one or more measured characteristics, as processed by one or more software modules or engines. Examples of an activity include walking, running, driving, texting, talking on the phone, recording photographs, recording videos, or any other activities that the client device 1 10 may measure.
[0023] In some implementations, a client device 1 10, e.g., a phone of a user, may receive a representative global model 144 from the computing system 120, where the representative global model 144 may be a compressed or simplified version of the trained global model 142. The client device 1 10 includes a residual module 150 for determining residual data 158. The client device 1 10 may store the
representative global model 144, and locally evaluate the representative global model 144 and to determine the residual data 158 without communicating with a remote server system (e.g., the computing system 120). As a result, the specific observations of the user 102 can be withheld from the remote server system.
Moreover, as described in more detail below with reference to FIG. 1 B, the residual data 158 may be used to train a local model for the user 102 to provide a more accurate representation of the user 102.
[0024] The network 130 can be wired or wireless or a combination of both. The network 130 can include, for example, a wireless cellular network, a wireless local area network (WLAN) or Wi-Fi network, a Third Generation (3G) or Fourth
Generation (4G) mobile telecommunications network, a wired Ethernet network, a private network such as an intranet, a public network such as the Internet, or any appropriate combination of networks.
[0025] FIG. 1 A also illustrates an example flow of data, shown in stages (A) to (F). Stages (A) to (F) may occur in the illustrated sequence, or they may occur in a suitable sequence that is different than in the illustrated sequence. In some implementations, one or more of the stages (A) to (F) may occur offline, where the computing system 120 or the client device 1 10 may perform computations when the client device 1 10 is not connected to the network 130.
[0026] During stage (A), the computing system 120 obtains a collection of population-level training data 122, and inputs the population-level training data 122 to a model training module 140. In general, the population-level training data 122 represents multiple observations collected by multiple client devices, where the observations are associated with one or more activities performed by each of a collection of users. In some implementations, the population-level training data 122 may be stored and accessible by the computing system 120. For example, a client device may include one or more sensors for measuring an orientation, a location, a motion, a velocity, a typing pattern, phone usage, or other measurable parameters by the client device. These measurements may be correlated with an activity performed by a user of the client device to generate an observation for the activity. The observations from multiple client devices may be aggregated to form the collection of population-level training data 122. In some implementations, the population-level training data 122 may include a single observation performed by a user. In some other implementations, the population-level training data 122 may include multiple observations performed by the same user.
[0027] In some implementation, the population-level training data 122 may include a specific type of measured data associated with an activity. In some other implementations, the population-level training data 122 may include multiple types of measured data associated with an activity. In some implementations, the
population-level training data 122 may include data representing demographics of the collection of users. For example, the computing system 120 may select training data based on gender of the users for the population-level training data 122. In some implementations, the population-level training data 122 may be anonymous.
[0028] In some implementations, the population-level training data 122 may be normalized to a specified format. For example, training data collected from client devices manufactured by different manufacturers may be normalized to a standard format before aggregating into population-level training data 122. As another example, training data collected from client devices running different operating systems may be normalized to a standard format before aggregating into population- level training data 122. In some implementations, multiple types of measured data may be normalized to a specific format. For example, multiple types of measured data associated with a specific activity for a user may be represented by a single vector. In some implementations, one or more weights may be assigned to one or more of the multiple types of measured data.
[0029] During stage (B), a model training module 140 of the computing system 120 uses the population-level training data 122 to train a global model, resulting in a trained global model 142. For example, the model training module 140 may train a global model based on principal component analysis (PCA). As another example, a non-time-series global model may be trained based on stochastic gradient descent. Descriptions of an example non-time-series model can be found in "Wsabie: Scaling Up To Large Vocabulary Image Annotation" by Weston, et. al., Proceedings of the International Joint Conference on Artificial Intelligence, IJCAI (201 1 ). As another example, a time-series global model such as a recurrent neural network may be trained using vector-valued population-level training data. Descriptions of an example time-series model can be found in "Generating sequences with recurrent neural networks" by Graves, et. al., CoRR abs/1308.0850. In some
implementations, the global model is trained based on population-level training data 122 associated with a specific activity. In some other implementations, the global model is trained based on population-level training data 122 associated with multiple activities.
[0030] During training, one or more objective functions 124 may be provided as input to the model training module 140. In some implementations, an objective function 124 may be target vectors specified as the desired outputs that the trained global model should produce after training. The objective function 124 may specify a threshold for optimizing the trained global model 142. For example, the objective function 124 may specify a minimum signal-to-noise ratio of the signal and noise variances for deriving the global model based on PCA. The objective function 124 may provide one or more conditions for categorizing the population-level training data 122 in the trained global model 142. For example, the objective function 124 may specify first conditions for characterizing that the user is walking and may specify second conditions for characterizing that the user is running. [0031] The model that satisfies the one or more objective functions 124 may be designated as the trained global model 142. In some implementations, the parameters of the model training module 140 are adjusted automatically by the computing system 120. In some other implementations, the parameters of the model training module 140 are adjusted manually by an operator of the computing system 120.
[0032] During stage (C), once the global model has been trained, a representative global model 144 based on the trained global model 142 is transmitted from the computing system 120 to the client device 1 10 through the network 130. In some implementations, the representative global model 144 may be a compressed or simplified version of the trained global model 142, so that the representative global model 144 may include a portion of, or subset of, the trained global model 142. For example, if the trained global model 142 is trained under PCA as a vector space with m orthogonal axes, the representative global model 144 may include a vector space with (m-1 ) orthogonal axes, where m is an integer greater than one.
[0033] During stage (D), a user 102 operating the client device 1 10 provides activity data 152 to the client device 1 10. The activity data 152 may be data measured by one or more sensors on the client device 1 10 while the user 102 is performing the specific activity. In some implementations, the activity data 152 includes a specific type of measured data associated with an activity. In some other implementations, the activity data 152 includes multiple types of measured data associated with an activity. The client device 1 10 may verify with the user 102 to confirm that the user 102 has performed a specific activity. In some
implementations, the client device 1 10 stores the activity data 152.
[0034] The activity data 152 may include data measured over a single observation. Alternatively, the activity data 152 may include data measured over multiple observations. For example, the user 102 may jog with the client device 1 10 for a period of time over several days. The activity data 152 may include data measured during one run over one single day, or data measured during multiple runs over multiple days. [0035] The client device 1 10 may normalize the activity data 152 to a specific format. Additionally, one or more weights can be assigned to one or more
measurements of the activity data 152.
[0036] During stage (E), the client device 1 10 evaluates the representative global model 144 to determine expected output data 156. In general, the expected output data 156 represents a prediction of characteristics associated with an activity performed by the user 102. In some implementations, the expected output data 156 may be a vector. For example, the representative global model 144 may be a model with a reduced-dimension vector space having (m-1 ) principal axes based on PCA, where data along each principal axis is Gaussian-distributed. The representative global model 144 may determine an averaged vector in the reduced-dimension vector space, and then project the averaged vector back to the original vector space with m orthogonal axes. The expected output data 156 may be the projected vector in the original vector space.
[0037] In some implementations, the client device 1 10 may input profile data of the user 102 to the representative global model 144 to determine expected output data 156. For example, the client device 1 10 may input the age of the user 102 to the representative global model 144 to determine expected output data 156 for the age group of the user 102. This determination is performed locally on the client device 1 10, and therefore the user's profile is not transmitted to the computing system 120.
[0038] During stage (F), the residual module 150 of the client device 1 10 compares the activity data 152 and the expected output data 156 from the representative global model 144, and determines residual data 158. In general, the residual data 158 represents a characteristic signature of the user 102. In some implementations, the residual module 150 determines the residual data 158 by determining a difference between the activity data 152 and the expected output data 156. For example, the residual module 150 may determine the residual data 158 by determining a vector distance between a first vector representing the activity data 152 and a second vector representing the expected output data 156.
[0039] FIG. 1 B is a block diagram of the example system 100 that can use the residual data to train a local model for the user 102. In general, a model (e.g., a global model or a local model) may refer to any representational model ?(?;) that is invertible, where given the representation output by a maximum likelihood pseudo-observation f *(/¾ι may be found. For example, a local model may be trained to predict the vector valued f~i f(0} : In some implementations, a model may refer to a representational model that is not invertible, but an inference function g may be applied to the representation output by ¾φ to estimate a pseudo-observation g(/¾l). For example, a global model or a local model may be a neural network with multiple hidden layers such that it may be challenging to invert the output, but an inference function may be applied to the output to estimate the input observation.
[0040] In general, the client device 1 10 includes a model training module 160 configured to train a local model that represents the user 102 more accurately than the representative global model 144. The local model may be transmitted to the computing system 120 as a representation of the user 102 without disclosing actual data measured during the observations. Advantageously, the privacy of the user 102 is protected because the actual observations are stored locally in the client device 1 10 and not transmitted to the computing system 120. In some
implementations, the user 102 may control the disclosure of the actual observations to the computing system 120.
[0041] FIG. 1 B also illustrates an example flow of data, shown in stages (G) to (I). Stages (G) to (I) may occur in the illustrated sequence, or they may occur in a suitable sequence that is different than in the illustrated sequence. In some implementations, one or more of the stages (G) to (I) may occur offline, where the computing system 120 or the client device 1 10 may perform computations when the client device 1 10 is not connected to the network 130.
[0042] During stage (G), the client device 1 10 inputs the residual data 158, the representative global model 144, and one or more objective functions 162 to a model training module 160. During stage (H), the model training module 160 determines a trained local model 164 for the user 102. In some implementations, the training process for the local model is similar to the training process for the global model. For example, using PCA, the model training module 160 may use the residual data 158 to determine updated principal axes of the representative global model 144 that minimize the signal-to-noise ratio of the signal and noise variances from the actual observations. In some implementations, the training process for the local model may use a different model class. For example, the model training module 160 may use the residual data 158 to determine a local model associated with a different activity.
[0043] The training process may occur when the user 102 is not operating the client device 1 10. Alternatively, or additionally, the training process may occur when the client device 1 10 is connected to a power outlet. In some implementations, the client device 1 10 performs the training process in a batch, where multiple local models may be trained for different activities. In some implementations, the client device 1 10 performs the training process immediately upon receiving the residual data 158. In some implementations, the client device 1 10 performs the training process periodically.
[0044] In some implementations, the model training module 160 updates the trained local model 164 over time. For example, if the user 102 takes a run each day, the residual module 150 may compare data representing the actual
observations for these runs with expected output data determined by the current trained local model 164. The residual module 150 may determine updated residual data, where the model training module 160 may determine an updated local model accordingly. This process allows the client device 1 10 to capture postural or other changes that the user 102 may be experiencing over time.
[0045] During stage (I), the client device 1 10 transmits a representative local model 166 to the computing system 120. In some implementations, the representative local model 166 is different from the trained local model 164. For example, the
representative local model 166 may be a compressed version of the trained local model 164. As another example, the client device 1 10 may remove private information about the user 102 from the trained local model 164 to generate the representative local model 166.
[0046] Although not illustrated in FIG. 1 B, in some implementations, the local model is trained by the computing system 120. For example, the client device 1 10 may transmit residual data 158 to the computing system 120, where the computing system 120 may use the residual data 158 as training data or an objective function in training an updated model to represent the user 102. [0047] FIG. 1 C is a block diagram of an example system 101 that can use the residual data to authenticate an identity of the user. In general, after the residual data 158 has been determined by the client device 1 10, the client device 1 10 may compare new residual data generated at later times with the residual data 158 to verify the identity of the user 102. The client device 1 10 includes a verification module 170 configured to verify the identity of the user 102 based on the quirk of the user 102.
[0048] FIG. 1 C also illustrates an example flow of data, shown in stages (J) to (O). Stages (J) to (O) may occur in the illustrated sequence, or they may occur in a suitable sequence that is different than in the illustrated sequence. In some implementations, one or more of the stages (J) to (O) may occur offline, where the client device 1 10 may perform computations when the client device 1 10 is not connected to the network 130.
[0049] During stage (J), the user 102 performs the activity and the client device 1 10 measures and collects second activity data 172. For example, while walking, the user 102 may hold the client device 1 10 at a specific orientation. The client device 1 10 may measure the orientation of the client device 1 10 continuously or periodically. As another example, while running, the user 102 may move at a specific range of speed. The client device 1 10 may measure the movement of the client device 1 10 continuously or periodically. As another example, while speaking on the client device 1 10, the user 102 may talk with one or more speech features. The client device 1 10 may measure the user's utterance and analyze the speech features continuously or periodically. During stage (K), the second activity 172 and the expected output data 156 are used as input to the residual module 150. During stage (L), the residual module 150 determines second residual data 178
[0050] During stage (M), the residual data 158 and the second residual data 178 are used as input to the verification module 180. During stage (N), the verification module 180 determines whether the second residual data 178 substantially matches the residual data 158 of the user 102. In some implementations, the second residual data 178 substantially matches the residual data 158 if the difference between the second residual data 178 and the residual data 158 satisfies a threshold condition. The verification module 180 may output a verification result 182. [0051] During stage (O), the client device 1 10 may provide an indication that represents a verification result 182 to the user 102. In some implementations, if the client device 1 10 has accepted the identity of the user 102, the client device 1 10 may send the user 102 a visual or audio indication that the verification is successful. In some other implementations, if the client device 1 10 has accepted the identity of the user 102, the client device 1 10 may continue its operations without presenting the verification result 182 to the user 102.
[0052] If the client device 1 10 has rejected the identity of the user 102, the client device 1 10 may send the user 102 a visual or audio indication that the verification is rejected. In some implementations, if the client device 1 10 has rejected the identity of the user 102, the client device 1 10 prompts the user 102 for another way of verifying the identity of the user 102. If the number of attempts exceeds a threshold, the client device 1 10 may disallow the user 102 from further attempting to verify the user's identity.
[0053] FIG. 2 is a block diagram of an example system 200 that uses residual data of multiple activities to train a local model for the user. In general, the computing system 120 may train a respective global model for each activity. Once the client system 1 10 determines the quirks, or the residual data, associated with each activity, a comprehensive user model may be trained to represent a comprehensive profile of the user. For example, the client device 1 10 may use the comprehensive user model to classify various activities being performed by the user. As another example, if multiple comprehensive user models have been stored in the client device 1 10, the client device 1 10 may identify a specific user among multiple potential users by the quirks of the specific user.
[0054] The system 200 includes a comprehensive model training module 207 configured to receive multiple residual data 201 a-201 n as input, and determine a user model 209 as output. In some implementations, the user model 209 may be trained on a client device e.g., the client device 1 10 of FIG. 1 B. In some other implementations, the user model 209 may be trained on a computing system e.g., the computing system 120 of FIG. 1A.
[0055] In some implementations, the comprehensive model training module 207 receives one or more additional input signals 203 as input. The input signals 203 may include one or more of data, models, objective functions, or other signals that the comprehensive model training module 207 may use to generate the user model 209. For example, the input signals 203 may include expected output data for one or more activities. As another example, the input signals 203 may include the actual observations for one or more activities. As another example, the input signals 203 may include one or more global models and/or one or more local models for one or more activities.
[0056] In some implementations, the comprehensive model training module 207 updates the user model 209 over time. For example, the comprehensive model training module 207 may update the user model 209 periodically. Alternatively in another example, the comprehensive model training module 207 may update the user model 209 in response to residual data for one or more activities being updated.
[0057] FIG. 3 is a flow diagram that illustrates an example process 300 for deriving a local model. The process 300 may be performed by data processing apparatus, such as the client device 1 10 described above. Alternatively or additionally, the process 300 may be performed by the computing system 120 or another data processing apparatus.
[0058] The system obtains a global model for a particular activity (302). In some implementations, the global model may be derived based on input data representing multiple observations associated with the particular activity performed by a collection of users. For example, the client device 1 10 may receive a representative global model 144 from the computing system 120.
[0059] The system determines, using the global model, expected data that represent an expected observation associated with the particular activity performed by a particular user (304). For example, the client device 1 10 may use the representative global model 144 to determine expected output data 156.
[0060] The system receives particular data representing an actual observation associated with the particular activity performed by the particular user (306). For example, the client device 1 10 may receive the activity data 152 from the user 102.
[0061] The system determines residual data using (i) the expected data and (ii) the particular data (308). For example, the residual module 150 may determine the residual data 158 based on the activity data 152 and the expected output data 156. [0062] In some implementations, the system determines the residual data based on a difference between the expected data and the particular data. For example, if the expected output data 156 and the activity data 152 are vectors of equal dimensions, the residual module 150 may determine the residual data 158 based on a difference between the two vectors.
[0063] In some implementations, the system receives second particular data associated with the particular activity. For example, the client device 1 10 may receive the second activity data 172 from the user 102. The system may determine second residual data using (i) the expected data and (ii) the second particular data. For example, the residual module 150 may determine second residual data 178 based on the second activity data 172 and the expected output data 156. The system may determine that the second residual data does not substantially match the residual data. For example, the verification module 180 may determine that the second residual data 178 does not substantially match the residual data 158. In some implementations, the second residual data 178 does not substantially match the residual data 158 if a difference between the second residual data 178 and the residual data 158 does not satisfy a threshold. In response to determining that the second residual data does not substantially match the residual data, the system may determine that an identity of the particular user is not verified. For example, the verification module 180 may output the verification result 182, and notify the user that the identity of the user 102 is not verified.
[0064] The system derives a local model of the particular user based on the residual data (310). In some implementations, the local model may be derived by a computing device. For example, the model training module 160 of the client device 1 10 may derive the local model 164. The computing device may transmit the local model of the particular user to one or more remote computers as a representation of the particular user. For example, the client device 1 10 may transmit the
representative local model 166 to the computing system 120.
[0065] In some implementations, the computing device may transmit the residual data to one or more remote computers, where the local model may be derived by the one or more remote computers. For example, the client device 1 10 may transmit the residual data 158 to the computing system 120, where the model training module 140 of the computing system 120 may derive a local model for the user 102. [0066] In some implementations, the system determines, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, where the particular expected data determined by the local model substantially matches the particular data. For example, the client device 1 10 may use the trained local model 164 to generate expected output data associated with an activity, where the expected output data substantially matches the activity data 152. The particular expected data may be determined as substantially matching the particular data if a difference between the particular expected data and the particular data satisfies a threshold.
[0067] In some implementations, the system obtains a second global model for a second activity that is different from the particular activity. The second global model may be derived based on second input data representing multiple observations associated with the second activity performed by multiple users. The system may determine, using the second global model, second expected data representing an expected observation associated with the second activity performed by a user. The system may receive, by a computing device operated by the particular user, second particular data representing an actual observation associated with the second activity performed by the particular user. The system may determine, by the computing device and using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
[0068] In some implementations, the system may derive the local model of the particular user based at least on (i) the residual data and (ii) the second residual data. For example, the comprehensive model training module 207 may derive the user model 209 based on residual data 201 a-n.
[0069] FIG. 4 is a flow diagram that illustrates an example process 400 for deriving a local model based on principal component analysis. The process 400 may be performed by data processing apparatus, such as the system 100 described above or another data processing apparatus.
[0070] The computing system 120 receives population-level training data (402). For example, for all the training users that have performed a specific activity, the respective client devices may have provided the computing system 120 with a total of n observations, where n is an integer equal to or greater than one. Each observation may include m types of measurements, where m is an integer equal to or greater than one. The population-level training data may be constructed as an m- by-n matrix.
[0071] The computing system 120 maps the population-level training data to m- dimensional vector space, where m may be an integer greater than or equal to one (404). For example, by assigning each of the m types of measurements as a dimension, each of the n observations can be assigned to a vector with size m. The computing system 120 may map the n vectors to a vector space with m orthogonal axes.
[0072] The computing system 120 determines one or more principal axes based on the mapped population-level training data (406). For example, using principal component analysis, the computing system 120 can find the eigenvectors of the covariance to determine the principal axes of the vector space.
[0073] The computing system 120 derives a global model with reduced vector space dimensions (408). For example, the computing system 120 may determine the variance along each of the principal axes. If the variance of a particular principal axis satisfies a threshold, the computing system 120 may determine that the data along the particular principal axis represent substantive data. If the variance of a particular principal axis does not satisfy a threshold, the computing system 120 may determine that the data along the particular principal axis represent noise, and the computing system 120 may remove the particular principal axis from the vector space to reduce the dimension of the vector space. For example, if the computing system 120 determines that one principal axis does not carry substantive data, the computing system 120 may generate a global model with a vector space having (m- 1 ) principal axes. The n observations are mapped to the reduced vector space accordingly, where each vector has (m-1 ) elements.
[0074] The client device 1 10 receives the global model (410). For example, the client device 1 10 may receive the reduced vector space having (m-1 ) principal axes with n vectors as the global model.
[0075] The client device 1 10 determines expected data (412). For example, the client device may determine a mean vector using the n vectors in the reduced vector space. The mean vector has (m-1 ) elements. [0076] The client device 1 10 re-maps the expected data to m-dimensional vector space (414). For example, the client device 1 10 may re-map the mean vector back into the original vector space having m orthogonal axes. The re-mapped mean vector represents an expected pseudo-observation for a user performing the activity.
[0077] The client device 1 10 receives user data (416). For example, the client device 1 10 may receive an observation including m types of measuring data from the user 102 while the user 102 is performing the activity. In some implementations, the client device 1 10 may receive k observations from the user 102, where k is an integer equal to or greater than one.
[0078] The client device 1 10 maps user data to the m-dimensional vector space (418). For example, the client device 1 10 may map the actual observations to the original vector space.
[0079] The client device 1 10 determines residual data (420). For example, the client device 1 10 may determine a vector distance between the mapped actual observations, and the re-mapped mean vector as the residual data.
[0080] The client device 1 10 derives the local model (422). For example, the client device 1 10 may use the vector distance as a training target in deriving the local model for the user 102.
[0081] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. For example, various forms of the flows shown above may be used, with steps re-ordered, added, or removed.
[0082] Embodiments and all of the functional operations described in this specification may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this
specification and their structural equivalents, or in combinations of one or more of them. Embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable-medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or a combination of one or more of them. The computer-readable medium may be a non- transitory computer-readable medium. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus.
[0083] A computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
[0084] The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
[0085] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer may be embedded in another device, e.g., a tablet computer, a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks;
magneto optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0086] To provide for interaction with a user, embodiments may be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user may provide input to the computer. Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input.
[0087] Embodiments may be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user may interact with an implementation of the techniques disclosed, or any combination of one or more such back end, middleware, or front end components. The components of the system may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), e.g., the Internet. [0088] The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0089] While this specification contains many specifics, these should not be construed as limitations, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[0090] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products.
[0091] Thus, particular embodiments have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims may be performed in a different order and still achieve desirable results.

Claims

1 . 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;
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;
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 local model of the particular user based on the residual data.
2. The method of claim 1 , wherein determining the residual data using (i) the expected data and (ii) the particular data comprises determining the residual data based on a difference between the expected data and the particular data.
3. The method of claim 1 , comprising:
determining, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, wherein the particular expected data determined by the local model substantially matches the particular data.
4. The method of claim 1 , wherein the local model is derived by the computing device, and wherein the method further comprises:
transmitting, from the computing device to one or more remote computers, the local model of the particular user as a representation of the particular user.
5. The method of claim 1 , wherein deriving the local model of the particular user comprises:
transmitting, from the computing device to one or more remote computers, the residual data; and
deriving the local model by the one or more remote computers.
6. The method of claim 1 , wherein the global model includes a first vector space constructed by first multiple principal axes, and wherein the local model includes a second vector space constructed by second multiple principal axes that are different from the first multiple principal axes.
7. The method of claim 1 , comprising:
obtaining a second global model for a second activity that is different from the particular activity, the second global model derived based on second input data representing multiple observations associated with the second activity performed by a collection of users;
determining, using the second global model, second expected data representing an expected observation associated with the second activity performed by the particular user;
receiving, by the computing device operated by the particular user, second particular data representing an actual observation associated with the second activity performed by the particular user; and
determining, by the computing device and using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
8. The method of claim 7, wherein deriving the local model of the particular user comprises deriving the local model of the particular user based at least on (i) the residual data and (ii) the second residual data.
9. The method of claim 1 , comprising:
receiving second particular data associated with the particular activity;
determining, by the computing device and using (i) the expected data and (ii) the second particular data, second residual data;
determining that the second residual data does not substantially match the residual data; and
in response to determining that the second residual data does not
substantially match the residual data, determining that an identity of the particular user is not verified.
10. A computer-readable medium storing software having stored thereon instructions, which, when executed by one or more computers, cause the one or more computers to perform operations of:
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;
determining, using the global model, expected data representing an expected observation associated with the particular activity performed by a particular user; receiving particular data representing an actual observation associated with the particular activity performed by the particular user;
determining, using (i) the expected data and (ii) the particular data, residual data of the particular user; and
deriving a local model of the particular user based on the residual data.
1 1 . The computer-readable medium of claim 10, wherein the operations comprise:
determining, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, wherein the particular expected data determined by the local model substantially matches the particular data.
12. The computer-readable medium of claim 10, wherein the operations comprise:
transmitting, to one or more remote computers, the local model of the particular user as a representation of the particular user.
13. The computer-readable medium of claim 10, wherein the global model includes a first vector space constructed by first multiple principal axes, and wherein the local model includes a second vector space constructed by second multiple principal axes that are different from the first multiple principal axes.
14. The computer-readable medium of claim 10, wherein the operations comprise:
obtaining a second global model for a second activity that is different from the particular activity, the second global model derived based on second input data representing multiple observations associated with the second activity performed by a collection of users;
determining, using the second global model, second expected data representing an expected observation associated with the second activity performed by the particular user;
receiving second particular data representing an actual observation associated with the second activity performed by the particular user; and
determining, using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
15. The computer-readable medium of claim 10, wherein the operations comprise:
receiving second particular data associated with the particular activity;
determining, by the computing device and using (i) the expected data and (ii) the second particular data, second residual data;
determining that the second residual data does not substantially match the residual data; and
in response to determining that the second residual data does not substantially match the residual data, determining that an identity of the particular user is not verified.
16. A system comprising:
one or more processors and one or more computer storage media storing instructions that are operable, when executed by the one or more processors, to cause the one or more processors to perform operations 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;
determining, using the global model, expected data representing an expected observation associated with the particular activity performed by a particular user; receiving particular data representing an actual observation associated with the particular activity performed by the particular user;
determining, using (i) the expected data and (ii) the particular data, residual data of the particular user; and
deriving a local model of the particular user based on the residual data.
17. The system of claim 16, wherein the operations comprise:
determining, using the local model, particular expected data representing an expected observation associated with the particular activity performed by the particular user, wherein the particular expected data determined by the local model substantially matches the particular data.
18. The system of claim 16, wherein the operations comprise:
transmitting, to one or more remote computers, the local model of the particular user as a representation of the particular user.
19. The system of claim 16, wherein the operations comprise:
obtaining a second global model for a second activity that is different from the particular activity, the second global model derived based on second input data representing multiple observations associated with the second activity performed by a collection of users;
determining, using the second global model, second expected data representing an expected observation associated with the second activity performed by the particular user; receiving second particular data representing an actual observation associated with the second activity performed by the particular user; and
determining, using (i) the second expected data and (ii) the second particular data, second residual data of the particular user.
20. The system of claim 16, wherein the operations comprise:
receiving second particular data associated with the particular activity;
determining, by the computing device and using (i) the expected data and (ii) the second particular data, second residual data;
determining that the second residual data does not substantially match the residual data; and
in response to determining that the second residual data does not substantially match the residual data, determining that an identity of the particular user is not verified.
PCT/US2015/045346 2014-08-26 2015-08-14 Localized learning from a global model WO2016032777A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016575656A JP6386107B2 (en) 2014-08-26 2015-08-14 Localized learning from global models
CN201580033188.2A CN106471527B (en) 2014-08-26 2015-08-14 Study is localized from world model
KR1020167036311A KR101967415B1 (en) 2014-08-26 2015-08-14 Localized learning from a global model
EP15754390.1A EP3186751A1 (en) 2014-08-26 2015-08-14 Localized learning from a global model

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/468,710 US10824958B2 (en) 2014-08-26 2014-08-26 Localized learning from a global model
US14/468,710 2014-08-26

Publications (1)

Publication Number Publication Date
WO2016032777A1 true WO2016032777A1 (en) 2016-03-03

Family

ID=54008024

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/045346 WO2016032777A1 (en) 2014-08-26 2015-08-14 Localized learning from a global model

Country Status (6)

Country Link
US (2) US10824958B2 (en)
EP (1) EP3186751A1 (en)
JP (1) JP6386107B2 (en)
KR (1) KR101967415B1 (en)
CN (1) CN106471527B (en)
WO (1) WO2016032777A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019528502A (en) * 2016-06-23 2019-10-10 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Method and apparatus for optimizing a model applicable to pattern recognition and terminal device
US11010442B2 (en) 2019-09-06 2021-05-18 Outlier AI, Inc. Systems and methods for intelligence delivery
US11276006B2 (en) 2015-10-02 2022-03-15 Outlier AI, Inc. System, apparatus, and method to identify intelligence using a data processing platform

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012206651A1 (en) * 2012-04-23 2013-10-24 Siemens Aktiengesellschaft Method for controlling a turbine
US20170178024A1 (en) * 2015-12-22 2017-06-22 Luis S. Kida Unsupervised personalization service based on subject similarity modeling
US10536351B2 (en) 2016-07-29 2020-01-14 Splunk Inc. Analytics for edge devices
US11087236B2 (en) 2016-07-29 2021-08-10 Splunk Inc. Transmitting machine learning models to edge devices for edge analytics
US10460255B2 (en) * 2016-07-29 2019-10-29 Splunk Inc. Machine learning in edge analytics
WO2018033890A1 (en) 2016-08-19 2018-02-22 Linear Algebra Technologies Limited Systems and methods for distributed training of deep learning models
US11106967B2 (en) * 2017-07-03 2021-08-31 X Development Llc Update of local features model based on correction to robot action
US10562181B2 (en) 2017-07-03 2020-02-18 X Development Llc Determining and utilizing corrections to robot actions
US10980085B2 (en) 2017-07-26 2021-04-13 Amazon Technologies, Inc. Split predictions for IoT devices
US11902396B2 (en) 2017-07-26 2024-02-13 Amazon Technologies, Inc. Model tiering for IoT device clusters
US11108575B2 (en) * 2017-07-26 2021-08-31 Amazon Technologies, Inc. Training models for IOT devices
US11803764B2 (en) * 2017-09-29 2023-10-31 Sony Interactive Entertainment Inc. Mobile and autonomous personal companion based on an artificial intelligence (AI) model for a user
KR20190060021A (en) * 2017-11-23 2019-06-03 주식회사 모다 Customized intelligent system and operation method thereof
EP3503117A1 (en) * 2017-12-20 2019-06-26 Nokia Technologies Oy Updating learned models
US20220091837A1 (en) 2018-05-07 2022-03-24 Google Llc Application Development Platform and Software Development Kits that Provide Comprehensive Machine Learning Services
US11907854B2 (en) 2018-06-01 2024-02-20 Nano Dimension Technologies, Ltd. System and method for mimicking a neural network without access to the original training dataset or the target model
US10699194B2 (en) * 2018-06-01 2020-06-30 DeepCube LTD. System and method for mimicking a neural network without access to the original training dataset or the target model
US10762616B2 (en) * 2018-07-09 2020-09-01 Hitachi, Ltd. Method and system of analytics system balancing lead time and accuracy of edge analytics modules
EP3620983B1 (en) * 2018-09-05 2023-10-25 Sartorius Stedim Data Analytics AB Computer-implemented method, computer program product and system for data analysis
US11531912B2 (en) 2019-04-12 2022-12-20 Samsung Electronics Co., Ltd. Electronic apparatus and server for refining artificial intelligence model, and method of refining artificial intelligence model
KR20200120557A (en) * 2019-04-12 2020-10-21 삼성전자주식회사 Electronic device, Server and operating method for updating a artificial intelligence model
KR20200131952A (en) * 2019-05-14 2020-11-25 삼성전자주식회사 Electronic device providing information in response to query and method therefor
KR102345410B1 (en) * 2019-11-19 2021-12-30 주식회사 피씨엔 Big data intelligent collecting method and device
CN111651263B (en) * 2020-02-12 2023-10-13 北京小米移动软件有限公司 Resource processing method and device of mobile terminal, computer equipment and storage medium
US20210272019A1 (en) 2020-02-27 2021-09-02 Caci, Inc. - Federal Primary signal detection using distributed machine learning via user equipment devices
US11961003B2 (en) 2020-07-08 2024-04-16 Nano Dimension Technologies, Ltd. Training a student neural network to mimic a mentor neural network with inputs that maximize student-to-mentor disagreement
KR102416342B1 (en) * 2020-07-14 2022-07-05 경희대학교 산학협력단 Intermittency-aware federated learning method for 3D cellular network
EP4182854A1 (en) * 2020-07-17 2023-05-24 Telefonaktiebolaget LM Ericsson (publ) Federated learning using heterogeneous labels
CN112819177B (en) * 2021-01-26 2022-07-12 支付宝(杭州)信息技术有限公司 Personalized privacy protection learning method, device and equipment
US11880439B2 (en) 2021-06-16 2024-01-23 International Business Machines Corporation Enhancing verification in mobile devices using model based on user interaction history

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023043A1 (en) * 2010-07-21 2012-01-26 Ozgur Cetin Estimating Probabilities of Events in Sponsored Search Using Adaptive Models
US20130254152A1 (en) * 2012-03-23 2013-09-26 Palo Alto Research Center Incorporated Distributed system and methods for modeling population-centric activities

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000067412A2 (en) 1999-04-30 2000-11-09 Dryken Technologies Method and system for nonlinear state estimation
US6954744B2 (en) 2001-08-29 2005-10-11 Honeywell International, Inc. Combinatorial approach for supervised neural network learning
US6778995B1 (en) * 2001-08-31 2004-08-17 Attenex Corporation System and method for efficiently generating cluster groupings in a multi-dimensional concept space
JP2005135287A (en) 2003-10-31 2005-05-26 National Agriculture & Bio-Oriented Research Organization Prediction device, method, and program
US20090240949A9 (en) * 2004-04-23 2009-09-24 Kitchens Fred L Identity authentication based on keystroke latencies using a genetic adaptive neural network
US7653535B2 (en) * 2005-12-15 2010-01-26 Microsoft Corporation Learning statistically characterized resonance targets in a hidden trajectory model
US8762733B2 (en) 2006-01-30 2014-06-24 Adidas Ag System and method for identity confirmation using physiologic biometrics to determine a physiologic fingerprint
US7779099B2 (en) * 2006-03-16 2010-08-17 Us Beverage Net Inc. Distributed intelligent systems and methods therefor
US8046200B2 (en) * 2006-09-05 2011-10-25 Colorado State University Research Foundation Nonlinear function approximation over high-dimensional domains
WO2009090875A1 (en) * 2008-01-16 2009-07-23 Panasonic Corporation Vector quantizer, vector inverse quantizer, and methods therefor
US9646025B2 (en) 2008-05-27 2017-05-09 Qualcomm Incorporated Method and apparatus for aggregating and presenting data associated with geographic locations
US7756678B2 (en) 2008-05-29 2010-07-13 General Electric Company System and method for advanced condition monitoring of an asset system
JP5382436B2 (en) 2009-08-03 2014-01-08 ソニー株式会社 Data processing apparatus, data processing method, and program
US8639639B2 (en) 2009-08-31 2014-01-28 Bhagwan Mahavir Medical Research Centre Predicting possible outcomes in multi-factored diseases
KR101689258B1 (en) 2009-12-18 2016-12-23 한국전자통신연구원 System and method of identifying person based on motion recognition
US8904149B2 (en) 2010-06-24 2014-12-02 Microsoft Corporation Parallelization of online learning algorithms
KR101650993B1 (en) * 2010-06-24 2016-08-24 더 닐슨 컴퍼니 (유에스) 엘엘씨 Network server arrangement for processing non-parametric, multi-dimensional, spatial and temporal human behavior or technical observations measured pervasively, and related method for the same
US9030294B2 (en) 2010-09-20 2015-05-12 Pulsar Informatics, Inc. Systems and methods for collecting biometrically verified actigraphy data
US9372979B2 (en) 2011-01-07 2016-06-21 Geoff Klein Methods, devices, and systems for unobtrusive mobile device user recognition
WO2012151680A1 (en) 2011-05-10 2012-11-15 Agrafioti Foteini System and method for enabling continuous or instantaneous identity recognition based on physiological biometric signals
US8762299B1 (en) 2011-06-27 2014-06-24 Google Inc. Customized predictive analytical model training
US8370279B1 (en) 2011-09-29 2013-02-05 Google Inc. Normalization of predictive model scores
US9324056B2 (en) * 2012-06-28 2016-04-26 Sap Portals Israel Ltd Model entity network for analyzing a real entity network
US10009644B2 (en) * 2012-12-04 2018-06-26 Interaxon Inc System and method for enhancing content using brain-state data
EP2835769A1 (en) * 2013-08-05 2015-02-11 Movea Method, device and system for annotated capture of sensor data and crowd modelling of activities
US20150235152A1 (en) 2014-02-18 2015-08-20 Palo Alto Research Center Incorporated System and method for modeling behavior change and consistency to detect malicious insiders

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023043A1 (en) * 2010-07-21 2012-01-26 Ozgur Cetin Estimating Probabilities of Events in Sponsored Search Using Adaptive Models
US20130254152A1 (en) * 2012-03-23 2013-09-26 Palo Alto Research Center Incorporated Distributed system and methods for modeling population-centric activities

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHRISTIAN RUDDER: "How Your Race Affects The Messages You Get", OKTRENDS, 5 October 2009 (2009-10-05), XP055229748, Retrieved from the Internet <URL:http://blog.okcupid.com/index.php/your-race-affects-whether-people-write-you-back/> [retrieved on 20151119] *
MAGGIE JONES: "How Little Sleep Can You Get Away With?", 15 April 2011 (2011-04-15), XP055229746, Retrieved from the Internet <URL:http://www.nytimes.com/2011/04/17/magazine/mag-17Sleep-t.html> [retrieved on 20151119] *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11276006B2 (en) 2015-10-02 2022-03-15 Outlier AI, Inc. System, apparatus, and method to identify intelligence using a data processing platform
JP2019528502A (en) * 2016-06-23 2019-10-10 ホアウェイ・テクノロジーズ・カンパニー・リミテッド Method and apparatus for optimizing a model applicable to pattern recognition and terminal device
US10825447B2 (en) 2016-06-23 2020-11-03 Huawei Technologies Co., Ltd. Method and apparatus for optimizing model applicable to pattern recognition, and terminal device
US11010442B2 (en) 2019-09-06 2021-05-18 Outlier AI, Inc. Systems and methods for intelligence delivery

Also Published As

Publication number Publication date
US11551153B2 (en) 2023-01-10
KR101967415B1 (en) 2019-08-13
CN106471527B (en) 2019-05-03
EP3186751A1 (en) 2017-07-05
US20210042666A1 (en) 2021-02-11
CN106471527A (en) 2017-03-01
JP2017524182A (en) 2017-08-24
KR20170009991A (en) 2017-01-25
US20160063393A1 (en) 2016-03-03
JP6386107B2 (en) 2018-09-05
US10824958B2 (en) 2020-11-03

Similar Documents

Publication Publication Date Title
US11551153B2 (en) Localized learning from a global model
US10643131B1 (en) Training variational autoencoders to generate disentangled latent factors
EP3234871B1 (en) Generating numeric embeddings of images
US10296825B2 (en) Dueling deep neural networks
JP6574527B2 (en) Time-series data feature extraction device, time-series data feature extraction method, and time-series data feature extraction program
US11501161B2 (en) Method to explain factors influencing AI predictions with deep neural networks
EP3853764A1 (en) Training neural networks for vehicle re-identification
US11688077B2 (en) Adaptive object tracking policy
US11620474B2 (en) Model reselection for accommodating unsatisfactory training data
KR20190140801A (en) A multimodal system for simultaneous emotion, age and gender recognition
US20140279815A1 (en) System and Method for Generating Greedy Reason Codes for Computer Models
US20220253426A1 (en) Explaining outliers in time series and evaluating anomaly detection methods
WO2021079233A1 (en) New framework for few-shot temporal action localization
US20230244946A1 (en) Unsupervised anomaly detection of industrial dynamic systems with contrastive latent density learning
US20230110117A1 (en) Self-Adapting Forecasting For Multi-Horizon Forecasting Machine Learning Models
CN114844889B (en) Video processing model updating method and device, electronic equipment and storage medium
Poppinga et al. Unsupervised user observation in the App Store: Experiences with the Sensor-based evaluation of a mobile pedestrian navigation application
CN117540336A (en) Time sequence prediction method and device and electronic equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15754390

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015754390

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015754390

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20167036311

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2016575656

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE