梯度降低算法

 1、基本概念函数

梯度降低法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减少。梯度降低法是2范数下的最速降低法。 最速降低法的一种简单形式是:x(k+1)=x(k)-a*g(k),其中a称为学习速率,能够是较小的常数。g(k)是x(k)的梯度。学习

2、导数优化

(1)定义.net

 

 

设有定义域和取值都在实数域中的函数 y=f(x)\;。若 f(x)\; 在点 \;x_0\; 的某个邻域内有定义,则当自变量 \;x\; 在 \;x_0\; 处取得增量 \Delta x\;(点 \;x_0+\Delta x\; 仍在该邻域内)时,相应地函数 \;y\; 取得增量 \Delta y=f(x_0+\Delta x)-f(x_0)\,\!;若是 \Delta \;y\; 与 \Delta \;x\; 之比当 \Delta x\to 0 时的极限存在,则称函数 y=f(x)\,\! 在点 \;x_0\; 处可导,并称这个极限为函数 y=f(x)\,\! 在点 \;x_0\; 处的导数,记为 f'(x_0)\;,即:3d

 

f'(x_0)=\lim_{\Delta x \to 0}\frac{\Delta y}{\Delta x}=\lim_{\Delta x \to 0}\frac{f(x_0+\Delta x)-f(x_0)}{\Delta x}

也可记做 y^\prime (x_0)\left.\frac{\mathrm{d}y}{\mathrm{d}x}\right|_{x=x_0}\frac{\mathrm{d}f}{\mathrm{d}x}(x_0)或 \left.\frac{\mathrm{d}f}{\mathrm{d}x}\right|_{x=x_0}table

对于通常的函数,若是不使用增量的概念,函数 f(x)\; 在点 x_0\; 处的导数也能够定义为:当定义域内的变量 x\; 趋近于 x_0\; 时,class

\frac{f(x)-f(x_0)}{x - x_0}

的极限。也就是说,变量

f'(x_0)=\lim_{x \to x_0}\frac{f(x)-f(x_0)}{x - x_0}

 

 

 

 

导数反应的变化率扩展

一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数的本质是经过极限的概念对函数进行局部的线性逼近。当函数f的自变量在一点x_0上产生一个增量h时,函数输出值的增量与自变量增量h的比值在h趋于0时的极限若是存在,即为fx_0处的导数,记做f'(x_0)\frac{\mathrm{d}f}{\mathrm{d}x}(x_0)\left.\frac{\mathrm{d}f}{\mathrm{d}x}\right|_{x=x_0}搜索

 

(2)几何意义:

 

 

 

一个实值函数的图像曲线。函数在一点的导数等于它的图像上这一点处之切线的斜率,导数是函数的局部性质。不是全部的函数都有导数,一个函数也不必定在全部的点上都有导数。若某函数在某一点导数存在,则称其在这一点可导,不然称为不可导。若是函数的自变量和取值都是实数的话,那么函数在某一点的导数就是该函数所表明的曲线在这一点上的切线斜率。

具体来讲:

当函数定义域和取值都在实数域中的时候,导数能够表示函数的曲线上的切线斜率。以下图所示,设P_0为曲线上的一个定点,P为曲线上的一个动点。当P沿曲线逐渐趋向于点P_0时,而且割线P P_0的极限位置P_0 T存在,则称P_0 T为曲线在P_0处的切线。

若曲线为一函数y=f(x)的图像,那么割线P P_0(蓝色)的斜率为:

\tan \varphi=\frac{\Delta y}{\Delta x}=\frac{f(x_0 + \Delta x)-f(x_0)}{\Delta x}

P_0处的切线P_0 T(红色),即P P_0的极限位置存在时,此时\Delta x \to 0\varphi \to \alpha,则P_0 T的斜率\tan \alpha为:

\tan \alpha=\lim_{\Delta x \to 0} \tan \varphi=\lim_{\Delta x \to 0} \frac{f(x_0 + \Delta x)-f(x_0)}{\Delta x}

上式与通常定义中的导数定义彻底相同,也就是说f'(x_0)=\tan \alpha,所以,导数的几何意义即曲线y=f(x)在点P_0 (x_0,f(x_0))处切线的斜率 

 

(3)导函数

 

 导数是一个数,是指函数 f(x)\; 在点 x_0\; 处导函数的函数值,若函数 \;f(x)\; 在其定义域包含的某区间 \;I\; 内每个点均可导,那么也能够说函数\;f(x)\; 在区间 \;I\; 内可导,这时对于 \;I\; 内每个肯定的\;x\; 值,都对应着 \;f\; 的一个肯定的导数值,如此一来就构成了一个新的函数x \mapsto f'(x),这个函数称做原来函数 \;f(x)\; 的导函数,记做:\;y'\;f'(x)\; 或者 \frac{\mathrm{d}f}{\mathrm{d}x}(x),一般也能够说导函数为导数

 

梯度

一、相关概念

假如一个空间中的每一点的属性均可以以一个标量来表明的话,那么这个场就是一个标量场。

假如一个空间中的每一点的属性均可以以一个向量来表明的话,那么这个场就是一个向量场

标量场中某一点上的梯度指向标量场增加最快的方向,梯度的长度是这个最大的变化率。

梯度一词有时用于斜度,也就是一个曲面沿着给定方向的倾斜程度。

二、计算

一个标量函数\varphi的梯度记为:

\nabla \varphi 或 \rm grad \varphi

其中\nabla(nabla)表示矢量微分算子。

在三维状况,该表达式在直角坐标中扩展为

\nabla \phi =\begin{pmatrix}{\frac{\partial \phi}{\partial x}},  {\frac{\partial \phi}{\partial y}}, {\frac{\partial \phi}{\partial z}}\end{pmatrix}

 

 

6、梯度降低法

梯度降低法,基于这样的观察:若是实值函数 F(\mathbf{x}) 在点 \mathbf{a} 处可微且有定义,那么函数 F(\mathbf{x})在 \mathbf{a} 点沿着梯度相反的方向

 -\nabla F(\mathbf{a}) 降低最快。

于是,若是

\mathbf{b}=\mathbf{a}-\gamma\nabla F(\mathbf{a})

对于 \gamma>0 为一个够小数值时成立,那么 F(\mathbf{a})\geq F(\mathbf{b})

考虑到这一点,咱们能够从函数 F 的局部极小值的初始估计 \mathbf{x}_0 出发,并考虑以下序列 \mathbf{x}_0, \mathbf{x}_1, \mathbf{x}_2, \dots 使得

\mathbf{x}_{n+1}=\mathbf{x}_n-\gamma_n \nabla F(\mathbf{x}_n),\ n \ge 0.

所以可获得

F(\mathbf{x}_0)\ge F(\mathbf{x}_1)\ge F(\mathbf{x}_2)\ge \cdots,

若是顺利的话序列 (\mathbf{x}_n) 收敛到指望的极值。注意每次迭代步长 \gamma 能够改变。

相关文章
相关标签/搜索