<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by DECILE on Medium]]></title>
        <description><![CDATA[Stories by DECILE on Medium]]></description>
        <link>https://medium.com/@decile-research?source=rss-8bf00d290651------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*r5tu7fHSvoHhoZR7WYOSSg.png</url>
            <title>Stories by DECILE on Medium</title>
            <link>https://medium.com/@decile-research?source=rss-8bf00d290651------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 06 Apr 2026 22:54:32 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@decile-research/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[CORDS — Energy and Time Efficient Toolkit for training Large Datasets]]></title>
            <link>https://decile-research.medium.com/cords-energy-and-time-efficient-toolkit-for-training-large-datasets-a973769f30c?source=rss-8bf00d290651------2</link>
            <guid isPermaLink="false">https://medium.com/p/a973769f30c</guid>
            <category><![CDATA[data-subset-selection]]></category>
            <category><![CDATA[efficient-model-training]]></category>
            <category><![CDATA[hyperparameter-tuning]]></category>
            <category><![CDATA[reduce-training-time]]></category>
            <category><![CDATA[reduce-resources]]></category>
            <dc:creator><![CDATA[DECILE]]></dc:creator>
            <pubDate>Sun, 20 Jun 2021 07:49:24 GMT</pubDate>
            <atom:updated>2021-06-20T08:02:00.898Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>CORDS — Energy and Time Efficient Toolkit for Training Large Datasets</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JUKFTbqvrAScX3si_i-Clg.png" /></figure><h3><strong>In this Article</strong></h3><ol><li>Introduction</li><li>What is CORDS?</li><li>Getting started with CORDS</li><li>CORDS Demo</li><li>Code Walk-through</li><li>CORDS Results</li><li>Conclusion</li><li>Publications</li></ol><h3><strong>1. Introduction</strong></h3><p>With the growth of computers, there is substantial growth in data. In today’s world, machine learning tasks often involve using large neural networks which require access to high-end GPUs to train large datasets which is expensive and takes a lot of time to train to achieve good accuracy. When there are limited resources and time, it may then pose a problem. This tutorial has a solution for handling these large datasets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/505/1*cBa6GpNPESyE47YZov5NmA.gif" /><figcaption><em>So why waste lot of time and resources for training the deep learning models when you can do the same even with fewer resources </em>😉</figcaption></figure><h3><strong>2. What is CORDS?</strong></h3><p>CORDS is a toolkit that is based on the PyTorch library that allows researchers and developers to train models by reducing the training time from days to hours (or hours to minutes) and energy requirements/costs by an order of magnitude using coresets and data selection. The goal of CORDS is to make machine learning time more energy, cost, resource and time efficient while not sacrificing accuracy. The idea behind cords is to select right representative subsets of large datasets using state of the art subset selection and coreset algorithms like -</p><ul><li>GLISTER [1]</li><li>GradMatch [2]</li><li>CRAIG [2,3]</li><li>Submodular Selection [4,5,6] (Facility Location, Feature Based Functions, Coverage, Diversity)</li><li>Random Selection</li></ul><h3><strong>3. Getting started with CORDS</strong></h3><p>To get started with CORDS, <a href="https://github.com/decile-team/cords">click here</a> to access the GitHub repository and follow the installation procedure</p><h3><strong>4. CORDS Demo</strong></h3><p>For this demo we will cover the basics of CORDS using GLISTER strategy by training on the Cifar10 dataset. Cifar10 is a classic dataset for deep learning, consisting of 32x32 images belonging to 10 different classes, such as dog, frog, truck, ship, and so on. Training a complete dataset on ResNet architecture takes a couple of hours. The mission is to reduce the training time and costs without sacrificing accuracy.</p><p><em>NOTE: Here for this example, we have used GLISTER strategy with Cifar10 dataset and ResNet architecture. It is possible to run any strategy</em></p><h4><strong>Step 1</strong></h4><p>Modify the model architecture in the following way:</p><ol><li>The forward method should have two more variables:</li></ol><ul><li>A boolean variable ‘last’ which -</li></ul><p>▹ If true: returns the model output and the output of the second last layer</p><p>▹ If false: Returns the model output.</p><ul><li>A boolean variable ‘freeze’ which -</li></ul><p>▹ If true: disables the tracking of any calculations required to later calculate a gradient i.e skips gradient calculation over the weights</p><p>▹ If false: otherwise</p><p>2. get_embedding_dim() method which returns the number of hidden units in the last layer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/433/1*PnY313hPl_3BPl-y0_vepA.png" /><figcaption><strong>Modifying Model Architecture</strong></figcaption></figure><h4><strong>Step 2</strong></h4><p>Use a configuration file as shown below with required parameters (<a href="https://github.com/decile-team/cords/blob/main/configs/config_glister_cifar10.py">config_glister_cifar10.py</a>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/699/1*rBey9GLvPAIanB4eXVX-xg.png" /><figcaption><strong>Training Configuration File</strong></figcaption></figure><h4><strong>Step 3</strong></h4><p>Run the below code</p><pre>from train import TrainClassifier</pre><pre>config_file = “configs/config_glister_cifar10.py</pre><pre>classifier = TrainClassifier(config_file)</pre><pre>classifier.train()</pre><blockquote><strong>VOILA! Training has never been as simple as this!</strong></blockquote><p>In the next section we go through the complete training procedure step-by-step for the code <a href="https://github.com/decile-team/cords/blob/main/train.py">train.py</a>.</p><h3><strong>5. Code Walk-through</strong></h3><p>Highly modularized code of CORDS makes developers and researchers simple to understand and make changes as required for their needs.</p><p>Initially, define the model with the required model architecture:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*oGTUQ70V4mVdfV4wJa8Ujg.png" /></figure><p>Define the loss function and optimizers in the same way</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/659/0*PJ1sz4gdbojLMTwd" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MVdDO68ZUZdJuLW9" /></figure><p>The train method incorporates following steps:</p><p>▹ Load the training, testing and validation dataset and declare batch sizes for the corresponding datasets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QAi8XEs8eWcUhTie" /></figure><p>▹ Load the dataset using PyTorch DataLoader object for training, testing and validation which takes care of shuffling the data (if required) and constructing the batches.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/792/0*K7lyFgUbkKnTqSVo" /></figure><p>▹ The next step is to initialize the data subset selection algorithm</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*o4dymcVLnZd8xgZ7" /></figure><p>▹ In the next step we train the network on the subset of the training data. We simply have to loop over the data iterator for the required number of epochs and feed the inputs to the network and optimize. The subset selection algorithm returns the right representative data subset indices and corresponding gradients. These are then loaded into PyTorch DataLoader object for further evaluation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P1kniPFdW3lVic2ni9dOfQ.png" /></figure><p>▹ In the next step, we evaluate the model losses on the subset of the training data</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*G9LBmz3UXoH7ELhBju_MhQ.png" /></figure><p>▹ At last, we calculate the validation and test losses for validation and test datasets loaded using PyTorch DataLoader objects</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*vATjg6HRuzuYwjzA" /></figure><h3><strong>6. CORDS Results</strong></h3><p>Currently we see between 3<em>x</em> to 7<em>x</em> improvements in energy and runtime with around 1–2% drop in accuracy. We expect to push the Pareto-optimal frontier even more over time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jLGN30-fYspgVt5X" /><figcaption><strong>CORDS Results</strong></figcaption></figure><h3><strong>7. Conclusion</strong></h3><p>As seen, CORDS is an effort to make deep learning more energy, cost, resource and time efficient while not sacrificing accuracy.</p><p>The following are the goals CORDS tries to achieve:</p><ol><li><em>Data Efficiency</em></li><li><em>Reducing End to End Training Time</em></li><li><em>Reducing Energy Requirement</em></li><li><em>Faster Hyper-parameter tuning</em></li><li><em>Reducing Resource (GPU) Requirement and Costs</em></li></ol><p>In this part, we discussed the basic introduction to CORDS and how it can be used for subset selection for massive datasets. In the next tutorial we will talk about hyper-parameter tuning to obtain SOTA results using CORDS (<a href="https://docs.google.com/document/d/1L8ictn66l2HkGG8mMOMcpC13wga8gE3ELrGGyxh0kaI/edit">click here</a>).</p><p>For more examples and tutorials, visit the <a href="https://github.com/decile-team/cords">CORDS GitHub repository</a>.</p><h3><strong>8. Publications</strong></h3><p>[1] Krishnateja Killamsetty, Durga Sivasubramanian, Ganesh Ramakrishnan, and Rishabh Iyer, <a href="https://arxiv.org/abs/2012.10630">[GLISTER: Generalization based Data Subset Selection for Efficient and Robust Learning]</a>, 35th AAAI Conference on Artificial Intelligence, AAAI 2021</p><p>[2] Krishnateja Killamsetty, Durga Sivasubramanian, Abir De, Ganesh Ramakrishnan, Baharan Mirzasoleiman, Rishabh Iyer, <a href="https://arxiv.org/abs/2103.00123">[Grad-Match: A Gradient Matching based Data Selection Framework for Efficient Learning]</a>, 2021</p><p>[3] Baharan Mirzasoleiman, Jeff Bilmes, and Jure Leskovec. <a href="https://arxiv.org/abs/1906.01827">[Coresets for Data-efficient Training of Machine Learning Models]</a>. In International Conference on Machine Learning (ICML), July 2020</p><p>[4] Kai Wei, Rishabh Iyer, Jeff Bilmes, <a href="http://proceedings.mlr.press/v37/wei15-supp.pdf">[Submodularity in Data Subset Selection and Active Learning]</a>, International Conference on Machine Learning (ICML) 2015</p><p>[5] Vishal Kaushal, Rishabh Iyer, Suraj Kothiwade, Rohan Mahadev, Khoshrav Doctor, and Ganesh Ramakrishnan, <a href="https://arxiv.org/abs/1901.01151">[Learning From Less Data: A Unified Data Subset Selection and Active Learning Framework for Computer Vision]</a>, 7th IEEE Winter Conference on Applications of Computer Vision (WACV), 2019 Hawaii, USA</p><p>[6] Wei, Kai, et al. <a href="https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.496.6287&amp;rep=rep1&amp;type=pdf">[Submodular subset selection for large-scale speech training data]</a>, 2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2014.</p><h4><strong>Author:</strong></h4><p><a href="https://www.linkedin.com/in/dheerajnbhat/"><em>Dheeraj Bhat</em></a></p><p><em>Research &amp; Development Intern</em></p><p><a href="https://decile.org/"><em>DECILE Research Group</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a973769f30c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Active Learning Strategies & DISTIL]]></title>
            <link>https://decile-research.medium.com/active-learning-strategies-distil-62ee9fc166f9?source=rss-8bf00d290651------2</link>
            <guid isPermaLink="false">https://medium.com/p/62ee9fc166f9</guid>
            <category><![CDATA[al-strategy]]></category>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[reduce-labeling-cost]]></category>
            <category><![CDATA[distil]]></category>
            <category><![CDATA[active-learning]]></category>
            <dc:creator><![CDATA[DECILE]]></dc:creator>
            <pubDate>Wed, 05 May 2021 16:52:05 GMT</pubDate>
            <atom:updated>2021-05-09T09:07:17.010Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="DISTIL Logo" src="https://cdn-images-1.medium.com/max/557/1*JwzpzLPD5FC1073TWAnuUA.png" /></figure><h4>In this Article</h4><ol><li>Introduction</li><li>Deep dIverSified inTeractIve Learning (DISTIL)</li><li>Various Active Learning Strategies</li></ol><ul><li>Uncertainty Sampling</li><li>Coreset</li><li>FASS</li><li>BADGE</li><li>GLISTER-ACTIVE</li><li>Adversarial Techniques</li><li>BALD</li></ul><p>4. Video Explanation</p><p>5. Resources</p><h4>1. INTRODUCTION</h4><p>Deep learning models, which are often deemed to be the state of the art, are specially equipped to find hidden patterns from large datasets as they learn to craft features. However, training these deep learning models is very demanding both in terms of computational resources and large training data. The deeper the model, the more are parameters to be learnt. This makes models more and more data-hungry to achieve good generalization. This begs the question what is the cost of acquiring the data? Are the datasets always labelled and if not, what is the cost incurred in getting unlabeled datasets labelled?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/0*aSz2O3kCciefs8sT" /><figcaption>Price for labelling 1000 data points. (Source: <a href="https://cloud.google.com/ai-platform/data-labeling/pricing">https://cloud.google.com/ai-platform/data-labeling/pricing</a>). Similar rates can be found at <a href="https://aws.amazon.com/sagemaker/groundtruth/pricing/">https://aws.amazon.com/sagemaker/groundtruth/pricing/</a></figcaption></figure><p>Though depending on the underlying task, the cost of labelling varies, still, it is clear that even for the simplest of tasks labelling cost could be staggering if one wants to label the data points to train modern-day deep models. Also, it is important to note that these prices are for one annotator and even the task doesn’t require a domain expert. Often, to improve the reliability more annotators are needed.</p><p>Can something be done to reduce this staggering labelling cost when a labelled dataset is unavailable? Are all data points needed to achieve good performance?</p><p>It turns out that large datasets often have a lot of redundancies. Therefore, if carefully chosen, even with a few data points models can get good accuracy. This is where active learning comes into play. Active learning allows machine learning algorithms to achieve greater accuracy with fewer training labels. Here a machine learning algorithm chooses the data from which it wants to learn and gets it labelled by an oracle (e.g., a human annotator). Active learning is useful where unlabeled data may be abundant or easily obtained, but labels are difficult, time-consuming, or expensive to obtain.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*I4O6D-AuGfyMdEql" /></figure><h4>2. Deep dIverSified inTeractIve Learning (DISTIL)</h4><p>Active learning can be easily incorporated with the new DISTIL Toolkit. <a href="https://github.com/decile-team/distil">DISTIL</a> is a library that features many state-of-the-art active learning algorithms. Implemented in PyTorch, it gives fast and efficient implementations of these active learning algorithms. It has the most state-of-the-art active learning strategies. DISTIL employs mini-batch adaptive active learning, which is more appropriate for deep neural networks. Thus, in each round DISTIL strategies select k sized mini-batch for n rounds. Now let’s see the various strategies present in DISTIL.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/0*GjMIwg32buNwUpp6" /></figure><h4>3. Various Active Learning Strategies</h4><p><strong>1. Uncertainty Sampling</strong></p><p>One way to reduce labelling cost is to identify the data points that the underlying model finds most difficult to classify and provide labels only for those. We score a data point as simple or complex based on the softmax output for that point. Suppose the model has <strong><em>ncl</em></strong> output nodes and each output node is denoted by Z<strong><em>j</em></strong>. Thus, <strong><em>j ∈ [1,ncl]</em></strong>. Then for an output node Z<strong><em>i</em></strong> from the model, the corresponding softmax would be</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/136/1*1aX5QGcYcfLr9D1NcI5S_g.png" /></figure><p><em>A. Least Confidence </em><br>Then the softmax can be used to pick k no. of elements for which the model has the lowest confidence as follows,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/371/1*69nYBXZJNqwUiXiIgYk3Kg.png" /></figure><p>where <strong><em>U</em></strong> denotes the Data without labels.</p><p><em>B. Margin Sampling</em><br>Then Margin sampling would pick k no. of elements using softmax as follows,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/392/1*srr2BF7fos6YgAjRVY9FVg.png" /></figure><p>where <strong><em>U</em></strong> denotes the Data without labels.</p><p><em>C. Entropy</em><br>Then Entropy sampling would pick k no. of elements using softmax as follows,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/484/1*drMLSxAa-1QC29LbresH2Q.png" /></figure><p>where <strong><em>U</em></strong> denotes the Data without labels.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/627/1*bX3UCsTYdKIRVJHR_BAWEw.png" /></figure><p>Interestingly, we see that both least confidence sampling and margin sampling pick some data points that have pairwise confusion however entropy focuses on the data points which have confusion among most of the labels.</p><p><strong>2. Coreset</strong></p><p>This technique tries to find data points that can represent the entire dataset. For this, it tries to solve a k-Center Problem on the set of points represented by the embeddings obtained from the penultimate layer of the model. Embeddings from the penultimate layer can be thought of as the extracted features, therefore, solving the k-Center Problem in this new feature space can help us get representative points. The idea in Coreset strategy is that if those representative points are labelled, then the model will have enough information. For example, Coreset strategy would select the blue points if the union of red and blue points were given as input and the budget was 4.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/824/0*asbznez7D_rG7svZ" /><figcaption>4 centres chosen. Source: <a href="https://arxiv.org/abs/1708.00489">Core-Set Paper</a></figcaption></figure><p><strong>3. FASS</strong></p><p>Filtered Active Submodular Selection (FASS) combines uncertainty sampling idea with Coreset idea to most representative points. To select the most representative points it uses a submodular data subset selection framework.<br>Here we select a subset F of size β based on uncertainty sampling, such that β ≥ k.<br>Using one of the submodular functions — ‘facility location’, ‘graph cut’, ‘saturated coverage’, ‘sum redundancy’, ‘feature based’, we select subset S of size k.</p><p>Submodular functions are often used to get the most representative or diverse subsets.</p><p><strong>4. BADGE</strong></p><p><strong>Batch Active learning by Diverse Gradient Embeddings (BADGE) </strong>samples groups of points that are disparate and high magnitude when represented in a hallucinated gradient space, a strategy designed to incorporate both predictive uncertainty and sample diversity into every selected batch. This allows it to trades off between uncertainty and diversity without requiring any hand-tuned hyperparameters. Here at each round of selection, loss gradients are computed using the hypothesized labels.</p><p><strong>5. GLISTER-ACTIVE</strong></p><p>Glister-Active performs data selection jointly with parameter learning by trying to solve a bi-level optimization problem,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/406/1*DamLuRs7k4rfYfWTnx6FRw.png" /></figure><p>Inner level optimization: This is very similar to the problem encountered while training a model except that here the data points used are from a subset. Therefore this tries to maximize the log-likelihood (LLT) with the given subset. <br>Outer level Optimization: This is also a log-likelihood maximization problem. The objective here is to select a subset S that maximizes the log-likelihood of the validation set with given model parameters.</p><p>This bi-level optimization is often expensive or impractical to solve for general loss functions, especially when the inner optimization problem cannot be solved in closed form. Therefore, instead of solving the inner optimization problem completely, a one-step approximation is made as follows,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/304/1*8aHVoZfg6IW_I7tWOzkQtA.png" /></figure><p>while solving the outer optimization.</p><p><strong>6. Adversarial Techniques</strong></p><p>These techniques are motivated by the fact that often the distance computation from decision boundary is difficult and intractable for margin-based methods. Adversarial techniques such as Deep-Fool, BIM(Basic Iterative Method) etc. have been tried out in active learning setting to estimate how much adversarial perturbation is required to cross the boundary. The smaller the required perturbation, the closer the point is to the boundary.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/346/0*nTPKugEe9AuI_ICQ" /><figcaption>Choosing samples in adversarial Setting. Paper:<a href="https://arxiv.org/abs/1802.09841"> Adversarial active learning for deep networks: a margin based approach</a></figcaption></figure><p><strong>7. BALD</strong></p><p>Bayesian Active Learning by Disagreement(BALD) assumes a Bayesian setting. Therefore the parameters are probability distributions. This allows the model to quantify its beliefs: a wide distribution for a parameter means that the model is uncertain about its true value, whereas a narrow one quantifies high certainty. BALD scores a data point x based on how well the model’s predictions y inform us about the model parameters. For this, it uses mutual information,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/501/1*7iY8qiHiGLaifkWiqQOo_Q.png" /></figure><p>Since the mutual information can be re-written as:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/568/1*vB5jqEckllNnf1FmyvUkdw.png" /></figure><p>Looking at the two terms in the equation, for the mutual information to be high, the left term has to be high and the right term low. The left term is the entropy of the model prediction, which is high when the model’s prediction is uncertain. The right term is an expectation of the entropy of the model prediction over the posterior of the model parameters and is low when the model is overall certain for each draw of model parameters from the posterior. Both can only happen when the model has many possible ways to explain the data, which means that the posterior draws are disagreeing among themselves. Therefore each round, k points are selected as follows,</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/620/1*q4qJKyjAyDHEv0fdUaBuwg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/432/0*0UDYLwXppSvce-kN" /><figcaption>The intuition behind BALD. Areas in grey contribute to the BALD score. Paper: <a href="https://arxiv.org/abs/1906.08158">Efficient and diverse batch acquisition for deep Bayesian active learning</a></figcaption></figure><h4>4. Video Explanation</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FtBhjq1gUAv4&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DtBhjq1gUAv4&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FtBhjq1gUAv4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/ba5718f68f869cf0f8b3e580fee6bb5a/href">https://medium.com/media/ba5718f68f869cf0f8b3e580fee6bb5a/href</a></iframe><h4>5. Resources</h4><p><em>More about Active Learning &amp; DISTIL:</em></p><ul><li><a href="https://decile-research.medium.com/getting-started-with-distil-active-learning-ba7fafdbe6f3">Getting Started With DISTIL &amp; Active Learning</a></li><li><a href="https://decile-research.medium.com/cut-down-on-labeling-costs-with-distil-77bec5c2e864">Cut Down on Labeling Costs with DISTIL</a></li></ul><p><em>YouTube Playlist:</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FOGgGqk3seaw%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%26rs%3DAOn4CLCAdQdwT8Yaqckk9Ov2BGp5SoHBTg%26days_since_epoch%3D18756&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="853" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e99cd4629e9eece787082ec3df802888/href">https://medium.com/media/e99cd4629e9eece787082ec3df802888/href</a></iframe><p>Author:</p><p><strong><em>Durga Subramanian</em></strong></p><p><a href="https://decile.org/"><strong>DECILE Research Group</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=62ee9fc166f9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cut Down on Labeling Costs with DISTIL]]></title>
            <link>https://decile-research.medium.com/cut-down-on-labeling-costs-with-distil-77bec5c2e864?source=rss-8bf00d290651------2</link>
            <guid isPermaLink="false">https://medium.com/p/77bec5c2e864</guid>
            <category><![CDATA[distil]]></category>
            <category><![CDATA[active-learning]]></category>
            <category><![CDATA[annotations]]></category>
            <category><![CDATA[labeling-cost]]></category>
            <category><![CDATA[robustness-and-redundancy]]></category>
            <dc:creator><![CDATA[DECILE]]></dc:creator>
            <pubDate>Mon, 03 May 2021 18:11:51 GMT</pubDate>
            <atom:updated>2021-05-09T09:02:07.059Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="Distil Logo" src="https://cdn-images-1.medium.com/max/557/1*JwzpzLPD5FC1073TWAnuUA.png" /></figure><p><strong>In this Article</strong></p><ol><li>Introduction</li><li>Reducing Labeling Costs</li><li>DISTIL</li><li>Robustness against Redundancy</li><li>Video Explanation</li><li>Conclusion</li><li>Resources</li></ol><h4>1. Introduction</h4><p>Much of deep learning owes its success to the staggering amount of data used in model training. While throwing data at these deep models has shown to improve their accuracies time and time again, it comes at the great expense of data labeling. Indeed, mid-size datasets of tens of thousands of points may cost anywhere from a couple thousand USD to a couple hundred thousand USD.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/499/0*txAaWmvl7cwAA8fv.png" /></figure><p>For example, if your labeling task does not require specialist knowledge, Google’s AI Platform Data Labeling Service can be used to procure labeled data. In that instance, labeling 50,000 units (see Google’s per-1000-unit pricing chart) could cost up to $43,500 for one annotation per data point. Typically, multiple people annotate the data to ensure the quality of the labels, so this large cost is made even worse by a factor of the number of annotations required! This example even precludes the possibility that your data needs specialist knowledge to label. For example, a medical dataset of images often requires specialist knowledge for most labeling tasks. If you end up needing to label a very large dataset with difficult labels, well… I hope you have some spare pallets of cash lying around.</p><h4><strong>2. Reducing Labeling Costs</strong></h4><p>If you are like most people, you do not have a couple hundred thousand USD to shell out on labeling. A natural question to ask is how you can alleviate your labeling costs. A promising area of machine learning is active learning, which serves to answer the following question: Based on my model performance so far, what data should I have labeled so that my model’s performance is maximized once I train on the new collection of labeled data? The answer to this question effectively allows you to cut to the chase — instead of labeling <em>all</em> your data, you can instead label only the most important data to achieve good model performance. In essence, active learning aims to <em>distil</em> the large amount of unlabeled data at your disposal so that you can get the best labeling efficiency allowable under current methods.</p><h4><strong>3. Deep dIverSified inTeractIve Learning (DISTIL)</strong></h4><p>Luckily, an open-source Python library exists to make active learning easy and accessible! <a href="https://github.com/decile-team/distil">DISTIL</a> is a library that features many state-of-the-art active learning algorithms. Implemented in PyTorch, it gives fast and efficient implementations of these active learning algorithms. It allows users to modularly insert active learning selection into their pre-existing training loops with minimal change. Most importantly, it features promising results in achieving high model performance with less amount of labeled data. By comparing the performance of these active learning algorithms against the strategy of randomly selecting points to label, the labeling efficiency of these active learning algorithms becomes clear. Here are some of the results obtained on common datasets using some of the active learning algorithms in DISTIL:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/818/0*J8SjC6YfWu65iq9q.png" /><figcaption>The best strategies show 2x labeling efficiency compared to random sampling. BADGE does better than entropy sampling with a larger budget, and all strategies do better than random sampling.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*ln6hQqc2IgL3l4bT.png" /><figcaption>All strategies exhibit a gain over random sampling, but the per-batch version of BADGE performs similarly to random sampling. (Regular BADGE does not scale to CIFAR-100!)</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*iJc-r8tutSPu-Vwn.png" /><figcaption>All strategies exhibit a gain over random sampling, and both entropy sampling and BADGE achieve a 4x labeling efficiency compared to random sampling.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*lPzEHzzhuThRyz0S.png" /><figcaption>All strategies exhibit a gain over random sampling, and both entropy sampling and BADGE achieve a 4x labeling efficiency compared to random sampling.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*2zGOCKLwSUacjDZP.png" /><figcaption>All strategies exhibit a gain over random sampling, and both entropy sampling and BADGE achieve a 3x labeling efficiency compared to random sampling.</figcaption></figure><p><strong>4. Robustness against Redundancy</strong></p><p>A valid criticism of the above results might be that the above datasets are not representative of real-world datasets. Indeed, many datasets used in industry feature an astronomical amount of data. In fact, it is often the case where much of the data is redundant. A natural question to ask, then, is whether active learning is robust against redundancy. An answer to this question would give some evidence to the effectiveness of active learning on real-world datasets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/353/0*MoM4QIPv8AYZPpPc.png" /><figcaption>Very large datasets have many redundant data instances.</figcaption></figure><p>Luckily, DISTIL offers a wide repertoire of active learning algorithms, and some of them are robust against redundancy. In particular, we can examine how entropy sampling and BADGE perform on redundant data versus random sampling. The following shows some results on a modified CIFAR-10 dataset, where only a few unique points are drawn and increasingly duplicated:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*lgxxIv2zPgJhDF8Q.png" /><figcaption>BADGE and entropy sampling perform better than random sampling. The labeling efficiency is not pronounced with few unique points to select.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*_X-SPB4BdkfC8wpS.png" /><figcaption>With more redundancy, BADGE begins to perform better than before. Entropy sampling begins to perform worse than random.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/0*Y5NucwFBxI1hyCp9.png" /><figcaption>With even more redundancy, BADGE continues to do better than random sampling, while entropy sampling continues to do worse than random sampling.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/845/0*zBEfQD9v-wIPBAeL.png" /><figcaption>Takeaway: Compared to random sampling, entropy sampling handles redundant data poorly while BADGE handles redundant data proficiently.</figcaption></figure><p><strong>5. Video Explanation</strong></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FOGgGqk3seaw&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DOGgGqk3seaw&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FOGgGqk3seaw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/036c948c936a179db863998aef7c152d/href">https://medium.com/media/036c948c936a179db863998aef7c152d/href</a></iframe><p><strong>6. Conclusion</strong></p><p>As you can see, the active learning algorithms in DISTIL show promise in greatly reducing the number of labeled data points required for your model, and DISTIL offers a wide enough range of active learning algorithms to handle your problem instance. Hence, DISTIL can save you the cost of labeling significant portions of your data, which allows you to deploy your final models quicker, which also saves you development costs! Better yet, DISTIL is actively expanding its repertoire of active learning algorithms to ensure state-of-the-art performance. As such, if you are looking to cut down on labeling costs, DISTIL should be your go-to for getting the most out of your data.</p><p><strong>7. Resources</strong></p><p><em>More about Active Learning &amp; DISTIL:</em></p><ul><li><a href="https://decile-research.medium.com/active-learning-strategies-distil-62ee9fc166f9">Active Learning Strategies &amp; DISTIL</a></li><li><a href="https://decile-research.medium.com/getting-started-with-distil-active-learning-ba7fafdbe6f3">Getting Started With DISTIL &amp; Active Learning</a></li></ul><p><em>YouTube Playlist:</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FOGgGqk3seaw%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%26rs%3DAOn4CLCAdQdwT8Yaqckk9Ov2BGp5SoHBTg%26days_since_epoch%3D18756&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="853" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e99cd4629e9eece787082ec3df802888/href">https://medium.com/media/e99cd4629e9eece787082ec3df802888/href</a></iframe><p>Author:</p><p><strong><em>Nathan Beck</em></strong></p><p><a href="https://decile.org/"><strong><em>DECILE Research Group</em></strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=77bec5c2e864" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting Started With DISTIL & Active Learning]]></title>
            <link>https://decile-research.medium.com/getting-started-with-distil-active-learning-ba7fafdbe6f3?source=rss-8bf00d290651------2</link>
            <guid isPermaLink="false">https://medium.com/p/ba7fafdbe6f3</guid>
            <category><![CDATA[distil]]></category>
            <category><![CDATA[reducing-labeling-cost]]></category>
            <category><![CDATA[active-learning]]></category>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[active-learning-toolkit]]></category>
            <dc:creator><![CDATA[DECILE]]></dc:creator>
            <pubDate>Thu, 22 Apr 2021 07:35:30 GMT</pubDate>
            <atom:updated>2021-05-09T08:55:07.196Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="DISTIL_LOGO" src="https://cdn-images-1.medium.com/max/557/1*JwzpzLPD5FC1073TWAnuUA.png" /></figure><h4>In this Article</h4><ol><li>Introduction</li><li>Incorporating Custom Models &amp; Data with DISTIL</li><li>DISTIL Workflow</li><li>Code Walk-through</li><li>Conclusion</li><li>Video Explanation</li><li>Resources</li><li>Publications</li></ol><h4><strong>1. Introduction</strong></h4><p>Distil is a toolkit in PyTorch which provides access to different active learning algorithms. Active Learning (AL) helps in reducing labeling cost and also reduces training time and resources. AL helps in selecting only the required data and experiments show that using only 10% of data for training can reach accuracy levels close to the levels reached when using the entire dataset.</p><p>This article provides a step by step explanation of how to use DISTIL along with your existing pipelines. Different active strategies supported by DISTIL are listed below:</p><ol><li>Uncertainty Sampling</li><li>Margin Sampling</li><li>Least Confidence Sampling</li><li>FASS</li><li>BADGE</li><li>GLISTER ACTIVE</li><li>CoreSets based Active Learning</li><li>Random Sampling</li><li>Submodular Sampling</li><li>Adversarial Bim</li><li>Adversarial DeepFool</li><li>Baseline Sampling</li><li>BALD</li><li>Kmeans Sampling</li></ol><p>The documentation for the same can be found at: <a href="https://decile-team-distil.readthedocs.io/en/latest/ActStrategy/distil.active_learning_strategies.html">DISTIL Documentation</a></p><h4>2. Incorporating Custom Models &amp; Data with DISTIL</h4><p>There are two main things that needs to be incorporated in the code before using DISTIL.</p><ul><li><strong><em>Model</em></strong></li></ul><figure><img alt="DISTIL Code Snippet 1" src="https://cdn-images-1.medium.com/max/434/1*55mVLhmNy1V6J6PV-ZyHnw.png" /></figure><ol><li>The model should have a function <em>get_embedding_dim</em> which returns the number of hidden units in the last layer.</li><li>The forward function should have a boolean flag “last” where:</li></ol><p>if True: It should return the model output and the output of the second last layer<br>if False: It should only return the model output.</p><ul><li><strong><em>Data Handler</em></strong></li></ul><p>Since active learning works with data without labels, default data handlers cannot be used. The custom data handler should have following support:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/488/1*OnWrZCF8CldmEGjbyzh8Pw.png" /></figure><ol><li>Your data handler class should have a Boolean parameter “use_test_transform=False” with default value False. This parameter is used to identify if handler is used for testing data.</li><li>The data handler class should have a Boolean parameter “select” with default value True:</li></ol><p>If True: It should return only X and not Y (used by active learning strategies)</p><p>If False: It should return both X and Y (used while training the model)</p><p>That’s it folks! Just a couple of changes to get your model ready for DISTIL.</p><h4><strong>3. DISTIL Workflow</strong></h4><p>Now we are ready to work with DISTIL. This section will describe the step by step workflow of DISTIL and how active learning exactly works.</p><p><em>Budget</em>: It is the number of points added in the training set after every iteration. This needs to be decided before the training is initiated.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kPYhMOiaG722JYTwJwLiug.png" /></figure><p>The yellow boxes in the flow chart denote the initial loop and it runs only once during the starting of the process. Let the budget be denoted by n.</p><ol><li>There is a set of unlabeled data which needs to be used for training the model.</li><li>First n random points are selected for the initial round of training.</li><li>These points needs to be manually labeled</li><li>The model is trained with these labelled data.</li><li>After the training is completed, DISTIL selects the next set of n data points based on hypothesized labels, gradient embeddings, etc. depending on the active learning algorithm chosen.</li><li>These new selected points are labeled and added to the training data</li><li>The model is trained again with the new training data.</li><li>Repeat steps 5–7 until it reaches the desired testing accuracy or the points in training data reaches the threshold decided.</li></ol><h4><strong>4. Code Walk-through</strong></h4><p>Based, on the above steps, let’s go through the code step by step based on the example provided here: <a href="https://github.com/decile-team/distil/blob/main/examples/example.py">DISTIL Example Code</a>.</p><p><em>Step 1:</em></p><figure><img alt="DISTIL Code Snippet 3" src="https://cdn-images-1.medium.com/max/505/0*fS_VkDZj5lT7FlTA" /></figure><p>Loading the unlabeled data. Lines 60–63 loads the data which is in libsvm format. This is just an example, you can load data of your choice.</p><p><em>Step 2:</em></p><figure><img alt="DISTIL Code Snippet 4" src="https://cdn-images-1.medium.com/max/498/0*jD5g1F9WUzARrB9k" /></figure><p>Line 96–99, first set of random points are selected for the initial loop of training. In line 100, the points selected from the training are removed from the unlabeled set.</p><p><em>Step 3:</em></p><figure><img alt="DISTIL Code Snippet 5" src="https://cdn-images-1.medium.com/max/435/0*-q_ulI9sgNqRjjHR" /></figure><p><em>Note: Here we have assumed we already have the labels of the dataset. In an ideal scenario, these labels won’t be present and need to be labelled manually.</em></p><p>In line, 102, labeling of the selected data points is being done.</p><p><em>Step 4:</em></p><figure><img alt="DISTIL Code Snippet 6" src="https://cdn-images-1.medium.com/max/819/0*AQKCgngKARAzzhhm" /></figure><p>In line 108–110, DISTIL object is initiated with Glister strategy. DISTIL provides support for various active learning strategies such as FASS, Margin Sampling, BADGE, BALD, etc. and it can be selected in this step.</p><figure><img alt="DISTIL Code Snippet 7" src="https://cdn-images-1.medium.com/max/531/0*WzaoIJlck12wwNSN" /></figure><p>In line 120–122, the model is trained with the current labeled training set. DISTIL focuses on decoupling training from active learning. The training loop is completely in the hand of the user and has no restrictions on the way the model is trained. Thus, after training the model, DISTIL needs to be made aware of the current model state. In line 123, the model state in DISTIL is updated.</p><p><em>Step 5:</em></p><figure><img alt="DISTIL Code Snippet 8" src="https://cdn-images-1.medium.com/max/409/0*K9T6v0tG_Q6jom9t" /></figure><p>In line 135, DISTIL is called to choose a new set of points using the select point and passing the budget which is the number of points to be selected. Assuming that new points will be required to be labeled might take some time, and the loop is not continuous, the state of DISTIL needs to be maintained before training the model for the new training set. In line 137, save_state function is called which saves the current state of DISTIL and can be loaded again before starting the next training iteration.</p><p><em>Step 6:</em></p><figure><img alt="DISTIL Code Snippet 9" src="https://cdn-images-1.medium.com/max/529/0*qPM_biUhmwl5H6NU" /></figure><p>In line 140–141, the new selected data points are added to the training set and deleted from the unlabeled data pool. In line 144–145, the new chosen points are labeled. As explained in the above step, since labeling might take some time, the DISTIL state is saved beforehand. In line 151, the previous DISTIL state is loaded and since training and active learning are decoupled, In line 152–153, the new training data is being updated in DISTIL as well as the training class.</p><p><em>Step 7:</em></p><figure><img alt="DISTIL Code Snippet 10" src="https://cdn-images-1.medium.com/max/323/0*MIQfpYpAtqk3tJVe" /></figure><p>In line 155, the model is trained with the updated training set and in line 156, the new model state is updated in DISTIL using the update_model method of the DISTIL object.</p><p><em>Step 8:</em></p><figure><img alt="DISTIL Code Snippet 11" src="https://cdn-images-1.medium.com/max/586/0*ne4I9cDuuLE5z1Ag" /></figure><p>Step 5–7 are repeated until a stopping criterion is met. In the example.py, the stopping criterion is the number of rounds or if testing accuracy crosses 98%.</p><h4><strong>5. Conclusion</strong></h4><p>Thus, DISTIL can be easily incorporated in your code as it focuses on the following principles:</p><ol><li>Minimal changes to add it to the existing training structure.</li><li>Independent of the training strategy used.</li><li>Achieving similar test accuracy with less amount of training data.</li><li>Huge reduction in labelling cost and time.</li><li>Access to various active learning strategies with just one line of code.</li></ol><p>For latest discussions join the <a href="https://groups.google.com/forum/#!forum/Decile_DISTIL_Dev/join">Decile_DISTIL_Dev</a> group.</p><p>You can also refer to the video for a DISTIL tutorial based on this blog.</p><h4>6. Video Explanation</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FnnNvMBUJdwc%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DnnNvMBUJdwc&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FnnNvMBUJdwc%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/208249235ecb5f082cf5026dc3cc3e36/href">https://medium.com/media/208249235ecb5f082cf5026dc3cc3e36/href</a></iframe><h4><strong>7. Resources</strong></h4><p><em>DISTIL Documentation.</em></p><p><a href="https://decile-team-distil.readthedocs.io/en/latest/">https://decile-team-distil.readthedocs.io/en/latest/</a></p><p><em>Code Repository:</em></p><p><a href="https://github.com/decile-team/distil">https://github.com/decile-team/distil</a></p><p><em>Colab Examples:</em></p><p><a href="https://github.com/decile-team/distil#demo-notebooks">https://github.com/decile-team/distil#demo-notebooks</a></p><p><em>Complete Code to the example discussed in the article:</em></p><p><a href="https://github.com/decile-team/distil/blob/main/examples/example.py">decile-team/distil</a></p><p><em>More about Active Learning &amp; DISTIL:</em></p><ul><li><a href="https://decile-research.medium.com/cut-down-on-labeling-costs-with-distil-77bec5c2e864">Cut Down on Labeling Costs with DISTIL</a></li><li><a href="https://decile-research.medium.com/active-learning-strategies-distil-62ee9fc166f9">Active Learning Strategies &amp; DISTIL</a></li></ul><p><em>YouTube Playlist:</em></p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fvideoseries%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fplaylist%3Flist%3DPLIQ2KoP-CQ5HU4hjT2S-HNewam8sEW-9c&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FOGgGqk3seaw%2Fhqdefault.jpg%3Fsqp%3D-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ%3D%3D%26rs%3DAOn4CLCAdQdwT8Yaqckk9Ov2BGp5SoHBTg%26days_since_epoch%3D18756&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="853" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e99cd4629e9eece787082ec3df802888/href">https://medium.com/media/e99cd4629e9eece787082ec3df802888/href</a></iframe><p><strong>8. Publications</strong></p><p>[1] Settles, Burr. Active learning literature survey. University of Wisconsin-Madison Department of Computer Sciences, 2009.</p><p>[2] Wang, Dan, and Yi Shang. “A new active labeling method for deep learning.” 2014 International joint conference on neural networks (IJCNN). IEEE, 2014</p><p>[3] Kai Wei, Rishabh Iyer, Jeff Bilmes, Submodularity in data subset selection and active learning, International Conference on Machine Learning (ICML) 2015</p><p>[4] Jordan T. Ash, Chicheng Zhang, Akshay Krishnamurthy, John Langford, and Alekh Agarwal. Deep batch active learning by diverse, uncertain gradient lower bounds. CoRR, 2019. URL: <a href="http://arxiv.org/abs/1906.03671,">http://arxiv.org/abs/1906.03671,</a> arXiv:1906.03671.</p><p>[5] Sener, Ozan, and Silvio Savarese. “Active learning for convolutional neural networks: A core-set approach.” ICLR 2018.</p><p>[6] Krishnateja Killamsetty, Durga Sivasubramanian, Ganesh Ramakrishnan, and Rishabh Iyer, GLISTER: Generalization based Data Subset Selection for Efficient and Robust Learning, 35th AAAI Conference on Artificial Intelligence, AAAI 2021</p><p>[7] Vishal Kaushal, Rishabh Iyer, Suraj Kothiwade, Rohan Mahadev, Khoshrav Doctor, and Ganesh Ramakrishnan, Learning From Less Data: A Unified Data Subset Selection and Active Learning Framework for Computer Vision, 7th IEEE Winter Conference on Applications of Computer Vision (WACV), 2019 Hawaii, USA</p><p>[8] Wei, Kai, et al. “Submodular subset selection for large-scale speech training data.” 2014 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2014.</p><p>Author:</p><p><a href="https://www.linkedin.com/in/apurvadani98/"><strong><em>Apurva Dani</em></strong></a></p><p><em>AI Research &amp; Development</em></p><p><a href="https://decile.org/"><strong>DECILE Research Group</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ba7fafdbe6f3" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>