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

[wip] hessian, jacobian and their vector products

Open CarloLucibello opened this issue 7 years ago • 8 comments
trafficstars

fixes #54

CarloLucibello avatar Feb 21 '18 06:02 CarloLucibello

@CarloLucibello, Since it says [WIP], let's review and merge this pr after you've done?

kirnap avatar Mar 04 '18 15:03 kirnap

it is a WIP because it's not clear to me how the output should look when the input as a complicated structure, e.g. a vector of matrices

CarloLucibello avatar Mar 04 '18 15:03 CarloLucibello

@denizyuret

kirnap avatar Mar 04 '18 15:03 kirnap

I've got a multi-argument function and was trying to add the argnum argument to hessian (and therefore jacobian), but am failing. Can you, @CarloLucibello, provide some guidance on how to do that? I've got a function from Rn -> R and just want the hessian as an nxn matrix.

If it makes it easier in the short term, I only need argnum = 1.

jsams avatar May 07 '18 06:05 jsams

If I understand correctly, you have a mutli-argument function, e.g. f(x,y), and want to compute the hessian just with respect to x. In this case you can try to use the methods in this PR as follow

x0 = ...
y0 = ....
hessian(x->f(x, y0))(x0)

CarloLucibello avatar May 07 '18 06:05 CarloLucibello

that creates a closure over y0, right? My second argument is changing during my iterations, so I need to input it on each call.

jsams avatar May 07 '18 06:05 jsams

you should be fine, the closure is created anew each time hessian(x->f(x, y0))(x0) is executed

CarloLucibello avatar May 07 '18 07:05 CarloLucibello

@CarloLucibello what is the latest state of this PR? Is it ready to merge?

denizyuret avatar Aug 22 '18 17:08 denizyuret