Engage with this story in Geek Culture on Medium

Machine learning has become an integral part of many industries, from healthcare to finance to agriculture. The ability of machine learning algorithms to accurately predict outcomes, classify data and make decisions based on data has made them valuable tools for businesses and organizations. However, machine learning algorithms require large amounts of labeled training data to be effective. This is because machine learning algorithms rely on being able to learn complex patterns in the data, and this can only be done with a sufficient amount of examples to learn from. This data is used to teach the model what to look for and how to make predictions. However, there are often situations where there is no or very little labeled data available because it can be very expensive, time-consuming, or even impossible to collect labeled data. In these cases, it can be difficult to train effective machine learning models.

Introduction

One of the key challenges in machine learning is obtaining large, diverse datasets that accurately represent the real-world scenarios in which the models will be deployed. This is particularly important for applications in domains such as healthcare, finance, and security, where data privacy and ethical concerns prevent the use of real-world data. In this article, we will explore ways to train machine learning models when there is not enough high-quality labeled training data available. We will discuss techniques such as unsupervised learning, semi-supervised learning, label propagation, pseudo-labeling, self-supervised learning, weak supervision and transfer learning, prompt functions with weak supervision, active learning, synthetic data generation, zero & few-shot learning, self-training, problem reduction, ensemble learning and how they can be used to improve the performance of machine learning models in these situations.

Unsupervised Learning

One way to train machine learning models when there is no or very little labeled data available is to use unsupervised learning. Unsupervised learning is a type of machine learning that involves training a model on unlabeled data. The goal of unsupervised learning is to discover patterns and relationships in the data that are not explicitly labeled.

Unsupervised learning algorithms can be used to identify clusters of similar data points or to learn the underlying structure of the data. For example, an unsupervised learning algorithm might be able to learn that certain words tend to appear together in natural language text, or that certain pixels tend to appear together in images. This can be useful for finding patterns in the data, but it does not provide any direct supervision or guidance for the model. These algorithms do not have a target variable to predict, so they can learn from the data without any prior knowledge or assumptions about the structure of the data.

Another approach for unsupervised learning is dimensionality reduction, which involves reducing the number of features in the data. This can be useful for simplifying the data and making it easier to work with, but it also reduces the amount of information available to the model.

Unsupervised learning can be useful in a variety of applications, such as anomaly detection, data compression, and data visualization. It can also be used to pre-train models for downstream tasks, such as supervised learning or reinforcement learning.

There are some challenges to using unsupervised learning when there is no or very little labeled data available. One challenge is that it can be difficult to evaluate the performance of an unsupervised learning model since there is no ground truth to compare it against. Another challenge is that unsupervised learning algorithms can sometimes discover patterns in the data that are not meaningful or useful.

Semi-Supervised Learning

Another way to train machine learning models when there is no or very little labeled data available is to use semi-supervised learning. This is a type of machine learning that involves using both labeled and unlabeled data to train a model. The goal of semi-supervised learning is to use the labeled data to guide the learning process, while also using the unlabeled data to improve the model’s performance. It is based on the idea that even in the absence of labeled data, there is still valuable information that can be learned from the data. For example, in natural language processing, the words and sentences in a document provide valuable context for understanding its meaning, even if the document is not labeled with a specific category or class.

Another approach is to use generative adversarial networks (GANs), which involve training two models simultaneously: a generator and a discriminator. The generator tries to generate fake data that is similar to real data, while the discriminator tries to distinguish between real and fake data. This can be useful for learning from unlabeled data, as it allows the model to learn from the generated data as well. We’ll review this technique in detail later in this article.

An advantage of semi-supervised learning is that it allows the model to learn from a larger amount of data, which can improve its performance. Another advantage is that it can help the model to learn more complex patterns in the data since it can use both labeled and unlabeled examples to learn from.

A challenge with semi-supervised learning is that it can be difficult to determine the right balance between using labeled and unlabeled data. Another challenge is that it can be difficult to evaluate the performance of a semi-supervised learning model since there is still some uncertainty in the labeled data.

Another challenge with using semi-supervised learning to train machine learning models is the need for a large amount of unlabeled data. For the algorithms to effectively incorporate the information from the unlabeled data, there must be a sufficient amount of data to learn from. If there is not enough unlabeled data, the model may not be able to learn accurate and robust representations of the data.

Another challenge with semi-supervised learning is the need for accurate predictions on the labeled data. For the algorithms to effectively incorporate the constraints from the labeled data, the model must make accurate predictions on the labeled data. If the model’s predictions are not accurate, the constraints from the labeled data may not be effective, and the model may not learn as well.

One solution is to use a technique called self-training, which involves using a small amount of labeled data to train a model, and then using the model to label additional unlabeled data. This additional labeled data can then be used to train a new model, which can be more accurate and robust than the original model.

Self-Training

Self-training is a technique used in machine learning where a model is trained on a small amount of labeled data and then used to predict labels for a larger amount of unlabeled data. This labeled data is then added to the training set, and the model is retrained on the expanded dataset. This process is repeated until the desired level of performance is achieved.

Self-training is particularly useful in situations where labeled training data is scarce. This can be the case in many real-world applications, where labeling data is a time-consuming and expensive process. For instance, in natural language processing tasks, manually labeling large amounts of text data can be prohibitively expensive. In these situations, self-training can be used to effectively leverage the limited labeled data and improve the performance of the model.

One common approach to self-training is to use a semi-supervised learning algorithm, such as a generative adversarial network (GAN) or a variational autoencoder (VAE), to generate synthetic data (discussed later). This synthetic data is then labeled using the initial training set and added to the training data. This allows the model to effectively learn from a larger amount of data and can improve its performance on the task at hand.

Another approach to self-training is to use a pre-trained model to predict labels for the unlabeled data. This can be particularly effective when the pre-trained model is trained on a related task, as it will already have some knowledge about the domain and can provide useful labels for the unlabeled data. The labeled data is then added to the training set and the model is retrained on the expanded dataset. One important consideration in self-training is the selection of the initial training set. The labeled data used in the initial training phase should be representative of the overall dataset and should include a diverse range of examples. This will ensure that the model can generalize well to the larger dataset and achieve good performance.

Another consideration is the quality of the labels generated by the self-training process. In some cases, the model may make incorrect predictions for the unlabeled data, which can lead to poor performance if these labels are added to the training set. To address this issue, some self-training algorithms include a quality control step, where the predicted labels are checked for accuracy before being added to the training data.

