最近准备期末考试,把人工智能教材重新看了一遍,接下来几天准备把复习结构做一个总结,今天是第一天,主要介绍梯度下降法。
梯度下降其实我们之前学高数也讲过,但是,已经不记得了,好的,从头开始。
第一个:什么是梯度?
对应连续可微的多元函数,在点x处的梯度,其实就可以表示为所有自变量偏微分组成的向量,说人话就是,x的梯度,等于函数对x求导。
所以梯度的方式就是函数增长最快的,梯度的反方向就是函数减少最快的。理论上讲,沿着梯度反方向去修改自变量就一定能够拿到最小值。这种沿着梯度反方向寻找的办法叫做梯度下降法。
比如这个函数 y=x^2
假设x0=10,该点梯度h=y'=2x =20,假设我们取学习率z为0.2(步长0.2)
x1=x0-z*h=20-20 x 0.2=6 该点梯度h1为:12
x2=x1-z*h1=6-0.2 x 12=3.6 该点梯度h2为: 7.2
。。。
以此类推,当找到一个点,函数值接近0,就找到了答案
如果y=x1^2+2 x2^2
意思就是计算过程。在梯度下降法里面,我们很容易遇到局部最小和全局最小
所以需要对上面算法进行改进。第一个改进较批量下降,但是她同样存在缺陷,所以引入了随机梯度下降和小批量梯度下降。
随机梯度:随机选一个样本x,继续上面操作(因为随机,所以有机会跳出鞍点和局部最小点,但是收敛不稳定)
小批量:每次使用一定量的样本来讲计算,也有随机性,也可能跳出暗点和最小值点,并且b合理时候,收敛速度稳定