Octave / MatLab中矩阵的梯度函数

时间:2017-12-02 15:45:47

标签: matlab neural-network octave gradient gradient-descent

我正在尝试在Octave / Matlab中实现梯度下降算法。我正处于这个名为errors的201x201矩阵的位置,我假设它对应于2个输入变量函数f(x, y)。当使用imagesc显示时,矩阵会提供漂亮的渐变图像,但我在计算[dx, dy] = gradient(errors)时感到困惑。我将dxdy都取为2维矩阵(201x201)而不是简单的向量。我会假设,因为我们计算了关于x(相应的y),y(相应的x)的偏导数,所以它会从操作的结果中消失。我很确定我错过了一些东西,虽然我觉得我对函数渐变的工作原理有了足够的了解。提前谢谢你的回答。

enter image description here

1 个答案:

答案 0 :(得分:0)

渐变存在于某一点。您的gradient表达式正在评估所有201x201点的(数值)渐变。

例如,errors(3,4)的渐变是向量[dx(3,4), dy(3,4)]

此示例可能有所帮助:https://www.mathworks.com/help/matlab/ref/gradient.html#bvhqkfr请注意gradient返回的信息如何足以绘制渐变的整个矢量场。