In summary, self-training is a powerful technique for training machine learning models in situations where labeled training data is scarce. By leveraging a small amount of labeled data, self-training can improve the performance of the model and enable it to effectively learn from a larger dataset. This can be particularly useful in real-world applications, where manually labeling data is a time-consuming and expensive process.

Label Propagation

Label propagation is a powerful technique that can help improve the accuracy of machine learning models and reduce the amount of manual labeling required. The basic idea behind label propagation is to use the information from labeled data points to infer the labels of unlabeled data points. This is done by assuming that similar data points will have similar labels. The labeled data points act as “seeds” for the label propagation algorithm, and the labels of the unlabeled data points are updated based on the labels of their nearest neighbors.

To implement label propagation, we first need to define a similarity measure between data points. This measure is typically based on the distance between the data points in the feature space. For example, we can use the Euclidean distance or the cosine similarity to compute the similarity between data points.

Once we have defined the similarity measure, we can use it to construct a similarity matrix that encodes the similarities between all pairs of data points. This matrix is used to compute the weights of the edges in the graph that represents the data.

Next, we need to define the propagation rule that determines how the labels of the unlabeled data points are updated based on the labels of their neighbors. Several different propagation rules can be used, but the most common ones are the simple propagation rule and the harmonic propagation rule. The simple propagation rule simply assigns the label of the most similar data point to the unlabeled data point. This rule is easy to implement, but it can be unstable and may not always produce good results. The harmonic propagation rule, on the other hand, assigns a weighted average of the labels of the neighbor data points to the unlabeled data point. The weights are computed based on the similarities between the data points. This rule is more stable and produces better results than the simple propagation rule, but it is also more computationally expensive.

Once we have defined the propagation rule, we can use it to iteratively update the labels of the unlabeled data points until the labels converge. The convergence criterion can be based on the change in the labels of the data points or on the similarity matrix.

One of the key advantages of using label propagation for training machine learning models is that it can improve the accuracy of the model even with a small amount of labeled data. This is because the labels of the unlabeled data points are inferred based on the labels of the labeled data points, which can provide additional information to the model.

In addition, label propagation is a fast and scalable algorithm that can be easily implemented in parallel, which makes it suitable for large-scale machine learning tasks. Furthermore, it is a flexible algorithm that can be easily adapted to different types of data and learning tasks.

So, label propagation is a powerful and versatile semi-supervised learning technique that can be used to train machine learning models when labeled training data is scarce. It can improve the accuracy of the model and reduce the amount of manual labeling required, making it an attractive option for many machine learning applications.

Pseudo Labeling

Pseudo-labeling involves using the model’s predictions as a substitute for the missing labeled data, allowing the model to continue learning and improving its accuracy. Traditionally, machine learning models are trained on a large dataset with both input data and corresponding labeled output data. The model uses this labeled data to learn the relationship between the input and output and then applies that knowledge to make predictions on new data. However, in some cases, it may be difficult or expensive to obtain a large amount of labeled data. In such cases, pseudo-labeling can be used to augment the available labeled data and improve the model’s performance.

To use pseudo labeling, the first step is to train the model on the available labeled data. Once the model has been trained, it can be used to make predictions on the remaining unlabeled data. These predictions can then be treated as additional labeled data and added to the training dataset. The model can then be retrained on this augmented dataset, incorporating the predictions made on the previously unlabeled data. This process can be repeated until the model reaches a satisfactory level of accuracy.

One key aspect of using pseudo-labeling is ensuring that the model’s predictions on the unlabeled data are accurate. If the model’s predictions are incorrect, they will introduce noise into the training dataset and decrease the model’s performance. Therefore, it is important to carefully evaluate the model’s performance and only use predictions with a high degree of confidence.

One approach to selecting high-confidence predictions is to use the model’s predicted probabilities, rather than the predicted class labels, as the pseudo-labeled data. For example, if the model is predicting the likelihood that an input data point belongs to each of several classes, the pseudo-labeled data can be the class with the highest predicted probability. This approach can help to reduce the impact of incorrect predictions on the model’s performance.

Another approach to improving the accuracy of pseudo-labeling is to use multiple models and combine their predictions. This can be done by training several models on the same labeled data and using each model’s predictions as pseudo-labeled data for the others. The predictions from all the models can then be combined and used as the augmented labeled data for training the final model. This approach can help to reduce the impact of any individual model’s errors on the final model’s performance.

Overall, pseudo-labeling is a useful technique for training machine learning models when labeled data is scarce. Using the model’s predictions as a substitute for missing labeled data, can help to improve the model’s performance and accuracy. However, it is important to carefully evaluate the model’s predictions and use high-confidence predictions to avoid introducing noise into the training dataset. By using strategies such as using predicted probabilities and combining multiple models’ predictions, it is possible to further improve the effectiveness of pseudo labeling in training machine learning models.

Self-Supervised Learning

Self-supervised learning is a type of machine learning that involves training models on unlabeled data to learn useful representations of the data. This is in contrast to supervised learning, where the model is trained on labeled data and the goal is to make predictions based on the labels. Self-supervised learning has gained popularity in recent years due to its ability to learn from large amounts of unlabeled data, which is often easier and cheaper to obtain than labeled data.

Self-supervised learning is a type of unsupervised learning, where the model is trained on unlabeled data and is not given explicit labels or targets to predict. Instead, the goal of self-supervised learning is to learn useful representations of the data that can be used for downstream tasks, such as classification or regression.

One common approach to self-supervised learning is to use a supervised learning model and train it on a related task that can be easily generated from the unlabeled data. For example, in the case of images, a model could be trained on a classification task using the colors of the pixels as labels. This would allow the model to learn useful features of the images, such as shapes and textures, that could be used for other tasks.

Another approach to self-supervised learning is to use a generative model, such as a generative adversarial network (GAN), to learn the distribution of the data. The goal of the generative model is to generate new samples that are similar to the original data, and this can help the model to learn useful representations of the data.

One challenge with using self-supervised learning to train machine learning models is the lack of labeled data. In supervised learning, the labels provide valuable information about the data that the model can use to learn. Without labels, the model must rely on the inherent structure of the data to learn useful representations. This can be difficult in many applications, such as natural language processing or computer vision, where the structure of the data is complex and not easily learned. Another challenge with self-supervised learning is the quality of the learned representations. In some cases, the representations learned by self-supervised models may not be as useful as those learned from labeled data. This can be due to the limited information available in the unlabeled data, or because the model is not able to learn the underlying structure of the data.

