3

US 2014/0180989 A1 has been applied by Google. It seems that the patent is about convolutional neural network with parallel architecture.

As my personal project, I'm considering making a program of a neural network utilizing nVIDIA's Cuda technology, which takes advantage of GPU as a massively parallel processor. The network will not be convolutional but will have structure of the conventional multi-layer perceptron.

If the Google's application is granted, does my program infringe the patent?

1

If the application is granted, then it may be enforced against any software developed since the priority date (December 24, 2012). If the methods you are implementing were publicly disclosed by anyone not listed as an inventor on the application before that priority date, then you have freedom to operate.

If the method you are implementing is more recent than that, then you will need to do a claim analysis against the patent. Note that if the patent is granted, the claim language may differ from that in the application. The independent claims are the most important, so here is the language that you would need to work around (as it currently stands):

2. A system comprising:

a plurality of parallel neural networks, wherein the plurality of parallel neural network each receive a same input and collectively generate a predicted output based on the input, wherein each of the neural networks comprises a respective plurality of layers, wherein each plurality of layers comprises an interconnected layer and a non interconnected layer, and wherein processing data through the layers of each of the plurality of parallel neural networks comprises:

providing output from the interconnected layer to at least one layer of at least one different parallel neural network of the plurality of parallel neural networks; and

providing output from the non-interconnected layer only to a layer of the same parallel neural network.

12. A method comprising:

processing data using each of a plurality of parallel neural networks, wherein the plurality of parallel neural network each receive a same input and collectively generate a predicted output based on the input, wherein each of the neural networks comprises a respective plurality of layers, wherein each plurality of layers comprises an interconnected layer and a non-interconnected layer, wherein processing data using each of the plurality of parallel neural networks comprises processing the data through the layers of each of the plurality of parallel neural networks comprises, and wherein processing the data through the layers of each of the plurality of parallel neural networks comprises:

providing output from the interconnected layer to at least one layer of at least one different parallel neural network of the plurality of parallel neural networks; and

providing output from the non-interconnected layer only to a layer of the same parallel neural network.

22. A computer storage medium encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

processing data using each of a plurality of parallel neural networks, wherein the plurality of parallel neural network each receive a same input and collectively generate a predicted output based on the input, wherein each of the neural networks comprises a respective plurality of layers, wherein each plurality of layers comprises an interconnected layer and a non-interconnected layer, wherein processing data using each of the plurality of parallel neural networks comprises processing the data through the layers of each of the plurality of parallel neural networks comprises, and wherein processing the data through the layers of each of the plurality of parallel neural networks comprises:

providing output from the interconnected layer to at least one layer of at least one different parallel neural network of the plurality of parallel neural networks; and

providing output from the non-interconnected layer only to a layer of the same parallel neural network.

The above language "a plurality of" does mean that 2 or more parallel neural networks must be used.

The key phrase I noticed in each of the three independent claims is

the plurality of parallel neural network each receive a same input

With a convolutional neural network, the inputs are only partially overlapping. Also examine the following language:

each plurality of layers comprises an interconnected layer and a non-interconnected layer

I believe the above phrase is the "inventive step" in this application, and (correct me if I'm wrong) a conventional multilayer perceptron only comprises interconnected layers.

If you are concerned about the scope of this application and how it might affect your research, I highly recommend notifying your research institution to see if they can provide some legal support.

  • 1
    Thank you for an excellent explanation to my question. I have searched further and found that several companies including Microsoft have applied for the similar patents. Neurala already has a patent, which seems to cover all GPU programs. On the other hand, NVIDIA, a major GPU maker, provides CUDA, a technology and tool for developing GPU-based programs. It seems that use of GPU is expanding but nobody is worried about the patents. I don’t understand what’s going on. Do we have to worry about any patent at all when we develop a GPU program with CUDA, which is readily provided for this purpose? – T.Y Oct 7 '15 at 13:50
  • @T.Y I recommend posting this comment as a new question on this site. Additionally, if you would like to attempt to challenge the claims in this patent application, you could re-tag this question as a prior-art-request (but make sure you first read the requirements for that in the Help Center). – vallismortis Oct 7 '15 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.