Git Product home page Git Product logo

matrixproductbp.jl's People

Contributors

abraunst avatar federicoflorio avatar github-actions[bot] avatar stecrotti avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

matrixproductbp.jl's Issues

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

More general RecursiveBPFactors

I suspect that the functions needed to define a RecursiveBPFactor are not general enough if we want to do things like epidemics with heterogenous infection rates, or $\pm J$ Ising models.

Example: prob_xy(wᵢ::RecursiveBPFactor, yₖ, xₖ, xᵢ) computes $p(y_k^t|x_k^t,x_i^t)$ which for $\pm J$ Ising is
$p(y_k^t|x_k^t,x_i^t)=\delta(y_k^t, x_k^t J_{ik})$. But how do we retrieve $J_{ik}$?

Solution: re-define some functions including the index of k in the list of neighbors of i. That way we can access properties of wᵢ.

Something like (up to the correct change of variables between {+1,-1} and {1,2}:

prob_xy(wᵢ::PlusMinus1GlauberFactor, yₖ, xₖ, xᵢ, idx_k) = ( yₖ != xₖ*wᵢ.J[idx_k] )

Warning from LoopVectorization

Since we introduced LoopVectorization:

┌ Warning: #= /home/crotti/.julia/packages/Tullio/NGyNM/src/macro.jl:1093 =#:
│ `LoopVectorization.check_args` on your inputs failed; running fallback `@inbounds @fastmath` loop instead.
│ Use `warn_check_args=false`, e.g. `@turbo warn_check_args=false ...`, to disable this warning.
└ @ MatrixProductBP.Models /home/crotti/.julia/packages/LoopVectorization/m1H1K/src/condense_loopset.jl:1148

Looks totally harmless, but we could take a look at it at some point

Cavity computations

Make BP iterations for SimpleBPFactors even more efficient by performing "all-but-one" computation the smart way.
Side effect: get message to dummy neighbor for free

Introduce `MPEM1`s ?

Maybe it would be good to have simple MPEMs to store single node trajectory beliefs?

Put pair observations only on outgoing messages

Get rid of square roots which are needed only because currently pair observations are placed half on outgoing messages and half on ingoing messages.
Will need to adjust pair beliefs accordingly.

Generalize code for `SimpleBPFactors`

Generalize to all those types of factors where

$$w_i^{t+1}(x_i^{t+1}|\boldsymbol{x}_{\partial i}^t, x_i^t) = f\left( \bigoplus_{j \in \partial i} x_j^t, x_i^t,x_i^{t+1} \right)$$

where $\bigoplus$ is an operation like sum, product, AND, etc

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.