One solution is to use a larger amount of unlabeled data to train the model. This can help the model to learn more complex patterns in the data and improve the quality of the learned representations.

Weak Supervision + Transfer Learning

Weak supervision and transfer learning are two powerful techniques that can be used to train machine learning models when very little or no labeled training data is available. We will explore the basics of these techniques, how they can be used together to improve the performance of machine learning models, and some of the challenges and limitations of using weak supervision and transfer learning. Weak supervision is a technique that allows machine learning models to be trained on large amounts of unlabeled data or data that has only been partially labeled.

One way that weak supervision can be used is through the use of heuristics. Heuristics are rules or guidelines that can be used to label data in a semi-automatic manner. For example, a heuristic might be used to identify images that contain cats, even if the images are not explicitly labeled as such. By using heuristics to label large amounts of data, it is possible to train a machine learning model on this partially labeled data.

Another way that weak supervision can be used is through the use of distant supervision. Distant supervision involves using a large, pre-existing dataset that has been labeled for a different task and using the labels from this dataset to label the data for the current task. For example, if we have a large dataset of news articles that have been labeled for sentiment, we could use the labels from this dataset to label a new dataset of customer reviews. This allows us to train a machine learning model on customer reviews without having to manually label the data.

Transfer learning is a technique that allows a machine learning model that has been trained on one task to be used as the starting point for a model trained on a different, but related task. This can be particularly useful when we have a large amount of labeled data for one task, but very little labeled data for another task. By using transfer learning, we can leverage the knowledge learned by the model on the first task to improve the performance of the model on the second task.

One way that transfer learning can be used is through the use of pre-trained models. Pre-trained models are machine learning models that have been trained on a large amount of data for a specific task, such as image classification or natural language processing. These models can then be used as the starting point for a new model that is trained on a different but related task. By using a pre-trained model, we can take advantage of the knowledge learned by the model on the original task to improve the performance of the model on the new task.

Another way that transfer learning can be used is through the use of fine-tuning. Fine-tuning involves adjusting the parameters of a pre-trained model to better fit the data for the new task. This can be done by retraining the model on the new data, using a smaller learning rate to avoid overfitting, and freezing some of the layers of the model to prevent them from being modified. By fine-tuning a pre-trained model, we can further improve the performance of the model on the new task.

Weak supervision and transfer learning can be used together to improve the performance of machine learning models when very little or no labeled training data is available. By using weak supervision to partially label the data, and then using transfer learning to fine-tune a pre-trained model on this data, it is possible to train a machine learning model with a much smaller amount of labeled data than would be required using traditional supervised learning methods.

However, there are some challenges associated with using weak supervision and transfer learning. One challenge is selecting the correct heuristics or pre-trained model to use. If the heuristics or pre-trained models are not suitable for the task, they may not provide useful insights, and the model may not perform as well as expected. Additionally, heuristics and pre-trained models may contain biases that adversely affect the performance of the model. Care must be taken when selecting heuristics and pre-trained models to ensure they are suitable and unbiased. Additionally, it is important to evaluate the performance of the model on an independent dataset to ensure it is not overfitting the data.

Prompt Functions with Weak Supervision

In situations where labeled training data is scarce, one approach is to use weak supervision techniques, such as prompt functions, to generate additional training data. A prompt function is a function that takes in an unlabeled example and produces a set of prompts or questions that can be used to label the example. For instance, if the task is to classify images into different categories, a prompt function might take in an image and output a set of questions such as “Does this image contain a cat?” and “Does this image contain a dog?”. These questions can then be used to label the image by asking human annotators to answer the questions.

Using prompt functions can be an effective way to generate additional training data when labeled data is scarce because the prompts can be generated automatically and quickly, without the need for manual labeling. Additionally, using prompt functions can also improve the quality of the generated labels because the prompts are designed to be relevant to the task at hand.

There are a few different ways to use prompt functions to train machine learning models. One approach is to first use a prompt function to generate a set of prompts for each unlabeled example in the training set. These prompts can then be used to label the examples, either by asking human annotators to answer the prompts or by using a model to predict the labels based on the prompts. The labeled examples can then be used to train a supervised machine learning model.

Another approach is to use the prompts to train a weakly supervised machine learning model, which is a model that is trained on a combination of labeled and unlabeled data. In this approach, the prompt function is used to generate a set of prompts for each unlabeled example in the training set. These prompts are then used to train the weakly supervised model, which can learn to predict the labels of the examples based on the prompts.

One potential issue with using prompt functions to generate training data is that the prompts may not always be accurate or relevant to the task at hand. In such cases, the generated labels may be noisy, which can negatively impact the performance of the trained model. To address this issue, it is important to carefully design the prompt function to generate high-quality prompts that are relevant to the task. This can involve manually designing the prompts or using techniques such as active learning (discussed next) or reinforcement learning to learn the prompts from data.

Overall, using prompt functions with weak supervision can be an effective way to generate additional training data when labeled data is scarce. By generating high-quality prompts, it is possible to train machine learning models that can perform well even when faced with a scarcity of labeled training data.

Active Learning

Active learning is a machine learning technique in which the algorithm actively selects the data it uses for training. This is in contrast to traditional machine learning techniques, in which the algorithm uses all of the available data for training. In active learning, the algorithm uses a small subset of the available data, and then iteratively selects additional data to add to the training set.

The goal of active learning is to select the most informative data for training, to improve the accuracy of the model. Active learning can be useful in situations where labeled data is scarce because it allows the algorithm to select the most informative data for training. By iteratively selecting the most informative data, the algorithm can learn effectively even with a small amount of data.

There are several different methods for implementing active learning, but they all involve the algorithm actively selecting the data it uses for training. Some common methods for active learning include:

  1. Query by committee: In this method, the algorithm trains multiple models on the same data, and then selects data for training based on the disagreement between the models.
  2. Uncertainty sampling: In this method, the algorithm selects data for training based on how uncertain it is about the data. For example, the algorithm may select data that it is unsure about, in order to improve its performance.
  3. Diversity sampling: In this method, the algorithm selects data for training based on how diverse it is. The goal is to select data that is representative of the overall population, in order to improve the generalizability of the model.

Regardless of the specific method used, active learning involves the algorithm iteratively selecting data for training. The algorithm begins by training on a small subset of the data and then selects additional data to add to the training set. This process is repeated until the desired performance is achieved.

