askadam.optmisation
Usage
obj = askadam;
out = obj.optimisation( data, mask, weights, parameters, fitting, FWDfunc, varargin);
I/O overview
Input |
Description |
|---|---|
data |
(Masked) N-D (imaging) data |
mask |
(1-3)D signal mask applied on FWDfunc, NOTE this mask does NOT apply on data |
weights |
N-D wieghts, same dimension as ‘data’ (optional) |
parameters |
structure variable containing starting points of all model parameters to be estimated (optional) |
fitting |
structure contains fitting algorithm parameters |
fitting.optimiser |
Algorithm for parameter update, ‘adam’ (default) | ‘sgdm’ | ‘rmsprop’ |
fitting.model_params |
1xM cell variable, name of the model parameters, e.g. {‘S0’,’R2star’}; |
fitting.lb |
1xM numeric variable, fitting lower bound, same order as field ‘model_params’, e.g. [0.5, 0]; |
fitting.ub |
1xM numeric variable, fitting upper bound, same order as field ‘model_params’, e.g. [2, 1]; |
fitting.isdisplay |
boolean, display optimisation process in graphic plot |
fitting.convergenceValue |
tolerance in loss gradient to stop the optimisation, set to -inf to disable checking the gradient; +ve: decreasing loss; -ve: increasing loss |
fitting.convergenceWindow |
#iterations in which ‘convergenceValue’ is computed |
fitting.patience |
#iterations to wait before stopping then optimisation when the loss does not improve |
fitting.iteration |
maximum # of optimisation iterations |
fitting.initialLearnRate |
(initial) learn rate of Adam optimiser |
fitting.tol |
tolerance in loss |
fitting.lambda |
regularisation parameter(s) |
fitting.regmap |
model parameter(s) in which regularisation is applied |
fitting.TVmode |
Mode for total variation (TV) regularisation, ‘2D’ | ‘3D’ |
fitting.lossFunction |
loss function, ‘L1’ | ‘L2’ | ‘huber’ | ‘mse’ |
fitting.randomness |
randomness of starting point; value between [0,1] 0 (fixed point) > somewhere inbetween >1 completely random |
fitting.debug |
Dispay extra messages for debugging |
FWDfunc |
function handle for forward signal generation; size of the output must match size of ‘data’ |
varargin |
additional input for FWDfunc other than ‘parameter’ and ‘mask’ (same order as FWDfunc) |
Output |
Description |
|---|---|
out |
structure contains optimisation result |
out.final |
output structure at final iteration |
out.final.loss |
total loss = loss_fidelity + loss_reg |
out.final.loss_fidelity |
loss of data consistency term |
out.final.loss_reg |
loss of regularisation term |
out.final.(model_params{k}) |
estimated model parameter(s) |
out.min |
output structure at loss is minimum |
See also askAdam basic tutorial.