tvlearn / tvo Goto Github PK
View Code? Open in Web Editor NEWA PyTorch package for Truncated Variational Optimization.
Home Page: https://tvlearn.github.io/tvo
License: Academic Free License v3.0
A PyTorch package for Truncated Variational Optimization.
Home Page: https://tvlearn.github.io/tvo
License: Academic Free License v3.0
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]
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.
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.
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.
Currently, M-steps use data estimates in case of missing values. Accuracy of higher order terms (i.e., variance parameter) may be improved when ignoring missing values (see, e.g., here, here) and considering corrections for missing values (e.g., here).
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.
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).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.