Active learning has been used in a variety of applications, including natural language processing, image classification, and drug discovery. Here are a few examples of active learning in action:

  • In natural language processing, active learning has been used to improve the performance of sentiment analysis algorithms.
  • In image classification, active learning has been used to improve the performance of algorithms that classify objects in images.
  • In drug discovery, active learning has been used to improve the performance of algorithms that predict the effectiveness of potential drugs.

There are also challenges and limitations to using active learning. One challenge is that the performance of the model may be highly dependent on the quality of the query function. If the query function is not able to select the most informative data points, the model may not learn as effectively, and the performance may suffer.

Another challenge is that active learning requires a significant amount of human effort, whether it is for manual labeling or for designing and optimizing the query function. This can be time-consuming and may not be feasible for some applications.

Despite these challenges, active learning can be a valuable tool for training machine learning models when very little or no labeled data is available. By actively selecting the most informative data points for labeling, the model can learn more effectively with less labeled data, leading to improved performance and more efficient use of labeling resources.

Synthetic Data Generation

Synthetic data, also known as artificial data, is data that is generated by a computer program or algorithm, rather than being collected from real-world sources. This data is typically used to train machine learning models when there is no or little labeled training data available. In this article, we will discuss the various methods of generating synthetic data and their potential advantages and disadvantages.

Method 1: Generative Adversarial Networks (GANs)

One of the most popular methods of generating synthetic data is using generative adversarial networks (GANs). GANs are a type of neural network that consists of two parts - a generator and a discriminator. The generator’s job is to generate synthetic data that is similar to the real data, while the discriminator’s job is to differentiate between the real and synthetic data.

The GAN works by first training the generator on the real data, and then training the discriminator on both the real and synthetic data. This process is repeated until the discriminator can no longer distinguish between real and synthetic data. The resulting synthetic data generated by the GAN is then used to train the machine learning model.

One of the main advantages of using GANs to generate synthetic data is that they can generate high-quality data that is similar to the real data. This means that the resulting machine learning model will be able to better generalize to new data, as it has been trained on data that is similar to what it will encounter in the real world.

Another advantage of GANs is that they can generate a large amount of data quickly, which is important when working with limited training data. Additionally, GANs can generate data that is diverse, meaning that the machine learning model will be able to handle a wider range of inputs.

However, there are also some disadvantages to using GANs to generate synthetic data. One of the main challenges is that GANs are computationally expensive, which can make them difficult to implement in large-scale applications. Additionally, GANs can be difficult to train and require a lot of fine-tuning to generate high-quality synthetic data.

Method 2: Data Augmentation

Data augmentation is a technique commonly used in machine learning to increase the amount of training data available for a model. Data augmentation involves generating additional data samples from existing data by applying transformations to the original data. These transformations can include operations such as cropping, scaling, flipping, and rotating images, or adding noise to audio or text data. The idea is to create new data samples that are similar to the original data, but different enough to provide additional information for the model to learn from.

One common application of data augmentation is in the field of computer vision. When training a machine learning model to recognize objects in images, it is beneficial to have a large and diverse dataset of images to train on. However, collecting and labeling large amounts of training data can be time-consuming and expensive. Data augmentation can be used to create additional training data by applying transformations to existing images in the dataset. For example, an image of a dog may be rotated, flipped, or cropped to create new data samples that are similar to the original image but provide additional information for the model to learn from.

Another application of data augmentation is in natural language processing (NLP) tasks such as sentiment analysis or machine translation. In these tasks, it is important to have a large and diverse dataset of text to train on. However, collecting and labeling large amounts of text data can be challenging. Data augmentation can be used to create additional training data by adding noise to the original text data, such as changing the word order or adding synonyms, or back translation (translating from the source language to another language and then back to the source language) This can help the model learn to handle variations in language and improve its performance on the task.

There are several benefits to using data augmentation in training machine learning models with limited data. First, it allows the model to learn from a larger and more diverse dataset, which can improve its performance on the task. Second, it can help the model generalize better to new data and avoid overfitting, as the augmented data samples are similar but not identical to the original data. Third, data augmentation can be a cost-effective alternative to collecting and labeling additional training data, as it can be easily implemented using existing data and can be easily integrated into existing machine learning pipelines. Finally, data augmentation can be used to generate a large amount of synthetic data quickly, which is important when working with limited training data.

However, there are also some disadvantages to using data augmentation to generate synthetic data. One of the main challenges is that data augmentation can only generate data that is similar to the existing training data. This means that the resulting machine learning model may not be able to generalize to new data that is different from the training data. Additionally, data augmentation can introduce bias into the data, which can negatively affect the performance of the machine learning model.

In conclusion, data augmentation is a valuable technique for training machine learning models with limited data. By generating additional data samples from existing data using transformations, data augmentation allows the model to learn from a larger and more diverse dataset, improving its performance and generalization ability. It is a cost-effective alternative to collecting and labeling additional training data, and can be easily implemented in various machine learning tasks.

Method 3: Simulated Environments

Simulation is a commonly used technique to generate synthetic data. It involves creating a virtual environment that resembles the real-world scenario, and then generating data by simulating the behavior of entities in this environment.

For example, in the healthcare domain, we can simulate a virtual hospital environment and generate synthetic medical records by simulating the behavior of patients, doctors, and other medical staff.

Simulation can be useful when the real-world scenario is well-defined and the underlying mechanisms can be accurately modeled. However, it can be challenging to create an accurate and realistic simulation, and the generated data may not always reflect the real-world scenario.

Method 4: SMOTE

SMOTE, or Synthetic Minority Over-sampling TEchnique, is a popular method for generating synthetic data to train machine learning models. This technique is commonly used in imbalanced classification tasks, where the minority class is severely underrepresented in the training data. By generating synthetic data for the minority class, SMOTE can help balance the dataset and improve the performance of the model.

To understand how SMOTE works, let’s first consider a simple binary classification task, where we have a dataset with two classes: “positive” and “negative”. In this scenario, the majority class is “negative” and the minority class is “positive”. The dataset may look something like this:

Sample Feature 1 Feature 2 Feature 3 Class
1 0.5 0.1 0.8 positive
2 0.7 0.3 0.6 positive
3 0.2 0.8 0.5 negative
4 0.9 0.6 0.2 negative
5 0.3 0.2 0.9 negative

In this dataset, the minority class (positive) is underrepresented, with only two samples compared to the three samples in the majority class (negative). This can lead to problems when training a machine learning model, as it may not have enough information about the minority class to make accurate predictions.

