Ozzy

Joined 25 March 2015
2,397 bytes added ,  26 March 2015
no edit summary
No edit summary
No edit summary
Line 78: Line 78:
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. ''Please also wiki-link the page for your elaborated proposal here.''
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. ''Please also wiki-link the page for your elaborated proposal here.''
** If you apply for a task you have added yourself instead, please describe this task, its scope and people you already talked to concerning it. What field of tasks did you miss on the list?
** If you apply for a task you have added yourself instead, please describe this task, its scope and people you already talked to concerning it. What field of tasks did you miss on the list?
I would like to implement a general algorithm for maximum entropy reconstruction. This is an algorithm for estimating distributions and have applications in various fields. It is used for deblurring/deconvolution of images, power spectrum estimation, smoothing, measurement data processing in biology, physics and more.
The algorithm would find its place in one of the existing packages (where ''optim'' or ''signal'' sound appropriate) or as a separate package. I plan to prepare two versions of the general algorithm, (temporal name {{codeline|maxent}})
* a version for problems defined by matrix. The function's declaration should be something like this
{{Code||[x,info,...]=maxent(y,D,sigma,alpha=0.95, model=1, optset}}
where {{codeline|y} is the data vector, and {{codeline|D}} is the transformation matrix. {{codeline|sigma}} should be a vector or scalar which describes standard deviation of values of {{codeline|y}}. The optional parameter {{codeline|alpha}} and {{codeline|model}} describe confidence and a priori distribution of {{codeline|x}} (defaults to flat) respectively. The last parameter {{codeline|optset}} would allow to pass additional parameters to function, similar to the ones in {{codeline|optim}} package.
The returned value {{codeline|x}} is such that
<math> y \approx Dx</math>
where each of the coordinates of {{codeline|y}} lies within {{codeline|alpha}} confidence interval (normal distributed error assumed). Out of all possible {{codeline|x}} the one with the highest entropy is chosen. {{codeline|info}} describes the convergence of the algorthm. The other returned parameters will describe final gradients, hessians and Lagrange's coefficient.
* another version would be defined for a non-linear function. The declaration would very similar
{{Code||[x,info,...]=maxent(y,fun,sigma,alpha=0.95, model=1, optset}}.
All the parameters have the similar meaning, and the new parameter {{codeline|fun}} is the handle to a function which accepts vector argument, which describes the problem. This time the returned value should obey <math> y \approx f(x)</math>
* some wrapper functions will be provided to allow the user quickly use MEM in their problem. This includes function for 1D and image deconvolutions, time series components analysis, power spectral estimation and other applications I will be able to find in Matlab or other computational software.
* Please provide a rough estimated timeline for your work on the task. ''This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.''
* Please provide a rough estimated timeline for your work on the task. ''This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.''
[[Category: Summer of Code]]
[[Category: Summer of Code]]
46

edits