标签: derivative

dFdx的说明

我试图理解GLSL中的dFdx和dFdy函数.

我理解以下内容:

  1. 衍生物是变化率
  2. 具有两个参数的函数的偏导数是在区分函数的同时保持其中一个参数不变的情况.
  3. dFdx和dFdy查找当前片段与邻近片段之间值的变化率.

我不明白变化率是指什么.它是片段坐标的变化率吗?

可能是你可以在片段着色器的两个调用之间找到任意变量的变化率吗?着色器调用是否从相邻调用中"读取"变量?对于(简单)示例:

// invokation for fragment 1
float x = 1.0;
float d = dFdx(x);

// invokation for fragment next to fragment 1 along the x axis.
float x = 2.0;
float d = dFdx(x);
Run Code Online (Sandbox Code Playgroud)

d分别为-1.0和1.0?

glsl derivative

46
推荐指数
1
解决办法
2万
查看次数

在MATLAB中计算数值导数的最佳方法是什么?

(注意:这是一个社区Wiki.)

假设我有一组点xi = { x0,x1,x2,... xn }和相应的函数值fi = f(xi)= { f0,f1,f2,...,fn },其中f(x),一般来说,是一个未知的功能.(在某些情况下,我们可能提前知道f(x),但我们想要这样做,因为我们通常提前知道f(x).)什么是近似f的导数的好方法(x)在每个点xi也就是说,如何在每个点xi处估计dfi == d/d x fi == d f(xi)/ d x的值?

不幸的是,MATLAB没有一个非常好的通用数值微分程序.造成这种情况的部分原因可能是因为选择一个好的例程可能很困难!

那有什么样的方法呢?有哪些例程?我们如何为特定问题选择一个好的例行程序?

在选择如何区分MATLAB时,有几个注意事项:

  1. 你有一个象征性的功能或一组点吗?
  2. 你的网格是均匀的还是不均匀的?
  3. 您的域名是定期的吗?你能假设周期性边界条件吗?
  4. 您在寻找什么样的准确度?您是否需要在给定的容差范围内计算导数?
  5. 您的衍生产品是否与您定义的函数在相同的点上进行评估,这对您来说是否重要?
  6. 你需要计算多个衍生品订单吗?

什么是最好的方法?

matlab numerical-methods derivative differentiation

17
推荐指数
1
解决办法
2万
查看次数

函数的导数

我正在使用D来获得函数的导数.但是,R在返回导数时不会简化表达式.我需要弄清楚函数是否具有可以一般表达的导数.R中是否有某种方法可以简化表达式?

> D(expression(sqrt(1 - x^2)), 'x')
-(0.5 * (2 * x * (1 - x^2)^-0.5))
> D(D(expression(sqrt(1 - x^2)), 'x'), 'x')
-(0.5 * (2 * (1 - x^2)^-0.5 - 2 * x * (-0.5 * (2 * x * (1 - x^2)^-1.5))))
Run Code Online (Sandbox Code Playgroud)

其次,R有没有办法进行数值积分?

r derivative

16
推荐指数
1
解决办法
4万
查看次数

n维数组的numpy二阶导数

我有一组模拟数据,我想在n维中找到最低的斜率.数据的间距沿着每个维度是恒定的,但不是全部相同(为了简单起见,我可以改变它).

我可以忍受一些数字不准确,尤其是边缘.我非常希望不生成样条并使用该衍生物; 只要原始价值就足够了.

可以numpy使用该numpy.gradient()函数计算一阶导数.

import numpy as np

data = np.random.rand(30,50,40,20)
first_derivative = np.gradient(data)
# second_derivative = ??? <--- there be kudos (:
Run Code Online (Sandbox Code Playgroud)

这是关于拉普拉斯与粗麻布矩阵的评论; 这不再是一个问题,而是为了帮助理解未来的读者.

我使用2D函数作为测试用例来确定阈值以下的"最平坦"区域.以下图片显示了使用以下最小值second_derivative_abs = np.abs(laplace(data))和最小值之间的结果差异:

second_derivative_abs = np.zeros(data.shape)
hess = hessian(data)
# based on the function description; would [-1] be more appropriate? 
for i in hess[0]: # calculate a norm
    for j in i[0]:
        second_derivative_abs += j*j
Run Code Online (Sandbox Code Playgroud)

色标表示功能值,箭头表示一阶导数(梯度),红点表示最接近零的点,红线表示阈值.

数据的生成器函数是( 1-np.exp(-10*xi**2 - yi**2) )/100.0使用生成的xi,yi生成的np.meshgrid.

拉普拉斯:

拉普拉斯解决方案

黑森州:

粗麻布解决方案

python numpy derivative hessian-matrix

16
推荐指数
2
解决办法
2万
查看次数

如何计算时间序列的一阶导数

我将使用两个变量计算时间序列的一阶导数(dpH/dtime),timepH.

在R中是否有任何类型的函数可以执行此操作,还是应该计算额外的函数来执行此操作?