To address this issue, we can use SMOTE to generate synthetic data for the minority class. This technique works by selecting a small number of samples from the minority class and using them as “seeds” to generate new synthetic samples. To do this, SMOTE first calculates the distances between all pairs of samples in the minority class. It then selects a pair of samples that are closest together and generates a new synthetic sample by linearly interpolating between the two selected samples.

For example, in our dataset, we can use SMOTE to generate a new synthetic sample by selecting samples 1 and 2 from the minority class (positive) and linearly interpolating between them. The new synthetic sample would have feature values that are a weighted average of the values in samples 1 and 2, with the weights determined by the distance between the two samples.

Sample Feature 1 Feature 2 Feature 3 Class
1 0.5 0.1 0.8 positive
2 0.7 0.3 0.6 positive
3 0.2 0.8 0.5 negative
4 0.9 0.6 0.2 negative
5 0.3 0.2 0.9 negative
Synthetic Sample 0.6 0.2 0.7 positive

This process can be repeated to generate multiple synthetic samples for the minority class. By adding these synthetic samples to the original dataset, we can balance the dataset and improve the performance of the machine learning model.

There are several parameters that can be adjusted when using SMOTE to generate synthetic data. One important parameter is the number of synthetic samples to generate. This can be specified using the “k” parameter, which determines how many nearest neighbors to consider when generating each synthetic sample.

One of the main disadvantages of SMOTE is that it can generate synthetic samples that are not realistic or representative of the minority class. Since the synthetic samples are generated based on the nearest neighbors, they may not capture the true diversity of the minority class and may not generalize well to new data.

Another big limitation is that it can only be used with numeric data, as the distance measures used to identify nearest neighbors do not apply to categorical data.

Furthermore, SMOTE can also overfit the data set if the number of synthetic samples generated is too large. This can lead to poor performance on unseen data and should be carefully considered when using SMOTE.

In conclusion, SMOTE is a useful technique for generating synthetic data to train machine learning models. This technique can be used in imbalanced classification tasks, where the minority class is underrepresented in the training data. By generating synthetic data for the minority class, SMOTE can help balance the dataset and improve the performance of the machine learning model.

Method 5: Diffusion Models

Diffusion probabilistic models are a type of latent variable model that can be used to generate synthetic data for training machine learning models. These models are based on Markov chains and trained using variational inference, which allows them to capture complex patterns and dependencies in the data.

To understand how diffusion probabilistic models work, it is first necessary to understand the concept of latent variables. Latent variables are hidden or unobserved variables that are believed to have an effect on the observed data. For example, in a social network, the latent variables could be the underlying relationships between individuals, while the observed data could be the interactions between those individuals.

Diffusion probabilistic models are based on Markov chains, which are a type of probabilistic model that captures the dependencies between variables in the data. In a Markov chain, the probability of a particular state (or observed variable) depends only on the current state, not on the previous states. This means that the model can generate data that is statistically independent, while still capturing the dependencies in the original data.

The diffusion probabilistic model is trained using variational inference, which is a method for estimating the parameters of the model. This allows the model to capture the underlying structure of the data, and generate synthetic data that is highly similar to the original data, while still being statistically independent. This allows the synthetic data to be used as a proxy for the original data, allowing machine learning models to be trained on a much larger dataset than would otherwise be possible.

Another benefit of using diffusion probabilistic models is that they can capture the underlying structure of the data, allowing them to generate data that is more realistic and diverse than what would be possible with other methods. This can improve the performance of the machine learning models, as they will be trained on data that is more representative of the real-world data they will be applied to.

Despite the many advantages of using diffusion probabilistic models, there are also some limitations that should be considered. One of the key limitations is that these models can be computationally intensive, especially for large datasets. This can make it difficult to train the model and generate synthetic data in a timely manner.

Another limitation is that diffusion probabilistic models can be sensitive to the initial conditions of the model, which can affect the generated data. This means that it is important to carefully choose the initial conditions, and ensure that they are representative of the data.

In addition, diffusion probabilistic models are not always the best choice for generating synthetic data. In some cases, other methods, such as generative adversarial networks or autoencoders, may be more suitable. It is important to carefully evaluate the requirements of the machine learning model and the data, and choose the appropriate method for generating synthetic data.

Despite these limitations, diffusion probabilistic models can be a powerful tool for generating synthetic data for training machine learning models for NLP tasks such as to understand meaning of text, or in computer vision to recognize/classify objects in images.

In order to choose the appropriate method for generating synthetic data, it is important to carefully evaluate the requirements of the machine learning model and the data. For example, if the goal is to train a machine learning model on a large dataset, diffusion probabilistic models may be a good choice. However, if the goal is to capture complex patterns and dependencies in the data, other methods, such as generative adversarial networks or autoencoders, may be more suitable.

Overall, diffusion probabilistic models are a powerful tool for generating synthetic data for training machine learning models. These models can capture complex patterns and dependencies in the data, and generate data that is highly similar to the original data. This allows machine learning models to be trained on a much larger dataset, which can improve their performance. Despite some limitations, diffusion probabilistic models are a valuable tool for generating synthetic data and should be considered when training machine learning models.

Stable Diffusion

The Stable Diffusion model is a novel approach to generating synthetic data for training machine learning models. Developed by Stability AI, this method adds Gaussian noise to real-world data and then applies denoising techniques to remove the noise while preserving underlying patterns to create new data that is realistic, similar to source data, but at the same time statistically independent.

The result is synthetic data that is indistinguishable from real-world data, but that can be used to train machine learning models without compromising the privacy or ethics of the underlying data. This allows organizations to train their models on large, diverse datasets that accurately represent the real-world scenarios in which the models will be deployed.

The Stable Diffusion model is also highly flexible, allowing organizations to customize the level of noise added to the data and the type of denoising techniques used. This enables organizations to generate synthetic data that is tailored to their specific needs and requirements.

Additionally, the Stable Diffusion model is scalable and can be easily integrated into existing machine learning pipelines. This allows organizations to quickly and easily incorporate synthetic data into their training processes, without significant disruptions to their existing workflow.

The Stable Diffusion model is transparent and interpretable, which means that organizations can understand and explain the synthetic data that is generated. This is particularly important in domains such as healthcare, finance, and security, where data transparency and interpretability are critical for ensuring trust and accountability.

Method 6: Compartmental Models and Information Diffusion

