Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Double IQN #503

Merged
merged 10 commits into from
Aug 20, 2019
Merged

Double IQN #503

merged 10 commits into from
Aug 20, 2019

Conversation

prabhatnagarajan
Copy link
Contributor

This PR adds Double IQN. This PR includes a new example script for IQN based agents (since it does not fall under "reproducibility". It includes a new Agent DoubleIQN, as well as a test.

@prabhatnagarajan
Copy link
Contributor Author

prabhatnagarajan commented Jul 8, 2019

Game Double 3-Step IQN ChainerRL IQN
Asterix 402856.2 454846.7
BeamRider 25382.4 38111.4
Berzerk 2013.2 138167.9
Bowling 90.4 84.3
Breakout 393.2 658.6
Enduro 2362.5 2363.3
Freeway 34.0 34.0
Hero 36409.1 27639.9
MsPacman 6924.1 5786.5
Pong 21.0 21.0
PrivateEye 200.0 289.9
Qbert 27683.3 24950.3
Seaquest 9944.8 27045.5
SpaceInvaders 53172.5 27810.9
Venture 1520.0 289.0
VideoPinball 774232.6 664013.5

Out of 16 domains, Double 3-Step IQN vs. ChainerRL's IQN:

  • 2 ties
  • 7 domains where Double 3-Step IQN beats ChainerRL
  • 7 domains where CRL beats Double 3-Step IQN.

@prabhatnagarajan
Copy link
Contributor Author

Game CRL IQN CRL DoubleIQN
Asterix 454846.7 483300
Asteroids 3885.9 3860.71
Atlantis 946912.5 978200
Berzerk 138167.9 2339.0
Breakout 658.6 608.3
Enduro 2363.3 2359.25
Freeway 34.0 34.0
Hero 27639.9 28818.65
SpaceInvaders 27810.9 54967.5

Double IQN wins on 4 domains
IQN wins on 4 domains
Tie on 1 domain

@prabhatnagarajan
Copy link
Contributor Author

prabhatnagarajan commented Jul 26, 2019

Full fledged IQN Results

Game DoubleIQN ChainerRL IQN
Asterix 507353.8 454846.7
Asteroids 3915.47 3885.9
BeamRider 33666.2 38111.4
Berzerk 2339.0 138167.9
Bowling 80.33 84.3
Breakout 666.28 658.6
Enduro 2359.25 2363.3
Freeway 34.0 34.0
Hero 28564.58 27639.9
MontezumaRevenge 5.55 0.6
Pong 21.0 21.0
PrivateEye 295.65 289.9
Qbert 29531.1 24950.3
Riverraid 22519.31 20716.1
Seaquest 30870.0 27045.5
SpaceInvaders 55127.5 27810.9
Venture 719.51 289.0
VideoPinball 731942.25 664013.5

Double IQN wins on 12 domains!
There are 2 ties.
IQN wins on 4 domains.

@prabhatnagarajan prabhatnagarajan requested review from marioyc and removed request for toslunar July 30, 2019 09:45
@muupan
Copy link
Member

muupan commented Aug 9, 2019

I think it is better to explicitly add train_double_iqn.py rather than train_iqn_ale.py because it will be clear from the filename what the file is for. IQN already has examples/atari/reproduction/iqn.

chainerrl/agents/double_iqn.py Outdated Show resolved Hide resolved


class DoubleIQN(iqn.IQN):
"""Double IQN - Use primary network for target computation."""
Copy link
Member

@muupan muupan Aug 20, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think Use primary network for target computation is a good description of the algorithm. Can you just say something like IQN with DoubleDQN-like target computation in the first line and add a detailed explanation after a blank line (as suggested by the google style https://github.com/google/styleguide/blob/gh-pages/pyguide.md#38-comments-and-docstrings)?

@muupan muupan merged commit 56ad737 into chainer:master Aug 20, 2019
@prabhatnagarajan prabhatnagarajan deleted the double_iqn branch September 3, 2019 05:56
@muupan muupan added this to the v0.8 milestone Feb 6, 2020
@muupan muupan mentioned this pull request Dec 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants