ARD Implementation and Automatic Differentation compatibility
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,
Ah I just realised some features are not working... I will correct them and make a new PR Tests for ARD are indeed important ^^
Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.
Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.
Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.
Coverage decreased (-10.05%) to 84.106% when pulling 88c5a2a5d3b80e2d32025876aae3b49594bde277 on theogf:master into 85cc602338a9c207ef8e6496f207d767174e4b61 on trthatcher:master.
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.
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.
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.
@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.
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.