我想用梯度下降法求任何离散函数的极小点,但我不知道如何计算函数对某一特定点的导数。例如
function = [100 81 64 49 36 25 16 9 4 1 0 1 4 9 16 25 36 49 64 81 100]
derivative = [ -19 -17 -15 -13 -11 -9 -7 -5 -3 -1 1 3 5 7 9 11 13 15 17 19]对于梯度下降算法
x_next = x_now - alfa * derivative(x_now) 但是我如何评估derivative(x_now)呢?我希望你能理解我的意思,谢谢
发布于 2015-12-06 07:53:31
假设你知道对应于你的离散函数值的x值,例如,
x = [-5 -4 -3 -2 ... ],
function = [100 81 64 49 36 ... ],
derivative = [-19 -17 -15 -13 ...],梯度下降法中的导数可以作为每个区间[x_(i),x_(i+1))上的常数。即在伪代码中
derivative(x_now) = derivative(x_i), where x_(i) <= x_now < x_(i+1).例如,使用上面的x值:
derivative(-3.5) = -15https://stackoverflow.com/questions/33780198
复制相似问题