# US 10,867,246 B1 · Training a neural network using small training datasets

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,867,246 B1
- Document ID: US10867246B1
- Status: Granted
- Kind: B1
- Application number: 15/685,350
- Filed: 2017-08-24
- Granted: 2020-12-15
- Earliest claimed: 2017-08-24
- Assignees: Arimo, LLC
- Applicants: Arimo, LLC
- Inventors: Christopher T. Nguyen; Binh Han
- Web page: https://patentgrep.com/patent/US10867246B1

## CPC

- G06N 3/082: modifying the architecture, e.g. adding, deleting or silencing nodes or connections
- G06N 3/088: Non-supervised learning, e.g. competitive learning
- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/045: Combinations of networks
- G06N 3/0455: Auto-encoder networks; Encoder-decoder networks
- G06N 3/0499: Feedforward networks
- G06N 3/09: Supervised learning
- G06N 3/091: Active learning
- G06N 20/00: Machine learning
- G06F 16/35: Clustering; Classification
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Training datasets are determined for training neural networks. An input dataset comprising a plurality of samples is provided as training dataset to the neural network. Vector representations of samples of the input dataset are obtained from a hidden layer of the neural network. The samples are clustered using the vector representation. The samples are scored based on a metric that indicates the similarity of the sample to its cluster. A subset of samples is determined by excluding samples that have high similarity with their clusters. The subset of samples is labelled and used for training the neural network.

## Claims

### Claim 1

A computer-implemented method comprising:
training a neural network using a first training dataset, the neural network comprising a plurality of layers of nodes, the plurality of layers of nodes including a hidden layer of nodes;
receiving an input dataset comprising a plurality of samples;
executing the neural network to process samples of the input dataset;
for each sample of the input dataset, receiving a vector representing the sample, the vector generated by nodes of the hidden layer of nodes;
selecting a subset of samples from the input dataset based on distances between vectors representing the samples;
for each sample of the subset, associating the sample with a label representing an expected result that should be output by the neural network for the sample; and
providing the samples of the subset as a second training dataset for retraining the neural network.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the subset of samples comprises:
clustering samples of the input dataset to generate a plurality of clusters, the clustering associating each sample with a cluster, the clustering based on distances between vectors representing the samples;
for each sample of the input dataset, determining a score indicative of similarity of the sample with the cluster associated with the sample; and
excluding one or more samples from the input dataset based on the scores to determine the subset of samples.

### Claim 3 (depends on 2)

The method of claim 2, wherein the one or more samples are excluded from the input dataset responsive to each of the one or more samples having a score indicating high similarity of the sample to the cluster associated with the sample.

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of layers of nodes represents a sequence of layers of nodes comprising a plurality of hidden layers, wherein the hidden layer is the last hidden layer from the plurality of hidden layers.

### Claim 5 (depends on 1)

The method of claim 1, wherein the neural network further comprises an output layer of nodes for outputting the result of executing the neural network, wherein the hidden layer represents nodes that provide input to the output layer of nodes.

### Claim 6 (depends on 1)

The method of claim 1, further comprising, repeating the steps of:
receiving a second input dataset comprising a second plurality of samples;
executing the neural network to process samples of the second input dataset;
for each sample of the second input dataset, receiving a vector representing the sample, the vector generated by nodes of the hidden layer of nodes;
selecting a second subset of samples from the second input dataset based on distances between vectors representing the samples; and
providing the samples of the subset as a third training dataset for retraining the neural network.

### Claim 7 (depends on 6)

The method of claim 6, wherein repeating the steps is performed until an aggregate measure of difference between the results output by the neural network and expected results is below a threshold value.

### Claim 8 (depends on 1)

The method of claim 1, wherein the neural network represents a deep learning model.

### Claim 9 (depends on 8)

The method of claim 8, wherein the deep learning model is configured to generate a natural language description of an input image.

### Claim 10 (depends on 1)

