Semi-supervised learning of training gradients via task generation
View Patent ↗In an approach for augmenting a neural network with a self-supervised mechanism, a processor trains a first neural network using labeled data, the first neural network configured for a main task. A processor trains a second neural network using the labeled data and unlabeled data, the second neural network being an additional component to the first neural network. A processor computes a gradient using a second loss of the second neural network based on the unlabeled data.
1 . A method comprising:
training a common subnetwork of a neural network to perform a main task using labeled data, the neural network comprising a main task head subnetwork, the common subnetwork, and a gradient generating subnetwork, wherein the main task head subnetwork receives input from the common subnetwork;
determining a first loss for performing the main task using the trained common subnetwork and the main task head subnetwork;
computing a gradient using unlabeled data via the trained common subnetwork and the gradient generating subnetwork, the gradient generating subnetwork comprising a classifier subnetwork and a label generator subnetwork, both the classifier subnetwork and the label generator subnetwork receiving a same input from the trained common subnetwork;
updating the trained common subnetwork using the gradient;
determining a second loss for performing the main task using the trained common subnetwork and the main task head subnetwork after the updating;
determining a gradient training loss based on the first loss and the second loss; and
training the neural network based on the gradient training loss.
2 . The method of claim 1 , wherein determining the gradient training loss comprises:
computing a difference between the second loss and the first loss; and
adding a fixed positive constant to the difference, wherein the method further comprises applying a rectified linear unit function to the gradient training loss.
3 . The method of claim 1 , wherein computing the gradient comprises:
determining a gradient generating loss based on outputs of the classifier and the label generator; and
computing the gradient based on the gradient generating loss.
4 . A computer program product comprising:
one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media to perform operations comprising:
training a common subnetwork of a neural network to perform a main task using labeled data, the neural network comprising a main task head subnetwork, the common subnetwork, and a gradient generating subnetwork, wherein the main task head subnetwork receives input from the common subnetwork;
determining a first loss for performing the main task using the trained common subnetwork and the main task head subnetwork;
computing a gradient using unlabeled data via the trained common subnetwork and the gradient generating subnetwork, the gradient generating subnetwork comprising a classifier subnetwork and a label generator subnetwork, both the classifier subnetwork and the label generator subnetwork receiving a same input from the trained common subnetwork;
updating the trained common subnetwork using the gradient;
determining a second loss for performing the main task using the trained common subnetwork and the main task head subnetwork after the updating;
determining a gradient training loss based on the first loss and the second loss; and
training the neural network based on the gradient training loss.
5 . The computer program product of claim 4 , wherein determining the gradient training loss comprises:
computing a difference between the second loss and the first loss; and
adding a fixed positive constant to the difference, wherein the operations further comprise applying a rectified linear unit function to the gradient training loss.
6 . The computer program product of claim 4 , wherein computing the gradient comprises:
determining a gradient generating loss based on outputs of the classifier and the label generator; and
computing the gradient based on the gradient generating loss.
7 . A computer system comprising:
one or more processors, one or more computer readable storage media, and program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more processors to perform operations comprising:
training a common subnetwork of a neural network to perform a main task using labeled data, the neural network comprising a main task head subnetwork, the common subnetwork, and a gradient generating subnetwork, wherein the main task head subnetwork receives input from the common subnetwork;
determining a first loss for performing the main task using the trained common subnetwork and the main task head subnetwork;
computing a gradient using unlabeled data via the trained common subnetwork and the gradient generating subnetwork, the gradient generating subnetwork comprising a classifier subnetwork and a label generator subnetwork, both the classifier subnetwork and the label generator subnetwork receiving a same input from the trained common subnetwork;
updating the trained common subnetwork using the gradient;
determining a second loss for performing the main task using the trained common subnetwork and the main task head subnetwork after the updating;
determining a gradient training loss based on the first loss and the second loss; and
training the neural network based on the gradient training loss.
8 . The computer system of claim 7 , wherein determining the gradient training loss comprises:
computing a difference between the second loss and the first loss; and
adding a fixed positive constant to the difference, wherein the operations further comprise applying a rectified linear unit function to the gradient training loss.
9 . The computer system of claim 7 , wherein computing the gradient comprises:
determining a gradient generating loss based on outputs of the classifier and the label generator; and
computing the gradient based on the gradient generating loss.