Compartmental model & information diffusion is a type of mathematical model used to predict the spread of a phenomenon through a population. It is commonly used in epidemiology to study the spread of diseases, but it can also be applied to other fields such as marketing and social network analysis for simulating the spread of information or influence through a network, allowing researchers to study complex phenomena such as the adoption of new technologies.

SIR Model

One common type of compartmental model is the susceptible-infected-recovered (SIR) model, which describes the spread of a disease through a population. In this model, individuals are divided into three categories: susceptible, infected, and recovered. Susceptible individuals are those who are at risk of contracting the disease, infected individuals are those who have the disease and can spread it to others, and recovered individuals are those who have either recovered from the disease or have been vaccinated against it.

The SIR model is often used to study the spread of infectious diseases, such as influenza or COVID-19. By simulating the spread of the disease through a network of individuals, researchers can estimate the number of individuals who will be infected and the time it will take for the disease to reach its peak. This information can be used to inform public health policies and interventions, such as the distribution of vaccines or the implementation of social distancing measures.

In addition to studying the spread of disease, these models can also be used to generate training data for machine learning algorithms. For example, a researcher might use a SIR model to simulate the spread of a new product or technology through a network of individuals. By tracking the spread of the product or technology through the network, the researcher can generate a large dataset of individuals and their adoption status (susceptible, infected, or recovered).

To generate training data using these models, the first step is to define the population and the phenomenon that will be studied. This can be done by specifying the initial population size, the characteristics of the population (such as age, gender, location, etc.), and the properties of the phenomenon (such as its transmission rate, virulence, etc.).

Once the population and the phenomenon have been defined, the model can be applied to simulate the spread of the phenomenon through the population. This involves applying the mathematical equations of the diffusion model to each individual in the population, taking into account their characteristics and the properties of the phenomenon.

The result of this simulation is a time-series of data, which can be used as training data for machine learning models. For example, a machine learning model could be trained to predict the spread of a disease through a population, by using the time-series of data generated by a diffusion model as training data.

This dataset can then be used to train a machine learning algorithm to predict the likelihood that an individual will adopt a new product or technology. The algorithm can learn from the data generated by the diffusion model, allowing it to make more accurate predictions about the spread of new products or technologies in the future.

Independent Cascade Model

Another common information diffusion model is the independent cascade model, which is based on the assumption that each individual in the network can be influenced by only one neighbor at a time. In this model, the spread of information or influence is modeled as a sequence of cascades, where each cascade represents the spread of information from one individual to another.

The independent cascade model can be used to generate training data for machine learning algorithms in the following steps:

  1. Define the network structure: The first step is to define the network structure, which represents the connections among the individuals in the network. This can be done using a graph, where each node represents an individual and each edge represents a connection between two individuals.
  2. Select the seed nodes: The next step is to select the seed nodes, which are the individuals that initially possess the information or influence. This can be done using various strategies, such as selecting the most influential individuals in the network or randomly selecting a subset of the individuals.
  3. Simulate the spread of information: Once the seed nodes are selected, the spread of information or influence can be simulated by iteratively activating the neighbors of the seed nodes according to the independent cascade model. This can be done using a Monte Carlo simulation, where the probability of activation is determined based on the network structure and the characteristics of the individuals.
  4. Generate the training data: The final step is to generate the training data, which can be used to train a machine learning algorithm to predict the spread of information or influence in the network. This can be done by extracting features from the network structure and the characteristics of the individuals, and labeling the nodes as active or inactive based on the simulation results.

Linear Threshold Model

The Linear Threshold model is similar to the Independent Cascade model, but it takes into account the influence of individual nodes on the activation of other nodes. In this model, each node is assigned a threshold value, and the activation of a node depends on the number of its neighbors that are already activated. This allows the model to capture more complex patterns of information diffusion and can generate more realistic synthetic data.

Weighted Cascade Model

The Weighted Cascade model is another variation of the diffusion probabilistic model, and it is used to simulate the diffusion of information through a weighted network, where the edges between nodes have different strengths or weights. In this model, the activation of a node depends not only on the number of its neighbors that are already activated, but also on the strength of the connections between the node and its neighbors. This allows the model to capture more nuanced patterns of information diffusion, and to generate synthetic data that reflects the underlying structure of the original dataset.

In general, the Independent Cascade model is well-suited for datasets with relatively simple patterns of information diffusion, such as social networks where the activation of one node only has a limited influence on the activation of other nodes. The Linear Threshold model is more appropriate for datasets with more complex patterns of information diffusion, such as recommendation systems where the activation of one node can have a significant influence on the activation of other nodes. And the Weighted Cascade model is best suited for datasets with weighted networks, where the strength of the connections between nodes plays a role in the diffusion of information.

There are several advantages to using information diffusion models to generate training data for machine learning algorithms. First, these models allow researchers to study the spread of information or influence through a network, providing a rich & realistic source of data for machine learning algorithms. Second, diffusion models are flexible and can be customized to study a wide range of phenomena, from the spread of disease to the adoption of new technologies. Third, it allows for the generation of large amounts of data, which is important for training machine learning algorithms that require a large number of examples. Finally, it allows for the incorporation of domain-specific knowledge, which is important for improving the accuracy and interpretability of the predictions.

Despite their many advantages, diffusion models also have some limitations and challenges that should be considered when using them for synthetic data generation. One of the main limitations of these models is that they are based on the assumption of a static network structure, where the connections between nodes do not change over time. This can be a problem for datasets that exhibit dynamic network structures, such as social networks where the connections between nodes are constantly changing.

Another challenge in using diffusion models for synthetic data generation is the need to carefully tune the model’s parameters in order to generate high-quality synthetic data. This involves selecting the appropriate diffusion model, setting the values of its parameters, and experimenting with different settings to find the best combination of parameters that produce synthetic data that is most similar to the original dataset.

Additionally, diffusion models can be computationally intensive, particularly for large networks with many nodes and edges. This can make it challenging to use these models for generating synthetic data in real-time, and can limit their applicability to datasets with relatively small network sizes.

Zero-Shot and Few-Shot Learning

Zero-Shot Learning (ZSL)

Zero-shot learning is a type of supervised learning that allows the model to classify unseen classes, i.e. classes that were not present in the training data. This is achieved by using a set of auxiliary information, such as semantic attributes or class descriptions, which can be used to infer the classes that were not seen during training. Here knowledge graphs are used to provide additional context and information about the classes of data being learned.

A knowledge graph is a structured representation of real-world knowledge, typically consisting of a set of interconnected nodes and edges. Each node represents a concept, entity, or piece of information, and each edge represents a relationship or connection between two nodes. Knowledge graphs are typically built by manually curating data from a variety of sources, such as Wikipedia, online dictionaries, and taxonomies.

