Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Status of Claims
This action is in response to the request for reconsideration filed 05/21/2026. Claims 1-20 are currently pending.
Response to Arguments
With regards to the 101 rejection, Applicant’s arguments have been fully considered and are persuasive. The claims do not recite any judicial exception, therefore the 101 rejection of claims 1-20 has been withdrawn.
With regards to the prior art rejection, Applicant’s arguments with respect to claims 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Specification
The disclosure is objected to because it contains an embedded hyperlink and/or other form of browser-executable code in paragraph [0026]. Applicant is required to delete the embedded hyperlink and/or other form of browser-executable code; references to websites should be limited to the top-level domain name without any prefix such as http:// or other browser-executable code. See MPEP § 608.01.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 10-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 10 recites the limitation “wherein the first processing system uses the final output to control operation of the mobile device”. There is insufficient antecedent basis for “the mobile device” in the claim.
Claim 17 recites a similar limitation and is rejected for the same reason. Dependent claims 11-16 and 18-20 are also rejected because they fail to correct the deficiencies of the
independent claims on which they depend.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-6 and 8-20 are rejected under 35 U.S.C. 103 as being unpatentable over Teng et al (US 20190114534 A1, herein Teng) in view of Adrangi et al (WO 2017082966 A1, herein Adrangi).
Regarding claim 1, Teng teaches an apparatus for operating a neural network comprising a set of neural network layers (para. [0027] recites “FIG. 1 is a block diagram depicting a system 100 for implementing neural networks”), the apparatus comprising: a first processing system executing a first portion of the neural network comprising a first subset of the set of neural network layers to obtain a first intermediate output (para. [0006] recites “The neural network accelerator is configured to perform operations of a first subset of layers of a neural network on an input data set, generate an intermediate data set, and store the intermediate data set in a shared memory queue in the shared memory” (i.e., a first processing system executes a first subset of neural network layers to obtain an intermediate input));
and a second processing system, external to the first processing system, configured to: receive as input the first intermediate output of the first portion in a sequential flow from the first processing system, and execute a second portion of the neural network comprising a second subset of the set of neural network layers to obtain a respective output (para. [0006] recites “The second processor element is configured to execute instructions that cause the second processor element to read the intermediate data set from the shared memory queue, perform operations of a second subset of layers of the neural network on the intermediate data set, and generate an output data set” (i.e., a second processing system executes a second subset of neural network layers on the intermediate output from the first processing system in a sequential flow to obtain an output). Para. [0055] recites “FIG. 6 shows a neural network processing system, along with data flow and control signaling between a first processor element 602, a neural network accelerator 238, and a second processor element 604”. Para. [0056] recites “The RAMs 608 and 612 can be a single RAM 226 such as shown in FIG. 5 or physically separate RAMs” (i.e., the second processing system can be physically separate, or external, from the first processing system)),
wherein the second processing system is configured to supply, to the first processing system, output information as a function of the respective output, wherein the first processing system is configured to obtain, as a function of the output information, a final output of the neural network (para. [0024] recites “The host computer system executes software that controls the overall flow of neural network processing, and the neural network accelerator is the hardware accelerator for operations in selected layers of the neural network”. Fig. 6 and para. [0056] recite “The neural network accelerator stores the output data in the shared memory queue 614 in the RAM 612 and when processing is complete signals (6) completion to the first processor element 602. The output data from the neural network accelerator can be viewed as an intermediate data set in implementations in which the second processor element 604 further processes the output data” (i.e., the second processing system outputs an intermediate result back to the first processing system, which completes the processing to obtain the final output)),
and wherein the second processing system is configured to execute the second portion of the neural network by applying the first intermediate output to the model of the second portion [stored in the secure element] to obtain the respective output (para. [0006] recites “The second processor element is configured to execute instructions that cause the second processor element to read the intermediate data set from the shared memory queue, perform operations of a second subset of layers of the neural network on the intermediate data set, and generate an output data set” (i.e., a second processing system executes a second subset of neural network layers on the intermediate output from the first processing system to obtain an output)).
However, Teng does not explicitly teach wherein the second processing system includes a secure element.
Adrangi teaches wherein the second processing system includes a secure element (pg. 8 para. 3-4 recite “Computing platform 200 may be configured to run, execute, or otherwise operate one or more applications. According to various example embodiments, the one or more applications may include the iUICC proxy 110, the iUICC module within the secure execution environment 115, and the secure execution environment 115 itself. The iUICC proxy 110 may be one or more software modules that operate in conjunction with one or more hardware devices to provide access to the iUICC module 120 within the secure execution environment 115. The iUICC proxy 110 may be implemented in a physical hardware device that is separate from other components of the computing platform 200” (i.e., a secondary processing system in a secure element external from a main processing system)).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine these teachings by implementing the neural network accelerator framework from Teng in the secure environment from Adrangi. At least paragraph [0046] of Teng states that any computer system or combination or network of computer systems can be used to implement the machine learning framework, and at least page 7 of Adrangi teaches that utilizing the integrated UICC technology ensures greater security, processing power, and memory storage capabilities than other provisioning services. One of ordinary skill in the art would then be motivated to take advantage of these greater capabilities from Adrangi when provisioning the neural network layers from Teng in different processing systems.
Regarding claim 2, the combination of Teng and Adrangi teaches the apparatus of claim 1 as mentioned above, wherein in the secure element is stored an application comprising the model of the second portion executable by the second processing system (Adrangi pg. 8 para. 3-4 recite “Computing platform 200 may be configured to run, execute, or otherwise operate one or more applications. According to various example embodiments, the one or more applications may include the iUICC proxy 110, the iUICC module within the secure execution environment 115, and the secure execution environment 115 itself. The iUICC proxy 110 may be one or more software modules that operate in conjunction with one or more hardware devices to provide access to the iUICC module 120 within the secure execution environment 115. The iUICC proxy 110 may be implemented in a physical hardware device that is separate from other components of the computing platform 200” (i.e., the secure element can store an application, such as the second portion of the model and corresponding processing system from Teng)).
Regarding claim 3, the combination of Teng and Adrangi teaches the apparatus of claim 2 as mentioned above, wherein the application includes a command to feed the first intermediate output to the model of the second portion (para. [0024] recites “The host computer system executes software that controls the overall flow of neural network processing, and the neural network accelerator is the hardware accelerator for operations in selected layers of the neural network”. Para. [0035] recites “The acceleration libraries 114 includes drivers and libraries that provide APis for command and control of the hardware accelerator 116” (i.e., a command can be used to feed the intermediate output from the first processing system to the second accelerator processing system)).
Regarding claim 4, the combination of Teng and Adrangi teaches the apparatus of claim 2 as mentioned above, wherein the application includes an inference engine receiving the respective output and outputting predictions (Teng para. [0002] recites “Deep learning algorithms can be unsupervised (e.g., pattern analysis) or supervised (e.g., classification). The deep learning algorithm can be implemented using layers of an artificial neural network (ANN) (referred to herein as a "neural network")” (i.e., the portions of the neural network, including the second portion, can operate as a classifier outputting predictions)).
Regarding claim 5, the combination of Teng and Adrangi teaches the apparatus of claim 1 as mentioned above, wherein the model of the second portion includes an output layer, in particular a classifier (Teng para. [0002] recites “Deep learning algorithms can be unsupervised (e.g., pattern analysis) or supervised (e.g., classification). The deep learning algorithm can be implemented using layers of an artificial neural network (ANN) (referred to herein as a "neural network")” (i.e., the portions of the neural network, including the second portion, can operate as a classifier)).
Regarding claim 6, the combination of Teng and Adrangi teaches the apparatus of claim 1 as mentioned above, wherein the first processing system include a further proxy application which is configured to operate as an interface to the second processing system and the secure element, obtaining the first intermediate output and supplying it to the second processing system and the secure element, and receiving the output information as the function of the respective output from the second processing system (Adrangi pg. 8 para. 3-4 recite “Computing platform 200 may be configured to run, execute, or otherwise operate one or more applications. According to various example embodiments, the one or more applications may include the iUICC proxy 110, the iUICC module within the secure execution environment 115, and the secure execution environment 115 itself. The iUICC proxy 110 may be one or more software modules that operate in conjunction with one or more hardware devices to provide access to the iUICC module 120 within the secure execution environment 115. The iUICC proxy 110 may be implemented in a physical hardware device that is separate from other components of the computing platform 200” (i.e., a proxy application operating as an interface between at least a processing system, such as the model application processing system from Teng, and a processing system in a secure environment to transmit outputs between the two processing systems)).
Regarding claim 8, the combination of Teng and Adrangi teaches the apparatus of claim 1 as mentioned above, wherein the secure element is one of: a Universal Integrated Circuit Card (UICC); an embedded UICC (eUICC); an embedded Secure Element (eSE); or a removable memory card herein (Adrangi pg. 7 para. 2 recites “The example embodiments provide a trusted execution environment (also referred to as a "secure execution environment"), which includes an iUICC module instead of requiring a separate stand-alone UICC to be inserted into a card slot of the computing device or embedding an eUICC on a motherboard of the computing device” (i.e., a secure element comprising a UICC)).
Regarding claim 9, the combination of Teng and Adrangi teaches the apparatus of claim 1 as mentioned above, wherein the first processing system is a processor of a mobile device and the second processing system comprising the secure element is an integrated card in the mobile device (Adrangi pg. 6 para. 1 recites “the "computing platform" may include any type of electronic devices, such as a cellular phone or smartphone”. Adrangi pg. 7 para. 2 recites “The example embodiments provide a trusted execution environment (also referred to as a "secure execution environment"), which includes an iUICC module instead of requiring a separate stand-alone UICC to be inserted into a card slot of the computing device or embedding an eUICC on a motherboard of the computing device” (i.e., a secure element comprising an integrated UICC for a computing platform such as a mobile device)).
Regarding claim 10, Teng teaches a method for executing a neural network comprising a set of layers (para. [0007] recites “A disclosed method includes providing input data to a neural network accelerator by a first processor element of a host computer system”), the method comprising: dividing a trained neural network into a first portion comprising a first set of layers and a second portion comprising a second set of layers (para. [0006] recites “The host computer system has first and second processor elements. The first processor element is configured to execute instructions that cause the first processor element to provide input data to the neural network accelerator and signal the neural network accelerator to perform the operations of the first subset of layers of the neural network on the input data set. The second processor element is configured to execute instructions that cause the second processor element to read the intermediate data set from the shared memory queue, perform operations of a second subset of layers of the neural network on the intermediate data set, and generate an output data set” (i.e., a neural network divided into two subsets of layers));
storing the first portion in a memory accessible by a first processing system, for operation by the first processing system; storing an application comprising a model of the second portion [in a secure element] associated with a second processing system external to the first processing system (para. [0055] recites “FIG. 6 shows a neural network processing system, along with data flow and control signaling between a first processor element 602, a neural network accelerator 238, and a second processor element 604” (i.e., first and second processing systems are stored in memory). Para. [0056] recites “The RAMs 608 and 612 can be a single RAM 226 such as shown in FIG. 5 or physically separate RAMs” (i.e., the second processing system can be physically separate, or external, from the first processing system));
operating the first portion to obtain a first intermediate output (para. [0007] recites “The first processor element signals the neural network accelerator to perform operations of a first subset of layers of a neural network on the input data and the neural network accelerator performs the operations of the first subset of layers of the neural network on the input data set. The neural network accelerator generates an intermediate data set and stores the intermediate data set in a shared memory queue in a shared memory” (i.e., executing the first processing system to obtain an intermediate output));
supplying the first intermediate output in a sequential flow from the first processing system as a direct intermediate input to the application comprising the model of the second portion [in the secure element]; executing [in the secure element] the second portion to obtain a respective output (para. [0006] recites “The second processor element is configured to execute instructions that cause the second processor element to read the intermediate data set from the shared memory queue, perform operations of a second subset of layers of the neural network on the intermediate data set, and generate an output data set” (i.e., a second processing system executes a second subset of neural network layers on the intermediate output from the first processing system in a sequential flow to obtain an output)); and
generating, by the first processing system, a final output of the neural network based on the output information [received from the secure element] as a function of the respective output, wherein the first processing system uses the final output to control operation [of the mobile device] (para. [0024] recites “The host computer system executes software that controls the overall flow of neural network processing, and the neural network accelerator is the hardware accelerator for operations in selected layers of the neural network”. Fig. 6 and para. [0056] recite “The neural network accelerator stores the output data in the shared memory queue 614 in the RAM 612 and when processing is complete signals (6) completion to the first processor element 602. The output data from the neural network accelerator can be viewed as an intermediate data set in implementations in which the second processor element 604 further processes the output data” (i.e., the second processing system outputs an intermediate result back to the first processing system, which completes the processing to obtain the final output)).
However, Teng does not explicitly teach storing an application [comprising a model of the second portion] in a secure element associated with a second processing system external to the first processing system, and a mobile device.
Adrangi teaches storing an application [comprising a model of the second portion] in a secure element associated with a second processing system external to the first processing system (pg. 8 para. 3-4 recite “Computing platform 200 may be configured to run, execute, or otherwise operate one or more applications. According to various example embodiments, the one or more applications may include the iUICC proxy 110, the iUICC module within the secure execution environment 115, and the secure execution environment 115 itself. The iUICC proxy 110 may be one or more software modules that operate in conjunction with one or more hardware devices to provide access to the iUICC module 120 within the secure execution environment 115. The iUICC proxy 110 may be implemented in a physical hardware device that is separate from other components of the computing platform 200” (i.e., a secondary processing system in a secure element external from a main processing system)) and a mobile device (pg. 6 para. 1 recites “the "computing platform" may include any type of electronic devices, such as a cellular phone or smartphone”).
See claim 1 for motivation to combine.
Regarding claim 11, the combination of Teng and Adrangi teaches the method of claim 10 as mentioned above, wherein the supplying to the first processing system the output information as the function of the respective output includes one of the following: feeding the respective output to an inference engine of the application to obtain predictions, which are sent back as intermediate output information to the first processing system to be outputted as final information; taking as the first intermediate output an output of hidden layers of the neural network; or taking as the first intermediate output an output of an output layer, in particular a classifier, stored inside the application (Teng para. [0002] recites “Deep learning algorithms can be unsupervised (e.g., pattern analysis) or supervised (e.g., classification). The deep learning algorithm can be implemented using layers of an artificial neural network (ANN) (referred to herein as a "neural network")”. Teng para. [0004] recites “a neural network includes an input layer and an output layer and can optionally include one or more hidden layers between the input and output layers” (i.e., the portions of the neural network, including the first portion, can operate as a classifier outputting intermediate predictions or incorporate intermediate hidden layers)).
Regarding claim 12, the combination of Teng and Adrangi teaches the method of claim 10 as mentioned above, wherein storing the application comprising the model of the second portion in the secure element includes remotely delivering the model by a secure channel or a confidential channel to the secure element (Adrangi pg. 7 para. 2 recites “The example embodiments provide a trusted execution environment (also referred to as a "secure execution environment"), which includes an iUICC module instead of requiring a separate stand-alone UICC to be inserted into a card slot of the computing device or embedding an eUICC on a motherboard of the computing device”. Adrangi pg. 11 para. 1 recites “the various entities in arrangement 100 may establish secure channels with the components of the iUICC module 120 or applications within a profile 375 as discussed with regard to FIG. 2.” (i.e., an application, such as the machine learning application from Teng, can be remotely provisioned, or delivered, using a secure channel of a secure environment)).
Regarding claim 13, the combination of Teng and Adrangi teaches the method of claim 12 as mentioned above, wherein storing the application comprising the model of the second portion in the secure element includes loading the model in the secure element using over-the-air (OTA) remote provisioning (Adrangi pg. 21 para. 1 recites “Referring back to FIG. 1, the remote provisioning service 140 may be a collection of devices and/or systems that are utilized to provision the iUICC module 120 and one or more profiles 375 within the secure execution environment 115. The terms "to provision" or "provisioning" may refer to the downloading and storing of the iUICC module 120, one or more profiles, and/or one or more applications. The remote provisioning service 140 may provision profiles or applications in a secure memory space associated with the iUICC module 120 using OTA interfaces” (i.e., an OTA interface can be used to provision an application, such as the machine learning application from Teng)).
Regarding claim 14, the combination of Teng and Adrangi teaches the method of claim 13 as mentioned above, wherein an OTA server loads in the secure element the application comprising the model of the second portion encrypted with a given key specific to the secure element, the secure element being configured to decrypt with the given key the second portion and to perform the executing the second portion (Adrangi pg. 10 para. 1 recites “messages/commands/data may be communicated to the iUICC proxy 110 in encrypted form, wherein the iUICC proxy 110 may decrypt the messages/commands/data, and provide the decrypted messages/commands to other components of the computing platform 200”. Adrangi pg. 21 para. 1 recites “Referring back to FIG. 1, the remote provisioning service 140 may be a collection of devices and/or systems that are utilized to provision the iUICC module 120 and one or more profiles 375 within the secure execution environment 115. The terms "to provision" or "provisioning" may refer to the downloading and storing of the iUICC module 120, one or more profiles, and/or one or more applications. The remote provisioning service 140 may provision profiles or applications in a secure memory space associated with the iUICC module 120 using OTA interfaces”. Adrangi pg. 39 para. 2 recites “any suitable algorithm or operations may be used for key generation and/or encrypting/decrypting data” (i.e., an OTA interface can be used to provision an application, such as the machine learning application from Teng, using an encryption key and corresponding decryption method)).
Regarding claim 15, the combination of Teng and Adrangi teaches the method of claim 10 as mentioned above, wherein the model comprises a description of cells, connections, and weights and functions associated with the cells and the connections, of the second portion of the neural network (Teng para. [0003] recites “a neural network is a collection of nodes (i.e., the "neurons") that are connected in a graph. A node in a neural network computes a sum of weighted inputs and adds an optional bias to the sum. The output of the node is a function of the final sum (referred to as an "activation function")” (i.e., the model comprises a description of nodes, or cells, connections, weights, and functions associated with a neural network)).
Claim 16 is a method claim and its limitation is included in claim 6. Claim 16 is rejected for the same reasons as claim 6.
Claim 17 is a non-transitory computer-readable medium claim and its limitation is included in claim 10. The only difference is that claim 17 requires a non-transitory computer-readable medium (Adrangi pg. 76 para. 5 recites “The one or more computer-readable media may be non-transitory computer-readable media”). Therefore, claim 17 is rejected for the same reasons as claim 10.
Claim 18 is a non-transitory computer-readable medium claim and its limitation is included in claim 11. Claim 18 is rejected for the same reasons as claim 11.
Claim 19 is a non-transitory computer-readable medium claim and its limitation is included in claim 12. Claim 19 is rejected for the same reasons as claim 12.
Claim 20 is a non-transitory computer-readable medium claim and its limitation is included in claim 13. Claim 20 is rejected for the same reasons as claim 13.
Claim 7 is rejected under 35 U.S.C. 103 as being unpatentable over Teng et al (US 20190114534 A1, herein Teng) in view of Adrangi et al (WO 2017082966 A1, herein Adrangi).
Regarding claim 7, the combination of Teng and Adrangi teaches the apparatus of claim 2 as mentioned above.
However, the combination of Teng and Adrangi does not explicitly teach wherein the application comprising the model of the second portion includes a velocity mechanism which limits a number of executions performable by the application to a given limit number of executions, in particular includes a counter set to the given limit number of executions, the application comprising the model of the second portion being configured to stop when the counter reaches the given limit number of executions.
Dong, in view of Teng and Adrangi, teaches wherein the application comprising the model of the second portion includes a velocity mechanism which limits a number of executions performable by the application to a given limit number of executions, in particular includes a counter set to the given limit number of executions, the application comprising the model of the second portion being configured to stop when the counter reaches the given limit number of executions (para. [0018] recites “The development code is code that is used to train and evaluate the performance of the machine learning model. For example, the development code may implement back-propagation or other training algorithms. The development parameters might be the number of training iterations, some other criteria for when to stop iterations, a learning rate, and a regularization coefficient. In the case of artificial neural networks, the development parameters may include the number of layers in certain sub-networks, and the number of neurons in certain layers”. Para. [0043] recites “Typical stopping criteria are when a desired performance is achieved, when no further performance improvement or not enough performance improvement is observed, or when a limit on resources is reached (e.g., maximum number of iterations or maximum processor cycles)” (i.e., a mechanism for stopping a machine learning model when a counted number of iterations, or executions, exceeds a predetermined limit)).
Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine these teachings by applying the stopping criteria from Dong to the neural network model execution from Teng (as modified by Adrangi). Teng and Dong are both directed to methods of developing machine learning models, and Dong clearly states that its stopping criteria are typical in the art. One of ordinary skill in the art would be motivated to implement the stopping criteria from Dong to the machine learning model from Teng to avoid surpassing a resource limit as discussed in at least paragraph [0043] of Dong.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 20190327077 A1 (Mandal et al) teaches a method for outsourcing an operation to an external processor such as a GPU using homomorphic encryption ciphertexts.
US 20190391800 A1 (Lin et al) teaches an over the air (OTA) mobility service platform for distributing a workflow, such as neural network execution, across secured devices.
“Edge-Assisted CNN Inference over Encrypted Data for Internet of Things” (Tian et al) teaches an edge-computing-assisted framework to boost the efficiency of CNN inference tasks on IoT devices and protect the privacy of IoT data.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to LEAH M FEITL whose telephone number is (571) 272-8350. The examiner can normally be reached on M-F 0900-1700 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Viker Lamardo can be reached on (571) 270-5871. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/L.M.F./ Examiner, Art Unit 2147
/VIKER A LAMARDO/Supervisory Patent Examiner, Art Unit 2147