IP Library Granted Patent US 12,271,821
Granted Patent B2
US 12,271,821 · App. 18/790,709 · Granted Apr 8, 2025

Training an autoencoder with a classifier

Inventor: James K. Baker (Maitland, FL)
Assignee: D5AI LLC
G06N3/082G06N3/044G06N3/084
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,271,821
App. No.
18/790,709
Filed
Jul 31, 2024
Granted
Apr 8, 2025
Kind
B2
Art Unit
2123
USPC
706/25
Abstract

Computer systems and methods train a deep neural network through machine learning. In response to detection of a training condition, computer system replaces a target node of the network with a split detector compound node, where, prior to replacement, the target node detected a pattern that activated the target node beyond a specified threshold. The split detector compound node comprises first and second nodes, such that: the first node is activated when significant evidence exists in favor of detection of the pattern in inputs to the first node; and the second node is activated when significant evidence exists against detection of the pattern in inputs to the second node, such that activations of the first and second nodes are computed independently. After replacing the target node with the split detector compound node, training of the network through machine learning is resumed.

Claims (120)

1. A method of training an autoencoder via machine learning, wherein the autoencoder comprises an encoder and a decoder, wherein each of the encoder and the decoder comprise a deep neural network, the method comprising:

processing, with a programmed computer system that comprises one or more processing units, each of multiple labeled training data examples in a labeled training dataset, wherein each of the multiple labeled training data examples in the labeled training dataset has a corresponding label, and wherein the processing comprises:

in a forward propagation phase:

generating, by the encoder, an encoder output;

generating, by the decoder, an output from the encoder output for the labeled training data example, wherein the decoder is trained, for each labeled training data example, to generate the labeled training data example from the encoder output and wherein the decoder has a first objective function; and

generating, by a classifier, a classification output from the encoder output for the labeled training data example, wherein the classifier is trained, for each labeled training data example, to generate a corresponding label for the labeled training data example, wherein the classifier has a second objective function, and wherein the classifier comprises a deep neural network; and

after the forward propagation phase, in a back propagation phase:

generating, by the decoder, a first set of partial derivatives of a first cost function for the first objective through the decoder;

generating, by the classifier, a second set of partial derivatives of a second cost function for the second objective through the classifier; and

generating, by the encoder, a third set of partial derivatives of a third cost function with respect to both the first and second objectives through the encoder; and

updating, by the computer system, learned parameters for the encoder based on the third set of partial derivatives.

2. The method of claim 1 , wherein updating the learned parameters for the encoder comprises updating the learned parameters after processing each of the multiple labeled training data examples.

3. The method of claim 1 , further comprises further training, by the programmed computer system, the encoder with multiple unlabeled training data examples in an unlabeled training dataset, wherein the further training comprises:

processing each of multiple unlabeled training, wherein the processing comprises in a forward propagation phase:

generating, by the encoder, an encoder output; and

generating, by the decoder, an output from the encoder output for the labeled training data example, wherein the decoder is trained, for each labeled training data example, to generate the labeled training data example from the encoder output and wherein the decoder has a first objective function; and

after the forward propagation phase, in a back propagation phase:

generating, by the decoder, a fourth set of partial derivatives of the first cost function for the first objective through the decoder; and

generating, by the encoder, a fifth set of partial derivatives of the third cost function with respect to the first objective through the encoder, such that the first set of partial derivatives are generated without backpropagation from the classifier for the unlabeled training data examples; and

updating, by the programmed computer system, learned parameters for the encoder based on the fifth set of partial derivatives.

4. The method of claim 1 , further comprising:

storing, in a repository of the programmed computer system, the encoder after updating the learned parameters for the encoder;

adding, by the programmed computer system, the encoder to an existing neural network, wherein the existing neural network comprises an input layer, an output layer, and one or more hidden layers between the input and output layers, wherein the one or more hidden layers comprises a first hidden layer, and adding the encoder to the existing neural network comprises having outputs from the encoder being input to the first hidden layer of the existing neural network; and

training, by the programmed computer system, via machine learning, the existing neural network with the encoder added.

5. The method of claim 4 , wherein:

adding the encoder comprises:

connecting, with directed arcs, nodes in an output layer of the encoder to nodes of the first hidden layer, wherein the directed arcs; and

initializing the directed arcs to have weights of zero prior to training the existing neural network with the encoder added; and

training the existing neural network with the encoder added comprises learning, via machine learning, updated weights for the directed arcs.

6. The method of claim 4 , wherein:

storing the encoder further comprising storing the decoder in the repository;

adding the encoder to the existing neural network further comprises adding to the decoder to the existing neural network, such that the outputs of the encoder are input to the decoder; and

