我正在尝试用java实现一个神经网络(小的),我正在使用反向传播作为学习算法。这需要找到一般的导数。如何在java中找到一般的派生工具?
发布于 2010-08-06 09:11:46
试试Helmut Dersch的JASCA2 http://webuser.hs-furtwangen.de/~dersch/jasymca2/。它是一个Java API,提供类似GNU Octave/Matlab的功能。它包括符号数学。
Jasymca最近被开发出来了。文档来自2009年3月,它需要Java 1.5+。
注意: Jasymca是GPL,因此在将其用于商业产品之前,请咨询律师。
发布于 2010-08-06 08:58:32
取决于您的数据是连续的还是离散的。我猜你有离散的数据,因为我们讨论的是神经网络。
有限差分是近似导数的一种方法。另一种方法可能是进行某种拟合,并对拟合函数进行微分,假设它是一个众所周知的函数,具有易于计算的导数(例如,多项式)。
你的数据有多少个自变量?一个变量的函数很容易;两个或更多变量的函数更难,因为你需要偏导数。
发布于 2013-11-23 07:20:33
您应该尝试对其进行硬编码
double derivative = (f(x+h) - f(x-h)) / (2*h);https://stackoverflow.com/questions/3420265
复制相似问题