r derivative

15
推荐指数
2
解决办法
3万
查看次数

scipy.misc.derivative用于多参数函数

使用SciPy函数计算相对于第一个参数的点的函数的偏导数是直截了当的scipy.misc.derivative.这是一个例子:

def foo(x, y):
  return(x**2 + y**3)

from scipy.misc import derivative
derivative(foo, 1, dx = 1e-6, args = (3, ))
Run Code Online (Sandbox Code Playgroud)

但是,如何foo针对第二个参数采用函数的导数呢?我能想到的一种方法是生成一个lambda函数来重新调整参数,但这很快就会变得很麻烦.

另外,有没有办法根据函数的部分或全部参数生成偏导数组?

python numpy scipy derivative

15
推荐指数
1
解决办法
1万
查看次数

如何使用c找到函数的导数

是否有可能使用c程序找到函数的导数.我正在使用matlab,它有一个内置函数diff(),可用于查找函数的导数.

f(x)=x^2
Run Code Online (Sandbox Code Playgroud)

是否有可能使用c找到上述函数的导数.算法是什么?

c derivative

13
推荐指数
1
解决办法
5万
查看次数

坚持实施简单的神经网络

我一直在抨击这堵砖墙,看起来像是永恒的,我似乎无法绕过它.我正在尝试仅使用numpy和矩阵乘法来实现自动编码器.没有theano或keras技巧允许.

我将描述问题及其所有细节.它起初有点复杂,因为有很多变量,但它确实非常简单.

我们知道什么

1)X是一种mn矩阵这是我们的输入.输入是该矩阵的行.每个输入都是一个n维度行向量,我们有m它们.

2)我们(单个)隐藏层中的神经元数量,即k.

3)我们的神经元(sigmoid,将表示为g(x))及其衍生物的激活功能g'(x)

我们不知道什么,想找到什么

总的来说,我们的目标是找到6个矩阵:w1这是n通过k,b1这是m通过k,w2这是kn,B2是m通过n,w3这是nnb3mn.

它们随机初始化,我们找到使用梯度下降的最佳解决方案.

这个过程

整个过程看起来像这样 在此输入图像描述

首先我们计算z1 = Xw1+b1.它是m通过k并输入到我们的隐藏层.然后我们计算h1 = g(z1),它只是将sigmoid函数应用于所有元素z1.当然它也是m通过k和我们的隐层的输出.

然后,我们计算 …

python algorithm numpy matrix derivative

13
推荐指数
1
解决办法
628
查看次数

在某些步骤间隔内近似连续函数的导数

我希望用Java编写一个方法,找到连续函数的导数.这些是对该方法做出的一些假设 -

  1. 该函数从x = 0到x =无穷大是连续的.
  2. 衍生物存在于每个区间.
  3. 步长需要定义为参数.
  4. 该方法将在给定间隔[a:b]中找到连续函数的最大值/最小值.

例如,函数cos(x)可以显示为0,pi,2pi,3pi,... npi的最大值或最小值.

我正在寻找一个方法,它将找到所有这些最大值或最小值,只要给出函数,lowerBound,upperBound和步长.

为了简化我的测试代码,我为cos(x)编写了一个程序.我使用的函数与cos(x)非常相似(至少在图形上).这是我写的一些测试代码 -

public class Test {
    public static void main(String[] args){
        Function cos = new Function () 
        {
        public double f(double x) {
        return Math.cos(x);
        }
    };

        findDerivative(cos, 1, 100, 0.01);      
    }

    // Needed as a reference for the interpolation function.
    public static interface Function {
    public double f(double x);
    }

     private static int sign(double x) {
    if (x < 0.0)
            return -1;
        else if (x > 0.0) …
Run Code Online (Sandbox Code Playgroud)

java function max min derivative

12
推荐指数
1
解决办法
772
查看次数

如何独立于任何损耗函数实现Softmax导数?

对于神经网络库,我实现了一些激活函数和损失函数及其衍生物.它们可以任意组合,输出层的导数只是损耗导数和激活导数的乘积.

但是,我没有独立于任何损失函数实现Softmax激活函数的导数.由于归一化即等式中的分母,改变单个输入激活会改变所有输出激活而不仅仅是一个.

这是我的Softmax实现,其衍生物未通过梯度检查约1%.如何实现Softmax衍生产品以便与任何损耗功能相结合?

import numpy as np


class Softmax:

    def compute(self, incoming):
        exps = np.exp(incoming)
        return exps / exps.sum()

    def delta(self, incoming, outgoing):
        exps = np.exp(incoming)
        others = exps.sum() - exps
        return 1 / (2 + exps / others + others / exps)


activation = Softmax()
cost = SquaredError()

outgoing = activation.compute(incoming)
delta_output_layer = activation.delta(incoming) * cost.delta(outgoing)
Run Code Online (Sandbox Code Playgroud)

regression derivative backpropagation neural-network softmax

12
推荐指数
2
解决办法
1万
查看次数