最速下降法推导中有个公式,在如下图片中,它是怎么用泰勒公式推导的,还有符号o代表什么意思?

2025-05-20 05:31:45
推荐回答(2个)
回答(1):

f(x)一般是势能函数(不是向量),x是个n维向量(x1,x2,...,xn),

f(x)的梯度是个n维向量,定义是 (df/dx1,df/dx2,...,df/dxn),泰勒展开的一阶,就是

f(x+dx)=f(x) + (df/dx1,df/dx2,...,df/dxn)' (dx1,dx2,...,dxn) + 二阶偏导矩阵*二阶小量,反正后面的那些项,就越来越小了。

有点类似一元的情况,f(x+dx)=f(x)+f'(x)*dx+f''(x)/2!*x^2....,只是换成了n维向量罢了,泰勒级数的精神是不变的。

A=o(B)代表的是A比起B是无穷小(当t趋近于0的时候),就是说商A/B趋近于0。比如说,t是o(1),因为t/1在t趋近于0的时候,极限是0。t^2是o(t),因为t^2/t=t,在t趋近于0的时候,极限是0。

梯度法的原理,其实是在已知梯度向量 (df/dx1,df/dx2,...,df/dxn)的情况下,和dx1*dx1+dx2*dx2+...+dxn*dxn=定值(即下一步搜索的步长是定值)的限制条件下,如何寻找正确的搜索方向,让势函数f(x+dx)变得更小,根据泰勒展开,忽略高阶小量后,这个问题就化为了如何让 df/dx1*dx1+...df/dxn*dxn 最小。

这里要用到柯西不等式,

(df/dx1*dx1+...df/dxn*dxn)^2<=(df/dx1*df/dx1+...+df/dxn*df/dxn)(dx1*dx1+dx2*dx2+...+dxn*dxn)

df/dx1*df/dx1+...+df/dxn*df/dxn(这个是已知量,因为一阶偏导数都已知,就是梯度)和dx1*dx1+dx2*dx2+...+dxn*dxn(这个是搜索步长的平方)都是定值。

柯西不等式的等号取到,是在 (df/dx1)/dx1=...=(df/dxn)/dxn 的时候,因此下一步的搜索方向,和梯度向量是共线的,也就是说跟着梯度反着走的。梯度法的数学原理,其实是柯西不等式。

回答(2):

将f(x^k+tp^k)在x^k处进行泰勒展开就是那个样子的,倒三角是梯度(一阶导数)的符号。

式中的o代表高阶无穷小,可以忽略