梯度下降的理解
1、为什么要学习梯度下降呢?
在跟随老师学习协同过滤推荐系统的时候了解到,梯度下降是机器学习的基础解决方法之一,在机器学习中有很多都用到的梯度下降或者是基于梯度下降进行算法改进。
2、对于梯度下降的理解。
梯度下降已经广泛的应用在机器学习当中,有很多人说梯度下降可以“包治百病”的应用于各类学习算法当中,这里面有较为复杂的数学原理,下面是我对梯度下降数学原理的理解:
1、什么是梯度下降法
梯度下降法,又称最速下降法。
1847年由著名的数学家柯西Cauchy给出。
2、基本思想
假设我们爬山,如果想最快的上到山顶,那么我们应该从山势最陡的地方上山。也就是山势变化最快的地方上山。
同样,如果从任意一点出发,需要最快搜索到函数最大值,那么我们也应该从函数变化最快的方向搜索。
函数变化最快的方向是什么呢?
函数的梯度。
如果函数为一元函数,梯度就是该函数的导数:
如果为二元函数,梯度定义为:
如果需要找的是函数极小点,那么应该从负梯度的方向寻找,该方法称之为梯度下降法。
要搜索极小值C点,在A点必须向x增加方向搜索,此时与A点梯度方向相反;在B点必须向x减小方向搜索,此时与B点梯度方向相反。总之,搜索极小值,必须向负梯度方向搜索。
梯度下降法-步骤
假设函数y=f(x1,x2,…,xn) 只有一个极小点。
初始给定参数为 X0=(x10,x20,…,xn0)。从这个点如何搜索才能找到原函数的极小值点?
方法:
首先设定一个较小的正数η,ε.
求当前位置处的各个偏导数:
修改当前函数的参数值,公式如下:
- 如果参数变化量小于ε,退出;否则返回2。
例:任给一个初始出发点,设为x0=-4,利用梯度下降法求函数y=x2/2-2x的极小值。
梯度下降的典型代表有——矩阵分解矩阵分解的详细介绍及列题分析