高数里面有提到梯度的概念,重温一下。

  梯度:设函数z=f(x,y)在平面区域D内有一街连续偏导数,则函数在D内的每一个点P(x,y)处的梯度为

  梯度下降:利用负梯度方向决定每次迭代的方向,从而使目标函数逐步减小。梯度下降法又称为最速下降法。

       简单形式:x(k+1)=x(k)-a*g(k),a为学习速率,可以使较小的常数,g(k)是x(k)的梯度。

  eg:给一组输入数据,算法会得到一个估计函数,估计函数可对没见过的数据给出估计。

image

    用(x1,x2,…xn)去表示特征向量,假设该向量为2维。则可得到估计函数:

image

        θ为参数,调整feature中每个分量的影响力。令x0 = 1,可用向量表示:

image

    程序需要一个机制去评估θ是否合适,从而需要对h函数进行评估,称其为损失函数(loss function),用J表示,共有m个训练样本,x(i) 是一个n维的向量,第i个训练样本

image

    通过这个损失函数用估计值与真实值差的平方和作为衡量标准,乘1/2是为了求导时系数为1。

    梯度下降法流程:  

     1).对θ赋值,这个值可以是随机的,也可以让θ是一个零向量。
     2).改变θ的值,使J(θ)按照梯度方向减少

image

    上图表示θ与损失函数J(θ)的关系,θ是二维。

        首先给θ给一个初值,假设随机给的初值对应图中十字点。

      然后将θ按照梯度下降的方向调整,使得J(θ)往更低的方向变化,算法结束的标志是在θ无法继续下降。

image

    梯度下降的最终点可能不是全局最小点,而是局部最小点。

image

    因此,初始点位置的选择对该算法有影响。

    则J(θ)对θ的偏导数为:

image   //几个公式写的都有点问题,下班了,回宿舍改。。。  这里应该是对θi求偏导

 

  参考:http://leftnoteasy.cnblogs.com

版权声明:本文为smallby原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/smallby/p/4625138.html