training the existing neural network with the encoder added comprises training the existing neural network with both the encoder and decoder added.

7. The method of claim 6 , wherein:

storing the encoder further comprising storing the classifier in the repository;

adding the encoder to the existing neural network further comprises adding to the classifier to the existing neural network, such that the outputs of the encoder are input to the classifier; and

training the existing neural network with the encoder added comprises training the existing neural network with the encoder, decoder and classifier added.

8. The method of claim 3 , further comprising:

storing, in a repository, the encoder after updating the learned parameters for the encoder;

adding, by the programmed computer system, the encoder to an existing neural network, wherein the existing neural network comprises an input layer, an output layer, and one or more hidden layers between the input and output layers, wherein the one or more hidden layers comprises a first hidden layer, and adding the encoder to the existing neural network comprises having outputs from the encoder being input to the first hidden layer of the existing neural network; and

training, by the programmed computer system, via machine learning, the existing neural network with the encoder added.

9. The method of claim 8 , wherein:

adding the encoder comprises:

connecting, with directed arcs, nodes in an output layer of the encoder to nodes of the first hidden layer, wherein the directed arcs; and

initializing the directed arcs to have weights of zero prior to training the existing neural network with the encoder added; and

training the existing neural network with the encoder added comprises learning, via machine learning, updated weights for the directed arcs.

10. The method of claim 8 , wherein:

storing the encoder further comprising storing the decoder in the repository;

adding the encoder to the existing neural network further comprises adding the decoder to the existing neural network, such that the outputs of the encoder are input to the decoder; and

training the existing neural network with the encoder added comprises training the existing neural network with both the encoder and decoder added.

11. The method of claim 10 , wherein:

storing the encoder further comprising storing the classifier in the repository;

adding the encoder to the existing neural network further comprises adding the classifier to the existing neural network, such that the outputs of the encoder are input to the classifier; and

training the existing neural network with the encoder added comprises training the existing neural network with the encoder, decoder and classifier added.

12. The method of claim 4 , wherein the repository comprises a nonvolatile computer memory.

13. The method of claim 4 , wherein training the existing neural network with the encoder added comprises, for a training data item in the training of the existing neural network with the encoder added that was used in training the autoencoder, regularizing the outputs of the encoder in existing neural network to agree with outputs of the encoder in the training of the autoencoder.

14. The method of claim 4 , wherein training the existing neural network with the encoder added comprises reducing a learning rate for the outputs of the encoder.

15. The method of claim 1 , wherein:

the one or more processing units comprises two or more graphical processing units (GPUs); and

processing each of the multiple labeled training data examples in the training dataset comprises processing in parallel each of the multiple labeled training data examples in the training dataset with the two or more GPUs.

16. A computer system comprising:

one or more processing units; and

computer memory in communication with the one or more processing units, wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to train an autoencoder via machine learning, wherein the autoencoder comprises an encoder and a decoder, wherein each of the encoder and the decoder comprise a deep neural network, wherein the computer instructions cause the one or more processing units to train the autoencoder via steps that comprise:

processing each of multiple labeled training data examples in a labeled training dataset, wherein each of the multiple labeled training data examples in the labeled training dataset has a corresponding label, and wherein the processing comprises:

in a forward propagation phase:

generating, by the encoder, an encoder output;

generating, by the decoder, an output from the encoder output for the labeled training data example, wherein the decoder is trained, for each labeled training data example, to generate the labeled training data example from the encoder output and wherein the decoder has a first objective function; and

generating, by a classifier, a classification output from the encoder output for the labeled training data example, wherein the classifier is trained, for each labeled training data example, to generate a corresponding label for the labeled training data example, wherein the classifier has a second objective function, and wherein the classifier comprises a deep neural network; and

after the forward propagation phase, in a back propagation phase:

generating, by the decoder, a first set of partial derivatives of a first cost function for the first objective through the decoder;

generating, by the classifier, a second set of partial derivatives of a second cost function for the second objective through the classifier; and

generating, by the encoder, a third set of partial derivatives of a third cost function with respect to both the first and second objectives through the encoder; and

updating learned parameters for the encoder based on the third set of partial derivatives.

17. The computer system of claim 16 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to update the learned parameters for the encoder by updating the learned parameters after processing each of the multiple labeled training data examples.

18. The computer system of claim 16 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units further train the encoder with multiple unlabeled training data examples in an unlabeled training dataset, wherein the further training comprises:

processing each of multiple unlabeled training, wherein the processing comprises in a forward propagation phase:

generating, by the encoder, an encoder output; and

generating, by the decoder, an output from the encoder output for the labeled training data example, wherein the decoder is trained, for each labeled training data example, to generate the labeled training data example from the encoder output and wherein the decoder has a first objective function; and