The method of claim 1, wherein the neural network is an autoencoder configured to receive an input and regenerate the input as output of the neural network.

### Claim 11

A computer readable non-transitory storage medium, storing instructions for:
training a neural network using a first training dataset, the neural network comprising a plurality of layers of nodes, the plurality of layers of nodes including a hidden layer of nodes;
receiving an input dataset comprising a plurality of samples;
executing the neural network to process samples of the input dataset;
for each sample of the input dataset, receiving a vector representing the sample, the vector generated by nodes of the hidden layer of nodes;
selecting a subset of samples from the input dataset based on distances between vectors representing the samples;
for each sample of the subset, associating the sample with a label representing an expected result that should be output by the neural network for the sample; and
providing the samples of the subset as a second training dataset for retraining the neural network.

### Claim 12 (depends on 11)

The computer readable non-transitory storage medium of claim 11, wherein the stored instructions further comprise instructions for:
clustering samples of the input dataset to generate a plurality of clusters, the clustering associating each sample with a cluster, the clustering based on distances between vectors representing the samples;
for each sample of the input dataset, determining a score indicative of similarity of the sample with the cluster associated with the sample; and
excluding one or more samples from the input dataset based on the scores to determine the subset of samples.

### Claim 13 (depends on 12)

The computer readable non-transitory storage medium of claim 12, wherein the one or more samples are excluded from the input dataset responsive to each of the one or more samples having a score indicating high similarity of the sample to the cluster associated with the sample.

### Claim 14 (depends on 11)

The computer readable non-transitory storage medium of claim 11, wherein the plurality of layers of nodes represents a sequence of layers of nodes comprising a plurality of hidden layers, wherein the hidden layer is the last hidden layer from the plurality of hidden layers.

### Claim 15 (depends on 11)

The computer readable non-transitory storage medium of claim 11, wherein the neural network further comprises an output layer of nodes for outputting the result of executing the neural network, wherein the hidden layer represents nodes that provide input to the output layer of nodes.

### Claim 16

A computer-implemented system comprising:
a computer processor; and
a computer readable non-transitory storage medium storing instructions thereon, the instructions when executed by a processor cause the processor to perform the steps of:
training a neural network using a first training dataset, the neural network comprising a plurality of layers of nodes, the plurality of layers of nodes including a hidden layer of nodes;
receiving an input dataset comprising a plurality of samples;
executing the neural network to process samples of the input dataset;
for each sample of the input dataset, receiving a vector representing the sample, the vector generated by nodes of the hidden layer of nodes;
selecting a subset of samples from the input dataset based on distances between vectors representing the samples;
for each sample of the subset, associating the sample with a label representing an expected result that should be output by the neural network for the sample; and
providing the samples of the subset as a second training dataset for retraining the neural network.

### Claim 17 (depends on 16)

The computer-implemented system of claim 16, wherein the computer readable non-transitory storage medium further stores instructions for:
clustering samples of the input dataset to generate a plurality of clusters, the clustering associating each sample with a cluster, the clustering based on distances between vectors representing the samples;
for each sample of the input dataset, determining a score indicative of similarity of the sample with the cluster associated with the sample; and
excluding one or more samples from the input dataset based on the scores to determine the subset of samples.

### Claim 18 (depends on 17)

The computer-implemented system of claim 17, wherein the one or more samples are excluded from the input dataset responsive to each of the one or more samples having a score indicating high similarity of the sample to the cluster associated with the sample.

### Claim 19 (depends on 16)

The computer-implemented system of claim 16, wherein the plurality of layers of nodes represents a sequence of layers of nodes comprising a plurality of hidden layers, wherein the hidden layer is the last hidden layer from the plurality of hidden layers.

### Claim 20 (depends on 16)

The computer-implemented system of claim 16, wherein the neural network further comprises an output layer of nodes for outputting the result of executing the neural network, wherein the hidden layer represents nodes that provide input to the output layer of nodes.
