All Projects → hrayrhar → limit-label-memorization

hrayrhar / limit-label-memorization

Licence: MIT License
Improving generalization by controlling label-noise information in neural network weights.

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to limit-label-memorization

extrapolate
generalize counter-examples of property-based testing
Stars: ✭ 13 (-61.76%)
Mutual labels:  generalization
T-CorEx
Implementation of linear CorEx and temporal CorEx.
Stars: ✭ 31 (-8.82%)
Mutual labels:  information-theory
awesome-nn-optimization
Awesome list for Neural Network Optimization methods.
Stars: ✭ 39 (+14.71%)
Mutual labels:  generalization
information-dropout
Implementation of Information Dropout
Stars: ✭ 36 (+5.88%)
Mutual labels:  information-theory
ForgetMeNot
A flashcard app for Android.
Stars: ✭ 234 (+588.24%)
Mutual labels:  memorization
ProbQA
Probabilistic question-asking system: the program asks, the users answer. The minimal goal of the program is to identify what the user needs (a target), even if the user is not aware of the existence of such a thing/product/service.
Stars: ✭ 43 (+26.47%)
Mutual labels:  information-theory
HSIC-bottleneck
The HSIC Bottleneck: Deep Learning without Back-Propagation
Stars: ✭ 56 (+64.71%)
Mutual labels:  information-theory
anki-mode
An Emacs major mode for creating anki cards
Stars: ✭ 47 (+38.24%)
Mutual labels:  memorization
raisin
A simple lightweight set of implementations and bindings for compression algorithms written in Go.
Stars: ✭ 17 (-50%)
Mutual labels:  information-theory
ittk
Information Theory Toolkit
Stars: ✭ 17 (-50%)
Mutual labels:  information-theory
alchemy
Generate any a-by-( b + c ) finite rectangle SVG containing potentially Infinitely many a-by-( 2 * b ) finite rectangles animated along a number line of ( ( c - b ) / a )^n scale symmetry.
Stars: ✭ 29 (-14.71%)
Mutual labels:  information-theory
SpinNet
[CVPR 2021] SpinNet: Learning a General Surface Descriptor for 3D Point Cloud Registration
Stars: ✭ 181 (+432.35%)
Mutual labels:  generalization
LinearCorex
Fast, linear version of CorEx for covariance estimation, dimensionality reduction, and subspace clustering with very under-sampled, high-dimensional data
Stars: ✭ 39 (+14.71%)
Mutual labels:  information-theory
modules
The official repository for our paper "Are Neural Nets Modular? Inspecting Functional Modularity Through Differentiable Weight Masks". We develop a method for analyzing emerging functional modularity in neural networks based on differentiable weight masks and use it to point out important issues in current-day neural networks.
Stars: ✭ 25 (-26.47%)
Mutual labels:  generalization
information-theory-deep-learning
Resources and Implementations (PyTorch) for Information Theoretical concepts in Deep Learning
Stars: ✭ 30 (-11.76%)
Mutual labels:  information-theory
Generalizing-Lottery-Tickets
This repository contains code to replicate the experiments given in NeurIPS 2019 paper "One ticket to win them all: generalizing lottery ticket initializations across datasets and optimizers"
Stars: ✭ 48 (+41.18%)
Mutual labels:  generalization
3DShapeGen
Code for 3D Reconstruction of Novel Object Shapes from Single Images paper
Stars: ✭ 92 (+170.59%)
Mutual labels:  generalization
Awesome-Math-Learning
📜 Collection of the most awesome Math learning resources in the form of notes, videos and cheatsheets.
Stars: ✭ 73 (+114.71%)
Mutual labels:  information-theory
Robust-Log-Optimal-Strategy-with-Reinforcement-Learning
We propose a new Portfolio Management strategy combining Log-Optimal based Strategy and Reinforcement-Learning based Strategy.
Stars: ✭ 55 (+61.76%)
Mutual labels:  information-theory
DiagnoseRE
Source code and dataset for the CCKS201 paper "On Robustness and Bias Analysis of BERT-based Relation Extraction"
Stars: ✭ 23 (-32.35%)
Mutual labels:  generalization

Improving generalization by controlling label-noise information in neural network weights

The author implementation of LIMIT method described in the paper "Improving generalization by controlling label-noise information in neural network weights" by Hrayr Harutyunyan, Kyle Reing, Greg Ver Steeg, and Aram Galstyan.

If you goal is to reproduce the results, please use the version of the code at time of ICML 2020 camera-ready submission. It can be found in the following release.

If your goal is to use LIMIT, you can use the this newer code. It is better commented and easier to use. The main method of the paper, LIMIT, is coded in the LIMIT class of the file methods/limit.py.

To cite the paper please use the following BibTeX:

@incollection{harutyunyan2020improving,
 author = {Harutyunyan, Hrayr and Reing, Kyle and Ver Steeg, Greg and Galstyan, Aram},
 booktitle = {Proceedings of Machine Learning and Systems 2020},
 pages = {5172--5182},
 title = {Improving generalization by controlling label-noise information in neural network weights},
 year = {2020}
}

Requirements:

  • Basic data science libraries: numpy, scipy, tqdm, matplotlib, seaborn, pandas, scikit-learn.
  • We use Pytorch 1.4.0, but higher versions should work too.
  • Additionally, only for extracting data from Tensorboard logs, tensorflow >= 2.0 is needed.

The exact versions of libraries we used are listed in the requirements.txt file.

Using the code

The whole code is writen as a package. All scripts should be initiated from the root directory. An example command would be:

python -um scripts.train_classifier -d cuda -c configs/4layer-cnn-mnist.json --log_dir logs/mnist

To monitor the training we run Tensorboard:

tensorboard --logdir=/path/to/the/log/directory

Structure of the repository

Directory Purpose
methods Contains implementations of classifiers used in the paper, including LIMIT.
modules Contains code that is modular and can be shared across different models and experiments.
notebooks Designed for Jupyter notebooks. Contains the notebooks used to generate the plots in the paper.
scripts Contains the scripts for training, testing, collecting results, and generating training commands.
configs Stores training/architecture configurations of our models.
logs Used to store tensorboard logs.
data Used to store data files.
plots Used to store the plots.
nnlib Points to a submodule which contains useful and generic code for training neural networks.

Reproducing the results

As mentioned above, we recommend using the code of the v0.1 release to reproduce the results of the paper. However, one should be able to reproduce the results with the current code too, although some unexpected errors might arise (they should be easy to fix). The commands we used to run the experiments were generated using the scripts/generate_commands.py script.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].