## Overview

• Sampling techniques are strategies to select a subset of data from a statistical population to estimate characteristics of the whole population. The selected subset is called a sample. Different sampling techniques are employed depending on the nature of the population and the objectives of the study. Here are some of the most commonly used sampling techniques:
1. Random Sampling: This is the purest form of probability sampling. Every member of the population has an equal chance of being selected in the sample.
2. Systematic Sampling: It involves selecting units from an ordered population at regular intervals after a random start.
3. Stratified Sampling: The population is divided into homogeneous subgroups or ‘strata’, and the right number of instances are sampled from each subgroup to guarantee that the sample represents the population as a whole.
4. Cluster Sampling: The entire population is divided into groups, or clusters, and a random sample of these clusters are selected. All observations from the selected clusters are included in the sample.
5. Multistage Sampling: A combination of different sampling techniques at different stages. For example, you might take a random sample of schools in a city (first stage) and then within those selected schools, take a random sample of classes (second stage).
6. Quota Sampling: A type of non-probability sampling where the collected sample has the same proportions of individuals as the entire population with respect to the known characteristics or traits.
7. Convenience Sampling: A type of non-probability sampling which relies on data collection from population members who are conveniently available to participate in the study.
8. Snowball Sampling: A non-probability sampling technique where existing study subjects recruit future subjects from among their acquaintances.
• Each of these techniques has its own benefits and drawbacks, and the choice of technique largely depends on the nature of the study and the resources available. It’s also important to remember that the quality of your sample, no matter the technique used, will directly impact the quality of your findings.

## When is sampling used in NLP

• Here are a few instances where they might come into play:
1. Dataset Creation: When creating a dataset for a particular NLP task, it might not be feasible or necessary to use all available data. Sampling techniques can be used to select a subset of data that is representative of the whole.
2. Imbalanced Classes: In tasks like text classification where there might be a significant imbalance in the classes, sampling techniques can be used to balance the classes. For example, undersampling can be used to reduce the instances of the majority class, or oversampling can be used to increase the instances of the minority class.
3. Negative Sampling: In some NLP tasks like word2vec training, negative sampling is used. The objective here is to sample negative instances (context-word pairs that are not present in the text) for the model to learn from.
4. Training Efficiency: In some cases, it might not be computationally feasible to use all available data for training a model. Sampling techniques can be used to select a subset of data for training the model.
5. Evaluation: When evaluating a trained model, it’s common to sample a subset of the data for testing purposes.

## Hard Sampling (or Hard Negative Mining)

• In the context of object detection tasks, hard negative mining refers to the process of selecting the most challenging negative examples (background patches in an image that do not contain the object of interest) to include in the training set. These challenging negatives, also called “hard negatives”, are the ones that the model currently misclassifies, meaning the model mistakenly predicts them to contain the object of interest.
• Incorporating these hard negatives in the training process helps the model improve its ability to distinguish between true object instances and background noise. The idea is that by focusing on the most challenging examples, the model learns more robust and discriminative features.

## Negative Sampling

• This is a strategy often used in tasks where the dataset is extremely imbalanced, like word2vec, recommendation systems, or any scenario where there are vastly more negative examples than positive ones. Negative sampling is a technique where, instead of using all the negative examples in the training process, a small random sample of the negatives is selected and used in each training step.
• Negative sampling is very useful in reducing the computational burden of dealing with a large number of negative examples. It can lead to a faster and more efficient training process, and despite its simplicity, it often leads to models with competitive performance.

• So, both hard and negative sampling are strategies to manage the negative examples in your training process. The key difference is that hard sampling focuses on selecting the most challenging negatives, whereas negative sampling involves randomly selecting a subset of negatives for computational efficiency.
• Both hard and negative sampling are techniques used in training machine learning models, especially in tasks like word embedding learning and object detection. They are strategies to sample training instances that can make the learning process more effective and efficient. Let’s break them down: