梯度下降法 - Gradient Descent
不是一个机器学习算法,不能解决分类,回归问题;
是一种基于搜索的最优化方法 - 最优化一个损失函数(loss function) - 在机器学习领域最小化损失函数的最为常用的一种方法
最大化一个效用函数则用梯度上升法
很多模型得不到最优数学解,所以只能通过搜索策略找到最优解。
寻找一个参数 $\theta$, 使得损失函数J取得最小值!
直线方程中,导数代表斜率, 在曲线方程中,导数代表切线斜率
导数代表 $\theta$单位变化时,损失函数J相应的变化。
导数可以代表方向,对应J增大的方向。
导数为负值,则表示theta减小时,J增大;我们要想往J减小的方向前进,则 $\theta+一个导数*(-\eta)$。
对多维函数来说,导数就是对应的梯度。
$\eta$ - 步长
把目标函数J当作一个山谷,一个球会自然的滚落下来,梯度下降法就好像在模拟这个球的滚落过程。 当球滚落到谷底时,相应的找到了J的最小值。滚落的速度由$ \eta $决定。
并不是所有的函数都有唯一的极值点, 上图有2个极小值(导数=0),这个极小值有可能只是局部最优解,而不是全局最优解 - 搜索过程中会遇到的问题
解决方案:
多次运行, 随机化初始点 - 初始点也是一个超参数
线性回归法的损失函数具有唯一的最优解。
梯度下降法的超参数:
- eta - 步长
- 初始点