All Projects → locuslab → E2e Model Learning

locuslab / E2e Model Learning

Licence: apache-2.0
Task-based end-to-end model learning in stochastic optimization

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to E2e Model Learning

Awesome System For Machine Learning
A curated list of research in machine learning system. I also summarize some papers if I think they are really interesting.
Stars: ✭ 1,185 (+746.43%)
Mutual labels:  paper, optimization
Optnet
OptNet: Differentiable Optimization as a Layer in Neural Networks
Stars: ✭ 361 (+157.86%)
Mutual labels:  paper, optimization
React Memoize
🧠 React memoization library we all deserve
Stars: ✭ 125 (-10.71%)
Mutual labels:  optimization
Paper
Lightning Network Paper
Stars: ✭ 136 (-2.86%)
Mutual labels:  paper
Nnvm
No description or website provided.
Stars: ✭ 1,639 (+1070.71%)
Mutual labels:  optimization
Catserver
Spiritual inheritance of mcpc+/thermos/Cauldron, full support spigot/sponge/forge/bukkit/paper API
Stars: ✭ 127 (-9.29%)
Mutual labels:  paper
Yolo Powered robot vision
Stars: ✭ 133 (-5%)
Mutual labels:  paper
Iqa Optimization
Comparison of IQA models in Perceptual Optimization
Stars: ✭ 123 (-12.14%)
Mutual labels:  optimization
Diffwave
DiffWave is a fast, high-quality neural vocoder and waveform synthesizer.
Stars: ✭ 139 (-0.71%)
Mutual labels:  paper
Sigpy
Python package for signal processing, with emphasis on iterative methods
Stars: ✭ 132 (-5.71%)
Mutual labels:  optimization
Tensorrt Utils
⚡ Useful scripts when using TensorRT
Stars: ✭ 136 (-2.86%)
Mutual labels:  optimization
Top 10 Computer Vision Papers 2020
A list of the top 10 computer vision papers in 2020 with video demos, articles, code and paper reference.
Stars: ✭ 132 (-5.71%)
Mutual labels:  paper
Sddp.jl
Stochastic Dual Dynamic Programming in Julia
Stars: ✭ 130 (-7.14%)
Mutual labels:  optimization
Timings
Source to the Aikar's Minecraft Timings Viewer
Stars: ✭ 132 (-5.71%)
Mutual labels:  paper
Finetune Transformer Lm
Code and model for the paper "Improving Language Understanding by Generative Pre-Training"
Stars: ✭ 1,605 (+1046.43%)
Mutual labels:  paper
Pysot
Surrogate Optimization Toolbox for Python
Stars: ✭ 136 (-2.86%)
Mutual labels:  optimization
Gosl
Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.
Stars: ✭ 1,629 (+1063.57%)
Mutual labels:  optimization
3pu
Patch-base progressive 3D Point Set Upsampling
Stars: ✭ 131 (-6.43%)
Mutual labels:  paper
Search Engine Optimization
🔍 A helpful checklist/collection of Search Engine Optimization (SEO) tips and techniques.
Stars: ✭ 1,798 (+1184.29%)
Mutual labels:  optimization
Wavegrad
A fast, high-quality neural vocoder.
Stars: ✭ 138 (-1.43%)
Mutual labels:  paper

Task-based End-to-end Model Learning in Stochastic Optimization

This repository is by Priya L. Donti, Brandon Amos, and J. Zico Kolter and contains the PyTorch source code to reproduce the experiments in our paper Task-based End-to-end Model Learning in Stochastic Optimization.

If you find this repository helpful in your publications, please consider citing our paper.

@inproceedings{donti2017task,
  title={Task-based end-to-end model learning in stochastic optimization},
  author={Donti, Priya and Amos, Brandon and Kolter, J Zico},
  booktitle={Advances in Neural Information Processing Systems},
  pages={5484--5494},
  year={2017}
}

Introduction

As machine learning techniques have become more ubiquitous, it has become common to see machine learning prediction algorithms operating within some larger process. However, the criteria by which we train machine learning algorithms often differ from the ultimate criteria on which we evaluate them.

This repository demonstrates an end-to-end approach for learning probabilistic machine learning models within the context of stochastic programming, in a manner that directly captures the ultimate task-based objective for which they will be used. Specifically, we evaluate our approach in the context of (a) a generic inventory stock problem and (b) an electrical grid scheduling task based on over eight years of data from PJM.

Please see our paper Task-based End-to-end Model Learning in Stochastic Optimization and the code in this repository (locuslab/e2e-model-learning) for more details about the general approach proposed and our initial experimental implementations.

Setup and Dependencies

Inventory Stock Problem (Newsvendor) Experiments

Experiments considering a "conditional" variation of the inventory stock problem. Problem instances are generated via random sampling.

newsvendor
├── main.py - Run inventory stock problem experiments. (See arguments.)
├── task_net.py - Functions for our task-based end-to-end model learning approach.
├── mle.py - Functions for linear maximum likelihood estimation approach.
├── mle_net.py - Functions for nonlinear maximum likelihood estimation approach.
├── policy_net.py - Functions for end-to-end neural network policy model.
├── batch.py - Helper functions for minibatched evaluation.
├── plot.py - Plot experimental results.
└── constants.py - Constants to set GPU vs. CPU.

Load Forecasting and Generator Scheduling Experiments

Experiments considering a realistic grid-scheduling task, in which electricity generation is scheduled based on some (unknown) distribution over electricity demand. Historical load data for these experiments were obtained from PJM.

power_sched
├── main.py - Run load forecasting problem experiments. (See arguments.)
├── model_classes.py - Models used for experiments.
├── nets.py - Functions for RMSE, cost-weighted RMSE, and task nets.
├── plot.py - Plot experimental results.
├── constants.py - Constants to set GPU vs. CPU.
└── pjm_load_data_*.txt - Historical load data from PJM.

Price Forecasting and Battery Storage Experiments

Experiments considering a realistic battery arbitrage task, in which a power grid-connected battery generates a charge/discharge schedule based on some (unknown) distribution over energy prices. Historical energy price data for these experiments were obtained from PJM.

battery_storage
├── main.py - Run battery storage problem experiments. (See arguments.)
├── model_classes.py - Models used for experiments.
├── nets.py - Functions for RMSE and task nets.
├── calc_stats.py - Calculate experimental result stats.
├── constants.py - Constants to set GPU vs. CPU.
└── storage_data.csv - Historical energy price data from PJM.

Acknowledgments

This material is based upon work supported by the National Science Foundation Graduate Research Fellowship Program under Grant No. DGE1252522.

Licensing

Unless otherwise stated, the source code is copyright Carnegie Mellon University and licensed under the Apache 2.0 License.

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].