One of the key advantages of knowledge graphs is their ability to provide context and additional information about the concepts and entities they represent. For example, a knowledge graph of the human body might include nodes for different organs, tissues, and cells, as well as edges representing the relationships between these entities (e.g. the liver is part of the digestive system). This allows machine learning algorithms to better understand and reason about the data they are learning, improving their performance and accuracy.

Consider a machine learning model that is trained to classify images of animals into different classes (e.g. dogs, cats, birds, etc.). In a traditional supervised learning setting, this model would be trained on a large dataset of labeled images, where each image is labeled with its corresponding class. But if the training data may contain only a few examples of each class, such as cats, dogs, and birds, then the model will be able to classify the seen classes (cats, dogs, and birds) accurately, but it will not be able to classify unseen classes such as horses or elephants. So, in a zero-shot learning setting, the model could be trained on a knowledge graph that includes nodes for different animal classes, as well as edges representing the relationships between these classes (e.g. cats are mammals, birds are vertebrates, etc.). This additional knowledge, auxiliary information such as class descriptions or semantic attributes, can then be used to train the model to classify images of new animal classes, even if no labeled examples of these classes are available. For example, the class descriptions for horses and elephants may contain information such as “four legs” and “large ears”, which can be used to infer the class of these unseen classes.

The main advantage of zero-shot learning is that it allows the model to generalize to unseen classes, which is not possible with traditional supervised learning. This makes it an attractive option for scenarios where the training data is limited or insufficient.

Few-Shot Learning (FSL)

Few-shot learning is another type of supervised learning that allows the model to classify novel classes with a limited amount of labeled training data. This is achieved by using a set of labeled examples from a few classes, and then using these examples to infer the classes of unseen examples.

For example, consider a scenario where a machine learning model is trained to classify different types of flowers. The training data may contain only a few examples of each class, such as roses, sunflowers, and lilies. In this case, the model will be able to classify the seen classes (roses, sunflowers, and lilies) accurately, but it will not be able to classify unseen classes such as tulips or daisies.

However, with few-shot learning, the model can be trained to classify unseen classes by using a small number of labeled examples. For example, the model may be provided with a few labeled examples of tulips and daisies, and then it can use these examples to infer the classes of unseen examples.

The main advantage of few-shot learning is that it allows the model to generalize to novel classes with a limited amount of labeled data. This makes it an attractive option for scenarios where the labeled training data is scarce.

Challenges with ZSL and FSL

One of the main challenges of zero-shot learning is that it relies on prior knowledge or information about the data. This means that the model must have a good understanding of the data to make accurate predictions. For example, if the model is trying to classify animals, it must have a good understanding of the different characteristics and attributes of each animal in order to make accurate predictions. The knowledge graph needs to be comprehensive and should accurately represent the domain of data being learned. This requires careful curation and manual effort, as well as the ability to integrate data from multiple sources.

Another challenge of zero-shot learning is that it can be difficult to obtain accurate and reliable prior knowledge or information about the data. For example, if the model is trying to classify medical images, it may be difficult to obtain reliable information about the characteristics and attributes of each image.

In addition, zero-shot learning can be computationally expensive. This is because the model must use a large amount of prior knowledge or information to make predictions, which can require a lot of computational resources.

Similarly, few-shot learning also has its challenges and limitations. One of the main challenges is that the model must be able to learn from a very small amount of labeled training data. This can be difficult because the model may not have enough data to accurately learn the characteristics and attributes of the data.

Another challenge of few-shot learning is that the model may overfit to the training data. This means that the model may learn the characteristics and attributes of the training data too well, and may not be able to generalize to new data.

One potential solution to the challenges and limitations of zero-shot learning is to use transfer learning. Transfer learning (as seen previously) involves training a machine learning model on a large amount of labeled training data, and then using the knowledge and information learned from this data to make predictions on a new dataset. For example, if the model is trying to classify animals, it could be trained on a large dataset of animal images. The model could then use the knowledge and information learned from this data to make predictions on a new dataset of animal images. Transductive zero shot, which incorporates the unseen images into the training process, may also help mitigate the challenges with domain shift and bias.

For few-shot learning, one potential solution is to use data augmentation. Data augmentation (as seen previously) involves creating new data points from the existing training data. This can increase the amount of training data available and can help the model learn the characteristics and attributes of the data more accurately.

Problem Reduction

Problem reduction is a technique for training machine learning models when little or no labeled training data is available. This approach involves breaking down a larger, complex problem into smaller, more manageable subproblems, and then using a combination of labeled and unlabeled data to train a model to solve each subproblem.

One way to apply problem reduction to machine learning is to use a multi-task learning framework. In this approach, a single model is trained to perform multiple related tasks simultaneously. For example, a model might be trained to perform both object recognition and object localization in an image. The model is then able to transfer knowledge between the two tasks, allowing it to improve its performance on both tasks even when labeled data is limited for one or both tasks.

Another way to apply problem reduction to machine learning is to use transfer learning. In this approach, a model is first trained on a large dataset for a related but different task, and then the trained model is fine-tuned on the smaller dataset for the target task. For example, a model trained on a large dataset of images for image classification could be fine-tuned on a smaller dataset of medical images for the task of identifying tumors. The pre-trained model provides a strong starting point for the fine-tuning process, allowing the model to learn from the smaller dataset more effectively than if it were trained from scratch.

One key advantage of problem reduction for training machine learning models is that it allows for the use of both labeled and unlabeled data. In many real-world scenarios, it is difficult or impossible to obtain a large amount of labeled data for a particular task. By using problem reduction, the model can still make use of the available unlabeled data, which can provide valuable information about the underlying structure of the data. This can significantly improve the performance of the trained model, even when the amount of labeled data is limited.

Another advantage of problem reduction is that it can help to avoid overfitting. Overfitting occurs when a model is trained on a limited amount of data and becomes too specialized to that specific dataset, resulting in poor performance on new data. By breaking down the problem into smaller subproblems and using a combination of labeled and unlabeled data, problem reduction can help to prevent overfitting and improve the generalizability of the trained model.

Overall, problem reduction is a valuable technique for training machine learning models when little or no labeled data is available. By breaking down a complex problem into smaller subproblems and using a combination of labeled and unlabeled data, this approach can improve the performance of the trained model and avoid overfitting.

Ensemble Learning

