-
Notifications
You must be signed in to change notification settings - Fork 42
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
Speed up inference (and ensure ergodicity) in the presence of ENSURE DEPENDENT #76
Comments
Looking into this issue. Thoughts: Adjusting the CRP probabilities
Consider the following example with three customer c1, c2, and c3 with the constraint Scenario A: sample in the order (c1, c2, c3)Pr[c1=1] = 1 Pr[c2=1 | c1] = 0 (by independence constraint) Pr[c3=1 | c1,c2] = 1/(2+a) ==> Implies that the probability all customers are on separate tables is a/(2+a). Scenario B: sample in the order (c3, c1, c2)Pr[c3=1] = 1 Pr[c2=1 | c3] = 1/(1+a) Pr[c1=1 | c2, c3] \propto 1 ==> Implies the probability all customers on separate tables = a/(1+a) * a/(1+a) Someone interested in modeling can develop a ``constrained CRP'' model which tries to formalize independence constraints, but for the time being (and due to the title of this ticket) it makes sense to worry about the ENSURE DEPENDENT case which has a straightforward resolution. Patching the inference kernel for block proposalsThe heavy lifting will happen in crosscat/cpp_code/src/State.cpp Lines 236 to 244 in 25fad43
|
Resolved by 3873eee |
by block proposing the dependent column cliques.
Apparently the current implementation strategy for ENSURE DEPENDENT is to still propose column moves one at a time, but zero out the probability of any that violate the constraints. This means that a column that is DEPENDENT on another can never change views.
The better proposal mechanism is conceptually simple: just propose moving such a collection of columns as a group. Actual implementation difficulty is unknown.
The text was updated successfully, but these errors were encountered: