Awesome-AutoML
Curating a list of AutoML-related research, tools, projects and other resources
AutoML
AutoML is the tools and technology to use machine learning methods and processes to automate machine learning systems and make them more accessible. It existed for several decades so it's not a completely new idea.
Recent work by Google Brain and many others have re-kindled the enthusiasm of AutoML and some companies have already commercialized the technology. Thus, it has becomes one of the hosttest areas to look into.
There are many kinds of AutoML, including:
- Neural network architecture search
- Hyperparameter optimization
- Optimizer search
- Data augmentation search
- Learning to learn/Meta-learning
- And many more
Research
AutoML survey
- A Survey on Neural Architecture Search (Wistuba et al. 2019)
- Neural Architecture Search: A Survey (Elsken et al. 2019)
- Taking Human out of Learning Applications: A Survey on Automated Machine Learning (Yao et al. 2018)
Neural Architecture Search
- Semi-Supervised Neural Architecture Search (Luo et al. 2020)
- MixPath: A Unified Approach for One-shot Neural Architecture Search (Chu et al. 2020)
- AutoML-Zero: Evolving Machine Learning Algorithms From Scratch (Real et al. 2020)
- Generative Teaching Networks: Accelerating Neural Architecture Search by Learning to Generate Synthetic Training Data (Such et al. 2019)
- CARS: Continuous Evolution for Efficient Neural Architecture Search (Yang et al. 2019)
- Meta-Learning of Neural Architectures for Few-Shot Learning (Elsken et al. 2019)
- Up to two billion times acceleration of scientific simulations with deep neural architecture search (Kasim et al. 2019)
- Efficient Forward Architecture Search (Hue et al. 2019)
- NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection (Ghiasi et al. 2019)
- Improving Keyword Spotting and Language Identification via Neural Architecture Search at Scale (Mazzawi et al. 2019)
- SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization (Du et al. 2019)
- Evaluating the Search Phase of Neural Architecture Search (Sciuto et al. 2019)
- MixConv: Mixed Depthwise Convolutional Kernels (Tan et al. 2019)
- Multinomial Distribution Learning for Effective Neural Architecture Search (Zheng et al. 2019)
- PC-DARTS: Partial Channel Connections for Memory-Efficient Differentiable Architecture Search (Xu et al. 2019) - code
- Single Path One-Shot Neural Architecture Search with Uniform Sampling (Guo et al. 2019)
- AutoGAN: Neural Architecture Search for Generative Adversarial Networks (Gong et al. 2019)
- MixConv: Mixed Depthwise Convolutional Kernels (Tan et al. 2019)
- Tiny Video Networks (Piergiovanni et al. 2019)
- AssembleNet: Searching for Multi-Stream Neural Connectivity in Video Architectures (Ryoo et al. 2019)
- EfficientNet-EdgeTPU: Creating Accelerator-Optimized Neural Networks with AutoML (Gupta et al. 2019)
- EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (Tan et al. 2019)
- MoGA: Searching Beyond MobileNetV3 (Chu et al. 2019) - code
- Searching for MobileNetV3 (Howard et al. 2019)
- Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation (Liu et al. 2019)
- DetNAS: Backbone Search for Object Detection (Chen et al. 2019)
- Graph HyperNetworks for Neural Architecture Search (Zhang et al. 2019)
- Dynamic Distribution Pruning for Efficient Network Architecture Search (Zheng et al. 2019)
- FairNAS: Rethinking Evaluation Fairness of Weight Sharing Neural Architecture Search (Chu et al. 2019)
- SpArSe: Sparse Architecture Search for CNNs on Resource-Constrained Microcontrollers (Fedorov et al. 2019)
- EENA: Efficient Evolution of Neural Architecture (Zhu et al. 2019)
- Single Path One-Shot Neural Architecture Search with Uniform Sampling (Guo et al. 2019)
- InstaNAS: Instance-aware Neural Architecture Search (Cheng et al. 2019)
- ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware (Cai et al. 2019)
- NAS-Bench-101: Towards Reproducible Neural Architecture Search (Ying et al. 2019)
- Evolutionary Neural AutoML for Deep Learning (Liang et al. 2019)
- Fast, Accurate and Lightweight Super-Resolution with Neural Architecture Search (Chu et al. 2019)
- The Evolved Transformer (So et al. 2019)
- SNAS: Stochastic Neural Architecture Search (Xie et al. 2019)
- NeuNetS: An Automated Synthesis Engine for Neural Network Design (Sood et al. 2019)
- EAT-NAS: Elastic Architecture Transfer for Accelerating Large-scale Neural Architecture Search (Fang et al. 2019)
- Understanding and Simplifying One-Shot Architecture Search (Bender et al. 2018)
- Evolving Space-Time Neural Architectures for Videos (Piergiovanni et al. 2018)
- IRLAS: Inverse Reinforcement Learning for Architecture Search (Guo et al. 2018)
- Neural Architecture Search with Bayesian Optimisation and Optimal Transport (Kandasamy et al. 2018)
- Path-Level Network Transformation for Efficient Architecture Search (Cai et al. 2018)
- BlockQNN: Efficient Block-wise Neural Network Architecture Generation (Zhong et al. 2018)
- Stochastic Adaptive Neural Architecture Search for Keyword Spotting (Véniat et al. 2018)
- Task-Driven Convolutional Recurrent Models of the Visual System (Nayebi et al. 2018)
- Neural Architecture Optimization (Luo et al. 2018)
- MnasNet: Platform-Aware Neural Architecture Search for Mobile (Tan et al. 2018)
- Neural Architecture Search: A Survey (Elsken et al. 2018)
- MONAS: Multi-Objective Neural Architecture Search using Reinforcement Learning (Hsu et al. 2018)
- NetAdapt: Platform-Aware Neural Network Adaptation for Mobile Applications (Yang et al. 2018)
- Auto-Meta: Automated Gradient Based Meta Learner Search (Kim et al. 2018)
- MorphNet: Fast & Simple Resource-Constrained Structure Learning of Deep Networks (Gordon et al. 2018)
- DPP-Net: Device-aware Progressive Search for Pareto-optimal Neural Architectures (Dong et al. 2018)
- Searching Toward Pareto-Optimal Device-Aware Neural Architectures (Cheng et al. 2018)
- Differentiable Architecture Search (Liu et al. 2018)
- Regularized Evolution for Image Classifier Architecture Search (Real et al. 2018)
- Efficient Architecture Search by Network Transformation (Cai et al. 2017)
- Large-Scale Evolution of Image Classifiers (Real et al. 2017)
- Progressive Neural Architecture Search (Liu et al. 2017)
- AdaNet: Adaptive Structural Learning of Artificial Neural Networks (Cortes et al. 2017)
- Learning Transferable Architectures for Scalable Image Recognition (Zoph et al. 2017)
- Designing Neural Network Architectures using Reinforcement Learning (Baker et al. 2016)
- Neural Architecture Search with Reinforcement Learning (Zoph and Le. 2016)
Neural Architecture Search benchmark
- NAS-Bench-101: Towards Reproducible Neural Architecture Search (Ying et al. 2019) - code
Neural Optimizatizer Search
- Neural Optimizer Search with Reinforcement Learning (Bello et al. 2017)
Activation function Search
- Searching for Activation Functions (Ramachandran et al. 2017)
AutoAugment
- SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition (Park et al. 2019)
- RandAugment: Practical automated data augmentation with a reduced search space (Cubuk et al. 2019)
- Learning Data Augmentation Strategies for Object Detection (Zoph et al. 2019)
- Fast AutoAugment (Lim et al. 2019)
- AutoAugment: Learning Augmentation Policies from Data (Cubuk et al. 2018)
Learning to learn/Meta-learning
- ES-MAML: Simple Hessian-Free Meta Learning (Song et al. 2019)
- Learning to Learn with Gradients (Chelsea Finn PhD disseration 2018)
- On First-Order Meta-Learning Algorithms (OpenAI Reptile by Nichol et al. 2018)
- Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks (MAML by Finn et al. 2017)
- A sample neural attentive meta-learner (Mishra et al. 2017)
- Learning to Learn without Gradient Descent by Gradient Descent (Chen et al. 2016)
- Learning to learn by gradient descent by gradient descent (Andrychowicz et al. 2016)
- Learning to reinforcement learn (Wang et al. 2016)
- RL^2: Fast Reinforcement Learning via Slow Reinforcement Learning (Duan et al. 2016)
Hyperparameter optimization
- Population Based Training of Neural Networks (Jaderberg et al. 2017)
- Google Vizier: A Service for Black-Box Optimization (Golovin et al. 2017)
- Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization (Li et al. 2016)
- Practical Bayesian Optimization of Machine Learning Algorithms (Snoek et al. 2012)
- Random Search for Hyper-Parameter Optimization (Bergstra et al. 2012)
Automatic feature selection
- Deep Feature Synthesis: Towards Automating Data Science Endeavors (Kanter et al. 2017)
- ExploreKit: Automatic Feature Generation and Selection (Katz et al. 2016)
Model compression
- AMC: AutoML for Model Compression and Acceleration on Mobile Devices (He et al. 2018)
Tools and projects
- AutoGluon: AutoML Toolkit for Deep Learning
- hyperunity: A toolset for black-box hyperparameter optimisation
- auptimizer: An automatic ML model optimization tool
- Keras Tuner: Hyperparameter tuning for humans
- Torchmeta: A Meta-Learning library for PyTorch
- learn2learn: PyTorch Meta-learning Framework for Researchers
- Auto-PyTorch: Automatic architecture search and hyperparameter optimization for PyTorch
- ATM: Auto Tune Models: A multi-tenant, multi-data system for automated machine learning (model selection and tuning)
- Adanet: Fast and flexible AutoML with learning guarantees: Tensorflow package for AdaNet
- Microsoft Neural Network Intelligence (NNI): An open source AutoML toolkit for neural architecture search and hyper-parameter tuning
- Dragonfly: An open source python library for scalable Bayesian optimisation
- H2O AutoML: Automatic Machine Learning by H2O.ai
- Kubernetes Katib: hyperparameter Tuning on Kubernetes inspired by Google Vizier
- TransmogrifAI: automated machine learning for structured data by Salesforce
- Advisor: open-source implementation of Google Vizier for hyper parameters tuning
- AutoKeras: AutoML library by Texas A&M University using Bayesian optimization
- AutoSklearn: an automated machine learning toolkit and a drop-in replacement for a scikit-learn estimator
- Ludwig: a toolbox built on top of TensorFlow that allows to train and test deep learning models without the need to write code
- AutoWeka: hyperparameter search for Weka
- automl-gs: Provide an input CSV and a target field to predict, generate a model + code to run it
- SMAC: Sequential Model-based Algorithm Configuration
- Hyperopt-sklearn: hyper-parameter optimization for sklearn
- Spearmint: a software package to perform Bayesian optimization
- TPOT: one of the very first AutoML methods and open-source software packages
- MOE: a global, black box optimization engine for real world metric optimization by Yelp
- Hyperband: open source code for tuning hyperparams with Hyperband
- Optuna: define-by-run hypterparameter optimization framework
- RoBO: a Robust Bayesian Optimization framework
- HpBandSter: a framework for distributed hyperparameter optimization
- HPOlib2: a library for hyperparameter optimization and black box optimization benchmarks
- Hyperopt: distributed Asynchronous Hyperparameter Optimization in Python
- REMBO: Bayesian optimization in high-dimensions via random embedding
- ExploreKit: a framework forautomated feature generation
- FeatureTools: An open source python framework for automated feature engineering
- PocketFlow: use AutoML to do model compression (open sourced by Tencent)
- DEvol (DeepEvolution): a basic proof of concept for genetic architecture search in Keras
Commercial products
- Amazon SageMaker AutoPilot
- Google Cloud AutoML
- Google Cloud ML Hyperparameter Turning
- Microsoft Azure Machine Learning Studio
- comet.ml
- SigOpt
Blog posts
- A Conversation With Quoc Le: The AI Expert Behind Google AutoML
- fast.ai: An Opinionated Introduction to AutoML and Neural Architecture Search
- Introducing AdaNet: Fast and Flexible AutoML with Learning Guarantees
- Using Evolutionary AutoML to Discover Neural Network Architectures
- Improving Deep Learning Performance with AutoAugment
- AutoML for large scale image classification and object detection
- Using Machine Learning to Discover Neural Network Optimizers
- Using Machine Learning to Explore Neural Network Architecture
Presentations
- ICML 2019 Tutorial: Recent Advances in Population-Based Search for Deep Neural Networks by Evolving AI Lab
- Automatic Machine Learning by Frank Hutter and Joaquin Vanschoren
- Advanced Machine Learning Day 3: Neural Architecture Search by Debadeepta Dey (MSR)
- Neural Architecture Search by Quoc Le (Google Brain)
Books
- AUTOML: METHODS, SYSTEMS, CHALLENGES
- Hands-On Meta Learning with Python: Meta learning using one-shot learning, MAML, Reptile, and Meta-SGD with TensorFlow - repo