-
Notifications
You must be signed in to change notification settings - Fork 2
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
cost function mentioned in main_OSEM.py #71
Comments
OSEM does NOT implement a MAP recon. Line 36 in d9fbdc0
This example is provided to show yet another alternative how to implement a familiar algorithm, as well as giving the opportunity to compare OSEM metrics iwth MAP metrics. Apologies if this isn't clear in the documentation, suggestions welcome (or maybe you didn't read it :smile) |
Indeed. But the cost function mentioned there also does not match the Poisson logL as far as I can see, which could confuse people if they want to evaluate cost (as sum of data fidelity + prior) themselves. |
Are you talking about the difference between Aside from thresholding, the former is an implementation of [6] UCL/STIR#1472 (comment), while the latter is one of [5]. Unfortunately, I'm planning to switch to [6] in STIR soon, which indeed will confuse people. |
Indeed. After writing it down, I see that the difference is only the sum of the known additive contamination, so indeed image-independent.
|
multiplicative term By the way, this "trick" is our reason to write the accquisition model as |
Hm, now I am confused. If we have an affine fwd mode: and emission data If I understand your comment in the code correctly, you calculate (mathjaxx bug in a_{ij} ...) which after swapping the last two sums is which is isn't it? |
nope... First of all, our wiki notation is different from yours. We use so your Sticking to our notation, the which is (unless I'm making a typo!), with |
|
Indeed. Sorry
Apologies. We called it |
PETRIC/main_OSEM.py
Line 93 in d9fbdc0
The cost function in main_OSEM.py is
sum(prompts * log(acq_model.forward(self.x)) - self.x * sensitivity)
.Shouldn't that be:
sum(prompts * log(acq_model.forward(self.x)) - acq_model.forward(self.x))
(plus prior)?The text was updated successfully, but these errors were encountered: