Hello,
I am very new in Julia, so sorry in advance for my questions.
I have some issues about the optimize function from Optim.jl package.
First of all, I was not able to find a complete list with description of every optimization algorithm that I can use. I know that Nelder Mead is the default one gradient-free, and that LBFGS is the default one gradient-prone, but I would like to study every available algorithm to decide which one I could use, without finding a list in the documentation.
An othe issue, is that I would like to apply a simple constraint without using gradient and/or hessian. Actually, to be more precise, I just need a solution for the optimization which gives me all positive values.
This is the function I would like to optimize, to find the parameters x:
function A(x)
T = 0.0
partial_sum1 = 0.0
partial_sum2 = 0.0
regularisation_factor = x[end]
regularisation = norm(x[1:end-1])
for i = 1:44
numerator = 0.0
denominator = 0.0
for j = 1:44
numerator += Q[i,j]x[j]
denominator += (Q[i,j]+M[i,j])x[j]
end
partial_sum1 = numerator/denominator
partial_sum2 = smooth_intronic_average[i]/(2smooth_intronic_average[i]+smooth_exonic_average[i])
T += (partial_sum1 - partial_sum2)^2
end
T +=regularisation_factorregularisation^2
return T
end
where smooth_intronic_average and smooth_exonic_average are two arrays of length 44, and Q and M are two matrices (44 x 50).
That’s what I have done so far:
optimization = optimize(A, initial_guess)
with different initial_guess. In any case, I had negative values in any case, more or less, that are not good for the scientific purpose I am using this function (the x values should be transcription rates of a gene expression, that cannot be negative).
Thank you to everyone for your help.
S.