【笔记】梯度下降法的简单了解
梯度下降法
梯度下降法和先前学习的算法有着明显的不同
他本身不是一个机器学习的算法,它既不是监督学习也不是非监督学习,其是一种基于搜索的最优化的方法,作用是最小化一个损失函数,相应的,我们想要最大化一个效用函数的话,就要用梯度上升法,最小化方面是很常用梯度下降法的
从二维平面上看,可以发现其本质就是寻找一个参数使得损失函数最小,其中纵轴为损失函数J
对相应的点进行求导,其中导数代表着参数变化的时候,损失函数相应的变化,直线和曲线上导数都可代表斜率(高数基本的东西,不再赘述),其中,导数还可以代表方向,对应损失函数增大的方向,可以得到一个数值
其中导数前的数值η是先确定好的
我们需要一直计算,直到导数等于0(即取极值),就像是一个球一路滚落,直到最深处
其中这个速度是由学习率η决定的,其取值会影响到获得最优解的速度,如果取值不合适的话,甚至有可能出现得不到最优解的情况,太小就会减慢学习速度,太大甚至有可能导致不收敛,η相当于是梯度下降法的超参数,因此我们可是使用调参的方式来调整到最好的情况
而在事实上,并不是所有的函数都有唯一的极值点,像是线性回归这种损失函数就是具有唯一的最优解的,但是更多的时候,我们所找到的第一个极值点并不是最终的最好的解,可能还存在更好的解,这样我们称第一个点为局部最优解,最小值点为全局最优解
这样的情况下也是有解决方案的,我们可以多次运行,对初始点进行随机化,这样每次运行结果比较一下,逐步尝试,有可能找出全局最优解
这样我们发现,梯度下降法的初始点的位置一样也是一个超参数,其是非常重要的
您能读到这儿,我呢是发自真心的感谢您,若要转载,还望请您带上链接