Giter Club home page Giter Club logo

deep-opt-auctions's Introduction

Optimal Auctions through Deep Learning

Implementation of "Optimal Auctions through Deep Learning" (https://arxiv.org/pdf/1706.03459.pdf)

Getting Started

Install the following packages:

  • Python 2.7
  • Tensorflow
  • Numpy and Matplotlib packages
  • Easydict - pip install easydict

Running the experiments

RegretNet

For Gradient-Based approach:

Default hyperparameters are specified in regretNet/cfgs/.

For Sample-Based approach:

Modify the following hyperparameters in the config file specified in regretNet/cfg/.

cfg.train.gd_iter = 0
cfg.train.num_misreports = 100
cfg.val.num_misreports = 100 # Number of val-misreports is always equal to the number of train-misreports

For training the network, testing the mechanism learnt and computing the baselines, run:

cd regretNet
python run_train.py [setting_name]
python run_test.py [setting_name]
python run_baseline.py [setting_name]
setting_no setting_name
(a) additive_1x2_uniform
(b) unit_1x2_uniform_23
(c) additive_2x2_uniform
(d) CA_sym_uniform_12
(e) CA_asym_uniform_12_15
(f) additive_3x10_uniform
(g) additive_5x10_uniform
(h) additive_1x2_uniform_416_47
(i) additive_1x2_uniform_triangle
(j) unit_1x2_uniform
(k) additive_1x10_uniform
(l) additive_1x2_uniform_04_03
(m) unit_2x2_uniform

RochetNet (Single Bidder Auctions)

Default hyperparameters are specified in rochetNet/cfgs/.
For training the network, testing the mechanism learnt and computing the baselines, run:

cd rochetNet
python run_train.py [setting_name]
python run_test.py [setting_name]
python run_baseline.py [setting_name]
setting_no setting_name
(a) additive_1x2_uniform
(b) additive_1x2_uniform_416_47
(c) additive_1x2_uniform_triangle
(d) additive_1x2_uniform_04_03
(e) additive_1x10_uniform
(f) unit_1x2_uniform
(g) unit_1x2_uniform_23

MyersonNet (Single Item Auctions)

Default hyperparameters are specified in utils/cfg.py.
For training the network, testing the mechanism learnt and computing the baselines, run:

cd myersonNet
python main.py -distr [setting_name] or
bash myerson.sh
setting_no setting_name
(a) exponential
(b) uniform
(c) asymmetric_uniform
(d) irregular

Settings

Single Bidder

  • additive_1x2_uniform: A single bidder with additive valuations over two items, where the items is drawn from U[0, 1].

  • unit_1x2_uniform_23: A single bidder with unit-demand valuations over two items, where the item values are drawn from U[2, 3].

  • additive_1x2_uniform_416_47: Single additive bidder with preferences over two non-identically distributed items, where v1 ∼ U[4, 16]and v2 ∼ U[4, 7].

  • additive_1x2_uniform_triangle: A single additive bidder with preferences over two items, where (v1, v2) are drawn jointly and uniformly from a unit-triangle with vertices (0, 0), (0, 1) and (1, 0).

  • unit_1x2_uniform: A single unit-demand bidder with preferences over two items, where the item values from U[0, 1]

  • additive_1x2_uniform_04_03: A Single additive bidder with preferences over two items, where the item values v1 ∼ U[0, 4], v2 ∼ U[0, 3]

  • additive_1x10_uniform: A single additive bidder and 10 items, where bidders draw their value for each item from U[0, 1].

Multiple Bidders

  • additive_2x2_uniform: Two additive bidders and two items, where bidders draw their value for each item from U[0, 1].

  • unit_2x2_uniform: Two unit-demand bidders and two items, where the bidders draw their value for each item from identical U[0, 1].

  • additive_2x3_uniform: Two additive bidders and three items, where bidders draw their value for each item from U[0, 1].

  • CA_sym_uniform_12: Two bidders and two items, with v1,1, v1,2, v2,1, v2,2 ∼ U[1, 2], v1,{1,2} = v1,1 + v1,2 + C1 and v2,{1,2} = v2,1 + v2,2 + C2, where C1, C2 ∼ U[−1, 1].

  • CA_asym_uniform_12_15: Two bidders and two items, with v1,1, v1,2 ∼ U[1, 2], v2,1, v2,2 ∼ U[1, 5], v1,{1,2} = v1,1 + v1,2 + C1 and v2,{1,2} = v2,1 + v2,2 + C2, where C1, C2 ∼ U[−1, 1].

  • additive_3x10_uniform: 3 additive bidders and 10 items, where bidders draw their value for each item from U[0, 1].

  • additive_5x10_uniform: 5 additive bidders and 10 items, where bidders draw their value for each item from U[0, 1].

Visualization

Allocation Probabilty plots for unit_1x2_uniform_23 setting learnt by regretNet:

Allocation Probabilty plots for additive_1x2_uniform_416_47 setting learnt by rochetNet:

For other allocation probability plots, check-out the ipython notebooks in regretNet or rochetNet folder.

Reference

Please cite our work if you find our code/paper is useful to your work.

@article{DFNP19,
  author    = {Paul D{\"{u}}tting and Zhe Feng and Harikrishna Narasimhan and David C. Parkes and Sai Srivatsa Ravindranath},
  title     = {Optimal Auctions through Deep Learning},
  journal   = {arXiv preprint arXiv:1706.03459},
  year      = {2019},
}

deep-opt-auctions's People

Contributors

saisrivatsan avatar zfengharvard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

deep-opt-auctions's Issues

requirements

could you generate a requirement file with appropriate libraries versions

FileNotFoundError problem


FileNotFoundError Traceback (most recent call last)
in
2 generator = Generator(cfg, 'test', X_tst)
3 clip_op_lambda = (lambda x: tf.assign(x, tf.clip_by_value(x, 0.0, 1.0)))
----> 4 m = Trainer(cfg, "test", net, clip_op_lambda)
5 m.test(generator)

D:\coding\jupyter workplace\deep-opt-auctions-master\regretNet\trainer\trainer.py in init(self, config, mode, net, clip_op_lambda)
18
19 # Create output-dir
---> 20 if not os.path.exists(self.config.dir_name): os.mkdir(self.config.dir_name)
21
22 if self.mode == "train":

FileNotFoundError: [WinError 3] : 'experiments\additive_1x2_uniform'

When I running the program, it shows can not find the file,
Then I change following sentence,

Output-dir to write log-files and save model

__C.dir_name = os.path.join("experiments", "additive_1x2_uniform")

But it does not work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.