Secure cloud-based machine learning without sending original data to the cloud

US11568257B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11568257-B2
Application numberUS-201916417139-A
CountryUS
Kind codeB2
Filing dateMay 20, 2019
Priority dateMay 20, 2019
Publication dateJan 31, 2023
Grant dateJan 31, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Method and system for training a neural network. The neural network is split into first and second portions. A k-layer first portion is sent to a client training/inference engine and the second portion is retained by a server training/inference engine. At the splitting point, the kth layer is a one-way function in output computation has a number of nodes that are less than any other layer of the first portion. The client training/inference engine trains the first portion with input data in a set of training data. The server training/inference engine receives a batch of outputs from the client training and applies them to the second portion to train the entire neural network.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for training and using a neural network, the method comprising: splitting the neural network into a first portion and a second portion, the first portion having k layers and the second portion having one or more subsequent layers of the neural network, based on selecting a kth layer of the first portion as a splitting point; sending the first portion of the neural network to a client over a communications link, wherein, upon receipt of the first portion, the client applies one or more sets of inputs to the first portion of the neural network to create a batch of outputs; receiving the batch of outputs from the client over the communications link; and applying the batch of outputs received from the client to the second portion of the neural network to generate outputs. 2. The method of claim 1 , wherein the one or more sets of inputs are a plurality of training inputs available to the client; and wherein the client applies the plurality of training inputs to the first portion of the neural network by forward-propagating each of the training inputs in the plurality of training inputs through the first portion of the neural network to generate the batch of outputs for the first portion of the neural network. 3. The method of claim 1 , wherein applying the batch of outputs received from the client to the second portion of the neural network includes training the second portion by: forward-propagating each output in the batch of outputs received from the client through the second portion of the neural network to generate an output of the second portion; and back propagating each output of the second portion through the layers of the second portion. 4. The method of claim 1 , wherein the one or more sets of inputs are one or more client inputs; and wherein the client applies the one or more client inputs to the first portion of the neural network by performing an inference that includes forward-propagating each of the client inputs through the first portion of the neural network to generate the batch of outputs for the first portion of the neural network. 5. The method of claim 1 , wherein the one or more sets of inputs are one or more client inputs; and wherein applying the batch of outputs received from the client to the second portion of the neural network includes performing an inference by forward-propagating each output in the batch of outputs received from the client through the second portion of the neural network to generate an output of the second portion. 6. The method of claim 1 , wherein receiving the batch of outputs from the client over the communications link includes receiving encrypted data representing the batch of outputs; further comprising decrypting the encrypted data. 7. The method of claim 1 , wherein receiving the batch of outputs from the client over the communications link includes receiving encrypted data representing the batch of outputs and an encrypted seed along with the encrypted data; further comprising: sending the client a shared key table; decrypting the encrypted seed and using the decrypted seed to access the shared key table to form a key for decrypting the encrypted data; and decrypting the encrypted data with the key. 8. The method of claim 6 , wherein the encrypted data is encrypted using a key derived from a key table and a one-time pad. 9. The method of claim 6 , wherein the received encrypted data is secured using a secure socket layer protocol. 10. The method of claim 6 , wherein the received encrypted data is secured in a transaction of a block in a blockchain. 11. The method of claim 1 , wherein applying the batch of outputs received from the client to the second portion of the neural network includes training the neural network by: forward-propagating each output in the batch of outputs received from the client through the second portion of the neural network to generate an output of the second portion; and back propagating each output of the second portion through the layers of both the second and first portions without back propagating each output through the first portion sent to the client. 12. A server system comprising: one or more CPUs; a network interface coupled to the one or more CPUs and to a communications link; and a RAM having loaded therein an operating system and one or more applications that are run by the one or more CPUs, wherein one of the one or more applications is configured to: split a neural network into a first portion and a second portion, the first portion having k layers and the second portion having one or more subsequent layers of the neural network, based on selecting a kth layer of the first portion as a splitting point; send the first portion of the neural network to a client over a communications link, wherein, upon receipt of the first portion, the client applies one or more sets of inputs to the first portion of the neural network to create a batch of outputs for the first portion of the neural network; receive the batch of outputs from the client over the communications link; and apply the batch of outputs received from the client to the second portion of the neural network to generate outputs for the second portion. 13. The system of claim 12 , wherein the one or more sets of inputs are a plurality of training inputs available to the client; and wherein the client applies the plurality of training inputs to the first portion of the neural network by forward-propagating each of the training inputs in the plurality of training inputs through the first portion of the neural network to generate the batch of outputs. 14. The system of claim 12 , wherein applying the batch of outputs received from the client to the second portion of the neural network includes being configured to train the second portion by: forward-propagating each output in the batch of outputs received from the client through the second portion of the neural network to create an output for the second portion; and back propagating each output of the second portion through the layers of the second portion for a partial back propagation or back propagating each output of the second portion through the layers of both the second and first portion for a full back propagation. 15. The system of claim 12 , wherein the one or more sets of inputs are one or more client inputs; and wherein the client applies the one or more client inputs to the first portion of the neural network by performing an inference that includes forward-propagating each of the client inputs through the first portion of the neural network to generate the batch of outputs. 16. The system of claim 12 , wherein the one or more sets of inputs are one or more client inputs; and wherein applying the batch of outputs received from the client to the second portion of the neural network includes being configured to perform an inference by forward propagating each output in the batch of outputs received from the client through the second portion of the neural network to create an output for the second portion. 17. A non-transitory computer-readable medium containing instructions, which when executed by one or more processors, cause the processors to carry out a method for training and using a neural network, wherein the method comprises: splitting the neural network into a first portion and a second portion, the first portion having k layers and the second portion having one or more subsequent layers of the neural network, based on selecting a kth layer of the first portion as a splitt

Assignees

Inventors

Classifications

  • using hash chains, e.g. blockchains or hash trees · CPC title

  • Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM] · CPC title

  • Architecture, e.g. interconnection topology · CPC title

  • wherein the data content is protected, e.g. by encrypting or encapsulating the payload · CPC title

  • G06N3/084Primary

    Backpropagation, e.g. using gradient descent · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11568257B2 cover?
Method and system for training a neural network. The neural network is split into first and second portions. A k-layer first portion is sent to a client training/inference engine and the second portion is retained by a server training/inference engine. At the splitting point, the kth layer is a one-way function in output computation has a number of nodes that are less than any other layer of th…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06N3/084. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 31 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).