用java做微积分

用java做微积分,java,calculus,Java,Calculus,我正在尝试用java实现一个神经网络(小的),我正在使用反向传播的学习算法。这需要找到一般的导数。如何在java中找到一般导数?取决于数据是连续的还是离散的。我猜你们有离散的数据,因为我们谈论的是神经网络 有限差分法是一种近似导数的方法。另一种方法可能是进行某种拟合并区分拟合函数,假设它是一个众所周知的函数,具有易于计算的导数(例如多项式) 你的数据有多少个自变量?单变量函数简单;两个或两个以上更难,因为你需要偏导数。取决于你有连续数据还是离散数据。我猜你们有离散的数据,因为我们谈论的是神经网络

我正在尝试用java实现一个神经网络(小的),我正在使用反向传播的学习算法。这需要找到一般的导数。如何在java中找到一般导数?

取决于数据是连续的还是离散的。我猜你们有离散的数据,因为我们谈论的是神经网络

有限差分法是一种近似导数的方法。另一种方法可能是进行某种拟合并区分拟合函数,假设它是一个众所周知的函数,具有易于计算的导数(例如多项式)


你的数据有多少个自变量?单变量函数简单;两个或两个以上更难,因为你需要偏导数。

取决于你有连续数据还是离散数据。我猜你们有离散的数据,因为我们谈论的是神经网络

有限差分法是一种近似导数的方法。另一种方法可能是进行某种拟合并区分拟合函数,假设它是一个众所周知的函数,具有易于计算的导数(例如多项式)


你的数据有多少个自变量?单变量函数简单;两个或更多的函数更难,因为您需要偏导数。

我非常确定java没有内置的用于微积分功能的库。然而,要自己实现差异化,可能是琐碎的,也可能是极具挑战性的

如果您已经具备了存储和分析函数的能力,那么获取导数就像编写(非常有限)数量的微分规则一样简单


然而,如果您正在研究基于数据集(而不是抽象函数)的微分,那么您可以使用各种近似技术,例如辛普森规则

我非常确定java没有内置用于微积分功能的库。然而,要自己实现差异化,可能是琐碎的,也可能是极具挑战性的

如果您已经具备了存储和分析函数的能力,那么获取导数就像编写(非常有限)数量的微分规则一样简单


然而,如果您正在研究基于数据集(而不是抽象函数)的微分,那么您可以使用各种近似技术,例如辛普森规则

试试赫尔穆特·德尔希的《茉莉花2》。它是一个JavaAPI,提供GNUOctave/Matlab类似的功能。它包括符号数学

Jasymca最近正在进行研究。该文档来自2009年3月,需要Java 1.5+


警告:Jasymca是GPL,所以在将其用于商业产品之前,请咨询律师。

试试赫尔穆特·德尔希的Jasymca 2。它是一个JavaAPI,提供GNUOctave/Matlab类似的功能。它包括符号数学

Jasymca最近正在进行研究。该文档来自2009年3月,需要Java 1.5+


警告:Jasymca是GPL,因此在将其用于商业产品之前,请咨询律师。

好的,如果您正在使用神经网络,您很可能不需要对某些任意函数进行一般导数。这就是你需要一个通用微积分库的原因。Backprop要求您使用激活函数的导数。通常,你的激活函数将是sigmoid函数或双曲tan函数。这两个函数都可以从维基百科中得到,并简单地为神经网络训练提供函数。您不需要每次都实际求解导数

还有其他常见的激活功能,但实际使用的功能却寥寥无几。只要查一下导数,然后利用你想要的导数。大多数神经网络框架只是将正则激活函数和导数构建成您使用的某种基类。以下是一些最常见的问题:


好的,如果你在做神经网络,很可能你不需要对任意函数求一般导数。这就是你需要一个通用微积分库的原因。Backprop要求您使用激活函数的导数。通常,你的激活函数将是sigmoid函数或双曲tan函数。这两个函数都可以从维基百科中得到,并简单地为神经网络训练提供函数。您不需要每次都实际求解导数

还有其他常见的激活功能,但实际使用的功能却寥寥无几。只要查一下导数,然后利用你想要的导数。大多数神经网络框架只是将正则激活函数和导数构建成您使用的某种基类。以下是一些最常见的问题:


您应该尝试硬编码

double derivative = (f(x+h) - f(x-h)) / (2*h);

你应该尝试硬编码

double derivative = (f(x+h) - f(x-h)) / (2*h);

如果可以向万维网发出HTTP请求,则可以创建集成脚本


披露:我在SaturnAPI上工作过

如果你可以向万维网发出HTTP请求,你可以创建一个集成脚本


披露:我在SaturnAPI上工作过,如果涉及java,请查看。它是免费的。在手册中,您可以找到如何进行派生。

如果涉及java,请查看。它是免费的。在手册中,您可以找到如何进行派生。

欢迎使用堆栈溢出!一般来说,链接到一个工具或库,或者如果可能的话,链接到上面的所有内容。欢迎使用Stack Overflow!通常,链接到工具或库,或者如果可能,链接到上述所有内容。