梯度下降算法适用于许多函数,不单单可以求出线性回归函数的最小值。
求最小值过程为,先设定初始的0,
1,往往都设置为零,然后逐渐的移动
0,
1去减少代价函数J,直到找到函数J的最小值

梯度下降算法有一个特点就是选择不同的起始点,会得到不同的局部最优解。

梯度下降算法的数学原理,在公式中被称为学习率,
用来控制梯度下降时我们迈多大的步子,
越大则梯度下降越快。需注意在进行计算梯度下降算法时,需要对每个参数同时进行求偏导,并同时更新。

梯度下降算法是做什么的,以及它的更新过程有什么意义?
我们这里假设代价函数J只有一个参数 1,所以得到的代价函数J的图像如下,当函数J只有一个参数时不再进行偏导而是直接求导,如果有两个或者两个以上的参数才进行偏导,其中
往往正数
第一种情况,当初始值 1在图像右侧时,导数为正值,
1将减去一个值,
1将减小,将逐步向最低点靠近
第二种情况,当初始值 1在图像左侧时,导数为负值,
1将加上一个值,
1将增大,将逐步向最低点靠近

刚刚我们说了往往是个正数,但是如果
太大或者太小会出现什么状况?
当太小时,我们会走很多步,才能到达最小值点
如果太大,可能会跳过最小值点,可以结合梯度下降公式理解,最后可能导致函数的发散

注意一个特殊情况,当 1已经处在最小值点时,
1将不再更新

为什么是一个不变的值,但是梯度下降算法却能找到代价函数J的局部最低点呢?
随着导数不断地变小, 1将移动的幅度会逐渐变小,不管
1是在函数的左侧还是右侧

1026

被折叠的 条评论
为什么被折叠?



