Giter VIP home page Giter VIP logo

tvo's People

Contributors

eguiraud avatar jdrefs avatar mkneuron avatar mknull avatar sebsal25 avatar

Stargazers

 avatar

Watchers

 avatar

tvo's Issues

eval_F_at_epoch_end option currently broken

Trainer.train_epoch or Trainer.em_step should call Trainer.eval_free_energies to evaluate the free energies at the end of the epoch if the option is enabled. Currently, the free energy value returned if the option is enabled is always 0.

[pointed out by @eguiraud]

Enable training of state proposers

All current TVO models refer to the "decoder" part of classical variational autoencoders. Current work, such as the neural state proposer uses model-based learning.

Proposed changes:
Make the Trainable protocol an abstraction of two new Encoder and Decoder protocols.
Enable gradient-based state acquisition in TrainingAndOrValidation.

Fix coverage badge

The same job that produces the docs should also produce an SVG file like https://img.shields.io/static/v1?label=<LABEL>&message=<MESSAGE>&color=<COLOR> and upload it together with the docs. The README badge can point there.

Apply correct truncation

The current implementation of truncated variational states contains an error somewhere, such that the evaluated free energy can at times decrease. Another effect of the implementation is that sometimes duplicate states are found in the K-set. A possible culprit is torch.unique, on which we rely for the state selection.

ShufflingSampler can lead to significantly different free energies compared to default sampler

In distributed execution, the ShufflingSampler potentially samples duplicate data points to ensure synchronized batch processing on each worker. The duplicate data points contribute twice to E- and M-step.

In its current version, the Trainer includes terms associated to duplicate data points when evaluating free energies (e.g., here, here, here, here). This can lead to significantly different results compared to a sequential execution without the ShufflingSampler and hence without duplicate datapoints (e.g., for a SSSC-House benchmark (\sigma=50, D=144, H=512, |K|=30), I observed a free energy difference on the order of 7).

Furthermore, the additional data points lead to additional terms for the Theta updates (in update_param_batch methods), s..t. different M-step results compared to the sequential execution setting are obtained.

Different convergence behavior of gradient-based M-steps with `seq` and `mpi` run policy

TVAE (and presumably other models using gradient optimizers) shows significantly different convergence behavior on sequential and distributed execution; for models using analytical results for the M-steps (e.g. BSC) similar effects are not observed.

For example in a bars test, TVAE and BSC showed differences between converged and ground-truth lower bounds approximately in the range [0,1] when being executed sequentially. On distributed execution, on the other hand,lower bound differences w.r.t. ground-truth remained similar for BSC while they increased to approximately [0,7] for TVAE (i.e., TVAE in this case fails to approach good optima).

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.