after the forward propagation phase, in a back propagation phase:

generating, by the decoder, a fourth set of partial derivatives of the first cost function for the first objective through the decoder; and

generating, by the encoder, a fifth set of partial derivatives of the third cost function with respect to the first objective through the encoder, such that the first set of partial derivatives are generated without backpropagation from the classifier for the unlabeled training data examples; and

updating learned parameters for the encoder based on the fifth set of partial derivatives.

19. The computer system of claim 16 , the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

store, in a repository of the computer system, the encoder after updating the learned parameters for the encoder;

add the encoder to an existing neural network, wherein the existing neural network comprises an input layer, an output layer, and one or more hidden layers between the input and output layers, wherein the one or more hidden layers comprises a first hidden layer, and adding the encoder to the existing neural network comprises having outputs from the encoder being input to the first hidden layer of the existing neural network; and

train, via machine learning, the existing neural network with the encoder added.

20. The computer system of claim 19 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

add the encoder by:

connecting, with directed arcs, nodes in an output layer of the encoder to nodes of the first hidden layer, wherein the directed arcs; and

initializing the directed arcs to have weights of zero prior to training the existing neural network with the encoder added; and

train the existing neural network with the encoder added by learning, via machine learning, updated weights for the directed arcs.

21. The computer system of claim 19 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

store the decoder in the repository;

add the decoder to the existing neural network, such that the outputs of the encoder are input to the decoder; and

train the existing neural network with the both the encoder and decoder added.

22. The computer system of claim 21 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

store the classifier in the repository;

add the classifier to the existing neural network, such that the outputs of the encoder are input to the classifier; and

train the existing neural network with encoder, decoder and classifier added.

23. The computer system of claim 18 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

store, in a repository, the encoder after updating the learned parameters for the encoder;

add the encoder to an existing neural network, wherein the existing neural network comprises an input layer, an output layer, and one or more hidden layers between the input and output layers, wherein the one or more hidden layers comprises a first hidden layer, and adding the encoder to the existing neural network comprises having outputs from the encoder being input to the first hidden layer of the existing neural network; and

train, via machine learning, the existing neural network with the encoder added.

24. The computer system of claim 23 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

add the encoder by:

connecting, with directed arcs, nodes in an output layer of the encoder to nodes of the first hidden layer, wherein the directed arcs; and

initializing the directed arcs to have weights of zero prior to training the existing neural network with the encoder added; and

train the existing neural network with the encoder added by learning, via machine learning, updated weights for the directed arcs.

25. The computer system of claim 23 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

store the decoder in the repository;

add the decoder to the existing neural network, such that the outputs of the encoder are input to the decoder; and

training the existing neural network with both the encoder and decoder added.

26. The computer system of claim 25 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to:

store the classifier in the repository;

add the classifier to the existing neural network, such that the outputs of the encoder are input to the classifier; and

train the existing neural network with the encoder, decoder and classifier added.

27. The computer system of claim 19 , wherein the computer memory stores computer instructions that when executed by the one or more processing units cause the one or more processing units to train the existing neural network with the encoder added by, for a training data item in the training of the existing neural network with the encoder added that was used in training the autoencoder, regularizing the outputs of the encoder in existing neural network to agree with outputs of the encoder in the training of the autoencoder.

28. The computer system of claim 16 , wherein:

the one or more processing units comprises two or more graphical processing units (GPUs); and

