question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Feature Request] Gaussian Mixture Distribution

See original GitHub issue

🚀 Feature

Add a (diagonal) GMM distribution class to distributions.py.

Motivation

For now, continuous action spaces are handled by the normal distribution. However, there is no guarantee (I think) that the optimal policy conforms to a Gaussian distribution (e.g. for stochastic environments where two or more options might be equally valid), and so forcing to fit to a Gaussian could lead to high bias. A GMM would overcome this through its inherent flexibility, although likely at the cost of longer convergence time.

Pitch

I want to add a GMM(Distribution) class that will implement a Gaussian Mixture distribution for continuous spaces. Furthermore, I want to add extended classes including the squashed output and gSDE implementations. I will model each Gaussian as diagonal for mathematical/computational simplicity.

Alternatives

N/A

Additional context

N/A

### Checklist

  • I have checked that there is no similar issue in the repo (required)

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
araffincommented, May 25, 2021

Hello,

However, there is no guarantee (I think) that the optimal policy conforms to a Gaussian distribution (e.g. for stochastic environments where two or more options might be equally valid

that’s true that there is no garantee that your optimal policy will be unimodal. However, in practice, the Gaussian distribution usually gives good results. One intuition about that is that it is probably better to learn to do one thing good (unimodal) rather than learn to do many things ok (multi modal).

There have been some work around that idea though. Originally, Soft Q-Learning (SQL, the predecessor of SAC) was all about learning all those modalities. In fact, the first version of SAC uses a Gaussian Mixture distribution, but it was later on replaced by a simpler diagonal Gaussian distribution.

Link to the first version of the paper: https://arxiv.org/pdf/1801.01290v1.pdf

hy do we use a state-independent parameter for the log std of the policy instead of hooking up the log std as an output layer of the network itself?

for the std depending on observation or not: https://github.com/hill-a/stable-baselines/issues/652

0reactions
09tangrirocommented, May 25, 2021

Ah I see, thanks for the answers to both questions they’re super helpful 😊

Read more comments on GitHub >

github_iconTop Results From Across the Web

Gaussian mixture model with feature selection: An embedded ...
Gaussian Mixture Model (GMM) is a popular clustering algorithm due to its neat statistical properties, which enable the “soft” clustering and the determination ......
Read more >
[Feature request] Add Gaussian Mixture Models (Hard and ...
Consider adding Gaussian Mixture Models (GMM) with the option do do both hard and fuzzy clustering.
Read more >
Shaping Deep Feature Space towards Gaussian Mixture for ...
In this work, we propose a Gaussian mixture (GM) loss function for deep neural networks for visual classification. Unlike the softmax cross- ...
Read more >
Gaussian Mixture Model | Brilliant Math & Science Wiki
Gaussian mixture models are a probabilistic model for representing normally distributed subpopulations within an overall population. Mixture models in general ...
Read more >
Feature representation and discrimination based on Gaussian ...
A Gaussian mixture model (GMM) is a probabilistic model based on a Gaussian distribution for expressing the presence of sub-populations/sub- ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found