Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Haskell自动微分库中添加自定义渐变;广告;?_Haskell_Numerical Methods_Gradient Descent_Autodiff - Fatal编程技术网

如何在Haskell自动微分库中添加自定义渐变;广告;?

如何在Haskell自动微分库中添加自定义渐变;广告;?,haskell,numerical-methods,gradient-descent,autodiff,Haskell,Numerical Methods,Gradient Descent,Autodiff,如果我想为一个函数提供一个自定义的或已知的梯度,我如何在ad库中这样做?(我不想通过此函数自动区分。)我正在使用此库中的函数 如果库不提供此功能,是否有某种方法可以让我自己轻松实现此功能,可以通过更改ad中叶节点的定义,或者通过编辑可能携带数值渐变的双数 这里有一个具体的例子来说明我的意思: 假设我有一些函数,我想取梯度,比如说f(x,y)=x^2+3*g(x,y)^2。然后说,g(x,y)是一个函数,它的定义很复杂,但是它的梯度我已经用解析的方法计算过了,非常简单。因此,当我取梯度f并在(x,

如果我想为一个函数提供一个自定义的或已知的梯度,我如何在
ad
库中这样做?(我不想通过此函数自动区分。)我正在使用此库中的函数

如果库不提供此功能,是否有某种方法可以让我自己轻松实现此功能,可以通过更改
ad
中叶节点的定义,或者通过编辑可能携带数值渐变的双数

这里有一个具体的例子来说明我的意思:

假设我有一些函数,我想取梯度,比如说
f(x,y)=x^2+3*g(x,y)^2
。然后说,
g(x,y)
是一个函数,它的定义很复杂,但是它的梯度我已经用解析的方法计算过了,非常简单。因此,当我取
梯度f
并在
(x,y)
点对其求值时,我只想为
g
插入我的自定义梯度,而不是通过它进行自动扩散:类似于
my_nice_grade\u of_g(x,y)

例如,我看到其他autodiff库也提供了此功能,它们都允许用户定义函数的渐变