MLKernels.jl icon indicating copy to clipboard operation
MLKernels.jl copied to clipboard

ARD Implementation and Automatic Differentation compatibility

Open theogf opened this issue 7 years ago • 10 comments

Hello,

I made relatively heavy changes to your package with the objective to be able to have Automatic Relevance Determination and to be compatible with Automatic Differentation packages such as ForwardDiff.jl.

I changed the way distances were computed by directly applying the scale factor (appropriately) to the vectors. It might make the algorithm slower, I have not made benchmarks so far. However it is still retrocompatible and using a scalar scaling work with everything.

I did not add tests yet for the ARD case, and I had to remove some cause of the needed transformation of the parameters (in the "Testing constructors" part) cause I did not know if the best option is to keep a copy of the original parameters or ignore this issue. Let me know if you would like other modifications.

Cheers,

theogf avatar Jan 11 '19 17:01 theogf

Ah I just realised some features are not working... I will correct them and make a new PR Tests for ARD are indeed important ^^

theogf avatar Jan 11 '19 17:01 theogf

Coverage Status

Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.

coveralls avatar Jan 11 '19 17:01 coveralls

Coverage Status

Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.

coveralls avatar Jan 11 '19 17:01 coveralls

Coverage Status

Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.

coveralls avatar Jan 11 '19 17:01 coveralls

Coverage Status

Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.

coveralls avatar Jan 11 '19 17:01 coveralls

Hi @theogf!

I want to start by saying thanks for taking an interest in my project! I appreciate your enthusiasm to contribute; I see you’ve put a lot of effort into this pull request. I do want to support ARD & make AD possible.

I had hoped to release a version 1.0 to correspond to Julia 1.0 with the linear/periodic kernels fully deprecated and #65 closed before looking into adding ARD as a feature (I’m working on some documentation).

I’ve created issue #83 for ARD where I’d like to discuss the approach further. I’ve put a proposal in there which I think may end up a little cleaner.

trthatcher avatar Jan 12 '19 22:01 trthatcher

Also added #84.

Part of the strength of this package is that it usually uses BLAS, so I have to see what has to change to support that.

trthatcher avatar Jan 12 '19 22:01 trthatcher

Hello!

I reworked a lot of things to make things compatible and realized that I was getting pretty far away from the original package (notably by relying on Distances.jl a lot). With @willtebbutt we decided to start a new Kernel package from scratch again, although we definitely draw a large inspiration from your package. I wanted to make sure that this is ok with you or if you had any remarks.

theogf avatar May 24 '19 14:05 theogf

@willtebbutt @theogf So funny story there - I was going to swap out the back-end for Distances.jl because it is strictly better that what I have here. I didn't use it originally because they only supported rows-as-observations (or was it columns?) at the time. Anyway, that's no longer the case.

Is this the new package? https://github.com/theogf/KernelFunctions.jl

I've been wanting to participate more in the community rather than just working solo on my own package(s). Any chance I can help with your package's development? I'd like to continue as a contributor.

I can also deprecate and link to yours.

trthatcher avatar May 24 '19 15:05 trthatcher

That's amazing! Of course we would be more than happy to have you on the team! I will add you as a collaborator. Are you on the Julia Slack ? We have our group discussion there.

theogf avatar May 24 '19 16:05 theogf