each of the two or more GPUs are for processing in parallel each of the multiple labeled training data examples in the training dataset.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2024
From: BAKER, JAMES K.
To: D5AI LLC
Reel/Frame 068263/0812 →
Continuity (7)
Continuation 18468011 · Sep 15, 2023
Continuation 18147313 · Dec 28, 2022
Continuation 17664898 · May 25, 2022
Continuation 17653006 · Mar 1, 2022
Continuation 16618910
Provisional Application 62515142 · Jun 5, 2017
Related Publication 20250053813A1 · Feb 13, 2025
References Cited (59)
US 5214746A · Fogel et al. · 1993 [cited by applicant]
US 9015093B1 · Commons · 2015 [cited by applicant]
US 10699191B2 · Goodfellow et al. · 2020 [cited by applicant]
US 20040059695A1 · Xiao et al. · 2004 [cited by applicant]
US 20070271075A1 · Chen et al. · 2007 [cited by applicant]
US 20080077544A1 · Sureka · 2008 [cited by applicant]
US 20080183685A1 · He et al. · 2008 [cited by applicant]
US 20110098999A1 · Amini et al. · 2011 [cited by applicant]
US 20110190657A1 · Zhou et al. · 2011 [cited by applicant]
US 20130238533A1 · Virkar et al. · 2013 [cited by applicant]
US 20140236578A1 · Malon et al. · 2014 [cited by applicant]
US 20150106310A1 · Birdwell et al. · 2015 [cited by applicant]
US 20150324689A1 · Wierzynski et al. · 2015 [cited by applicant]
US 20150363197A1 · Carback, III et al. · 2015 [cited by applicant]
US 20160132786A1 · Balan et al. · 2016 [cited by applicant]
US 20160155049A1 · Choi · 2016 [cited by applicant]
US 20160217367A1 · Moreno et al. · 2016 [cited by applicant]
US 20160335550A1 · Achin et al. · 2016 [cited by applicant]
US 20160364522A1 · Frey et al. · 2016 [cited by applicant]
US 20170068888A1 · Chung et al. · 2017 [cited by applicant]
US 20170109628A1 · Gokmen et al. · 2017 [cited by applicant]
US 20180336465A1 · Kim et al. · 2018 [cited by applicant]
US 20190095798A1 · Baker · 2019 [cited by applicant]
US 20190108445A1 · Huang et al. · 2019 [cited by applicant]
US 20190171947A1 · Mohan et al. · 2019 [cited by applicant]
US 20190197550A1 · Sharma · 2019 [cited by applicant]
US 20200012923A1 · Ghosh et al. · 2020 [cited by applicant]
US 20200134451A1 · Baker · 2020 [cited by applicant]
US 20200184337A1 · Baker · 2020 [cited by applicant]
US 20200285939A1 · Baker · 2020 [cited by applicant]
WO 2015162050A1 · 2015 [cited by applicant]
WO 2016132145A1 · 2016 [cited by applicant]
WO 2017062635A1 · 2017 [cited by applicant]
WO 2018175098A1 · 2018 [cited by applicant]
WO 2018194960A1 · 2018 [cited by applicant]
WO 2018226492A1 · 2018 [cited by applicant]
WO 2018226527A1 · 2018 [cited by applicant]
WO 2018231708A2 · 2018 [cited by applicant]
WO 2019005507A1 · 2019 [cited by applicant]
WO 2019005611A1 · 2019 [cited by applicant]
WO 2019067236A1 · 2019 [cited by applicant]
WO 2019067248A1 · 2019 [cited by applicant]
WO 2019067281A1 · 2019 [cited by applicant]
WO 2019067542A1 · 2019 [cited by applicant]
WO 2019067831A1 · 2019 [cited by applicant]
WO 2019067960A1 · 2019 [cited by applicant]
WO 2019152308A1 · 2019 [cited by applicant]
Theis, Lucas, et al. “Lossy image compression with compressive autoencoders.” arXiv preprint arXiv: 1703.00395 (2017). (Year: 2017). [cited by examiner]
Matsumoto, Kazuma, et al. “Learning classifier system with deep autoencoder.” 2016 IEEE Congress on Evolutionary Computation (CEC). IEEE, 2016. (Year: 2016). [cited by examiner]
Haiyan, Wu, et al. “Semi-supervised autoencoder: A joint approach of representation and classification.” 2015 International Conference on Computational Intelligence and Communication Networks (CICN). IEEE, 2015. (Year: … [cited by examiner]
International Search Report and Written Opinion for International PCT Application No. PCT/US2018/035275 dated Oct. 15, 2018. [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2018/035275 issued Dec. 10, 2019. [cited by applicant]
Smith et al., Gradual DropIn of Layers to Train Very Deep Neural Networks, 2016 IEEE Conference on Computer Vision and Pattern Recognition (Jun. 27, 2016), pp. 4763-4771. [cited by applicant]
Supplementary European Search Report for corresponding European Patent Application No. EP1881395.1, dated Feb. 10, 2021. [cited by applicant]
Sharma et al., Constructive neural networks: A review, International Journal of Engineering Science and Technology (Dec. 2010), 2(12):7847-7855. [cited by applicant]
Yoon, Jaehong, et al. “Lifelong learning with dynamically expandable networks.” arXiv preprint arXiv:1708.01547 (2017). [cited by applicant]
Smith, Leslie N., Emily M. Hand, and Timothy Doster. “Gradual dropin of layers to train very deep neural networks.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016. [cited by applicant]
Coop, Robert, and Itamar Arel. “Mitigation of catastrophic interference in neural networks using a fixed expansion layer.” 2012 IEEE 55th International Midwest Symposium on Circuits and Systems (MWSCAS). IEEE, 2012. [cited by applicant]
Stanley, Kenneth 0., and Risto Miikkulainen. “Evolving neural networks through augmenting topologies.” Evolutionary Computation 10.2 (2002): 99-127. [cited by applicant]