Ensemble learning is a popular machine learning technique used to improve the performance of machine learning models by combining the predictions of multiple models. This technique is particularly useful in situations where there is a scarcity of high quality labeled training data, as it allows the model to leverage the strengths of multiple models to make more accurate predictions.

When training a machine learning model, one of the key challenges is to ensure that the model has access to a large and diverse dataset. This is particularly important when the data is highly imbalanced or when the data has high levels of noise. In such cases, a single model may not be able to capture the underlying patterns in the data, leading to poor performance.

Ensemble learning addresses this challenge by training multiple models on the same dataset and then combining their predictions to produce a final prediction. This technique allows the model to leverage the strengths of multiple models, making it more robust and accurate.

One of the key advantages of ensemble learning is that it allows the model to learn from a larger and more diverse dataset. For example, if the data is imbalanced, the ensemble model can combine the predictions of multiple models trained on different subsets of the data, allowing it to capture the patterns in the data more accurately. Similarly, if the data is noisy, the ensemble model can combine the predictions of multiple models trained on different subsets of the data, allowing it to filter out the noise and make more accurate predictions.

Another advantage of ensemble learning is that it allows the model to learn from multiple models with different architectures and hyperparameters. This is particularly useful when there is a scarcity of high quality labeled training data, as it allows the model to leverage the strengths of multiple models to make more accurate predictions.

For example, if the data is imbalanced, the ensemble model can combine the predictions of multiple models trained on different subsets of the data, allowing it to capture the patterns in the data more accurately. Similarly, if the data is noisy, the ensemble model can combine the predictions of multiple models trained on different subsets of the data, allowing it to filter out the noise and make more accurate predictions.

Overall, ensemble learning is a powerful technique for improving the performance of machine learning models when there is a scarcity of high quality labeled training data. By combining the predictions of multiple models, the ensemble model can learn from a larger and more diverse dataset, making it more robust and accurate.

A Note on Overfitting

Overfitting is when the machine learning model performs very well on the training data but fails miserably on unseen data. It occurs when a model is overly complex and captures too much noise in the training data, leading to poor performance on unseen data. Overfitting can be of huge concern especially when there is not enough training data. Techniques such as regularization, ensemble/averaging (as seen previously), feature engineering etc. can be employed to better generalize the models.

In cases where no or little labeled training data is available, regularization becomes even more important. Without enough data, the risk of overfitting increases, and regularization can help constrain the model to prevent it from capturing too much noise.

One popular method of regularization is L1 regularization, also known as LASSO (Least Absolute Shrinkage and Selection Operator). This method adds an L1 penalty term to the cost function, which encourages the model to prioritize certain coefficients over others. This can lead to some coefficients becoming zero, effectively reducing the complexity of the model and preventing overfitting.

Another method is L2 regularization, also known as Ridge Regression. This method adds an L2 penalty term to the cost function, which encourages the model to have smaller coefficients and reduce complexity. This can help prevent overfitting and improve the generalizability of the model.

Dropout regularization is a technique used in neural networks to prevent overfitting by randomly dropping out (disabling) a certain number of neurons in the network during training. This forces the network to learn multiple independent representations of the same data, leading to a more generalized and robust model. It is commonly used in conjunction with other regularization techniques, such as weight decay and early stopping.

Batch normalization is a technique used in deep learning to improve the performance and stability of neural networks. It normalizes the inputs of each layer by adjusting and scaling the activations. This helps to reduce the internal covariate shift, which is the change in the distribution of inputs to a layer caused by the previous layer’s parameters. Batch normalization also acts as a regularizer, which reduces overfitting and improves generalization. It speeds up training by allowing the use of higher learning rates and can also help to improve the optimization of the network. Batch normalization is typically applied before the activation function of each layer and can be implemented using various techniques, such as using mini-batches or using an exponential moving average of the batch statistics.

In cases where no labeled training data is available, unsupervised learning algorithms such as dimensionality reduction can be used. This involves reducing the number of features in the data, which can help improve the interpretability of the model and prevent overfitting. One popular dimensionality reduction technique is Principal Component Analysis (PCA), which projects the data onto a lower-dimensional space while maintaining the maximum amount of variance in the data.

Overall, regularization is a crucial technique for training machine learning models when no or little labeled training data is available. It can help prevent overfitting and improve the generalizability of the model, leading to better performance on unseen data.

Conclusion

Ultimately, the best approach for training a machine learning model with little or no labeled data will depend on the specific task and the available data. With the use of techniques described above it is possible to effectively train these models and achieve good performance. It is important to carefully select the appropriate technique based on the specific requirements of the problem at hand and to constantly monitor and fine-tune the model to ensure its accuracy and effectiveness, and to remain aware of any potential biases of these techniques. Careful experimentation and evaluation will be necessary to determine the best approach in each situation.

Further Reading

[1] S. Candemir, X. Nguyen, L. Folio, L. Prevedello, Training Strategies for Radiology Deep Learning Models in Data-limited Scenarios (2021), Radiology: Artificial Intelligence Vol. 3, No. 6

[2] L. Weng, Learning with not Enough Data Part 1: Semi-Supervised Learning (2021)

[3] L. Weng, Learning with not Enough Data Part 2: Active Learning (2022)

[4] L. Weng, Learning with not Enough Data Part 3: Data Generation (2022)

[5] A. Yakimovich, A. Beaugnon, Y. Huang, E. Ozkirimli, Labels in a haystack: Approaches beyond supervised learning in biomedical applications (2021), Patterns (N Y) Dec 10, 2021

[6] S. Bach, Learning with Limited Labeled Data (2022), Computer Science at Brown University

[7] A. Adadi, A survey on data-efficient algorithms in big data era (2021), Journal of Big Data volume 8, Article number: 24

[8] N. Tajbakhsh, H. Roth, D. Terzopoulos, J. Liang, Annotation-Efficient Deep Learning: The Holy Grail of Medical Imaging (2021), IEEE Transactions on Medical Imaging, Vol. 40, No. 10, October 2021

[9] B. Boecking, W. Neiswanger, E. Xing, A. Dubrawski, Interactive Weak Supervision: Learning Useful Heuristics for Data Labeling (2021), International Conference on Learning Representations (ICLR) 2021

[10] Y. Hu, A. Chapman, G. Wen, W. Hall, What Can Knowledge Bring to Machine Learning? – A Survey of Low-shot Learning for Structured Data (2022), ACM Transactions on Intelligent Systems and Technology, Volume 13, Issue 3, June 2022