Skip to content
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

Add a Hessian test to PoissonLogLikelihoodWithLinearModelForMeanAndProjData (and fix Hessian) #902

Merged
merged 12 commits into from
Aug 9, 2021

Conversation

robbietuk
Copy link
Collaborator

@robbietuk robbietuk commented Jun 9, 2021

Addresses #911

  • Adds test_objective_function_Hessian which utilises objective_function.accumulate_Hessian_times_input to test the concavity condition x^T H x <= 0.

  • Modifies actual_accumulate_sub_Hessian_times_input_without_penalty (and approximate version) in PoissonLogLikelihoodWithLinearModelForMeanAndProjData to be a concave functions (plus -> minus)

@robbietuk robbietuk mentioned this pull request Jun 11, 2021
11 tasks
@robbietuk robbietuk closed this Jun 11, 2021
@robbietuk robbietuk deleted the Tests/Hessian branch June 11, 2021 20:45
@robbietuk robbietuk restored the Tests/Hessian branch June 15, 2021 16:37
@robbietuk
Copy link
Collaborator Author

I cannot workout why this was closed, it is a fix to the actual_accumulate_sub_Hessian_times_input_without_penalty

@robbietuk robbietuk reopened this Jun 15, 2021
…sian_concavity

This is a change to keep consistency with changes in UCL#901
@robbietuk
Copy link
Collaborator Author

robbietuk commented Jun 24, 2021

accumulate_sub_Hessian_times_input is used in other places (e.g. spatially variant penalty strength) that need to correct for the new negativitity.

For Poisson methods: add_multiplication_with_approximate_sub_Hessian_without_penalty needs to be negative too. This will break backwards compatability and will need to be documentented as well as uses of the method adjusted to accommodate.

Uses of accumulate_sub_Hessian_times_input include:

  • SqrtHessianRowSum->compute_Hessian_row_sum

Uses of add_multiplication_with_approximate_sub_Hessian_without_penalty include:

  • SqrtHessianRowSum->compute_approximate_Hessian_row_sum()
  • `OSSPSReconstruction->precompute_denominator_of_conditioner_without_penalty()
  • Any python code (none within STIR project - therefore needs to be well documented)

Of the SqrtHessianRowSum and OSSPSReconstruction uses, the output should have positive voxel values (these changes result in negative voxel values given a positive input)

@KrisThielemans KrisThielemans marked this pull request as draft July 15, 2021 16:00
robbietuk and others added 2 commits July 30, 2021 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants