On Wednesday, 20 April 2016 at 04:31:33 UTC, Relja Ljubobratovic wrote:

I'm interested in contributing towards parts that involve machine learning/numerical optimisation. I have written some of my own CV/ML programs with D in the past, but none of them are particularly well engineered since they were all intended for just my own use.


That's great, thanks Henry! As I've noted above, I think it would be wise to keep modules like ML and optimization apart from this library, and to integrate dcv with them through ndslice. Maybe it's more likely that you could contribute to DlangScience's SVM libray with those parts? But any of your previous CV experience is more than welcome for DCV - I'll contact you on the github so we could discuss this further, hope that's ok.

I have an implementation of BFGS in D (except [open]BLAS :). BFGS is an algorithm for unconstrained optimization of nonlinear smooth functions. It is NOT L-BFGS and requires O(n*n) memory for optimizing f: R^n -> R. The linesearch may be useful to implement other algorithms.

It works fine for me, but needs some refactoring. Given existing bindings for nlopt: would this be useful? If so, I start the refactoring.

For now, there are no benchmarks, but it is definitely faster/fewer iterations than optim(method="BFGS") in R and the algorithm should be better than the version in GSL (if n is not too large, GSL uses some kind of L-BFGS).

Reply via email to